From d238b03584451451ffcea345ffc5d02c657003bd Mon Sep 17 00:00:00 2001 From: Adam Israel Date: Mon, 11 Nov 2019 16:42:02 -0800 Subject: [PATCH 01/16] Update exceptions Add NotImplemented exception and fix flake8 issues (spacing) Change-Id: I675ff7156084c41f1dc3b5ed4823f237e0835ad1 Signed-off-by: Adam Israel --- n2vc/exceptions.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/n2vc/exceptions.py b/n2vc/exceptions.py index fd4a3ce..a63d6f9 100644 --- a/n2vc/exceptions.py +++ b/n2vc/exceptions.py @@ -39,5 +39,11 @@ class NoRouteToHost(Exception): class AuthenticationFailed(Exception): """The authentication for the specified user failed.""" + class InvalidCACertificate(Exception): - """The CA Certificate is not valid.""" \ No newline at end of file + """The CA Certificate is not valid.""" + + +class NotImplemented(Exception): + """The method is not implemented.""" + -- 2.17.1 From d4ec83bbe1d74a7432ea472dfe5b748d1611bde4 Mon Sep 17 00:00:00 2001 From: Adam Israel Date: Thu, 7 Nov 2019 09:46:59 -0500 Subject: [PATCH 02/16] K8s Juju connector Juju connector for Kubernetes Change-Id: I2a020aa55840dd7e76391d7ad751be7c56db5eeb Signed-off-by: Adam Israel --- Jenkinsfile | 15 + n2vc/exceptions.py | 8 + n2vc/k8s_juju_conn.py | 952 +++++++++++++++++++++ tests/bundles/k8s-zookeeper-downgrade.yaml | 21 + tests/bundles/k8s-zookeeper-upgrade.yaml | 21 + tests/bundles/k8s-zookeeper.yaml | 21 + tests/test_k8s_juju_conn.py | 129 +++ 7 files changed, 1167 insertions(+) create mode 100644 n2vc/k8s_juju_conn.py create mode 100644 tests/bundles/k8s-zookeeper-downgrade.yaml create mode 100644 tests/bundles/k8s-zookeeper-upgrade.yaml create mode 100644 tests/bundles/k8s-zookeeper.yaml create mode 100644 tests/test_k8s_juju_conn.py diff --git a/Jenkinsfile b/Jenkinsfile index ed9e879..e384cbd 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,3 +1,18 @@ +/* + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + properties([ parameters([ string(defaultValue: env.BRANCH_NAME, description: '', name: 'GERRIT_BRANCH'), diff --git a/n2vc/exceptions.py b/n2vc/exceptions.py index f5c9fb0..4e44f95 100644 --- a/n2vc/exceptions.py +++ b/n2vc/exceptions.py @@ -38,3 +38,11 @@ class NoRouteToHost(Exception): class AuthenticationFailed(Exception): """The authentication for the specified user failed.""" + + +class InvalidCACertificate(Exception): + """The CA Certificate is not valid.""" + + +class NotImplemented(Exception): + """The method is not implemented.""" diff --git a/n2vc/k8s_juju_conn.py b/n2vc/k8s_juju_conn.py new file mode 100644 index 0000000..4f62898 --- /dev/null +++ b/n2vc/k8s_juju_conn.py @@ -0,0 +1,952 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import concurrent +from .exceptions import NotImplemented + +import juju +# from juju.bundle import BundleHandler +from juju.controller import Controller +from juju.model import Model +from juju.errors import JujuAPIError, JujuError + +import logging + +from n2vc.k8s_conn import K8sConnector + +import os +# import re +# import ssl +import subprocess +# from .vnf import N2VC + +import uuid +import yaml + + +class K8sJujuConnector(K8sConnector): + def __init__( + self, + fs, + kubectl_command='/usr/bin/kubectl', + log=None + ): + """ + + :param kubectl_command: path to kubectl executable + :param helm_command: path to helm executable + :param fs: file system for kubernetes and helm configuration + :param log: logger + """ + + # parent class + K8sConnector.__init__( + self, + kubectl_command=kubectl_command, + fs=fs, + log=log, + ) + + self.info('Initializing K8S Juju connector') + + self.authenticated = False + self.models = {} + self.log = logging.getLogger(__name__) + self.info('K8S Juju connector initialized') + + """Initialization""" + async def init_env( + self, + k8s_creds: dict, + namespace: str = 'kube-system', + reuse_cluster_uuid: str = None, + ) -> str: + """Initialize a Kubernetes environment + + :param k8s_creds dict: A dictionary containing the Kubernetes cluster + configuration + :param namespace str: The Kubernetes namespace to initialize + + :return: UUID of the k8s context or raises an exception + """ + + """Bootstrapping + + Bootstrapping cannot be done, by design, through the API. We need to + use the CLI tools. + """ + # TODO: The path may change + jujudir = "/snap/bin" + + self.k8scli = "{}/juju".format(jujudir) + + """ + WIP: Workflow + + 1. Has the environment already been bootstrapped? + - Check the database to see if we have a record for this env + + 2. If this is a new env, create it + - Add the k8s cloud to Juju + - Bootstrap + - Record it in the database + + 3. Connect to the Juju controller for this cloud + + """ + # cluster_uuid = reuse_cluster_uuid + # if not cluster_uuid: + # cluster_uuid = str(uuid4()) + + ################################################## + # TODO: Pull info from db based on the namespace # + ################################################## + + if not reuse_cluster_uuid: + # This is a new cluster, so bootstrap it + + cluster_uuid = str(uuid.uuid4()) + + # Add k8s cloud to Juju (unless it's microk8s) + + # Does the kubeconfig contain microk8s? + microk8s = self.is_microk8s_by_credentials(k8s_creds) + + if not microk8s: + # Name the new k8s cloud + k8s_cloud = "{}-k8s".format(namespace) + + await self.add_k8s(k8s_cloud, k8s_creds) + + # Bootstrap Juju controller + self.bootstrap(k8s_cloud, cluster_uuid) + else: + # k8s_cloud = 'microk8s-test' + k8s_cloud = "{}-k8s".format(namespace) + + await self.add_k8s(k8s_cloud, k8s_creds) + + await self.bootstrap(k8s_cloud, cluster_uuid) + + # Get the controller information + + # Parse ~/.local/share/juju/controllers.yaml + # controllers.testing.api-endpoints|ca-cert|uuid + with open(os.path.expanduser( + "~/.local/share/juju/controllers.yaml" + )) as f: + controllers = yaml.load(f, Loader=yaml.Loader) + controller = controllers['controllers'][cluster_uuid] + endpoints = controller['api-endpoints'] + self.juju_endpoint = endpoints[0] + self.juju_ca_cert = controller['ca-cert'] + + # Parse ~/.local/share/juju/accounts + # controllers.testing.user|password + with open(os.path.expanduser( + "~/.local/share/juju/accounts.yaml" + )) as f: + controllers = yaml.load(f, Loader=yaml.Loader) + controller = controllers['controllers'][cluster_uuid] + + self.juju_user = controller['user'] + self.juju_secret = controller['password'] + + print("user: {}".format(self.juju_user)) + print("secret: {}".format(self.juju_secret)) + print("endpoint: {}".format(self.juju_endpoint)) + print("ca-cert: {}".format(self.juju_ca_cert)) + + # raise Exception("EOL") + + self.juju_public_key = None + + config = { + 'endpoint': self.juju_endpoint, + 'username': self.juju_user, + 'secret': self.juju_secret, + 'cacert': self.juju_ca_cert, + 'namespace': namespace, + 'microk8s': microk8s, + } + + # Store the cluster configuration so it + # can be used for subsequent calls + await self.set_config(cluster_uuid, config) + + else: + # This is an existing cluster, so get its config + cluster_uuid = reuse_cluster_uuid + + config = self.get_config(cluster_uuid) + + self.juju_endpoint = config['endpoint'] + self.juju_user = config['username'] + self.juju_secret = config['secret'] + self.juju_ca_cert = config['cacert'] + self.juju_public_key = None + + # Login to the k8s cluster + if not self.authenticated: + await self.login() + + # We're creating a new cluster + print("Getting model {}".format(self.get_namespace(cluster_uuid))) + model = await self.get_model(self.get_namespace(cluster_uuid)) + + # Disconnect from the model + if model and model.is_connected(): + await model.disconnect() + + return cluster_uuid + + """Repo Management""" + async def repo_add( + self, + name: str, + url: str, + type: str = "charm", + ): + raise NotImplemented() + + async def repo_list(self): + raise NotImplemented() + + async def repo_remove( + self, + name: str, + ): + raise NotImplemented() + + """Reset""" + async def reset( + self, + cluster_uuid: str, + ) -> bool: + """Reset a cluster + + Resets the Kubernetes cluster by removing the model that represents it. + + :param cluster_uuid str: The UUID of the cluster to reset + :return: Returns True if successful or raises an exception. + """ + + try: + if not self.authenticated: + await self.login() + + if self.controller.is_connected(): + # Destroy the model + namespace = self.get_namespace(cluster_uuid) + if await self.has_model(namespace): + print("[reset] Destroying model") + await self.controller.destroy_model( + namespace, + destroy_storage=True + ) + + # Disconnect from the controller + print("[reset] Disconnecting controller") + await self.controller.disconnect() + + # Destroy the controller (via CLI) + print("[reset] Destroying controller") + await self.destroy_controller(cluster_uuid) + + """Remove the k8s cloud + + Only remove the k8s cloud if it's not a microk8s cloud, + since microk8s is a built-in cloud type. + """ + # microk8s = self.is_microk8s_by_cluster_uuid(cluster_uuid) + # if not microk8s: + print("[reset] Removing k8s cloud") + namespace = self.get_namespace(cluster_uuid) + k8s_cloud = "{}-k8s".format(namespace) + await self.remove_cloud(k8s_cloud) + + except Exception as ex: + print("Caught exception during reset: {}".format(ex)) + + """Deployment""" + async def install( + self, + cluster_uuid: str, + kdu_model: str, + atomic: bool = True, + timeout: int = None, + params: dict = None, + ) -> str: + """Install a bundle + + :param cluster_uuid str: The UUID of the cluster to install to + :param kdu_model str: The name or path of a bundle to install + :param atomic bool: If set, waits until the model is active and resets + the cluster on failure. + :param timeout int: The time, in seconds, to wait for the install + to finish + :param params dict: Key-value pairs of instantiation parameters + + :return: If successful, returns ? + """ + + if not self.authenticated: + print("[install] Logging in to the controller") + await self.login() + + ## + # Get or create the model, based on the namespace the cluster was + # instantiated with. + namespace = self.get_namespace(cluster_uuid) + model = await self.get_model(namespace) + if not model: + # Create the new model + model = await self.add_model(namespace) + + if model: + # TODO: Instantiation parameters + + print("[install] deploying {}".format(kdu_model)) + await model.deploy(kdu_model) + + # Get the application + if atomic: + # applications = model.applications + print("[install] Applications: {}".format(model.applications)) + for name in model.applications: + print("[install] Waiting for {} to settle".format(name)) + application = model.applications[name] + try: + # It's not enough to wait for all units to be active; + # the application status needs to be active as well. + print("Waiting for all units to be active...") + await model.block_until( + lambda: all( + unit.agent_status == 'idle' + and application.status in ['active', 'unknown'] + and unit.workload_status in [ + 'active', 'unknown' + ] for unit in application.units + ), + timeout=timeout + ) + print("All units active.") + + except concurrent.futures._base.TimeoutError: + print("[install] Timeout exceeded; resetting cluster") + await self.reset(cluster_uuid) + return False + + # Wait for the application to be active + if model.is_connected(): + print("[install] Disconnecting model") + await model.disconnect() + + return True + raise Exception("Unable to install") + + async def instances_list( + self, + cluster_uuid: str + ) -> list: + """ + returns a list of deployed releases in a cluster + + :param cluster_uuid: the cluster + :return: + """ + return [] + + async def upgrade( + self, + cluster_uuid: str, + kdu_instance: str, + kdu_model: str = None, + params: dict = None, + ) -> str: + """Upgrade a model + + :param cluster_uuid str: The UUID of the cluster to upgrade + :param kdu_instance str: The unique name of the KDU instance + :param kdu_model str: The name or path of the bundle to upgrade to + :param params dict: Key-value pairs of instantiation parameters + + :return: If successful, reference to the new revision number of the + KDU instance. + """ + + # TODO: Loop through the bundle and upgrade each charm individually + + """ + The API doesn't have a concept of bundle upgrades, because there are + many possible changes: charm revision, disk, number of units, etc. + + As such, we are only supporting a limited subset of upgrades. We'll + upgrade the charm revision but leave storage and scale untouched. + + Scale changes should happen through OSM constructs, and changes to + storage would require a redeployment of the service, at least in this + initial release. + """ + namespace = self.get_namespace(cluster_uuid) + model = await self.get_model(namespace) + + with open(kdu_model, 'r') as f: + bundle = yaml.load(f, Loader=yaml.FullLoader) + + """ + { + 'description': 'Test bundle', + 'bundle': 'kubernetes', + 'applications': { + 'mariadb-k8s': { + 'charm': 'cs:~charmed-osm/mariadb-k8s-20', + 'scale': 1, + 'options': { + 'password': 'manopw', + 'root_password': 'osm4u', + 'user': 'mano' + }, + 'series': 'kubernetes' + } + } + } + """ + # TODO: This should be returned in an agreed-upon format + for name in bundle['applications']: + print(model.applications) + application = model.applications[name] + print(application) + + path = bundle['applications'][name]['charm'] + + try: + await application.upgrade_charm(switch=path) + except juju.errors.JujuError as ex: + if 'already running charm' in str(ex): + # We're already running this version + pass + + await model.disconnect() + + return True + raise NotImplemented() + + """Rollback""" + async def rollback( + self, + cluster_uuid: str, + kdu_instance: str, + revision: int = 0, + ) -> str: + """Rollback a model + + :param cluster_uuid str: The UUID of the cluster to rollback + :param kdu_instance str: The unique name of the KDU instance + :param revision int: The revision to revert to. If omitted, rolls back + the previous upgrade. + + :return: If successful, returns the revision of active KDU instance, + or raises an exception + """ + raise NotImplemented() + + """Deletion""" + async def uninstall( + self, + cluster_uuid: str, + kdu_instance: str, + ) -> bool: + """Uninstall a KDU instance + + :param cluster_uuid str: The UUID of the cluster to uninstall + :param kdu_instance str: The unique name of the KDU instance + + :return: Returns True if successful, or raises an exception + """ + removed = False + + # Remove an application from the model + model = await self.get_model(self.get_namespace(cluster_uuid)) + + if model: + # Get the application + if kdu_instance not in model.applications: + # TODO: Raise a named exception + raise Exception("Application not found.") + + application = model.applications[kdu_instance] + + # Destroy the application + await application.destroy() + + # TODO: Verify removal + + removed = True + return removed + + """Introspection""" + async def inspect_kdu( + self, + kdu_model: str, + ) -> dict: + """Inspect a KDU + + Inspects a bundle and returns a dictionary of config parameters and + their default values. + + :param kdu_model str: The name or path of the bundle to inspect. + + :return: If successful, returns a dictionary of available parameters + and their default values. + """ + + kdu = {} + with open(kdu_model, 'r') as f: + bundle = yaml.load(f, Loader=yaml.FullLoader) + + """ + { + 'description': 'Test bundle', + 'bundle': 'kubernetes', + 'applications': { + 'mariadb-k8s': { + 'charm': 'cs:~charmed-osm/mariadb-k8s-20', + 'scale': 1, + 'options': { + 'password': 'manopw', + 'root_password': 'osm4u', + 'user': 'mano' + }, + 'series': 'kubernetes' + } + } + } + """ + # TODO: This should be returned in an agreed-upon format + kdu = bundle['applications'] + + return kdu + + async def help_kdu( + self, + kdu_model: str, + ) -> str: + """View the README + + If available, returns the README of the bundle. + + :param kdu_model str: The name or path of a bundle + + :return: If found, returns the contents of the README. + """ + readme = None + + files = ['README', 'README.txt', 'README.md'] + path = os.path.dirname(kdu_model) + for file in os.listdir(path): + if file in files: + with open(file, 'r') as f: + readme = f.read() + break + + return readme + + async def status_kdu( + self, + cluster_uuid: str, + kdu_instance: str, + ) -> dict: + """Get the status of the KDU + + Get the current status of the KDU instance. + + :param cluster_uuid str: The UUID of the cluster + :param kdu_instance str: The unique id of the KDU instance + + :return: Returns a dictionary containing namespace, state, resources, + and deployment_time. + """ + status = {} + + model = await self.get_model(self.get_namespace(cluster_uuid)) + + # model = await self.get_model_by_uuid(cluster_uuid) + if model: + model_status = await model.get_status() + status = model_status.applications + + for name in model_status.applications: + application = model_status.applications[name] + status[name] = { + 'status': application['status']['status'] + } + + if model.is_connected(): + await model.disconnect() + + return status + + # Private methods + async def add_k8s( + self, + cloud_name: str, + credentials: dict, + ) -> bool: + """Add a k8s cloud to Juju + + Adds a Kubernetes cloud to Juju, so it can be bootstrapped with a + Juju Controller. + + :param cloud_name str: The name of the cloud to add. + :param credentials dict: A dictionary representing the output of + `kubectl config view --raw`. + + :returns: True if successful, otherwise raises an exception. + """ + cmd = [self.k8scli, "add-k8s", "--local", cloud_name] + + p = subprocess.run( + cmd, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + input=yaml.dump(credentials, Dumper=yaml.Dumper), + encoding='ascii' + ) + retcode = p.returncode + + if retcode > 0: + raise Exception(p.stderr) + return True + + async def add_model( + self, + model_name: str + ) -> juju.model.Model: + """Adds a model to the controller + + Adds a new model to the Juju controller + + :param model_name str: The name of the model to add. + :returns: The juju.model.Model object of the new model upon success or + raises an exception. + """ + if not self.authenticated: + await self.login() + + model = await self.controller.add_model( + model_name, + config={'authorized-keys': self.juju_public_key} + ) + return model + + async def bootstrap( + self, + cloud_name: str, + cluster_uuid: str + ) -> bool: + """Bootstrap a Kubernetes controller + + Bootstrap a Juju controller inside the Kubernetes cluster + + :param cloud_name str: The name of the cloud. + :param cluster_uuid str: The UUID of the cluster to bootstrap. + :returns: True upon success or raises an exception. + """ + cmd = [self.k8scli, "bootstrap", cloud_name, cluster_uuid] + print("Bootstrapping controller {} in cloud {}".format( + cluster_uuid, cloud_name + )) + + p = subprocess.run( + cmd, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + encoding='ascii' + ) + retcode = p.returncode + + if retcode > 0: + # + if 'already exists' not in p.stderr: + raise Exception(p.stderr) + + return True + + async def destroy_controller( + self, + cluster_uuid: str + ) -> bool: + """Destroy a Kubernetes controller + + Destroy an existing Kubernetes controller. + + :param cluster_uuid str: The UUID of the cluster to bootstrap. + :returns: True upon success or raises an exception. + """ + cmd = [ + self.k8scli, + "destroy-controller", + "--destroy-all-models", + "--destroy-storage", + "-y", + cluster_uuid + ] + + p = subprocess.run( + cmd, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + encoding='ascii' + ) + retcode = p.returncode + + if retcode > 0: + # + if 'already exists' not in p.stderr: + raise Exception(p.stderr) + + def get_config( + self, + cluster_uuid: str, + ) -> dict: + """Get the cluster configuration + + Gets the configuration of the cluster + + :param cluster_uuid str: The UUID of the cluster. + :return: A dict upon success, or raises an exception. + """ + cluster_config = "{}/{}.yaml".format(self.fs.path, cluster_uuid) + if os.path.exists(cluster_config): + with open(cluster_config, 'r') as f: + config = yaml.load(f.read(), Loader=yaml.FullLoader) + return config + else: + raise Exception( + "Unable to locate configuration for cluster {}".format( + cluster_uuid + ) + ) + + async def get_model( + self, + model_name: str, + ) -> juju.model.Model: + """Get a model from the Juju Controller. + + Note: Model objects returned must call disconnected() before it goes + out of scope. + + :param model_name str: The name of the model to get + :return The juju.model.Model object if found, or None. + """ + if not self.authenticated: + await self.login() + + model = None + models = await self.controller.list_models() + + if model_name in models: + model = await self.controller.get_model( + model_name + ) + return model + + def get_namespace( + self, + cluster_uuid: str, + ) -> str: + """Get the namespace UUID + Gets the namespace's unique name + + :param cluster_uuid str: The UUID of the cluster + :returns: The namespace UUID, or raises an exception + """ + config = self.get_config(cluster_uuid) + + # Make sure the name is in the config + if 'namespace' not in config: + raise Exception("Namespace not found.") + + # TODO: We want to make sure this is unique to the cluster, in case + # the cluster is being reused. + # Consider pre/appending the cluster id to the namespace string + return config['namespace'] + + async def has_model( + self, + model_name: str + ) -> bool: + """Check if a model exists in the controller + + Checks to see if a model exists in the connected Juju controller. + + :param model_name str: The name of the model + :return: A boolean indicating if the model exists + """ + models = await self.controller.list_models() + + if model_name in models: + return True + return False + + def is_microk8s_by_cluster_uuid( + self, + cluster_uuid: str, + ) -> bool: + """Check if a cluster is micro8s + + Checks if a cluster is running microk8s + + :param cluster_uuid str: The UUID of the cluster + :returns: A boolean if the cluster is running microk8s + """ + config = self.get_config(cluster_uuid) + return config['microk8s'] + + def is_microk8s_by_credentials( + self, + credentials: dict, + ) -> bool: + """Check if a cluster is micro8s + + Checks if a cluster is running microk8s + + :param credentials dict: A dictionary containing the k8s credentials + :returns: A boolean if the cluster is running microk8s + """ + for context in credentials['contexts']: + if 'microk8s' in context['name']: + return True + + return False + + async def login(self): + """Login to the Juju controller.""" + + if self.authenticated: + return + + self.connecting = True + + self.controller = Controller() + + if self.juju_secret: + self.log.debug( + "Connecting to controller... ws://{} as {}/{}".format( + self.juju_endpoint, + self.juju_user, + self.juju_secret, + ) + ) + try: + await self.controller.connect( + endpoint=self.juju_endpoint, + username=self.juju_user, + password=self.juju_secret, + cacert=self.juju_ca_cert, + ) + self.authenticated = True + self.log.debug("JujuApi: Logged into controller") + except Exception as ex: + print(ex) + self.log.debug("Caught exception: {}".format(ex)) + pass + else: + self.log.fatal("VCA credentials not configured.") + self.authenticated = False + + async def logout(self): + """Logout of the Juju controller.""" + print("[logout]") + if not self.authenticated: + return False + + for model in self.models: + print("Logging out of model {}".format(model)) + await self.models[model].disconnect() + + if self.controller: + self.log.debug("Disconnecting controller {}".format( + self.controller + )) + await self.controller.disconnect() + self.controller = None + + self.authenticated = False + + async def remove_cloud( + self, + cloud_name: str, + ) -> bool: + """Remove a k8s cloud from Juju + + Removes a Kubernetes cloud from Juju. + + :param cloud_name str: The name of the cloud to add. + + :returns: True if successful, otherwise raises an exception. + """ + + # Remove the bootstrapped controller + cmd = [self.k8scli, "remove-k8s", "--client", cloud_name] + p = subprocess.run( + cmd, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + encoding='ascii' + ) + retcode = p.returncode + + if retcode > 0: + raise Exception(p.stderr) + + # Remove the cloud from the local config + cmd = [self.k8scli, "remove-cloud", "--client", cloud_name] + p = subprocess.run( + cmd, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + encoding='ascii' + ) + retcode = p.returncode + + if retcode > 0: + raise Exception(p.stderr) + + + return True + + async def set_config( + self, + cluster_uuid: str, + config: dict, + ) -> bool: + """Save the cluster configuration + + Saves the cluster information to the file store + + :param cluster_uuid str: The UUID of the cluster + :param config dict: A dictionary containing the cluster configuration + :returns: Boolean upon success or raises an exception. + """ + + cluster_config = "{}/{}.yaml".format(self.fs.path, cluster_uuid) + if not os.path.exists(cluster_config): + print("Writing config to {}".format(cluster_config)) + with open(cluster_config, 'w') as f: + f.write(yaml.dump(config, Dumper=yaml.Dumper)) + + return True diff --git a/tests/bundles/k8s-zookeeper-downgrade.yaml b/tests/bundles/k8s-zookeeper-downgrade.yaml new file mode 100644 index 0000000..8a99e2c --- /dev/null +++ b/tests/bundles/k8s-zookeeper-downgrade.yaml @@ -0,0 +1,21 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +description: Test bundle +bundle: kubernetes +applications: + zookeeper-k8s: + charm: 'cs:~charmed-osm/zookeeper-k8s-29' + scale: 1 + series: kubernetes diff --git a/tests/bundles/k8s-zookeeper-upgrade.yaml b/tests/bundles/k8s-zookeeper-upgrade.yaml new file mode 100644 index 0000000..8308f2f --- /dev/null +++ b/tests/bundles/k8s-zookeeper-upgrade.yaml @@ -0,0 +1,21 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +description: Test bundle +bundle: kubernetes +applications: + zookeeper-k8s: + charm: 'cs:~charmed-osm/zookeeper-k8s-31' + scale: 1 + series: kubernetes diff --git a/tests/bundles/k8s-zookeeper.yaml b/tests/bundles/k8s-zookeeper.yaml new file mode 100644 index 0000000..689220e --- /dev/null +++ b/tests/bundles/k8s-zookeeper.yaml @@ -0,0 +1,21 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +description: Test bundle +bundle: kubernetes +applications: + zookeeper-k8s: + charm: 'cs:~charmed-osm/zookeeper-k8s-30' + scale: 1 + series: kubernetes diff --git a/tests/test_k8s_juju_conn.py b/tests/test_k8s_juju_conn.py new file mode 100644 index 0000000..6e1e98e --- /dev/null +++ b/tests/test_k8s_juju_conn.py @@ -0,0 +1,129 @@ +# Copyright 2019 Canonical Ltd. + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse +import asyncio +import logging +import n2vc.k8s_juju_conn +from base import get_juju_public_key +import os +from osm_common.fslocal import FsLocal +import subprocess +import yaml + + +def get_args(): + parser = argparse.ArgumentParser() + parser.add_argument("--cluster_uuid", help='The UUID of an existing cluster to use', default=None) + parser.add_argument("--reset", action="store_true") + return parser.parse_args() + +async def main(): + + args = get_args() + + reuse_cluster_uuid = args.cluster_uuid + + log = logging.getLogger() + log.level = logging.DEBUG + + # Extract parameters from the environment in order to run our tests + vca_host = os.getenv('VCA_HOST', '127.0.0.1') + vca_port = os.getenv('VCA_PORT', 17070) + vca_user = os.getenv('VCA_USER', 'admin') + vca_charms = os.getenv('VCA_CHARMS', None) + vca_secret = os.getenv('VCA_SECRET', None) + vca_ca_cert = os.getenv('VCA_CACERT', None) + + # Get the Juju Public key + juju_public_key = get_juju_public_key() + if juju_public_key: + with open(juju_public_key, 'r') as f: + juju_public_key = f.read() + else: + raise Exception("No Juju Public Key found") + + storage = { + 'driver': 'local', + 'path': '/srv/app/storage' + } + fs = FsLocal() + fs.fs_connect(storage) + + client = n2vc.k8s_juju_conn.K8sJujuConnector( + kubectl_command = '/bin/true', + fs = fs, + ) + + # kubectl config view --raw + # microk8s.config + + # if microk8s then + kubecfg = subprocess.getoutput('microk8s.config') + # else + # kubecfg.subprocess.getoutput('kubectl config view --raw') + + k8screds = yaml.load(kubecfg, Loader=yaml.FullLoader) + namespace = 'testing' + kdu_model = "./tests/bundles/k8s-zookeeper.yaml" + + """init_env""" + cluster_uuid = await client.init_env(k8screds, namespace, reuse_cluster_uuid=reuse_cluster_uuid) + print(cluster_uuid) + + if not reuse_cluster_uuid: + # This is a new cluster, so install to it + + """install""" + # async def install(self, cluster_uuid, kdu_model, atomic=True, timeout=None, params=None): + # TODO: Re-add storage declaration to bundle. The API doesn't support the storage option yet. David is investigating. + + # Deploy the bundle + kdu_instance = await client.install(cluster_uuid, kdu_model, atomic=True, timeout=600) + + if kdu_instance: + # Inspect + print("Getting status") + status = await client.status_kdu(cluster_uuid, kdu_instance) + print(status) + + # Inspect the bundle + config = await client.inspect_kdu(kdu_model) + print(config) + + readme = await client.help_kdu(kdu_model) + # print(readme) + + + """upgrade + Upgrade to a newer version of the bundle + """ + kdu_model_upgrade = "./tests/bundles/k8s-zookeeper-upgrade.yaml" + upgraded = await client.upgrade(cluster_uuid, namespace, kdu_model=kdu_model_upgrade) + + kdu_model_upgrade = "./tests/bundles/k8s-zookeeper-downgrade.yaml" + upgraded = await client.upgrade(cluster_uuid, namespace, kdu_model=kdu_model_upgrade) + + """uninstall""" + + """reset""" + if args.reset: + await client.reset(cluster_uuid) + + await client.logout() + + print("Done") + +if __name__ == "__main__": + asyncio.run(main()) -- 2.17.1 From a049b7ce5d1606440447a88a98dd70548a1a0c74 Mon Sep 17 00:00:00 2001 From: quilesj Date: Mon, 28 Oct 2019 18:08:00 +0100 Subject: [PATCH 03/16] K8s generic connector Change-Id: I7c7879d556783785f5510dcf0e63d8f6dda43d2c Signed-off-by: quilesj --- n2vc/k8s_conn.py | 350 +++++++++++++++++++++++++++++++++++++++++++++++ n2vc/loggable.py | 167 ++++++++++++++++++++++ 2 files changed, 517 insertions(+) create mode 100644 n2vc/k8s_conn.py create mode 100644 n2vc/loggable.py diff --git a/n2vc/k8s_conn.py b/n2vc/k8s_conn.py new file mode 100644 index 0000000..d951c2c --- /dev/null +++ b/n2vc/k8s_conn.py @@ -0,0 +1,350 @@ +## +# Copyright 2019 Telefonica Investigacion y Desarrollo, S.A.U. +# This file is part of OSM +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# For those usages not covered by the Apache License, Version 2.0 please +# contact with: nfvlabs@tid.es +## + +import asyncio +from n2vc.loggable import Loggable +import abc +import time + + +class K8sConnector(abc.ABC, Loggable): + + """ + ################################################################################################## + ########################################## P U B L I C ########################################### + ################################################################################################## + """ + + def __init__( + self, + db: object, + log: object = None, + on_update_db=None + ): + """ + + :param db: database object to write current operation status + :param log: logger for tracing + :param on_update_db: callback called when k8s connector updates database + """ + + # parent class + Loggable.__init__(self, log=log, log_to_console=True, prefix='\nK8S') + + self.info('Initializing generic K8S connector') + + # the database and update callback + self.db = db + self.on_update_db = on_update_db + + self.info('K8S generic connector initialized') + + @abc.abstractmethod + async def init_env( + self, + k8s_creds: str, + namespace: str = 'kube-system', + reuse_cluster_uuid = None + ) -> (str, bool): + """ + It prepares a given K8s cluster environment to run Charts or juju Bundles on both sides: + client (OSM) + server (Tiller/Charm) + + :param k8s_creds: credentials to access a given K8s cluster, i.e. a valid '.kube/config' + :param namespace: optional namespace for helm tiller. By default, 'kube-system' will be used + :param reuse_cluster_uuid: existing cluster uuid for reuse + :return: uuid of the K8s cluster and True if connector has installed some software in the cluster + (on error, an exception will be raised) + """ + + @abc.abstractmethod + async def repo_add( + self, + cluster_uuid: str, + name: str, + url: str, + repo_type: str = 'chart' + ): + """ + Add a new repository to OSM database + + :param cluster_uuid: the cluster + :param name: name for the repo in OSM + :param url: URL of the repo + :param repo_type: either "chart" or "bundle" + :return: True if successful + """ + + @abc.abstractmethod + async def repo_list( + self, + cluster_uuid: str + ): + """ + Get the list of registered repositories + + :param cluster_uuid: the cluster + :return: list of registered repositories: [ (name, url) .... ] + """ + + @abc.abstractmethod + async def repo_remove( + self, + cluster_uuid: str, + name: str + ): + """ + Remove a repository from OSM + + :param name: repo name in OSM + :param cluster_uuid: the cluster + :return: True if successful + """ + + @abc.abstractmethod + async def reset( + self, + cluster_uuid: str, + force: bool = False, + uninstall_sw: bool = False + ) -> bool: + """ + Uninstalls Tiller/Charm from a known K8s cluster and removes it from the list of known K8s clusters. + Intended to be used e.g. when the NS instance is deleted. + + :param cluster_uuid: UUID of a K8s cluster known by OSM. + :param force: force deletion, even in case there are deployed releases + :param uninstall_sw: flag to indicate that sw uninstallation from software is needed + :return: str: kdu_instance generated by helm + """ + + @abc.abstractmethod + async def install( + self, + cluster_uuid: str, + kdu_model: str, + atomic: bool = True, + timeout: float = 300, + params: dict = None, + db_dict: dict = None + ): + """ + Deploys of a new KDU instance. It would implicitly rely on the `install` call to deploy the Chart/Bundle + properly parametrized (in practice, this call would happen before any _initial-config-primitive_ + of the VNF is called). + + :param cluster_uuid: UUID of a K8s cluster known by OSM + :param kdu_model: chart/bundle:version reference (string), which can be either of these options: + - a name of chart/bundle available via the repos known by OSM + - a path to a packaged chart/bundle + - a path to an unpacked chart/bundle directory or a URL + :param atomic: If set, installation process purges chart/bundle on fail, also will wait until + all the K8s objects are active + :param timeout: Time in seconds to wait for the install of the chart/bundle (defaults to + Helm default timeout: 300s) + :param params: dictionary of key-value pairs for instantiation parameters (overriding default values) + :param dict db_dict: where to write into database when the status changes. + It contains a dict with {collection: , filter: {}, path: }, + e.g. {collection: "nsrs", filter: {_id: , path: "_admin.deployed.K8S.3"} + :return: True if successful + """ + + @abc.abstractmethod + async def upgrade( + self, + cluster_uuid: str, + kdu_instance: str, + kdu_model: str = None, + atomic: bool = True, + timeout: float = 300, + params: dict = None, + db_dict: dict = None + ): + """ + Upgrades an existing KDU instance. It would implicitly use the `upgrade` call over an existing Chart/Bundle. + It can be used both to upgrade the chart or to reconfigure it. This would be exposed as Day-2 primitive. + + :param cluster_uuid: UUID of a K8s cluster known by OSM + :param kdu_instance: unique name for the KDU instance to be updated + :param kdu_model: new chart/bundle:version reference + :param atomic: rollback in case of fail and wait for pods and services are available + :param timeout: Time in seconds to wait for the install of the chart/bundle (defaults to + Helm default timeout: 300s) + :param params: new dictionary of key-value pairs for instantiation parameters + :param dict db_dict: where to write into database when the status changes. + It contains a dict with {collection: , filter: {}, path: }, + e.g. {collection: "nsrs", filter: {_id: , path: "_admin.deployed.K8S.3"} + :return: reference to the new revision number of the KDU instance + """ + + @abc.abstractmethod + async def rollback( + self, + cluster_uuid: str, + kdu_instance: str, + revision=0, + db_dict: dict = None + ): + """ + Rolls back a previous update of a KDU instance. It would implicitly use the `rollback` call. + It can be used both to rollback from a Chart/Bundle version update or from a reconfiguration. + This would be exposed as Day-2 primitive. + + :param cluster_uuid: UUID of a K8s cluster known by OSM + :param kdu_instance: unique name for the KDU instance + :param revision: revision to which revert changes. If omitted, it will revert the last update only + :param dict db_dict: where to write into database when the status changes. + It contains a dict with {collection: , filter: {}, path: }, + e.g. {collection: "nsrs", filter: {_id: , path: "_admin.deployed.K8S.3"} + :return:If successful, reference to the current active revision of the KDU instance after the rollback + """ + + @abc.abstractmethod + async def uninstall( + self, + cluster_uuid: str, + kdu_instance: str + ): + """ + Removes an existing KDU instance. It would implicitly use the `delete` call (this call would happen + after all _terminate-config-primitive_ of the VNF are invoked). + + :param cluster_uuid: UUID of a K8s cluster known by OSM + :param kdu_instance: unique name for the KDU instance to be deleted + :return: True if successful + """ + + @abc.abstractmethod + async def inspect_kdu( + self, + kdu_model: str + ) -> str: + """ + These calls will retrieve from the Charm/Bundle: + + - The list of configurable values and their defaults (e.g. in Charts, it would retrieve + the contents of `values.yaml`). + - If available, any embedded help file (e.g. `readme.md`) embedded in the Chart/Bundle. + + :param cluster_uuid: the cluster to get the information + :param kdu_model: chart/bundle reference + :return: If successful, it will return a dictionary containing the list of available parameters + and their default values + """ + + @abc.abstractmethod + async def help_kdu( + self, + kdu_model: str + ) -> str: + """ + + :param cluster_uuid: the cluster to get the information + :param kdu_model: chart/bundle reference + :return: If successful, it will return the contents of the 'readme.md' + """ + + @abc.abstractmethod + async def status_kdu( + self, + cluster_uuid: str, + kdu_instance: str + ) -> str: + """ + This call would retrieve tha current state of a given KDU instance. It would be would allow to retrieve + the _composition_ (i.e. K8s objects) and _specific values_ of the configuration parameters applied + to a given instance. This call would be based on the `status` call. + + :param cluster_uuid: UUID of a K8s cluster known by OSM + :param kdu_instance: unique name for the KDU instance + :return: If successful, it will return the following vector of arguments: + - K8s `namespace` in the cluster where the KDU lives + - `state` of the KDU instance. It can be: + - UNKNOWN + - DEPLOYED + - DELETED + - SUPERSEDED + - FAILED or + - DELETING + - List of `resources` (objects) that this release consists of, sorted by kind, and the status of those resources + - Last `deployment_time`. + + """ + + """ + ################################################################################################## + ########################################## P R I V A T E ######################################### + ################################################################################################## + """ + + async def write_app_status_to_db( + self, + db_dict: dict, + status: str, + detailed_status: str, + operation: str + ) -> bool: + + if not self.db: + self.warning('No db => No database write') + return False + + if not db_dict: + self.warning('No db_dict => No database write') + return False + + self.debug('status={}'.format(status)) + + try: + + the_table = db_dict['collection'] + the_filter = db_dict['filter'] + the_path = db_dict['path'] + if not the_path[-1] == '.': + the_path = the_path + '.' + update_dict = { + the_path + 'operation': operation, + the_path + 'status': status, + the_path + 'detailed-status': detailed_status, + the_path + 'status-time': str(time.time()), + } + + self.db.set_one( + table=the_table, + q_filter=the_filter, + update_dict=update_dict, + fail_on_empty=True + ) + + # database callback + if self.on_update_db: + if asyncio.iscoroutinefunction(self.on_update_db): + await self.on_update_db(the_table, the_filter, the_path, update_dict) + else: + self.on_update_db(the_table, the_filter, the_path, update_dict) + + return True + + except Exception as e: + self.info('Exception writing status to database: {}'.format(e)) + return False diff --git a/n2vc/loggable.py b/n2vc/loggable.py new file mode 100644 index 0000000..40efa24 --- /dev/null +++ b/n2vc/loggable.py @@ -0,0 +1,167 @@ +## +# Copyright 2019 Telefonica Investigacion y Desarrollo, S.A.U. +# This file is part of OSM +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# For those usages not covered by the Apache License, Version 2.0 please +# contact with: nfvlabs@tid.es +## + + +import logging +import asyncio +import time +import inspect +import datetime +import threading # only for logging purposes (not for using threads) + + +class Loggable: + + def __init__( + self, + log, + log_to_console: bool = False, + prefix: str = '' + ): + + self._last_log_time = None # used for time increment in logging + self._log_to_console = log_to_console + self._prefix = prefix + if log is not None: + self.log = log + else: + self.log = logging.getLogger(__name__) + + def debug(self, msg: str): + self._log_msg(log_level='DEBUG', msg=msg) + + def info(self, msg: str): + self._log_msg(log_level='INFO', msg=msg) + + def warning(self, msg: str): + self._log_msg(log_level='WARNING', msg=msg) + + def error(self, msg: str): + self._log_msg(log_level='ERROR', msg=msg) + + def critical(self, msg: str): + self._log_msg(log_level='CRITICAL', msg=msg) + + ################################################################################################## + + def _log_msg(self, log_level: str, msg: str): + """Generic log method""" + msg = self._format_log( + log_level=log_level, + msg=msg, + obj=self, + level=3, + include_path=False, + include_thread=False, + include_coroutine=True + ) + if self._log_to_console: + print(msg) + else: + if self.log is not None: + if log_level == 'DEBUG': + self.log.debug(msg) + elif log_level == 'INFO': + self.log.info(msg) + elif log_level == 'WARNING': + self.log.warning(msg) + elif log_level == 'ERROR': + self.log.error(msg) + elif log_level == 'CRITICAL': + self.log.critical(msg) + + def _format_log( + self, + log_level: str, + msg: str = '', + obj: object = None, + level: int = None, + include_path: bool = False, + include_thread: bool = False, + include_coroutine: bool = True + ) -> str: + + # time increment from last log + now = time.perf_counter() + if self._last_log_time is None: + time_str = ' (+0.000)' + else: + diff = round(now - self._last_log_time, 3) + time_str = ' (+{})'.format(diff) + self._last_log_time = now + + if level is None: + level = 1 + + # stack info + fi = inspect.stack()[level] + filename = fi.filename + func = fi.function + lineno = fi.lineno + # filename without path + if not include_path: + i = filename.rfind('/') + if i > 0: + filename = filename[i+1:] + + # datetime + dt = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') + dt = dt + time_str + dt = time_str # logger already shows datetime + + # current thread + if include_thread: + thread_name = 'th:{}'.format(threading.current_thread().getName()) + else: + thread_name = '' + + # current coroutine + + coroutine_id = '' + if include_coroutine: + try: + if asyncio.Task.current_task() is not None: + def print_cor_name(c): + import inspect + try: + for m in inspect.getmembers(c): + if m[0] == '__name__': + return m[1] + except Exception: + pass + coro = asyncio.Task.current_task()._coro + coroutine_id = 'coro-{} {}()'.format(hex(id(coro))[2:], print_cor_name(coro)) + except Exception: + coroutine_id = '' + + # classname + if obj is not None: + obj_type = obj.__class__.__name__ # type: str + log_msg = \ + '{} {} {} {} {}::{}.{}():{}\n{}'\ + .format(self._prefix, dt, thread_name, coroutine_id, filename, obj_type, func, lineno, str(msg)) + else: + log_msg = \ + '{} {} {} {} {}::{}():{}\n{}'\ + .format(self._prefix, dt, thread_name, coroutine_id, filename, func, lineno, str(msg)) + + return log_msg -- 2.17.1 From 26c78a4b25fcbfc92362d730403460d736031736 Mon Sep 17 00:00:00 2001 From: quilesj Date: Mon, 28 Oct 2019 18:10:42 +0100 Subject: [PATCH 04/16] K8s helm connector Change-Id: I5332ec8e053643bc582f7979af98b46a3f9f31ee Signed-off-by: quilesj --- n2vc/k8s_helm_conn.py | 1055 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1055 insertions(+) create mode 100644 n2vc/k8s_helm_conn.py diff --git a/n2vc/k8s_helm_conn.py b/n2vc/k8s_helm_conn.py new file mode 100644 index 0000000..88c94c5 --- /dev/null +++ b/n2vc/k8s_helm_conn.py @@ -0,0 +1,1055 @@ +## +# Copyright 2019 Telefonica Investigacion y Desarrollo, S.A.U. +# This file is part of OSM +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# For those usages not covered by the Apache License, Version 2.0 please +# contact with: nfvlabs@tid.es +## + +import paramiko +import subprocess +import os +import shutil +import asyncio +import uuid +import time +import yaml +from uuid import uuid4 +import random +from n2vc.k8s_conn import K8sConnector + + +class K8sHelmConnector(K8sConnector): + + """ + ################################################################################################## + ########################################## P U B L I C ########################################### + ################################################################################################## + """ + + def __init__( + self, + fs: object, + db: object, + kubectl_command: str = '/usr/bin/kubectl', + helm_command: str = '/usr/bin/helm', + log: object = None, + on_update_db=None + ): + """ + + :param fs: file system for kubernetes and helm configuration + :param db: database object to write current operation status + :param kubectl_command: path to kubectl executable + :param helm_command: path to helm executable + :param log: logger + :param on_update_db: callback called when k8s connector updates database + """ + + # parent class + K8sConnector.__init__( + self, + db=db, + log=log, + on_update_db=on_update_db + ) + + self.info('Initializing K8S Helm connector') + + # random numbers for release name generation + random.seed(time.time()) + + # the file system + self.fs = fs + + # exception if kubectl is not installed + self.kubectl_command = kubectl_command + self._check_file_exists(filename=kubectl_command, exception_if_not_exists=True) + + # exception if helm is not installed + self._helm_command = helm_command + self._check_file_exists(filename=helm_command, exception_if_not_exists=True) + + self.info('K8S Helm connector initialized') + + async def init_env( + self, + k8s_creds: str, + namespace: str = 'kube-system', + reuse_cluster_uuid=None + ) -> (str, bool): + + cluster_uuid = reuse_cluster_uuid + if not cluster_uuid: + cluster_uuid = str(uuid4()) + + self.debug('Initializing K8S environment. namespace: {}'.format(namespace)) + + # create config filename + kube_dir, helm_dir, config_filename = self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) + f = open(config_filename, "w") + f.write(k8s_creds) + f.close() + + # check if tiller pod is up in cluster + command = '{} --kubeconfig={} --namespace={} get deployments'\ + .format(self.kubectl_command, config_filename, namespace) + output, rc = await self._local_async_exec(command=command, raise_exception_on_error=True) + + output_table = K8sHelmConnector._output_to_table(output=output) + + # find 'tiller' pod in all pods + already_initialized = False + try: + for row in output_table: + if row[0].startswith('tiller-deploy'): + already_initialized = True + break + except Exception as e: + pass + + # helm init + n2vc_installed_sw = False + if not already_initialized: + self.info('Initializing helm in client and server: {}'.format(cluster_uuid)) + command = '{} --kubeconfig={} --tiller-namespace={} --home={} init'\ + .format(self._helm_command, config_filename, namespace, helm_dir) + output, rc = await self._local_async_exec(command=command, raise_exception_on_error=True) + n2vc_installed_sw = True + else: + # check client helm installation + check_file = helm_dir + '/repository/repositories.yaml' + if not self._check_file_exists(filename=check_file, exception_if_not_exists=False): + self.info('Initializing helm in client: {}'.format(cluster_uuid)) + command = '{} --kubeconfig={} --tiller-namespace={} --home={} init --client-only'\ + .format(self._helm_command, config_filename, namespace, helm_dir) + output, rc = await self._local_async_exec(command=command, raise_exception_on_error=True) + else: + self.info('Helm client already initialized') + + self.info('Cluster initialized {}'.format(cluster_uuid)) + + return cluster_uuid, n2vc_installed_sw + + async def repo_add( + self, + cluster_uuid: str, + name: str, + url: str, + repo_type: str = 'chart' + ): + + self.debug('adding {} repository {}. URL: {}'.format(repo_type, name, url)) + + # config filename + kube_dir, helm_dir, config_filename = self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) + + # helm repo update + command = '{} --kubeconfig={} --home={} repo update'.format(self._helm_command, config_filename, helm_dir) + self.debug('updating repo: {}'.format(command)) + await self._local_async_exec(command=command, raise_exception_on_error=False) + + # helm repo add name url + command = '{} --kubeconfig={} --home={} repo add {} {}'\ + .format(self._helm_command, config_filename, helm_dir, name, url) + self.debug('adding repo: {}'.format(command)) + await self._local_async_exec(command=command, raise_exception_on_error=True) + + async def repo_list( + self, + cluster_uuid: str + ) -> list: + """ + Get the list of registered repositories + + :return: list of registered repositories: [ (name, url) .... ] + """ + + self.debug('list repositories for cluster {}'.format(cluster_uuid)) + + # config filename + kube_dir, helm_dir, config_filename = self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) + + command = '{} --kubeconfig={} --home={} repo list --output yaml'.format(self._helm_command, config_filename, helm_dir) + + output, rc = await self._local_async_exec(command=command, raise_exception_on_error=True) + if output and len(output) > 0: + return yaml.load(output, Loader=yaml.SafeLoader) + else: + return [] + + async def repo_remove( + self, + cluster_uuid: str, + name: str + ): + """ + Remove a repository from OSM + + :param cluster_uuid: the cluster + :param name: repo name in OSM + :return: True if successful + """ + + self.debug('list repositories for cluster {}'.format(cluster_uuid)) + + # config filename + kube_dir, helm_dir, config_filename = self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) + + command = '{} --kubeconfig={} --home={} repo remove {}'\ + .format(self._helm_command, config_filename, helm_dir, name) + + await self._local_async_exec(command=command, raise_exception_on_error=True) + + async def reset( + self, + cluster_uuid: str, + force: bool = False, + uninstall_sw: bool = False + ) -> bool: + + self.debug('Resetting K8s environment. cluster uuid: {}'.format(cluster_uuid)) + + # get kube and helm directories + kube_dir, helm_dir, config_filename = self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=False) + + # uninstall releases if needed + releases = await self.instances_list(cluster_uuid=cluster_uuid) + if len(releases) > 0: + if force: + for r in releases: + try: + kdu_instance = r.get('Name') + chart = r.get('Chart') + self.debug('Uninstalling {} -> {}'.format(chart, kdu_instance)) + await self.uninstall(cluster_uuid=cluster_uuid, kdu_instance=kdu_instance) + except Exception as e: + self.error('Error uninstalling release {}: {}'.format(kdu_instance, e)) + else: + msg = 'Cluster has releases and not force. Cannot reset K8s environment. Cluster uuid: {}'\ + .format(cluster_uuid) + self.error(msg) + raise Exception(msg) + + if uninstall_sw: + + self.debug('Uninstalling tiller from cluster {}'.format(cluster_uuid)) + + # find namespace for tiller pod + command = '{} --kubeconfig={} get deployments --all-namespaces'\ + .format(self.kubectl_command, config_filename) + output, rc = await self._local_async_exec(command=command, raise_exception_on_error=False) + output_table = K8sHelmConnector._output_to_table(output=output) + namespace = None + for r in output_table: + try: + if 'tiller-deploy' in r[1]: + namespace = r[0] + break + except Exception as e: + pass + else: + msg = 'Tiller deployment not found in cluster {}'.format(cluster_uuid) + self.error(msg) + # raise Exception(msg) + + self.debug('namespace for tiller: {}'.format(namespace)) + + force_str = '--force' + + if namespace: + # delete tiller deployment + self.debug('Deleting tiller deployment for cluster {}, namespace {}'.format(cluster_uuid, namespace)) + command = '{} --namespace {} --kubeconfig={} {} delete deployment tiller-deploy'\ + .format(self.kubectl_command, namespace, config_filename, force_str) + await self._local_async_exec(command=command, raise_exception_on_error=False) + + # uninstall tiller from cluster + self.debug('Uninstalling tiller from cluster {}'.format(cluster_uuid)) + command = '{} --kubeconfig={} --home={} reset'\ + .format(self._helm_command, config_filename, helm_dir) + self.debug('resetting: {}'.format(command)) + output, rc = await self._local_async_exec(command=command, raise_exception_on_error=True) + else: + self.debug('namespace not found') + + # delete cluster directory + dir = self.fs.path + '/' + cluster_uuid + self.debug('Removing directory {}'.format(dir)) + shutil.rmtree(dir, ignore_errors=True) + + return True + + async def install( + self, + cluster_uuid: str, + kdu_model: str, + atomic: bool = True, + timeout: float = 300, + params: dict = None, + db_dict: dict = None + ): + + self.debug('installing {} in cluster {}'.format(kdu_model, cluster_uuid)) + + start = time.time() + end = start + timeout + + # config filename + kube_dir, helm_dir, config_filename = self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) + + # params to str + params_str = K8sHelmConnector._params_to_set_option(params) + + timeout_str = '' + if timeout: + timeout_str = '--timeout {}'.format(timeout) + + # atomic + atomic_str = '' + if atomic: + atomic_str = '--atomic' + + # version + version_str = '' + if ':' in kdu_model: + parts = kdu_model.split(sep=':') + if len(parts) == 2: + version_str = '--version {}'.format(parts[1]) + kdu_model = parts[0] + + # generate a name for the releas. Then, check if already exists + kdu_instance = None + while kdu_instance is None: + kdu_instance = K8sHelmConnector._generate_release_name(kdu_model) + try: + result = await self._status_kdu( + cluster_uuid=cluster_uuid, + kdu_instance=kdu_instance, + show_error_log=False + ) + if result is not None: + # instance already exists: generate a new one + kdu_instance = None + except: + kdu_instance = None + + # helm repo install + command = '{} install {} --output yaml --kubeconfig={} --home={} {} {} --name={} {} {}'\ + .format(self._helm_command, atomic_str, config_filename, helm_dir, + params_str, timeout_str, kdu_instance, kdu_model, version_str) + self.debug('installing: {}'.format(command)) + + if atomic: + # exec helm in a task + exec_task = asyncio.ensure_future( + coro_or_future=self._local_async_exec(command=command, raise_exception_on_error=False) + ) + # write status in another task + status_task = asyncio.ensure_future( + coro_or_future=self._store_status( + cluster_uuid=cluster_uuid, + kdu_instance=kdu_instance, + db_dict=db_dict, + operation='install', + run_once=False + ) + ) + + # wait for execution task + await asyncio.wait([exec_task]) + + # cancel status task + status_task.cancel() + + output, rc = exec_task.result() + + else: + + output, rc = await self._local_async_exec(command=command, raise_exception_on_error=False) + + # write final status + await self._store_status( + cluster_uuid=cluster_uuid, + kdu_instance=kdu_instance, + db_dict=db_dict, + operation='install', + run_once=True, + check_every=0 + ) + + if rc != 0: + msg = 'Error executing command: {}\nOutput: {}'.format(command, output) + self.error(msg) + raise Exception(msg) + + self.debug('Returning kdu_instance {}'.format(kdu_instance)) + return kdu_instance + + async def instances_list( + self, + cluster_uuid: str + ) -> list: + """ + returns a list of deployed releases in a cluster + + :param cluster_uuid: the cluster + :return: + """ + + self.debug('list releases for cluster {}'.format(cluster_uuid)) + + # config filename + kube_dir, helm_dir, config_filename = self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) + + command = '{} --kubeconfig={} --home={} list --output yaml'\ + .format(self._helm_command, config_filename, helm_dir) + + output, rc = await self._local_async_exec(command=command, raise_exception_on_error=True) + + if output and len(output) > 0: + return yaml.load(output, Loader=yaml.SafeLoader).get('Releases') + else: + return [] + + async def upgrade( + self, + cluster_uuid: str, + kdu_instance: str, + kdu_model: str = None, + atomic: bool = True, + timeout: float = 300, + params: dict = None, + db_dict: dict = None + ): + + self.debug('upgrading {} in cluster {}'.format(kdu_model, cluster_uuid)) + + start = time.time() + end = start + timeout + + # config filename + kube_dir, helm_dir, config_filename = self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) + + # params to str + params_str = K8sHelmConnector._params_to_set_option(params) + + timeout_str = '' + if timeout: + timeout_str = '--timeout {}'.format(timeout) + + # atomic + atomic_str = '' + if atomic: + atomic_str = '--atomic' + + # version + version_str = '' + if ':' in kdu_model: + parts = kdu_model.split(sep=':') + if len(parts) == 2: + version_str = '--version {}'.format(parts[1]) + kdu_model = parts[0] + + # helm repo upgrade + command = '{} upgrade {} --output yaml --kubeconfig={} --home={} {} {} {} {} {}'\ + .format(self._helm_command, atomic_str, config_filename, helm_dir, + params_str, timeout_str, kdu_instance, kdu_model, version_str) + self.debug('upgrading: {}'.format(command)) + + if atomic: + + # exec helm in a task + exec_task = asyncio.ensure_future( + coro_or_future=self._local_async_exec(command=command, raise_exception_on_error=False) + ) + # write status in another task + status_task = asyncio.ensure_future( + coro_or_future=self._store_status( + cluster_uuid=cluster_uuid, + kdu_instance=kdu_instance, + db_dict=db_dict, + operation='upgrade', + run_once=False + ) + ) + + # wait for execution task + await asyncio.wait([ exec_task ]) + + # cancel status task + status_task.cancel() + output, rc = exec_task.result() + + else: + + output, rc = await self._local_async_exec(command=command, raise_exception_on_error=False) + + # write final status + await self._store_status( + cluster_uuid=cluster_uuid, + kdu_instance=kdu_instance, + db_dict=db_dict, + operation='upgrade', + run_once=True, + check_every=0 + ) + + if rc != 0: + msg = 'Error executing command: {}\nOutput: {}'.format(command, output) + self.error(msg) + raise Exception(msg) + + # return new revision number + instance = await self.get_instance_info(cluster_uuid=cluster_uuid, kdu_instance=kdu_instance) + if instance: + revision = int(instance.get('Revision')) + self.debug('New revision: {}'.format(revision)) + return revision + else: + return 0 + + async def rollback( + self, + cluster_uuid: str, + kdu_instance: str, + revision=0, + db_dict: dict = None + ): + + self.debug('rollback kdu_instance {} to revision {} from cluster {}' + .format(kdu_instance, revision, cluster_uuid)) + + # config filename + kube_dir, helm_dir, config_filename = self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) + + command = '{} rollback --kubeconfig={} --home={} {} {} --wait'\ + .format(self._helm_command, config_filename, helm_dir, kdu_instance, revision) + + # exec helm in a task + exec_task = asyncio.ensure_future( + coro_or_future=self._local_async_exec(command=command, raise_exception_on_error=False) + ) + # write status in another task + status_task = asyncio.ensure_future( + coro_or_future=self._store_status( + cluster_uuid=cluster_uuid, + kdu_instance=kdu_instance, + db_dict=db_dict, + operation='rollback', + run_once=False + ) + ) + + # wait for execution task + await asyncio.wait([exec_task]) + + # cancel status task + status_task.cancel() + + output, rc = exec_task.result() + + # write final status + await self._store_status( + cluster_uuid=cluster_uuid, + kdu_instance=kdu_instance, + db_dict=db_dict, + operation='rollback', + run_once=True, + check_every=0 + ) + + if rc != 0: + msg = 'Error executing command: {}\nOutput: {}'.format(command, output) + self.error(msg) + raise Exception(msg) + + # return new revision number + instance = await self.get_instance_info(cluster_uuid=cluster_uuid, kdu_instance=kdu_instance) + if instance: + revision = int(instance.get('Revision')) + self.debug('New revision: {}'.format(revision)) + return revision + else: + return 0 + + async def uninstall( + self, + cluster_uuid: str, + kdu_instance: str + ): + """ + Removes an existing KDU instance. It would implicitly use the `delete` call (this call would happen + after all _terminate-config-primitive_ of the VNF are invoked). + + :param cluster_uuid: UUID of a K8s cluster known by OSM + :param kdu_instance: unique name for the KDU instance to be deleted + :return: True if successful + """ + + self.debug('uninstall kdu_instance {} from cluster {}'.format(kdu_instance, cluster_uuid)) + + # config filename + kube_dir, helm_dir, config_filename = self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) + + command = '{} --kubeconfig={} --home={} delete --purge {}'\ + .format(self._helm_command, config_filename, helm_dir, kdu_instance) + + output, rc = await self._local_async_exec(command=command, raise_exception_on_error=True) + + return self._output_to_table(output) + + async def inspect_kdu( + self, + kdu_model: str + ) -> str: + + self.debug('inspect kdu_model {}'.format(kdu_model)) + + command = '{} inspect values {}'\ + .format(self._helm_command, kdu_model) + + output, rc = await self._local_async_exec(command=command) + + return output + + async def help_kdu( + self, + kdu_model: str + ): + + self.debug('help kdu_model {}'.format(kdu_model)) + + command = '{} inspect readme {}'\ + .format(self._helm_command, kdu_model) + + output, rc = await self._local_async_exec(command=command, raise_exception_on_error=True) + + return output + + async def status_kdu( + self, + cluster_uuid: str, + kdu_instance: str + ): + + return await self._status_kdu(cluster_uuid=cluster_uuid, kdu_instance=kdu_instance, show_error_log=True) + + + """ + ################################################################################################## + ########################################## P R I V A T E ######################################### + ################################################################################################## + """ + + async def _status_kdu( + self, + cluster_uuid: str, + kdu_instance: str, + show_error_log: bool = False + ): + + self.debug('status of kdu_instance {}'.format(kdu_instance)) + + # config filename + kube_dir, helm_dir, config_filename = self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) + + command = '{} --kubeconfig={} --home={} status {} --output yaml'\ + .format(self._helm_command, config_filename, helm_dir, kdu_instance) + + output, rc = await self._local_async_exec( + command=command, + raise_exception_on_error=True, + show_error_log=show_error_log + ) + + if rc != 0: + return None + + data = yaml.load(output, Loader=yaml.SafeLoader) + + # remove field 'notes' + try: + del data.get('info').get('status')['notes'] + except KeyError: + pass + + # parse field 'resources' + try: + resources = str(data.get('info').get('status').get('resources')) + resource_table = self._output_to_table(resources) + data.get('info').get('status')['resources'] = resource_table + except Exception as e: + pass + + return data + + + async def get_instance_info( + self, + cluster_uuid: str, + kdu_instance: str + ): + instances = await self.instances_list(cluster_uuid=cluster_uuid) + for instance in instances: + if instance.get('Name') == kdu_instance: + return instance + self.debug('Instance {} not found'.format(kdu_instance)) + return None + + @staticmethod + def _generate_release_name( + chart_name: str + ): + name = '' + for c in chart_name: + if c.isalpha() or c.isnumeric(): + name += c + else: + name += '-' + if len(name) > 35: + name = name[0:35] + + # if does not start with alpha character, prefix 'a' + if not name[0].isalpha(): + name = 'a' + name + + name += '-' + + def get_random_number(): + r = random.randrange(start=1, stop=99999999) + s = str(r) + while len(s) < 10: + s = '0' + s + return s + + name = name + get_random_number() + return name.lower() + + async def _store_status( + self, + cluster_uuid: str, + operation: str, + kdu_instance: str, + check_every: float = 10, + db_dict: dict = None, + run_once: bool = False + ): + while True: + try: + await asyncio.sleep(check_every) + detailed_status = await self.status_kdu(cluster_uuid=cluster_uuid, kdu_instance=kdu_instance) + status = detailed_status.get('info').get('Description') + print('=' * 60) + self.debug('STATUS:\n{}'.format(status)) + self.debug('DETAILED STATUS:\n{}'.format(detailed_status)) + print('=' * 60) + # write status to db + result = await self.write_app_status_to_db( + db_dict=db_dict, + status=str(status), + detailed_status=str(detailed_status), + operation=operation) + if not result: + self.info('Error writing in database. Task exiting...') + return + except asyncio.CancelledError: + self.debug('Task cancelled') + return + except Exception as e: + pass + finally: + if run_once: + return + + async def _is_install_completed( + self, + cluster_uuid: str, + kdu_instance: str + ) -> bool: + + status = await self.status_kdu(cluster_uuid=cluster_uuid, kdu_instance=kdu_instance) + + # extract info.status.resources-> str + # format: + # ==> v1/Deployment + # NAME READY UP-TO-DATE AVAILABLE AGE + # halting-horse-mongodb 0/1 1 0 0s + # halting-petit-mongodb 1/1 1 0 0s + # blank line + resources = K8sHelmConnector._get_deep(status, ('info', 'status', 'resources')) + + # convert to table + resources = K8sHelmConnector._output_to_table(resources) + + num_lines = len(resources) + index = 0 + while index < num_lines: + try: + line1 = resources[index] + index += 1 + # find '==>' in column 0 + if line1[0] == '==>': + line2 = resources[index] + index += 1 + # find READY in column 1 + if line2[1] == 'READY': + # read next lines + line3 = resources[index] + index += 1 + while len(line3) > 1 and index < num_lines: + ready_value = line3[1] + parts = ready_value.split(sep='/') + current = int(parts[0]) + total = int(parts[1]) + if current < total: + self.debug('NOT READY:\n {}'.format(line3)) + ready = False + line3 = resources[index] + index += 1 + + except Exception as e: + pass + + return ready + + @staticmethod + def _get_deep(dictionary: dict, members: tuple): + target = dictionary + value = None + try: + for m in members: + value = target.get(m) + if not value: + return None + else: + target = value + except Exception as e: + pass + return value + + # find key:value in several lines + @staticmethod + def _find_in_lines(p_lines: list, p_key: str) -> str: + for line in p_lines: + try: + if line.startswith(p_key + ':'): + parts = line.split(':') + the_value = parts[1].strip() + return the_value + except Exception as e: + # ignore it + pass + return None + + # params for use in --set option + @staticmethod + def _params_to_set_option(params: dict) -> str: + params_str = '' + if params and len(params) > 0: + start = True + for key in params: + value = params.get(key, None) + if value is not None: + if start: + params_str += '--set ' + start = False + else: + params_str += ',' + params_str += '{}={}'.format(key, value) + return params_str + + @staticmethod + def _output_to_lines(output: str) -> list: + output_lines = list() + lines = output.splitlines(keepends=False) + for line in lines: + line = line.strip() + if len(line) > 0: + output_lines.append(line) + return output_lines + + @staticmethod + def _output_to_table(output: str) -> list: + output_table = list() + lines = output.splitlines(keepends=False) + for line in lines: + line = line.replace('\t', ' ') + line_list = list() + output_table.append(line_list) + cells = line.split(sep=' ') + for cell in cells: + cell = cell.strip() + if len(cell) > 0: + line_list.append(cell) + return output_table + + def _get_paths(self, cluster_name: str, create_if_not_exist: bool = False) -> (str, str, str): + """ + Returns kube and helm directories + + :param cluster_name: + :param create_if_not_exist: + :return: kube, helm directories and config filename. Raises exception if not exist and cannot create + """ + + base = self.fs.path + if base.endswith("/") or base.endswith("\\"): + base = base[:-1] + + # base dir for cluster + cluster_dir = base + '/' + cluster_name + if create_if_not_exist and not os.path.exists(cluster_dir): + self.debug('Creating dir {}'.format(cluster_dir)) + os.makedirs(cluster_dir) + if not os.path.exists(cluster_dir): + msg = 'Base cluster dir {} does not exist'.format(cluster_dir) + self.error(msg) + raise Exception(msg) + + # kube dir + kube_dir = cluster_dir + '/' + '.kube' + if create_if_not_exist and not os.path.exists(kube_dir): + self.debug('Creating dir {}'.format(kube_dir)) + os.makedirs(kube_dir) + if not os.path.exists(kube_dir): + msg = 'Kube config dir {} does not exist'.format(kube_dir) + self.error(msg) + raise Exception(msg) + + # helm home dir + helm_dir = cluster_dir + '/' + '.helm' + if create_if_not_exist and not os.path.exists(helm_dir): + self.debug('Creating dir {}'.format(helm_dir)) + os.makedirs(helm_dir) + if not os.path.exists(helm_dir): + msg = 'Helm config dir {} does not exist'.format(helm_dir) + self.error(msg) + raise Exception(msg) + + config_filename = kube_dir + '/config' + return kube_dir, helm_dir, config_filename + + @staticmethod + def _remove_multiple_spaces(str): + str = str.strip() + while ' ' in str: + str = str.replace(' ', ' ') + return str + + def _local_exec( + self, + command: str + ) -> (str, int): + command = K8sHelmConnector._remove_multiple_spaces(command) + self.debug('Executing sync local command: {}'.format(command)) + # raise exception if fails + output = '' + try: + output = subprocess.check_output(command, shell=True, universal_newlines=True) + return_code = 0 + self.debug(output) + except Exception as e: + return_code = 1 + + return output, return_code + + async def _local_async_exec( + self, + command: str, + raise_exception_on_error: bool = False, + show_error_log: bool = False + ) -> (str, int): + + command = K8sHelmConnector._remove_multiple_spaces(command) + self.debug('Executing async local command: {}'.format(command)) + + # split command + command = command.split(sep=' ') + + try: + process = await asyncio.create_subprocess_exec( + *command, + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE + ) + + # wait for command terminate + stdout, stderr = await process.communicate() + + return_code = process.returncode + + output = '' + if stdout: + output = stdout.decode('utf-8').strip() + if stderr: + output = stderr.decode('utf-8').strip() + + if return_code != 0 and show_error_log: + self.debug('Return code (FAIL): {}\nOutput:\n{}'.format(return_code, output)) + else: + self.debug('Return code: {}'.format(return_code)) + + if raise_exception_on_error and return_code != 0: + raise Exception(output) + + return output, return_code + + except Exception as e: + msg = 'Exception executing command: {} -> {}'.format(command, e) + if show_error_log: + self.error(msg) + return '', -1 + + def _remote_exec( + self, + hostname: str, + username: str, + password: str, + command: str, + timeout: int = 10 + ) -> (str, int): + + command = K8sHelmConnector._remove_multiple_spaces(command) + self.debug('Executing sync remote ssh command: {}'.format(command)) + + ssh = paramiko.SSHClient() + ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) + ssh.connect(hostname=hostname, username=username, password=password) + ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(command=command, timeout=timeout) + output = ssh_stdout.read().decode('utf-8') + error = ssh_stderr.read().decode('utf-8') + if error: + self.error('ERROR: {}'.format(error)) + return_code = 1 + else: + return_code = 0 + output = output.replace('\\n', '\n') + self.debug('OUTPUT: {}'.format(output)) + + return output, return_code + + def _check_file_exists(self, filename: str, exception_if_not_exists: bool = False): + self.debug('Checking if file {} exists...'.format(filename)) + if os.path.exists(filename): + return True + else: + msg = 'File {} does not exist'.format(filename) + if exception_if_not_exists: + self.error(msg) + raise Exception(msg) + -- 2.17.1 From 28d7516c6d339990617d1e8e26007a443b5c7c5c Mon Sep 17 00:00:00 2001 From: garciadeblas Date: Wed, 12 Jun 2019 16:55:14 +0200 Subject: [PATCH 05/16] Added description to package Change-Id: I9d1652652cec61390a5988ee265d01f520c1c099 Signed-off-by: garciadeblas --- setup.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 1eb3f69..6c8d361 100644 --- a/setup.py +++ b/setup.py @@ -14,6 +14,8 @@ from setuptools import setup, find_packages +_description = 'OSM library implementing common interface towards VCA module' + setup( name='N2VC', version_command=('git describe --match v* --tags --long --dirty', @@ -28,7 +30,7 @@ setup( include_package_data=True, maintainer='Adam Israel', maintainer_email='adam.israel@canonical.com', - description=(''), + description=_description, url='', license='Apache 2', entry_points={ -- 2.17.1 From 9d18c22a0dc9e295adda50601fc5e2f45d2c9b8a Mon Sep 17 00:00:00 2001 From: Adam Israel Date: Thu, 7 Nov 2019 10:38:12 -0500 Subject: [PATCH 06/16] Remove vendored libjuju This removes the vendored libjuju, in favour of using the upstream version. Change-Id: I4da23f04fad665502951a70653b894c82349bad3 Signed-off-by: Adam Israel --- Jenkinsfile | 15 + juju | 1 - modules/libjuju/.gitignore | 15 - modules/libjuju/.travis.yml | 48 - modules/libjuju/CONTRIBUTORS | 4 - modules/libjuju/LICENSE | 201 - modules/libjuju/MANIFEST.in | 5 - modules/libjuju/Makefile | 46 - modules/libjuju/TODO | 5 - modules/libjuju/VERSION | 1 - modules/libjuju/docs/Makefile | 230 - .../docs/_extensions/automembersummary.py | 112 - modules/libjuju/docs/_static/custom.css | 5 - modules/libjuju/docs/api/juju.action.rst | 13 - modules/libjuju/docs/api/juju.annotation.rst | 13 - modules/libjuju/docs/api/juju.application.rst | 13 - modules/libjuju/docs/api/juju.client.rst | 120 - modules/libjuju/docs/api/juju.cloud.rst | 13 - modules/libjuju/docs/api/juju.constraints.rst | 13 - modules/libjuju/docs/api/juju.controller.rst | 13 - modules/libjuju/docs/api/juju.delta.rst | 13 - modules/libjuju/docs/api/juju.errors.rst | 13 - modules/libjuju/docs/api/juju.exceptions.rst | 13 - modules/libjuju/docs/api/juju.juju.rst | 13 - modules/libjuju/docs/api/juju.loop.rst | 13 - modules/libjuju/docs/api/juju.machine.rst | 13 - modules/libjuju/docs/api/juju.model.rst | 13 - modules/libjuju/docs/api/juju.placement.rst | 13 - modules/libjuju/docs/api/juju.relation.rst | 13 - modules/libjuju/docs/api/juju.tag.rst | 13 - modules/libjuju/docs/api/juju.unit.rst | 13 - modules/libjuju/docs/api/juju.utils.rst | 13 - modules/libjuju/docs/api/modules.rst | 31 - modules/libjuju/docs/changelog.rst | 290 - modules/libjuju/docs/conf.py | 303 - modules/libjuju/docs/index.rst | 45 - .../libjuju/docs/narrative/application.rst | 136 - modules/libjuju/docs/narrative/controller.rst | 92 - modules/libjuju/docs/narrative/index.rst | 10 - modules/libjuju/docs/narrative/model.rst | 290 - modules/libjuju/docs/narrative/unit.rst | 65 - modules/libjuju/docs/readme.rst | 103 - modules/libjuju/docs/requirements.txt | 5 - .../libjuju/docs/upstream-updates/index.rst | 114 - modules/libjuju/examples/action.py | 49 - modules/libjuju/examples/add_machine.py | 70 - modules/libjuju/examples/add_model.py | 67 - modules/libjuju/examples/allwatcher.py | 31 - modules/libjuju/examples/config.py | 54 - .../libjuju/examples/connect_current_model.py | 27 - modules/libjuju/examples/controller.py | 41 - modules/libjuju/examples/credential.py | 47 - modules/libjuju/examples/deploy.py | 41 - modules/libjuju/examples/fullstatus.py | 23 - modules/libjuju/examples/future.py | 47 - modules/libjuju/examples/leadership.py | 28 - modules/libjuju/examples/livemodel.py | 31 - modules/libjuju/examples/localcharm.py | 34 - modules/libjuju/examples/relate.py | 102 - modules/libjuju/examples/unitrun.py | 46 - modules/libjuju/juju/__init__.py | 0 modules/libjuju/juju/action.py | 10 - modules/libjuju/juju/annotation.py | 9 - modules/libjuju/juju/application.py | 533 - modules/libjuju/juju/client/__init__.py | 0 modules/libjuju/juju/client/_client.py | 454 - modules/libjuju/juju/client/_client1.py | 11068 ----- modules/libjuju/juju/client/_client2.py | 7535 ---- modules/libjuju/juju/client/_client3.py | 6749 --- modules/libjuju/juju/client/_client4.py | 4626 -- modules/libjuju/juju/client/_client5.py | 5322 --- modules/libjuju/juju/client/_client7.py | 1770 - modules/libjuju/juju/client/_client8.py | 1278 - modules/libjuju/juju/client/_client9.py | 2385 - modules/libjuju/juju/client/_definitions.py | 11058 ----- modules/libjuju/juju/client/client.py | 33 - modules/libjuju/juju/client/codegen.py | 52 - modules/libjuju/juju/client/connection.py | 601 - modules/libjuju/juju/client/connector.py | 156 - modules/libjuju/juju/client/facade.py | 818 - modules/libjuju/juju/client/gocookies.py | 102 - modules/libjuju/juju/client/jujudata.py | 219 - modules/libjuju/juju/client/overrides.py | 365 - modules/libjuju/juju/client/runner.py | 21 - .../juju/client/schemas-juju-2.0.0.json | 24533 ---------- .../juju/client/schemas-juju-2.0.1.json | 24799 ----------- .../juju/client/schemas-juju-2.0.2.json | 24799 ----------- .../juju/client/schemas-juju-2.0.3.json | 24799 ----------- .../juju/client/schemas-juju-2.1.0.json | 25652 ----------- .../juju/client/schemas-juju-2.1.1.json | 25730 ----------- .../juju/client/schemas-juju-2.1.2.json | 25730 ----------- .../juju/client/schemas-juju-2.2-alpha1.json | 25974 ----------- .../juju/client/schemas-juju-2.2-beta1.json | 26135 ----------- .../juju/client/schemas-juju-2.2-beta2.json | 26150 ----------- .../juju/client/schemas-juju-2.2-rc1.json | 26295 ----------- .../juju/client/schemas-juju-2.3-alpha1.json | 26050 ----------- .../juju/client/schemas-juju-2.5-rc1.json | 37036 ---------------- modules/libjuju/juju/cloud.py | 81 - modules/libjuju/juju/constraints.py | 87 - modules/libjuju/juju/controller.py | 653 - modules/libjuju/juju/credential.py | 0 modules/libjuju/juju/delta.py | 79 - modules/libjuju/juju/errors.py | 49 - modules/libjuju/juju/exceptions.py | 2 - modules/libjuju/juju/juju.py | 118 - modules/libjuju/juju/loop.py | 42 - modules/libjuju/juju/machine.py | 284 - modules/libjuju/juju/model.py | 2328 - modules/libjuju/juju/placement.py | 58 - modules/libjuju/juju/provisioner.py | 369 - modules/libjuju/juju/relation.py | 123 - modules/libjuju/juju/tag.py | 40 - modules/libjuju/juju/unit.py | 281 - modules/libjuju/juju/user.py | 86 - modules/libjuju/juju/utils.py | 165 - modules/libjuju/scripts/gendoc | 39 - modules/libjuju/setup.py | 61 - modules/libjuju/tests/__init__.py | 0 modules/libjuju/tests/base.py | 148 - modules/libjuju/tests/bundle/bundle.yaml | 28 - modules/libjuju/tests/bundle/invalid.yaml | 7 - modules/libjuju/tests/bundle/mini-bundle.yaml | 9 - modules/libjuju/tests/charm/metadata.yaml | 5 - modules/libjuju/tests/integration/__init__.py | 0 .../bundle/bundle-resource-rev.yaml | 7 - .../tests/integration/bundle/bundle.yaml | 12 - modules/libjuju/tests/integration/cert.pem | 33 - .../tests/integration/charm/metadata.yaml | 5 - modules/libjuju/tests/integration/key.pem | 52 - .../tests/integration/test_application.py | 134 - .../libjuju/tests/integration/test_client.py | 21 - .../tests/integration/test_connection.py | 236 - .../tests/integration/test_controller.py | 228 - .../libjuju/tests/integration/test_errors.py | 68 - .../tests/integration/test_macaroon_auth.py | 108 - .../libjuju/tests/integration/test_machine.py | 65 - .../libjuju/tests/integration/test_model.py | 485 - .../libjuju/tests/integration/test_unit.py | 99 - modules/libjuju/tests/unit/__init__.py | 0 modules/libjuju/tests/unit/test_client.py | 26 - modules/libjuju/tests/unit/test_connection.py | 65 - .../libjuju/tests/unit/test_constraints.py | 57 - modules/libjuju/tests/unit/test_controller.py | 140 - modules/libjuju/tests/unit/test_gocookies.py | 244 - modules/libjuju/tests/unit/test_loop.py | 32 - modules/libjuju/tests/unit/test_model.py | 264 - modules/libjuju/tests/unit/test_overrides.py | 76 - modules/libjuju/tests/unit/test_placement.py | 20 - .../tests/unit/test_registration_string.py | 18 - modules/libjuju/tox.ini | 66 - 150 files changed, 15 insertions(+), 409798 deletions(-) delete mode 120000 juju delete mode 100644 modules/libjuju/.gitignore delete mode 100644 modules/libjuju/.travis.yml delete mode 100644 modules/libjuju/CONTRIBUTORS delete mode 100644 modules/libjuju/LICENSE delete mode 100644 modules/libjuju/MANIFEST.in delete mode 100644 modules/libjuju/Makefile delete mode 100644 modules/libjuju/TODO delete mode 100644 modules/libjuju/VERSION delete mode 100644 modules/libjuju/docs/Makefile delete mode 100644 modules/libjuju/docs/_extensions/automembersummary.py delete mode 100644 modules/libjuju/docs/_static/custom.css delete mode 100644 modules/libjuju/docs/api/juju.action.rst delete mode 100644 modules/libjuju/docs/api/juju.annotation.rst delete mode 100644 modules/libjuju/docs/api/juju.application.rst delete mode 100644 modules/libjuju/docs/api/juju.client.rst delete mode 100644 modules/libjuju/docs/api/juju.cloud.rst delete mode 100644 modules/libjuju/docs/api/juju.constraints.rst delete mode 100644 modules/libjuju/docs/api/juju.controller.rst delete mode 100644 modules/libjuju/docs/api/juju.delta.rst delete mode 100644 modules/libjuju/docs/api/juju.errors.rst delete mode 100644 modules/libjuju/docs/api/juju.exceptions.rst delete mode 100644 modules/libjuju/docs/api/juju.juju.rst delete mode 100644 modules/libjuju/docs/api/juju.loop.rst delete mode 100644 modules/libjuju/docs/api/juju.machine.rst delete mode 100644 modules/libjuju/docs/api/juju.model.rst delete mode 100644 modules/libjuju/docs/api/juju.placement.rst delete mode 100644 modules/libjuju/docs/api/juju.relation.rst delete mode 100644 modules/libjuju/docs/api/juju.tag.rst delete mode 100644 modules/libjuju/docs/api/juju.unit.rst delete mode 100644 modules/libjuju/docs/api/juju.utils.rst delete mode 100644 modules/libjuju/docs/api/modules.rst delete mode 100644 modules/libjuju/docs/changelog.rst delete mode 100644 modules/libjuju/docs/conf.py delete mode 100644 modules/libjuju/docs/index.rst delete mode 100644 modules/libjuju/docs/narrative/application.rst delete mode 100644 modules/libjuju/docs/narrative/controller.rst delete mode 100644 modules/libjuju/docs/narrative/index.rst delete mode 100644 modules/libjuju/docs/narrative/model.rst delete mode 100644 modules/libjuju/docs/narrative/unit.rst delete mode 100644 modules/libjuju/docs/readme.rst delete mode 100644 modules/libjuju/docs/requirements.txt delete mode 100644 modules/libjuju/docs/upstream-updates/index.rst delete mode 100644 modules/libjuju/examples/action.py delete mode 100755 modules/libjuju/examples/add_machine.py delete mode 100644 modules/libjuju/examples/add_model.py delete mode 100644 modules/libjuju/examples/allwatcher.py delete mode 100644 modules/libjuju/examples/config.py delete mode 100644 modules/libjuju/examples/connect_current_model.py delete mode 100644 modules/libjuju/examples/controller.py delete mode 100644 modules/libjuju/examples/credential.py delete mode 100644 modules/libjuju/examples/deploy.py delete mode 100644 modules/libjuju/examples/fullstatus.py delete mode 100644 modules/libjuju/examples/future.py delete mode 100644 modules/libjuju/examples/leadership.py delete mode 100644 modules/libjuju/examples/livemodel.py delete mode 100644 modules/libjuju/examples/localcharm.py delete mode 100644 modules/libjuju/examples/relate.py delete mode 100644 modules/libjuju/examples/unitrun.py delete mode 100644 modules/libjuju/juju/__init__.py delete mode 100644 modules/libjuju/juju/action.py delete mode 100644 modules/libjuju/juju/annotation.py delete mode 100644 modules/libjuju/juju/application.py delete mode 100644 modules/libjuju/juju/client/__init__.py delete mode 100644 modules/libjuju/juju/client/_client.py delete mode 100644 modules/libjuju/juju/client/_client1.py delete mode 100644 modules/libjuju/juju/client/_client2.py delete mode 100644 modules/libjuju/juju/client/_client3.py delete mode 100644 modules/libjuju/juju/client/_client4.py delete mode 100644 modules/libjuju/juju/client/_client5.py delete mode 100644 modules/libjuju/juju/client/_client7.py delete mode 100644 modules/libjuju/juju/client/_client8.py delete mode 100644 modules/libjuju/juju/client/_client9.py delete mode 100644 modules/libjuju/juju/client/_definitions.py delete mode 100644 modules/libjuju/juju/client/client.py delete mode 100644 modules/libjuju/juju/client/codegen.py delete mode 100644 modules/libjuju/juju/client/connection.py delete mode 100644 modules/libjuju/juju/client/connector.py delete mode 100644 modules/libjuju/juju/client/facade.py delete mode 100644 modules/libjuju/juju/client/gocookies.py delete mode 100644 modules/libjuju/juju/client/jujudata.py delete mode 100644 modules/libjuju/juju/client/overrides.py delete mode 100644 modules/libjuju/juju/client/runner.py delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.0.0.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.0.1.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.0.2.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.0.3.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.1.0.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.1.1.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.1.2.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.2-alpha1.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.2-beta1.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.2-beta2.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.2-rc1.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.3-alpha1.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.5-rc1.json delete mode 100644 modules/libjuju/juju/cloud.py delete mode 100644 modules/libjuju/juju/constraints.py delete mode 100644 modules/libjuju/juju/controller.py delete mode 100644 modules/libjuju/juju/credential.py delete mode 100644 modules/libjuju/juju/delta.py delete mode 100644 modules/libjuju/juju/errors.py delete mode 100644 modules/libjuju/juju/exceptions.py delete mode 100644 modules/libjuju/juju/juju.py delete mode 100644 modules/libjuju/juju/loop.py delete mode 100644 modules/libjuju/juju/machine.py delete mode 100644 modules/libjuju/juju/model.py delete mode 100644 modules/libjuju/juju/placement.py delete mode 100644 modules/libjuju/juju/provisioner.py delete mode 100644 modules/libjuju/juju/relation.py delete mode 100644 modules/libjuju/juju/tag.py delete mode 100644 modules/libjuju/juju/unit.py delete mode 100644 modules/libjuju/juju/user.py delete mode 100644 modules/libjuju/juju/utils.py delete mode 100755 modules/libjuju/scripts/gendoc delete mode 100644 modules/libjuju/setup.py delete mode 100644 modules/libjuju/tests/__init__.py delete mode 100644 modules/libjuju/tests/base.py delete mode 100644 modules/libjuju/tests/bundle/bundle.yaml delete mode 100644 modules/libjuju/tests/bundle/invalid.yaml delete mode 100644 modules/libjuju/tests/bundle/mini-bundle.yaml delete mode 100644 modules/libjuju/tests/charm/metadata.yaml delete mode 100644 modules/libjuju/tests/integration/__init__.py delete mode 100644 modules/libjuju/tests/integration/bundle/bundle-resource-rev.yaml delete mode 100644 modules/libjuju/tests/integration/bundle/bundle.yaml delete mode 100644 modules/libjuju/tests/integration/cert.pem delete mode 100644 modules/libjuju/tests/integration/charm/metadata.yaml delete mode 100644 modules/libjuju/tests/integration/key.pem delete mode 100644 modules/libjuju/tests/integration/test_application.py delete mode 100644 modules/libjuju/tests/integration/test_client.py delete mode 100644 modules/libjuju/tests/integration/test_connection.py delete mode 100644 modules/libjuju/tests/integration/test_controller.py delete mode 100644 modules/libjuju/tests/integration/test_errors.py delete mode 100644 modules/libjuju/tests/integration/test_macaroon_auth.py delete mode 100644 modules/libjuju/tests/integration/test_machine.py delete mode 100644 modules/libjuju/tests/integration/test_model.py delete mode 100644 modules/libjuju/tests/integration/test_unit.py delete mode 100644 modules/libjuju/tests/unit/__init__.py delete mode 100644 modules/libjuju/tests/unit/test_client.py delete mode 100644 modules/libjuju/tests/unit/test_connection.py delete mode 100644 modules/libjuju/tests/unit/test_constraints.py delete mode 100644 modules/libjuju/tests/unit/test_controller.py delete mode 100644 modules/libjuju/tests/unit/test_gocookies.py delete mode 100644 modules/libjuju/tests/unit/test_loop.py delete mode 100644 modules/libjuju/tests/unit/test_model.py delete mode 100644 modules/libjuju/tests/unit/test_overrides.py delete mode 100644 modules/libjuju/tests/unit/test_placement.py delete mode 100644 modules/libjuju/tests/unit/test_registration_string.py delete mode 100644 modules/libjuju/tox.ini diff --git a/Jenkinsfile b/Jenkinsfile index ed9e879..e384cbd 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,3 +1,18 @@ +/* + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + properties([ parameters([ string(defaultValue: env.BRANCH_NAME, description: '', name: 'GERRIT_BRANCH'), diff --git a/juju b/juju deleted file mode 120000 index 1d37c18..0000000 --- a/juju +++ /dev/null @@ -1 +0,0 @@ -modules/libjuju/juju \ No newline at end of file diff --git a/modules/libjuju/.gitignore b/modules/libjuju/.gitignore deleted file mode 100644 index 6d00fec..0000000 --- a/modules/libjuju/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -*.sw[mnop] -.venv/ -*.pyc -*.py~ -docs/_build/ -__pycache__/ -.tox/ -*.egg-info/ -.cache/ -.\#* -dist/ -dev/ -.pytest_cache -pytestdebug.log -.vscode/ diff --git a/modules/libjuju/.travis.yml b/modules/libjuju/.travis.yml deleted file mode 100644 index 5edfef5..0000000 --- a/modules/libjuju/.travis.yml +++ /dev/null @@ -1,48 +0,0 @@ -dist: xenial -sudo: required -language: python -cache: pip -before_install: - - if [[ $TRAVIS_PYTHON_VERSION == '3.6' ]]; then sudo add-apt-repository -y ppa:jonathonf/python-3.6; fi - - if [[ $TRAVIS_PYTHON_VERSION == '3.7-dev' ]]; then sudo add-apt-repository -y ppa:deadsnakes/ppa; fi - - sudo apt-get update -q - - sudo apt-get remove -qy lxd lxd-client - - sudo apt-get install snapd libsodium-dev -y -install: - - sudo snap install lxd || true # ignore failures so that unit tests will still run, at least - - sudo sh -c 'echo PATH=/snap/bin:$PATH >> /etc/environment'; - - sudo snap install jq || true - - sudo snap install juju --classic --$JUJU_CHANNEL || true - - sudo snap install juju-wait --classic || true - - pip install tox-travis -env: - global: > - TEST_AGENTS='{"agents":[{"url":"https://api.staging.jujucharms.com/identity","username":"libjuju-ci@yellow"}],"key":{"private":"88OOCxIHQNguRG7zFg2y2Hx5Ob0SeVKKBRnjyehverc=","public":"fDn20+5FGyN2hYO7z0rFUyoHGUnfrleslUNtoYsjNSs="}}' - PATH="/snap/bin:$PATH" - -matrix: - include: - - python: 3.6 - env: JUJU_CHANNEL=edge - - python: 3.6 - env: JUJU_CHANNEL=stable - - python: 3.7-dev - env: JUJU_CHANNEL=stable - - python: 3.7-dev - env: JUJU_CHANNEL=edge -before_script: - # Run lint before performing more expensive operations (fail fast/early) - - tox -e lint - - # init lxd for tests - - sudo lxd waitready --timeout 30 - - sudo chmod 666 /var/snap/lxd/common/lxd/unix.socket - - lxd init --auto --network-address='[::]' --network-port=8443 --storage-backend=dir - - # Horrible workaround to LP Bug #1738614 - - sudo mkdir /var/snap/lxd/common/lxd/storage-pools/juju-zfs - - lxc storage create juju-zfs dir source=/var/snap/lxd/common/lxd/storage-pools/juju-zfs - -script: - - juju bootstrap localhost test --config 'identity-url=https://api.staging.jujucharms.com/identity' --config 'allow-model-access=true' - - tox -e py3,integration,serial diff --git a/modules/libjuju/CONTRIBUTORS b/modules/libjuju/CONTRIBUTORS deleted file mode 100644 index 3895eaa..0000000 --- a/modules/libjuju/CONTRIBUTORS +++ /dev/null @@ -1,4 +0,0 @@ -Benjamin Saller -Tim Van Steenburgh -Cory Johns -Pete VanderGiessen diff --git a/modules/libjuju/LICENSE b/modules/libjuju/LICENSE deleted file mode 100644 index 8dada3e..0000000 --- a/modules/libjuju/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/modules/libjuju/MANIFEST.in b/modules/libjuju/MANIFEST.in deleted file mode 100644 index c14d3fc..0000000 --- a/modules/libjuju/MANIFEST.in +++ /dev/null @@ -1,5 +0,0 @@ -include *.py CONTRIBUTORS LICENSE README.rst VERSION -recursive-include juju *.py -recursive-include examples *.py -recursive-include docs *.rst -exclude Makefile diff --git a/modules/libjuju/Makefile b/modules/libjuju/Makefile deleted file mode 100644 index 38dcc11..0000000 --- a/modules/libjuju/Makefile +++ /dev/null @@ -1,46 +0,0 @@ -BIN := .tox/py3/bin -PY := $(BIN)/python -PIP := $(BIN)/pip -SCHEMAGEN := $(shell which schemagen) -VERSION=$(shell cat VERSION) - -clean: - find . -name __pycache__ -type d -exec rm -r {} + - find . -name *.pyc -delete - rm -rf .tox - rm -rf docs/_build/ - -.tox: - tox -r --notest - -client: .tox -ifndef SCHEMAGEN - $(error "schemagen is not available, please install from https://github.com/juju/schemagen") -endif - $(PY) -m juju.client.facade -s "juju/client/schemas*" -o juju/client/ - -test: - tox - -.PHONY: lint -lint: - tox -e lint --notest - -docs: .tox - $(PIP) install -r docs/requirements.txt - rm -rf docs/_build/ - $(BIN)/sphinx-build -b html docs/ docs/_build/ - cd docs/_build/ && zip -r docs.zip * - -release: - git fetch --tags - rm dist/*.tar.gz - $(PY) setup.py sdist - $(BIN)/twine upload --repository-url https://upload.pypi.org/legacy/ dist/* - git tag ${VERSION} - git push --tags - -upload: release - - -.PHONY: clean client test docs upload release diff --git a/modules/libjuju/TODO b/modules/libjuju/TODO deleted file mode 100644 index 94fc342..0000000 --- a/modules/libjuju/TODO +++ /dev/null @@ -1,5 +0,0 @@ -TODO -==== - -- Add a LogWatcher coroutine that yields from debug-log api -- Add a way to exit the event loop when a Model matches a bundle yaml diff --git a/modules/libjuju/VERSION b/modules/libjuju/VERSION deleted file mode 100644 index 1a96df1..0000000 --- a/modules/libjuju/VERSION +++ /dev/null @@ -1 +0,0 @@ -0.11.3 diff --git a/modules/libjuju/docs/Makefile b/modules/libjuju/docs/Makefile deleted file mode 100644 index 2869eb4..0000000 --- a/modules/libjuju/docs/Makefile +++ /dev/null @@ -1,230 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = _build - -# User-friendly check for sphinx-build -ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) - $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don\'t have Sphinx installed, grab it from http://sphinx-doc.org/) -endif - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -.PHONY: help -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " applehelp to make an Apple Help Book" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " epub3 to make an epub3" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - @echo " coverage to run coverage check of the documentation (if enabled)" - @echo " dummy to check syntax errors of document sources" - -.PHONY: clean -clean: - rm -rf $(BUILDDIR)/* - -.PHONY: html -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -.PHONY: dirhtml -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -.PHONY: singlehtml -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -.PHONY: pickle -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -.PHONY: json -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -.PHONY: htmlhelp -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -.PHONY: qthelp -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/libjuju.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/libjuju.qhc" - -.PHONY: applehelp -applehelp: - $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp - @echo - @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." - @echo "N.B. You won't be able to view it unless you put it in" \ - "~/Library/Documentation/Help or install it in your application" \ - "bundle." - -.PHONY: devhelp -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/libjuju" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/libjuju" - @echo "# devhelp" - -.PHONY: epub -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -.PHONY: epub3 -epub3: - $(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3 - @echo - @echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3." - -.PHONY: latex -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -.PHONY: latexpdf -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -.PHONY: latexpdfja -latexpdfja: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through platex and dvipdfmx..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -.PHONY: text -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -.PHONY: man -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -.PHONY: texinfo -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -.PHONY: info -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -.PHONY: gettext -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -.PHONY: changes -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -.PHONY: linkcheck -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -.PHONY: doctest -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -.PHONY: coverage -coverage: - $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage - @echo "Testing of coverage in the sources finished, look at the " \ - "results in $(BUILDDIR)/coverage/python.txt." - -.PHONY: xml -xml: - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." - -.PHONY: pseudoxml -pseudoxml: - $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml - @echo - @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." - -.PHONY: dummy -dummy: - $(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy - @echo - @echo "Build finished. Dummy builder generates no files." diff --git a/modules/libjuju/docs/_extensions/automembersummary.py b/modules/libjuju/docs/_extensions/automembersummary.py deleted file mode 100644 index cfe0b84..0000000 --- a/modules/libjuju/docs/_extensions/automembersummary.py +++ /dev/null @@ -1,112 +0,0 @@ -# Copyright 2014-2015 Canonical Limited. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -import importlib -import inspect -import textwrap - -from docutils import nodes -from docutils.statemachine import ViewList -from sphinx.errors import SphinxError -from sphinx.util.compat import Directive -from sphinx.util.nodes import nested_parse_with_titles - - -class AutoMemberSummary(Directive): - required_arguments = 1 - - def run(self): - module_name = self.arguments[0] - - try: - module = importlib.import_module(module_name) - except ImportError: - raise SphinxError("Unable to generate reference docs for %s, " - "could not import" % (module_name)) - - divider = '+{:-<80}+'.format('') - row = '| {:<78} |'.format - lines = [] - for member_name, member in inspect.getmembers(module): - if not self._filter(module_name, member_name, member): - continue - summary = textwrap.wrap(self._get_summary(member), 78) or [''] - link = '`{} <#{}>`_'.format(member_name, - '.'.join([module_name, - member_name])) - methods = ['* `{} <#{}>`_'.format(n, - '.'.join([module_name, - member_name, - n])) - for n, m in inspect.getmembers(member) - if not n.startswith('_') and inspect.isfunction(m)] - - lines.append(divider) - lines.append(row(link)) - lines.append(divider) - for line in summary: - lines.append(row(line)) - if methods: - lines.append(row('')) - lines.append(row('Methods:')) - lines.append(row('')) - for i, method in enumerate(methods): - lines.append(row(method)) - lines.append(divider) - content = '\n'.join(lines) - - result = self._parse(content, '') - return result - - def _get_summary(self, member): - doc = (member.__doc__ or '').splitlines() - - # strip any leading blank lines - while doc and not doc[0].strip(): - doc.pop(0) - - # strip anything after the first blank line - for i, piece in enumerate(doc): - if not piece.strip(): - doc = doc[:i] - break - - return " ".join(doc).strip() - - def _filter(self, module_name, member_name, member): - if member_name.startswith('_'): - return False - if hasattr(member, '__module__'): - # skip imported classes & functions - return member.__module__.startswith(module_name) - elif hasattr(member, '__name__'): - # skip imported modules - return member.__name__.startswith(module_name) - else: - return False # skip instances - return True - - def _parse(self, rst_text, annotation): - result = ViewList() - for line in rst_text.split("\n"): - result.append(line, annotation) - node = nodes.paragraph() - node.document = self.state.document - nested_parse_with_titles(self.state, result, node) - return node.children - - -def setup(app): - app.add_directive('automembersummary', AutoMemberSummary) diff --git a/modules/libjuju/docs/_static/custom.css b/modules/libjuju/docs/_static/custom.css deleted file mode 100644 index 333cd74..0000000 --- a/modules/libjuju/docs/_static/custom.css +++ /dev/null @@ -1,5 +0,0 @@ -.wy-table-responsive table td, -.wy-table-responsive table th -{ - white-space: normal !important; -} diff --git a/modules/libjuju/docs/api/juju.action.rst b/modules/libjuju/docs/api/juju.action.rst deleted file mode 100644 index cc86af2..0000000 --- a/modules/libjuju/docs/api/juju.action.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.action -=========== - -.. rubric:: Summary - -.. automembersummary:: juju.action - -.. rubric:: Reference - -.. automodule:: juju.action - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.annotation.rst b/modules/libjuju/docs/api/juju.annotation.rst deleted file mode 100644 index ec31344..0000000 --- a/modules/libjuju/docs/api/juju.annotation.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.annotation -=============== - -.. rubric:: Summary - -.. automembersummary:: juju.annotation - -.. rubric:: Reference - -.. automodule:: juju.annotation - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.application.rst b/modules/libjuju/docs/api/juju.application.rst deleted file mode 100644 index dba9177..0000000 --- a/modules/libjuju/docs/api/juju.application.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.application -================ - -.. rubric:: Summary - -.. automembersummary:: juju.application - -.. rubric:: Reference - -.. automodule:: juju.application - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.client.rst b/modules/libjuju/docs/api/juju.client.rst deleted file mode 100644 index dad691f..0000000 --- a/modules/libjuju/docs/api/juju.client.rst +++ /dev/null @@ -1,120 +0,0 @@ -Internal APIs -============= - -These packages are for internal use in communicating with the low-level -API. You should use the object oriented API instead. They are documented -here for developer reference. - - -juju\.client\.client module ---------------------------- - -.. automodule:: juju.client.client - :members: - :undoc-members: - :show-inheritance: - -juju\.client\._definitions module ---------------------------------- - -.. automodule:: juju.client._definitions - :members: - :undoc-members: - :show-inheritance: - -juju\.client\._client module ----------------------------- - -.. automodule:: juju.client._client - :members: - :undoc-members: - :show-inheritance: - -juju\.client\._client1 module ------------------------------ - -.. automodule:: juju.client._client1 - :members: - :undoc-members: - :show-inheritance: - -juju\.client\._client2 module ------------------------------ - -.. automodule:: juju.client._client2 - :members: - :undoc-members: - :show-inheritance: - -juju\.client\._client3 module ------------------------------ - -.. automodule:: juju.client._client3 - :members: - :undoc-members: - :show-inheritance: - -juju\.client\._client4 module ------------------------------ - -.. automodule:: juju.client._client4 - :members: - :undoc-members: - :show-inheritance: - -juju\.client\._client5 module ------------------------------ - -.. automodule:: juju.client._client5 - :members: - :undoc-members: - :show-inheritance: - -juju\.client\.codegen module ----------------------------- - -.. automodule:: juju.client.codegen - :members: - :undoc-members: - :show-inheritance: - -juju\.client\.connection module -------------------------------- - -.. automodule:: juju.client.connection - :members: - :undoc-members: - :show-inheritance: - -juju\.client\.facade module ---------------------------- - -.. automodule:: juju.client.facade - :members: - :undoc-members: - :show-inheritance: - -juju\.client\.overrides module ------------------------------- - -.. automodule:: juju.client.overrides - :members: - :undoc-members: - :show-inheritance: - -juju\.client\.runner module ---------------------------- - -.. automodule:: juju.client.runner - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: juju.client - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.cloud.rst b/modules/libjuju/docs/api/juju.cloud.rst deleted file mode 100644 index 39021e0..0000000 --- a/modules/libjuju/docs/api/juju.cloud.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.cloud -========== - -.. rubric:: Summary - -.. automembersummary:: juju.cloud - -.. rubric:: Reference - -.. automodule:: juju.cloud - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.constraints.rst b/modules/libjuju/docs/api/juju.constraints.rst deleted file mode 100644 index 5fcbd31..0000000 --- a/modules/libjuju/docs/api/juju.constraints.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.constraints -================ - -.. rubric:: Summary - -.. automembersummary:: juju.constraints - -.. rubric:: Reference - -.. automodule:: juju.constraints - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.controller.rst b/modules/libjuju/docs/api/juju.controller.rst deleted file mode 100644 index 4484fd5..0000000 --- a/modules/libjuju/docs/api/juju.controller.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.controller -=============== - -.. rubric:: Summary - -.. automembersummary:: juju.controller - -.. rubric:: Reference - -.. automodule:: juju.controller - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.delta.rst b/modules/libjuju/docs/api/juju.delta.rst deleted file mode 100644 index 9924f8c..0000000 --- a/modules/libjuju/docs/api/juju.delta.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.delta -========== - -.. rubric:: Summary - -.. automembersummary:: juju.delta - -.. rubric:: Reference - -.. automodule:: juju.delta - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.errors.rst b/modules/libjuju/docs/api/juju.errors.rst deleted file mode 100644 index 7c77574..0000000 --- a/modules/libjuju/docs/api/juju.errors.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.errors -=========== - -.. rubric:: Summary - -.. automembersummary:: juju.errors - -.. rubric:: Reference - -.. automodule:: juju.errors - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.exceptions.rst b/modules/libjuju/docs/api/juju.exceptions.rst deleted file mode 100644 index 85be2fb..0000000 --- a/modules/libjuju/docs/api/juju.exceptions.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.exceptions -=============== - -.. rubric:: Summary - -.. automembersummary:: juju.exceptions - -.. rubric:: Reference - -.. automodule:: juju.exceptions - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.juju.rst b/modules/libjuju/docs/api/juju.juju.rst deleted file mode 100644 index 68698c3..0000000 --- a/modules/libjuju/docs/api/juju.juju.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.juju -========= - -.. rubric:: Summary - -.. automembersummary:: juju.juju - -.. rubric:: Reference - -.. automodule:: juju.juju - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.loop.rst b/modules/libjuju/docs/api/juju.loop.rst deleted file mode 100644 index 4f175e9..0000000 --- a/modules/libjuju/docs/api/juju.loop.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.loop -========= - -.. rubric:: Summary - -.. automembersummary:: juju.loop - -.. rubric:: Reference - -.. automodule:: juju.loop - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.machine.rst b/modules/libjuju/docs/api/juju.machine.rst deleted file mode 100644 index edb5b6c..0000000 --- a/modules/libjuju/docs/api/juju.machine.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.machine -============ - -.. rubric:: Summary - -.. automembersummary:: juju.machine - -.. rubric:: Reference - -.. automodule:: juju.machine - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.model.rst b/modules/libjuju/docs/api/juju.model.rst deleted file mode 100644 index dfb735d..0000000 --- a/modules/libjuju/docs/api/juju.model.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.model -========== - -.. rubric:: Summary - -.. automembersummary:: juju.model - -.. rubric:: Reference - -.. automodule:: juju.model - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.placement.rst b/modules/libjuju/docs/api/juju.placement.rst deleted file mode 100644 index 67cde0c..0000000 --- a/modules/libjuju/docs/api/juju.placement.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.placement -============== - -.. rubric:: Summary - -.. automembersummary:: juju.placement - -.. rubric:: Reference - -.. automodule:: juju.placement - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.relation.rst b/modules/libjuju/docs/api/juju.relation.rst deleted file mode 100644 index 90e3130..0000000 --- a/modules/libjuju/docs/api/juju.relation.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.relation -============= - -.. rubric:: Summary - -.. automembersummary:: juju.relation - -.. rubric:: Reference - -.. automodule:: juju.relation - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.tag.rst b/modules/libjuju/docs/api/juju.tag.rst deleted file mode 100644 index 9b3a29f..0000000 --- a/modules/libjuju/docs/api/juju.tag.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.tag -======== - -.. rubric:: Summary - -.. automembersummary:: juju.tag - -.. rubric:: Reference - -.. automodule:: juju.tag - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.unit.rst b/modules/libjuju/docs/api/juju.unit.rst deleted file mode 100644 index 4a7d167..0000000 --- a/modules/libjuju/docs/api/juju.unit.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.unit -========= - -.. rubric:: Summary - -.. automembersummary:: juju.unit - -.. rubric:: Reference - -.. automodule:: juju.unit - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.utils.rst b/modules/libjuju/docs/api/juju.utils.rst deleted file mode 100644 index 9220a1b..0000000 --- a/modules/libjuju/docs/api/juju.utils.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.utils -========== - -.. rubric:: Summary - -.. automembersummary:: juju.utils - -.. rubric:: Reference - -.. automodule:: juju.utils - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/modules.rst b/modules/libjuju/docs/api/modules.rst deleted file mode 100644 index 9722a6a..0000000 --- a/modules/libjuju/docs/api/modules.rst +++ /dev/null @@ -1,31 +0,0 @@ -Public APIs -=========== - -It is recommended that you start with :doc:`juju.model` or :doc:`juju.controller`. -If you need helpers to manage the asyncio loop, try :doc:`juju.loop`. - -.. toctree:: - - juju.action - juju.annotation - juju.application - juju.cloud - juju.constraints - juju.controller - juju.delta - juju.errors - juju.exceptions - juju.juju - juju.loop - juju.machine - juju.model - juju.placement - juju.relation - juju.tag - juju.unit - juju.utils - -.. automodule:: juju - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/changelog.rst b/modules/libjuju/docs/changelog.rst deleted file mode 100644 index d5e13ba..0000000 --- a/modules/libjuju/docs/changelog.rst +++ /dev/null @@ -1,290 +0,0 @@ -Changelog ---------- - -0.11.3 -^^^^^^ -Wednesday March 13 2019 - -* k8s bundles no longer have application placement (#293) -* Add retry for connection if all endpoints fail (#288) -* Support generation of registration string for model sharing. (#279) -* Add Twine for dist upload on release (#284) - - -0.11.2 -^^^^^^ -Wednesday January 16 2019 - -* update facade methods for Juju 2.5-rc2 (#281) -* Add test case for redirect during connect (#275) -* Implement App.get_resources and pinned resources in bundles (#278) - - -0.11.1 -^^^^^^ -Thursday December 13 2018 - -* Fix bundles with subordinates for Juju <2.5 (#277) - - -0.11.0 -^^^^^^ -Tuesday December 11 2018 - -* Updates for new Juju version (#274) -* Fix wrong variable name in revoke_model function (#271) - - -0.10.2 -^^^^^^ -Tuesday September 18 2018 - -* set include_stats to false to reduce request time (#266) - - -0.10.1 -^^^^^^ -Monday September 17 2018 - -* Retry ssh in manual provision test (#265) -* Clean up lint and add lint coverage to travis config (#263) -* Increase the timeout for charmstore connections (#262) -* Fix log level of `Driver connected to juju` message (#258) - - -0.10.0 -^^^^^^ -Thursday August 16 2018 - -* Fix error due to scp extra opts order (#260) -* Implement set/get model constraints (#253) - - ->>>>>>> b8a8281b1785358bd5632a119c016f21811172c6 -0.9.1 -^^^^^ -Monday July 16 2018 - -* Update websockets to 6.0 to fix OS X support due to Brew update to Py3.7 (#254) - - -0.9.0 -^^^^^ -Friday June 29 2018 - -* python3.7 compatibility updates (#251) -* Handle juju not installed in is_bootstrapped for tests (#250) -* Add app.reset_config(list). (#249) -* Implement model.get_action_status (#248) -* Fix `make client` in Python 3.6 (#247) - - -0.8.0 -^^^^^ -Thursday June 14 2018 - -* Add support for adding a manual (ssh) machine (#240) -* Backwards compatibility fixes (#213) -* Implement model.get_action_output (#242) -* Fix JSON serialization error for bundle with lxd to unit placement (#243) -* Fix reference in docs to connect_current (#239) -* Wrap machine agent status workaround in version check (#238) -* Convert seconds to nanoseconds for juju.unit.run (#237) -* Fix spurious intermittent failure in test_machines.py::test_status (#236) -* Define an unused juju-zfs lxd storage pool for Travis (#235) -* Add support for Application get_actions (#234) - - -0.7.5 -^^^^^ -Friday May 18 2018 - -* Surface errors from bundle plan (#233) -* Always send auth-tag even with macaroon auth (#217) -* Inline jsonfile credential when sending to controller (#231) - -0.7.4 -^^^^^ -Tuesday Apr 24 2018 - -* Always parse tags and spaces constraints to lists (#228) -* Doc index improvements (#211) -* Add doc req to force newer pymacaroons to fix RTD builds -* Fix dependency conflict for building docs - -0.7.3 -^^^^^ -Tuesday Feb 20 2018 - -* Full macaroon bakery support (#206) -* Fix regression with deploying local charm, add test case (#209) -* Expose a machines series (#208) -* Automated test runner fixes (#205) - -0.7.2 -^^^^^ -Friday Feb 9 2018 - -* Support deploying bundle YAML file directly (rather than just directory) (#202) - -0.7.1 -^^^^^ -Monday Dec 18 2017 - -* Fix missed renames of model_uuids (#197) - -0.7.0 -^^^^^ -Fri Dec 15 2017 - -* Fix race condition in adding relations (#192) -* Fix race condition in connection monitor test (#183) -* Fix example in README (#178) -* Fix rare hang during Unit.run (#177) -* Fix licensing quirks (#176) -* Refactor model handling (#171) -* Refactor users handling, add get_users (#170) -* Upload credential to controller when adding model (#168) -* Support 'applications' key in bundles (#165) -* Improve handling of thread error handling for loop.run() (#169) -* Fix encoding when using to_json() (#166) -* Fix intermittent test failures (#167) - -0.6.1 -^^^^^ -Fri Sept 29 2017 - -* Fix failure when controller supports newer facade version (#145) -* Fix test failures (#163) -* Fix SSH key handling when adding a new model (#161) -* Make Application.upgrade_charm upgrade resources (#158) -* Expand integration tests to use stable/edge versions of juju (#155) -* Move docs to ReadTheDocs (https://pythonlibjuju.readthedocs.io/en/latest/) - -0.6.0 -^^^^^ -Thu June 29 2017 - -* Implement scp functionality (#149) -* Add Unit.public_address property (#153) -* Adds support for getting/setting config on a model (#152) - -0.5.3 -^^^^^ -Thu June 22 2017 - -* Improve handling of closed connections (#148) -* Configurable and larger max message size (#146) - -0.5.2 -^^^^^ -Wed June 14 2017 - -* Fix deploying non-stable channels and explicit revs (#144) - -0.5.1 -^^^^^ -Tue June 13 2017 - -* Update schema for Juju 2.3 alpha1 (#142) -* Improve API doc navigation and coverage (#141) -* Add type info to Model.add_machine docs (#138) - -0.5.0 -^^^^^ -Thu June 8 2017 - -* Add machine status properties (#133) -* Add model context manager (#128) -* Implement Application.upgrade_charm method (#132) - -0.4.3 -^^^^^ -Thu June 1 2017 - -* Accept new / unknown API fields gracefully (#131) -* Add support for new agent-version field in ModelInfo (#131) -* Replace pip with pip3 in install instructions (#129) -* Strip local:-prefix from local charm urls (#121) - -0.4.2 -^^^^^ -Wed May 10 2017 - -* Support (and prefer) per-controller macaroon files (#125) - -0.4.1 -^^^^^ -Wed Apr 27 2017 - -* Remove VERSION_MAP and rely on facade list from controller (#118) -* Refactor connection task management to avoid cancels (#117) -* Refactored login code to better handle redirects (#116) - -0.4.0 -^^^^^ -Wed Apr 19 2017 - -* Feature/api version support (#109) -* Expanding controller.py with basic user functions, get_models and - destroy (#89) -* Added Monitor class to Connection. (#105) -* Support placement lists (#103) -* Include resources from store when deploying (#102) -* Allow underscore to dash translation when accessing model - attributes (#101) -* Added controller to ssh fix. (#100) -* Regen schema to pick up missing APIs -* Improve error handling -* Fix issue where we do not check to make sure that we are receiving the - correct response. -* Retry calls to charmstore and increase timeout to 5s -* Make connect_model and deploy a bit more friendly -* Fix model name not including user -* Implement Model.get_status -* Add integration tests. - -0.3.0 -^^^^^ -Mon Feb 27 2017 - -* Fix docstrings for placement directives. -* Implement Model.add_machine() -* Bug fix - "to" parameter to Model.deploy() was broken -* Add docs and examples for adding machines and containers and deploying - charms to them. -* Make Machine.destroy() block the current coroutine, returning only after - the machine is actually removed from the remote model. This is more - consistent with the way the other apis work (e.g. Model.deploy(), - Application.add_unit(), etc). -* Raise NotImplementedError in all unimplemented method stubs instead of - silently passing. - -0.2.0 -^^^^^ -Thu Feb 16 2017 - -* Add default ssh key to newly created model. -* Add loop helpers and simplify examples/deploy.py -* Add support for deploying local charms, and bundles containing local charm paths. -* Add ability to get cloud name for controller. -* Bug fix - fix wrong api used in Model.destroy_unit() -* Add error detection in bundle deploy. - -0.1.2 -^^^^^ -Thu Dec 22 2016 - -* Bug fix - Include docs in package - -0.1.1 -^^^^^ -Thu Dec 22 2016 - -* Bug fix - Include VERSION file in package - -0.1.0 -^^^^^ -Wed Dec 21 2016 - -* Initial Release diff --git a/modules/libjuju/docs/conf.py b/modules/libjuju/docs/conf.py deleted file mode 100644 index a95ec04..0000000 --- a/modules/libjuju/docs/conf.py +++ /dev/null @@ -1,303 +0,0 @@ -# -*- coding: utf-8 -*- -# -# libjuju documentation build configuration file, created by -# sphinx-quickstart on Thu May 19 11:21:38 2016. -# -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys -import os - -from pathlib import Path - -here = Path(__file__).absolute().parent -version = (here.parent / 'VERSION').read_text().strip() - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) - -# -- General configuration ------------------------------------------------ - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -sys.path.append(os.path.abspath('_extensions/')) -extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.intersphinx', - 'sphinx.ext.todo', - 'sphinx.ext.viewcode', - 'sphinxcontrib.asyncio', - 'automembersummary', -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# source_suffix = ['.rst', '.md'] -source_suffix = '.rst' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = u'juju' -copyright = u'2016, Canonical Ltd.' -author = u'Canonical' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = version -# The full version, including alpha/beta/rc tags. -release = version - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# -# This is also used if you do content translation via gettext catalogs. -# Usually you set "language" from the command line for these cases. -language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This patterns also effect to html_static_path and html_extra_path -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False - -# If true, `todo` and `todoList` produce output, else they produce nothing. -todo_include_todos = True - - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'sphinx_rtd_theme' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -#html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] - -# The name for this set of Sphinx documents. -# " v documentation" by default. -#html_title = u'libjuju v0.0.0' - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (relative to this directory) to use as a favicon of -# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -#html_extra_path = [] - -# If not None, a 'Last updated on:' timestamp is inserted at every page -# bottom, using the given strftime format. -# The empty string is equivalent to '%b %d, %Y'. -#html_last_updated_fmt = None - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Language to be used for generating the HTML full-text search index. -# Sphinx supports the following languages: -# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' -# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr', 'zh' -#html_search_language = 'en' - -# A dictionary with options for the search language support, empty by default. -# 'ja' uses this config value. -# 'zh' user can custom change `jieba` dictionary path. -#html_search_options = {'type': 'default'} - -# The name of a javascript file (relative to the configuration directory) that -# implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' - -# Output file base name for HTML help builder. -htmlhelp_basename = 'libjujudoc' - -# -- Options for LaTeX output --------------------------------------------- - -latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -#'papersize': 'letterpaper', - -# The font size ('10pt', '11pt' or '12pt'). -#'pointsize': '10pt', - -# Additional stuff for the LaTeX preamble. -#'preamble': '', - -# Latex figure (float) alignment -#'figure_align': 'htbp', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - (master_doc, 'libjuju.tex', u'libjuju Documentation', - u'Canonical', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - (master_doc, 'libjuju', u'libjuju Documentation', - [author], 1) -] - -# If true, show URL addresses after external links. -#man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - (master_doc, 'libjuju', u'libjuju Documentation', - author, 'libjuju', 'One line description of project.', - 'Miscellaneous'), -] - -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] - -# If false, no module index is generated. -#texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False - -def setup(app): - app.add_stylesheet('custom.css') diff --git a/modules/libjuju/docs/index.rst b/modules/libjuju/docs/index.rst deleted file mode 100644 index 2dd55cb..0000000 --- a/modules/libjuju/docs/index.rst +++ /dev/null @@ -1,45 +0,0 @@ -.. libjuju documentation master file, created by - sphinx-quickstart on Thu May 19 11:21:38 2016. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - - -.. include:: readme.rst - - -Table of Contents ------------------ - -.. toctree:: - :caption: Overview - :glob: - :maxdepth: 3 - - narrative/index - - -.. toctree:: - :caption: API Documentation - :glob: - :maxdepth: 3 - - api/modules - api/juju.client - -.. toctree:: - :caption: Project - :glob: - :maxdepth: 3 - - upstream-updates/index - changelog - - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - diff --git a/modules/libjuju/docs/narrative/application.rst b/modules/libjuju/docs/narrative/application.rst deleted file mode 100644 index 1565e5f..0000000 --- a/modules/libjuju/docs/narrative/application.rst +++ /dev/null @@ -1,136 +0,0 @@ -Applications -============ -For api docs, see :class:`juju.application.Application`. - - -Deploying ---------- -To deploy a new application, connect a model and then call its -:meth:`~juju.model.Model.deploy` method. An -:class:`~juju.application.Application` instance is returned. - -.. code:: python - - from juju.model import Model - - model = Model() - await model.connect_current() - - mysql_app = await model.deploy( - # If a revision number is not included in the charm url, - # the latest revision from the Charm Store will be used. - 'cs:mysql-55', - application_name='mysql', - series='trusty', - channel='stable', - config={ - 'tuning-level': 'safest', - }, - constraints={ - 'mem': 256 * MB, - }, - ) - - -Deploying a Local Charm ------------------------ -To deploy a local charm, pass the charm directory path to -`Model.deploy()`. - -.. code:: python - - from juju.model import Model - - model = Model() - await model.connect_current() - - # Deploy a local charm using a path to the charm directory - await model.deploy( - '/home/tvansteenburgh/src/charms/ubuntu', - application_name='ubuntu', - series='trusty', - ) - - -Adding Units ------------- -To add units to a deployed application, use the -:meth:`juju.application.Application.add_units` method. A list of the newly -added units (:class:`~juju.unit.Unit` objects) is returned. - -.. code:: python - - ubuntu_app = await model.deploy( - 'ubuntu', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - - unit_a, unit_b = await ubuntu_app.add_units(count=2) - - -Updating Config and Constraints -------------------------------- -Example showing how to update configuration and constraints on a deployed -application. The `mysql_app` object is an instance of -:class:`juju.application.Application`. - -.. code:: python - - MB = 1024 * 1024 - - # Update and check app config - await mysql_app.set_config({'tuning-level': 'fast'}) - config = await mysql_app.get_config() - - assert(config['tuning-level']['value'] == 'fast') - - # update and check app constraints - await mysql_app.set_constraints({'mem': 512 * MB}) - constraints = await mysql_app.get_constraints() - - assert(constraints['mem'] == 512 * MB) - - -Adding and Removing Relations ------------------------------ -The :meth:`juju.application.Application.add_relation` method returns a -:class:`juju.relation.Relation` instance. - -.. code:: python - - from juju.model import Model - - model = Model() - await model.connect_current() - - # Deploy mysql-master application - mysql_master = await model.deploy( - 'cs:mysql-55', - application_name='mysql-master', - series='trusty', - channel='stable', - ) - - # Deploy mysql-slave application - mysql_slave = await model.deploy( - 'cs:mysql-55', - application_name='mysql-slave', - series='trusty', - channel='stable', - ) - - # Add the master-slave relation - relation = await mysql_master.add_relation( - # Name of the relation on the local (mysql-master) side - 'master', - # Name of the app:relation on the remote side - 'mysql-slave:slave', - ) - - # Remove the relation - await mysql_master.remove_relation( - 'master', - 'mysql-slave:slave', - ) diff --git a/modules/libjuju/docs/narrative/controller.rst b/modules/libjuju/docs/narrative/controller.rst deleted file mode 100644 index 1d86321..0000000 --- a/modules/libjuju/docs/narrative/controller.rst +++ /dev/null @@ -1,92 +0,0 @@ -Controllers -=========== -A Juju controller provides websocket endpoints for itself and each of its -models. In order to do anything useful, the juju lib must connect to one of -these endpoints. - -Connecting to the controller endpoint is useful if you want to programmatically -create a new model. If the model you want to use already exists, you can -connect directly to it (see py:doc:`model`). - -For API docs, see py:class:`juju.controller.Controller`. - - -Connecting to the Current Controller ------------------------------------- -Connect to the currently active Juju controller (the one returned by -`juju switch`). This only works if you have the Juju CLI client installed. - -.. code:: python - - from juju.controller import Controller - - controller = Controller() - await controller.connect() - - -Connecting to a Named Controller --------------------------------- -Connect to a controller by name. - -.. code:: python - - from juju.controller import Controller - - controller = Controller() - await controller.connect('mycontroller') - - -Connecting with Authentication ------------------------------- -You can control what user you are connecting with by specifying either a -username/password pair, or a macaroon or bakery client that can provide -a macaroon. - - -.. code:: python - - controller = Controller() - await controller.connect(username='admin', - password='f53f08cfc32a2e257fe5393271d89d62') - - # or with a macaroon - await controller.connect(macaroons=[ - { - "Name": "macaroon-218d87053ad19626bcd5a0eef0bc9ba8bd4fbd80a968f52a5fd430b2aa8660df", - "Value": "W3siY2F2ZWF0cyI6 ... jBkZiJ9XQ==", - "Domain": "10.130.48.27", - "Path": "/auth", - "Secure": false, - "HostOnly": true, - "Expires": "2018-03-07T22:07:23Z", - }, - ]) - - # or with a bakery client - from macaroonbakery.httpbakery import Client - from http.cookiejar import FileCookieJar - - bakery_client=Client() - bakery_client.cookies = FileCookieJar('cookies.txt') - controller = Controller() - await controller.connect(bakery_client=bakery_client) - - - -Connecting with an Explicit Endpoint ------------------------------------- -The most flexible, but also most verbose, way to connect is using the API -endpoint url and credentials directly. This method does NOT require the -Juju CLI client to be installed. - -.. code:: python - - controller = Controller() - await controller.connect( - endpoint='10.0.4.171:17070', - username='admin', - password='f53f08cfc32a2e257fe5393271d89d62', - cacert=None, # Left out for brevity, but if you have a cert string you - # should pass it in. You can get the cert from the output - # of The `juju show-controller` command. - ) diff --git a/modules/libjuju/docs/narrative/index.rst b/modules/libjuju/docs/narrative/index.rst deleted file mode 100644 index b1684a0..0000000 --- a/modules/libjuju/docs/narrative/index.rst +++ /dev/null @@ -1,10 +0,0 @@ -**Overview** - -.. toctree:: - :glob: - :maxdepth: 2 - - controller - model - application - unit diff --git a/modules/libjuju/docs/narrative/model.rst b/modules/libjuju/docs/narrative/model.rst deleted file mode 100644 index 42633a1..0000000 --- a/modules/libjuju/docs/narrative/model.rst +++ /dev/null @@ -1,290 +0,0 @@ -Models -====== -A Juju controller provides websocket endpoints for each of its -models. In order to do anything useful with a model, the juju lib must -connect to one of these endpoints. There are several ways to do this. - -For api docs, see py:class:`juju.model.Model`. - - -Connecting to the Current Model -------------------------------- -Connect to the currently active Juju model (the one returned by -`juju switch`). This only works if you have the Juju CLI client installed. - -.. code:: python - - model = Model() - await model.connect() - - -Connecting to a Named Model ---------------------------- -Connect to a model by name, using the same format as that returned from the -`juju switch` command. The accepted format is '[controller:][user/]model'. -This only works if you have the Juju CLI client installed. - -.. code:: python - - model = Model() - await model.connect('juju-2.0.1:admin/libjuju') - - -Connecting with Authentication ------------------------------- -You can control what user you are connecting with by specifying either a -username/password pair, or a macaroon or bakery client that can provide -a macaroon. - - -.. code:: python - - model = Model() - await model.connect(username='admin', - password='f53f08cfc32a2e257fe5393271d89d62') - - # or with a macaroon - await model.connect(macaroons=[ - { - "Name": "macaroon-218d87053ad19626bcd5a0eef0bc9ba8bd4fbd80a968f52a5fd430b2aa8660df", - "Value": "W3siY2F2ZWF0cyI6 ... jBkZiJ9XQ==", - "Domain": "10.130.48.27", - "Path": "/auth", - "Secure": false, - "HostOnly": true, - "Expires": "2018-03-07T22:07:23Z", - }, - ]) - - # or with a bakery client - from macaroonbakery.httpbakery import Client - from http.cookiejar import FileCookieJar - - bakery_client=Client() - bakery_client.cookies = FileCookieJar('cookies.txt') - model = Model() - await model.connect(bakery_client=bakery_client) - - - -Connecting with an Explicit Endpoint ------------------------------------- -The most flexible, but also most verbose, way to connect is using the API -endpoint url, model UUID, and credentials directly. This method does NOT -require the Juju CLI client to be installed. - -.. code:: python - - from juju.model import Model - - model = Model() - await model.connect( - endpoint='10.0.4.171:17070', - uuid='e8399ac7-078c-4817-8e5e-32316d55b083', - username='admin', - password='f53f08cfc32a2e257fe5393271d89d62', - cacert=None, # Left out for brevity, but if you have a cert string you - # should pass it in. You can get the cert from the output - # of The `juju show-controller` command. - ) - - -Creating and Destroying a Model -------------------------------- -Example of creating a new model and then destroying it. See -py:method:`juju.controller.Controller.add_model` and -py:method:`juju.controller.Controller.destroy_model` for more info. - -.. code:: python - - from juju.controller import Controller - - controller = Controller() - await controller.connect_current() - - # Create our new model - model = await controller.add_model( - 'mymodel', # name of your new model - ) - - # Do stuff with our model... - - # Destroy the model - await model.disconnect() - await controller.destroy_model(model.info.uuid) - model = None - - -Adding Machines and Containers ------------------------------- -To add a machine or container, connect to a model and then call its -py:method:`~juju.model.Model.add_machine` method. A -py:class:`~juju.machine.Machine` instance is returned. The machine id -can be used to deploy a charm to a specific machine or container. - -.. code:: python - - from juju.model import Model - - MB = 1 - GB = 1024 - - - model = Model() - await model.connect_current() - - # add a new default machine - machine1 = await model.add_machine() - - # add a machine with constraints, disks, and series specified - machine2 = await model.add_machine( - constraints={ - 'mem': 256 * MB, - }, - disks=[{ - 'pool': 'rootfs', - 'size': 10 * GB, - 'count': 1, - }], - series='xenial', - ) - - # add a lxd container to machine2 - machine3 = await model.add_machine( - 'lxd:{}'.format(machine2.id)) - - # deploy charm to the lxd container - application = await model.deploy( - 'ubuntu-10', - application_name='ubuntu', - series='xenial', - channel='stable', - to=machine3.id - ) - - # remove application - await application.remove() - - # destroy machines - note that machine3 must be destroyed before machine2 - # since it's a container on machine2 - await machine3.destroy(force=True) - await machine2.destroy(force=True) - await machine1.destroy(force=True) - - -Reacting to Changes in a Model ------------------------------- -To watch for and respond to changes in a model, register an observer with the -model. The easiest way to do this is by creating a -py:class:`juju.model.ModelObserver` subclass. - -.. code:: python - - from juju.model import Model, ModelObserver - - class MyModelObserver(ModelObserver): - async def on_change(self, delta, old, new, model): - # The raw change data (dict) from the websocket. - print(delta.data) - - # The entity type (str) affected by this change. - # One of ('action', 'application', 'annotation', 'machine', - # 'unit', 'relation') - print(delta.entity) - - # The type (str) of change. - # One of ('add', 'change', 'remove') - print(delta.type) - - # The 'old' and 'new' parameters are juju.model.ModelEntity - # instances which represent an entity in the model both before - # this change was applied (old) and after (new). - - # If an entity is being added to the model, the 'old' param - # will be None. - if delta.type == 'add': - assert(old is None) - - # If an entity is being removed from the model, the 'new' param - # will be None. - if delta.type == 'remove': - assert(new is None) - - # The 'old' and 'new' parameters, when not None, will be instances - # of a juju.model.ModelEntity subclass. The type of the subclass - # depends on the value of 'delta.entity', for example: - # - # delta.entity type - # ------------ ---- - # 'action' -> juju.action.Action - # 'application' -> juju.application.Application - # 'annotation' -> juju.annotation.Annotation - # 'machine' -> juju.machine.Machine - # 'unit' -> juju.unit.Unit - # 'relation' -> juju.relation.Relation - - # Finally, the 'model' parameter is a reference to the - # juju.model.Model instance to which this observer is attached. - print(id(model)) - - - model = Model() - await model.connect_current() - - model.add_observer(MyModelObserver()) - - -Every change in the model will result in a call to the `on_change()` -method of your observer(s). - -To target your code more precisely, define method names that correspond -to the entity and type of change that you wish to handle. - -.. code:: python - - from juju.model import Model, ModelObserver - - class MyModelObserver(ModelObserver): - async def on_application_change(self, delta, old, new, model): - # Both 'old' and 'new' params will be instances of - # juju.application.Application - pass - - async def on_unit_remove(self, delta, old, new, model): - # Since a unit is being removed, the 'new' param will always - # be None in this handler. The 'old' param will be an instance - # of juju.unit.Unit - the state of the unit before it was removed. - pass - - async def on_machine_add(self, delta, old, new, model): - # Since a machine is being added, the 'old' param will always be - # None in this handler. The 'new' param will be an instance of - # juju.machine.Machine. - pass - - async def on_change(self, delta, old, new, model): - # The catch-all handler - will be called whenever a more - # specific handler method is not defined. - - -Any py:class:`juju.model.ModelEntity` object can be observed directly by -registering callbacks on the object itself. - -.. code:: python - - import logging - - async def on_app_change(delta, old, new, model): - logging.debug('App changed: %r', new) - - async def on_app_remove(delta, old, new, model): - logging.debug('App removed: %r', old) - - ubuntu_app = await model.deploy( - 'ubuntu', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - ubuntu_app.on_change(on_app_change) - ubuntu_app.on_remove(on_app_remove) diff --git a/modules/libjuju/docs/narrative/unit.rst b/modules/libjuju/docs/narrative/unit.rst deleted file mode 100644 index 5d6b48d..0000000 --- a/modules/libjuju/docs/narrative/unit.rst +++ /dev/null @@ -1,65 +0,0 @@ -Units -===== -For api docs, see :class:`juju.unit.Unit`. - - -Running Commands ----------------- -Run arbitrary commands on a unit with the -:meth:`juju.unit.Unit.run` method. This method blocks -the current coroutine until a result is available, and -returns a :class:`juju.action.Action` instance. - - -.. code:: python - - from juju.model import Model - - model = Model() - await model.connect_current() - - app = await model.deploy( - 'ubuntu', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - - for unit in app.units: - action = await unit.run('unit-get public-address') - print(action.results) - - action = await unit.run('uname -a') - print(action.results) - - -Running Actions ---------------- -Run actions on a unit with the -:meth:`juju.unit.Unit.run_action` method. This method -returns a :class:`juju.action.Action` instance immediately. To block until -the action completes, use the :meth:`juju.action.Action.wait` method, as -in the example below. - - -.. code:: python - - from juju.model import Model - - model = Model() - await model.connect_current() - - app = await model.deploy( - 'git', - application_name='git', - series='trusty', - channel='stable', - ) - - for unit in app.units: - # run the 'add-repo' action, passing a 'repo' param - action = await unit.run_action('add-repo', repo='myrepo') - # wait for the action to complete - action = await action.wait() - - print(action.results) diff --git a/modules/libjuju/docs/readme.rst b/modules/libjuju/docs/readme.rst deleted file mode 100644 index 87666d0..0000000 --- a/modules/libjuju/docs/readme.rst +++ /dev/null @@ -1,103 +0,0 @@ -A Python library for Juju -========================= - -Source code: https://github.com/juju/python-libjuju - -Bug reports: https://github.com/juju/python-libjuju/issues - -Documentation: https://pythonlibjuju.readthedocs.io/en/latest/ - - -Requirements ------------- - -* Python 3.5+ -* Juju 2.0+ - - -Design Notes ------------- - -* Asynchronous - uses asyncio and async/await features of python 3.5 -* Websocket-level bindings are programmatically generated (indirectly) from the - Juju golang code, ensuring full api coverage -* Provides an OO layer which encapsulates much of the websocket api and - provides familiar nouns and verbs (e.g. Model.deploy(), Application.add_unit(), - etc.) - - -Installation ------------- - -.. code:: bash - - pip3 install juju - - -Quickstart ----------- -Here's a simple example that shows basic usage of the library. The example -connects to the currently active Juju model, deploys a single unit of the -ubuntu charm, then exits: - - -.. code:: python - - #!/usr/bin/python3 - - import logging - import sys - - from juju import loop - from juju.model import Model - - - async def deploy(): - # Create a Model instance. We need to connect our Model to a Juju api - # server before we can use it. - model = Model() - - # Connect to the currently active Juju model - await model.connect_current() - - try: - # Deploy a single unit of the ubuntu charm, using the latest revision - # from the stable channel of the Charm Store. - ubuntu_app = await model.deploy( - 'ubuntu', - application_name='ubuntu', - series='xenial', - channel='stable', - ) - - if '--wait' in sys.argv: - # optionally block until the application is ready - await model.block_until(lambda: ubuntu_app.status == 'active') - finally: - # Disconnect from the api server and cleanup. - await model.disconnect() - - - def main(): - logging.basicConfig(level=logging.INFO) - - # If you want to see everything sent over the wire, set this to DEBUG. - ws_logger = logging.getLogger('websockets.protocol') - ws_logger.setLevel(logging.INFO) - - # Run the deploy coroutine in an asyncio event loop, using a helper - # that abstracts loop creation and teardown. - loop.run(deploy()) - - - if __name__ == '__main__': - main() - - -More examples can be found in the docs, as well as in the ``examples/`` -directory of the source tree which can be run using ``tox``. For -example, to run ``examples/connect_current_model.py``, use: - -.. code:: bash - - tox -e example -- examples/connect_current_model.py diff --git a/modules/libjuju/docs/requirements.txt b/modules/libjuju/docs/requirements.txt deleted file mode 100644 index dabf3a0..0000000 --- a/modules/libjuju/docs/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -pytz<2018.0,>=2017.2 # conflict between sphinx and macaroonbakery -pymacaroons>=0.13.0,<1.0 # force new version with pynacl instead of libnacl -sphinx==1.6.5 -sphinxcontrib-asyncio -sphinx_rtd_theme diff --git a/modules/libjuju/docs/upstream-updates/index.rst b/modules/libjuju/docs/upstream-updates/index.rst deleted file mode 100644 index 41f448a..0000000 --- a/modules/libjuju/docs/upstream-updates/index.rst +++ /dev/null @@ -1,114 +0,0 @@ -Syncing Upstream Updates -======================== - -Updating the facade and definitions code generated from the schema -to reflect changes in upstream Juju consists of two steps: - -* Creating a new `schemas-juju-.json` file from the Juju code-base -* Generating the libjuju Python code from that schema - -Rarely, you may also have to add or update an override. - - -Creating a Schema File ----------------------- - -First, you will need to fetch SchemaGen_ and a copy of the Juju source. -Once your copy of the Juju source is at the version you want to update to -(probably the `develop` branch, or a release tag) and you have updated -and reinstalled SchemaGen to reflect those changes, you just need to send -the output into a file in the libjuju repository: - -.. code:: bash - - schemagen > juju/client/schemas-juju-2.2-rc1.json - -The version number you use in the filename should match the upstream -version of Juju. You should then also move the `latest` pointer to -the new file: - -.. code:: bash - - rm juju/client/schemas-juju-latest.json - ln -s schemas-juju-2.2-rc1.json juju/client/schemas-juju-latest.json - - -Generating the Python Code --------------------------- - -Once you have a new schema file, you can update the Python code -using the `client` make target: - -.. code:: bash - - make client - -You should expect to see updates to the `juju/client/_definitions.py` file, -as well as one or more of the `juju/client/_clientX.py` files, depending on -which facades were touched. - - -Integrating into the Object Layer ---------------------------------- - -Once the raw client APIs are synced, you may need to integrate any new or -changed API calls into the object layer, to provide a clean, Pythonic way -to interact with the model. This may be as simple as adding an optional -parameter to an existing model method, tweaking what manipulations, if any -the model method does to the data before it is sent to the API, or it may -require adding an entirely new model method to capture the new functionality. - -In general, the approach should be to make the interactions with the model -layer use the same patterns as when you use the CLI, just with Python idioms -and OO approaches. - -When trying to determine what client calls need to be made and what data to -be sent for a given Juju CLI action, it is very useful to add -`--debug --logging-config TRACE` to any Juju CLI command to view the full -conversation between the CLI client and the API server. For example: - -``` -[johnsca@murdoch:~] $ juju deploy --debug --logging-config TRACE ./builds/test -11:51:20 INFO juju.cmd supercommand.go:56 running juju [2.3.5 gc go1.10] -11:51:20 DEBUG juju.cmd supercommand.go:57 args: []string{"/snap/juju/3884/bin/juju", "deploy", "--debug", "--logging-config", "TRACE", "./builds/test"} -11:51:20 INFO juju.juju api.go:67 connecting to API addresses: [35.172.119.191:17070 172.31.94.16:17070 252.94.16.1:17070] -11:51:20 TRACE juju.api certpool.go:49 cert dir "/etc/juju/certs.d" does not exist -11:51:20 DEBUG juju.api apiclient.go:843 successfully dialed "wss://35.172.119.191:17070/model/a7317969-6dab-4ba4-844b-af3d661c228d/api" -11:51:20 INFO juju.api apiclient.go:597 connection established to "wss://35.172.119.191:17070/model/a7317969-6dab-4ba4-844b-af3d661c228d/api" -... -11:51:20 INFO juju.cmd.juju.application series_selector.go:71 with the configured model default series "xenial" -11:51:20 DEBUG httpbakery client.go:244 client do POST https://35.172.119.191:17070/model/a7317969-6dab-4ba4-844b-af3d661c228d/charms?revision=0&schema=local&series=xenial { -11:51:21 DEBUG httpbakery client.go:246 } -> error -11:51:21 INFO cmd deploy.go:1096 Deploying charm "local:xenial/test-0". -11:51:21 TRACE juju.rpc.jsoncodec codec.go:225 -> {"request-id":3,"type":"Charms","version":2,"request":"CharmInfo","params":{"url":"local:xenial/test-0"}} -11:51:21 TRACE juju.rpc.jsoncodec codec.go:120 <- {"request-id":3,"response":{"revision":0,"url":"local:xenial/test-0","config":{"test":{"type":"string","default":""}},"meta":{"name":"test","summary":"test","description":"test","subordinate":false,"series":["xenial"],"resources":{"dummy":{"name":"dummy","type":"file","path":"dummy.snap","description":"dummy snap"}},"min-juju-version":"0.0.0"},"actions":{}}} -11:51:21 TRACE juju.rpc.jsoncodec codec.go:225 -> {"request-id":4,"type":"Charms","version":2,"request":"IsMetered","params":{"url":"local:xenial/test-0"}} -11:51:21 TRACE juju.rpc.jsoncodec codec.go:120 <- {"request-id":4,"response":{"metered":false}} -11:51:21 TRACE juju.rpc.jsoncodec codec.go:225 -> {"request-id":5,"type":"Resources","version":1,"request":"AddPendingResources","params":{"tag":"application-test","url":"local:xenial/test-0","channel":"","macaroon":null,"resources":[{"name":"dummy","type":"file","path":"dummy.snap","description":"dummy snap","origin":"store","revision":-1,"fingerprint":"","size":0}]}} -11:51:21 TRACE juju.rpc.jsoncodec codec.go:120 <- {"request-id":5,"response":{"pending-ids":["c0ffdd92-da23-4fb2-8d41-d82d58423447"]}} -11:51:21 TRACE juju.rpc.jsoncodec codec.go:225 -> {"request-id":6,"type":"Application","version":5,"request":"Deploy","params":{"applications":[{"application":"test","series":"xenial","charm-url":"local:xenial/test-0","channel":"","num-units":1,"config-yaml":"","constraints":{},"resources":{"dummy":"c0ffdd92-da23-4fb2-8d41-d82d58423447"}}]}} -11:51:21 TRACE juju.rpc.jsoncodec codec.go:120 <- {"request-id":6,"response":{"results":[{}]}} -11:51:21 TRACE juju.rpc.jsoncodec codec.go:123 <- error: read tcp 192.168.1.102:52168->35.172.119.191:17070: use of closed network connection (closing true) -11:51:21 DEBUG juju.api monitor.go:35 RPC connection died -11:51:21 INFO cmd supercommand.go:465 command finished -``` - -Note that this will contain login information (which has been removed from the above). - - -Overrides ---------- - -It should be quite rare, but occasionally the generated Python code does -not capture all of the logic needed to properly parse the output from the API -or may otherwise need some small amount of tweaking. This is what the -`juju/client/overrides.py` file is for. An example of this is the `Number` -type, which isn't standard JSON and must be parsed slightly differently. - -At the top of that file are two lists, `__all__` and `__patches__`. The -former replaces entire class implementations, while the latter patches -the attributes of the override classes into the matching generated class, -leaving the rest of the generated class untouched. - - -.. _SchemaGen: https://github.com/juju/schemagen diff --git a/modules/libjuju/examples/action.py b/modules/libjuju/examples/action.py deleted file mode 100644 index f839f11..0000000 --- a/modules/libjuju/examples/action.py +++ /dev/null @@ -1,49 +0,0 @@ -""" -This example: - -1. Connects to current model and resets it. -2. Deploys a git unit. -3. Runs an action against the unit. -4. Waits for the action results to come back, then exits. - -""" -import logging - -from juju import loop -from juju.model import Model - - -async def run_action(unit): - logging.debug('Running action on unit %s', unit.name) - - # unit.run() returns a juju.action.Action instance - action = await unit.run_action('add-repo', repo='myrepo') - # wait for the action to complete - action = await action.wait() - - logging.debug("Action results: %s", action.results) - - -async def main(): - model = Model() - # connect to current model with current user, per Juju CLI - await model.connect() - - app = await model.deploy( - 'git', - application_name='git', - series='trusty', - channel='stable', - ) - - for unit in app.units: - await run_action(unit) - - await model.disconnect() - - -if __name__ == '__main__': - logging.basicConfig(level=logging.DEBUG) - ws_logger = logging.getLogger('websockets.protocol') - ws_logger.setLevel(logging.INFO) - loop.run(main()) diff --git a/modules/libjuju/examples/add_machine.py b/modules/libjuju/examples/add_machine.py deleted file mode 100755 index 33d0c34..0000000 --- a/modules/libjuju/examples/add_machine.py +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/env python3.5 - -""" -This example: - -1. Connects to the current model -2. Creates two machines and a lxd container -3. Deploys charm to the lxd container - -""" -import logging - -from juju import loop -from juju.model import Model - -MB = 1 -GB = 1024 - - -async def main(): - model = Model() - await model.connect() - - try: - # add a new default machine - machine1 = await model.add_machine() - # add a machine with constraints, disks, and series - machine2 = await model.add_machine( - constraints={ - 'mem': 256 * MB, - }, - disks=[{ - 'pool': 'rootfs', - 'size': 10 * GB, - 'count': 1, - }], - series='xenial', - ) - # add a lxd container to machine2 - machine3 = await model.add_machine( - 'lxd:{}'.format(machine2.id)) - - # deploy charm to the lxd container - application = await model.deploy( - 'ubuntu-10', - application_name='ubuntu', - series='xenial', - channel='stable', - to=machine3.id - ) - - await model.block_until( - lambda: all(unit.workload_status == 'active' - for unit in application.units)) - - await application.remove() - - await machine3.destroy(force=True) - await machine2.destroy(force=True) - await machine1.destroy(force=True) - finally: - await model.disconnect() - - -if __name__ == '__main__': - logging.basicConfig(level=logging.DEBUG) - ws_logger = logging.getLogger('websockets.protocol') - ws_logger.setLevel(logging.INFO) - - loop.run(main()) diff --git a/modules/libjuju/examples/add_model.py b/modules/libjuju/examples/add_model.py deleted file mode 100644 index 88766f1..0000000 --- a/modules/libjuju/examples/add_model.py +++ /dev/null @@ -1,67 +0,0 @@ -""" -This example: - -1. Creates a model on the current controller -2. Deploys a charm to it. -3. Attempts to ssh into the charm - -""" -from juju import loop -from juju import utils -from juju.controller import Controller -import asyncio -from logging import getLogger -import uuid - -LOG = getLogger(__name__) - - -async def main(): - controller = Controller() - print("Connecting to controller") - # connect to current controller with current user, per Juju CLI - await controller.connect() - - try: - model_name = "addmodeltest-{}".format(uuid.uuid4()) - print("Adding model {}".format(model_name)) - model = await controller.add_model(model_name) - - print('Deploying ubuntu') - application = await model.deploy( - 'ubuntu-10', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - - print('Waiting for active') - await asyncio.sleep(10) - await model.block_until( - lambda: all(unit.workload_status == 'active' - for unit in application.units)) - - print("Verifying that we can ssh into the created model") - ret = await utils.execute_process( - 'juju', 'ssh', '-m', model_name, 'ubuntu/0', 'ls /', log=LOG) - assert ret - - print('Removing ubuntu') - await application.remove() - - print("Destroying model") - await controller.destroy_model(model.info.uuid) - - except Exception: - LOG.exception( - "Test failed! Model {} may not be cleaned up".format(model_name)) - - finally: - print('Disconnecting from controller') - if model: - await model.disconnect() - await controller.disconnect() - - -if __name__ == '__main__': - loop.run(main()) diff --git a/modules/libjuju/examples/allwatcher.py b/modules/libjuju/examples/allwatcher.py deleted file mode 100644 index 884230b..0000000 --- a/modules/libjuju/examples/allwatcher.py +++ /dev/null @@ -1,31 +0,0 @@ -""" -This example: - -1. Connects to the current model -2. Starts an AllWatcher -3. Prints all changes received from the AllWatcher -4. Runs forever (kill with Ctrl-C) - -""" -import asyncio -import logging - -from juju.client.connection import Connection -from juju.client import client -from juju import loop - - -async def watch(): - conn = await Connection.connect() - allwatcher = client.AllWatcherFacade.from_connection(conn) - while True: - change = await allwatcher.Next() - for delta in change.deltas: - print(delta.deltas) - - -if __name__ == '__main__': - logging.basicConfig(level=logging.DEBUG) - # Run loop until the process is manually stopped (watch will loop - # forever). - loop.run(watch()) diff --git a/modules/libjuju/examples/config.py b/modules/libjuju/examples/config.py deleted file mode 100644 index c7580f6..0000000 --- a/modules/libjuju/examples/config.py +++ /dev/null @@ -1,54 +0,0 @@ -""" -This example: - -1. Connects to the current model -2. Resets it -3. Deploys a charm and prints its config and constraints - -""" -import logging - -from juju.model import Model -from juju import loop - -log = logging.getLogger(__name__) - -MB = 1 - - -async def main(): - model = Model() - # connect to current model with current user, per Juju CLI - await model.connect() - - ubuntu_app = await model.deploy( - 'mysql', - application_name='mysql', - series='trusty', - channel='stable', - config={ - 'tuning-level': 'safest', - }, - constraints={ - 'mem': 256 * MB, - }, - ) - - # update and check app config - await ubuntu_app.set_config({'tuning-level': 'fast'}) - config = await ubuntu_app.get_config() - assert(config['tuning-level']['value'] == 'fast') - - # update and check app constraints - await ubuntu_app.set_constraints({'mem': 512 * MB}) - constraints = await ubuntu_app.get_constraints() - assert(constraints['mem'] == 512 * MB) - - await model.disconnect() - - -if __name__ == '__main__': - logging.basicConfig(level=logging.DEBUG) - ws_logger = logging.getLogger('websockets.protocol') - ws_logger.setLevel(logging.INFO) - loop.run(main()) diff --git a/modules/libjuju/examples/connect_current_model.py b/modules/libjuju/examples/connect_current_model.py deleted file mode 100644 index b46a09c..0000000 --- a/modules/libjuju/examples/connect_current_model.py +++ /dev/null @@ -1,27 +0,0 @@ -""" -This is a very basic example that connects to the currently selected model -and prints the number of applications deployed to it. -""" -import logging - -from juju import loop -from juju.model import Model - -log = logging.getLogger(__name__) - - -async def main(): - model = Model() - try: - # connect to the current model with the current user, per the Juju CLI - await model.connect() - print('There are {} applications'.format(len(model.applications))) - finally: - if model.is_connected(): - print('Disconnecting from model') - await model.disconnect() - - -if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) - loop.run(main()) diff --git a/modules/libjuju/examples/controller.py b/modules/libjuju/examples/controller.py deleted file mode 100644 index b61a6f6..0000000 --- a/modules/libjuju/examples/controller.py +++ /dev/null @@ -1,41 +0,0 @@ -""" -This example: - -1. Connects to current controller. -2. Creates a new model. -3. Deploys an application on the new model. -4. Disconnects from the model -5. Destroys the model - -""" -import logging - -from juju.controller import Controller -from juju import loop - - -async def main(): - controller = Controller() - # connect to current controller with current user, per Juju CLI - await controller.connect() - model = await controller.add_model( - 'my-test-model', - 'aws', - 'aws-tim', - ) - await model.deploy( - 'ubuntu-0', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - await model.disconnect() - await controller.destroy_model(model.info.uuid) - await controller.disconnect() - - -if __name__ == '__main__': - logging.basicConfig(level=logging.DEBUG) - ws_logger = logging.getLogger('websockets.protocol') - ws_logger.setLevel(logging.INFO) - loop.run(main()) diff --git a/modules/libjuju/examples/credential.py b/modules/libjuju/examples/credential.py deleted file mode 100644 index e653536..0000000 --- a/modules/libjuju/examples/credential.py +++ /dev/null @@ -1,47 +0,0 @@ -import sys -from juju import loop -from juju.controller import Controller - - -async def main(cloud_name, credential_name): - controller = Controller() - model = None - print('Connecting to controller') - # connect to current controller with current user, per Juju CLI - await controller.connect() - try: - print('Adding model') - model = await controller.add_model( - 'test', - cloud_name=cloud_name, - credential_name=credential_name) - - # verify credential - print("Verify model's credential: {}".format( - model.info.cloud_credential_tag)) - - # verify we can deploy - print('Deploying ubuntu') - app = await model.deploy('ubuntu-10') - - print('Waiting for active') - await model.block_until( - lambda: app.units and all(unit.workload_status == 'active' - for unit in app.units)) - - print('Removing ubuntu') - await app.remove() - finally: - print('Cleaning up') - if model: - print('Removing model') - model_uuid = model.info.uuid - await model.disconnect() - await controller.destroy_model(model_uuid) - print('Disconnecting') - await controller.disconnect() - - -if __name__ == '__main__': - assert len(sys.argv) > 2, 'Please provide a cloud and credential name' - loop.run(main(sys.argv[1], sys.argv[2])) diff --git a/modules/libjuju/examples/deploy.py b/modules/libjuju/examples/deploy.py deleted file mode 100644 index 43764d7..0000000 --- a/modules/libjuju/examples/deploy.py +++ /dev/null @@ -1,41 +0,0 @@ -""" -This example: - -1. Connects to the current model -2. Deploy a charm and waits until it reports itself active -3. Destroys the unit and application - -""" -from juju import loop -from juju.model import Model - - -async def main(): - model = Model() - print('Connecting to model') - # connect to current model with current user, per Juju CLI - await model.connect() - - try: - print('Deploying ubuntu') - application = await model.deploy( - 'ubuntu-10', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - - print('Waiting for active') - await model.block_until( - lambda: all(unit.workload_status == 'active' - for unit in application.units)) - - print('Removing ubuntu') - await application.remove() - finally: - print('Disconnecting from model') - await model.disconnect() - - -if __name__ == '__main__': - loop.run(main()) diff --git a/modules/libjuju/examples/fullstatus.py b/modules/libjuju/examples/fullstatus.py deleted file mode 100644 index 5548423..0000000 --- a/modules/libjuju/examples/fullstatus.py +++ /dev/null @@ -1,23 +0,0 @@ -import asyncio - -from juju.client.connection import Connection -from juju.client.client import ClientFacade -from juju import loop - -async def status(): - conn = await Connection.connect() - client = ClientFacade.from_connection(conn) - - patterns = None - status = await client.FullStatus(patterns) - await conn.close() - - print('Applications:', list(status.applications.keys())) - print('Machines:', list(status.machines.keys())) - print('Relations:', status.relations) - - return status - -if __name__ == '__main__': - loop.run(status()) - diff --git a/modules/libjuju/examples/future.py b/modules/libjuju/examples/future.py deleted file mode 100644 index 5e974cf..0000000 --- a/modules/libjuju/examples/future.py +++ /dev/null @@ -1,47 +0,0 @@ -""" -This example doesn't work - it demonstrates features that don't exist yet. - -""" -import logging - -from juju.model import Model -from juju import loop - - -async def main(): - model = Model() - # connect to current model with current user, per Juju CLI - await model.connect() - - goal_state = Model.from_yaml('bundle-like-thing') - ubuntu_app = await model.deploy( - 'ubuntu-0', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - ubuntu_app.on_unit_added(callback=lambda unit: True) - - await model.deploy( - 'nrpe-11', - application_name='nrpe', - series='trusty', - channel='stable', - num_units=0, - ) - await model.add_relation( - 'ubuntu', - 'nrpe', - ) - - result, ok = await model.block_until( - lambda: model.matches(goal_state), - timeout=600 - ) - - -if __name__ == '__main__': - logging.basicConfig(level=logging.DEBUG) - ws_logger = logging.getLogger('websockets.protocol') - ws_logger.setLevel(logging.INFO) - loop.run(main()) diff --git a/modules/libjuju/examples/leadership.py b/modules/libjuju/examples/leadership.py deleted file mode 100644 index dbd1b6e..0000000 --- a/modules/libjuju/examples/leadership.py +++ /dev/null @@ -1,28 +0,0 @@ -""" -This example: - -1. Connects to the current model. -2. Prints out leadership status for all deployed units in the model. -3. Cleanly disconnects. - -""" -import asyncio - -from juju.model import Model -from juju import loop - -async def report_leadership(): - model = Model() - await model.connect() - - print("Leadership: ") - for app in model.applications.values(): - for unit in app.units: - print("{}: {}".format( - unit.name, await unit.is_leader_from_status())) - - await model.disconnect() - - -if __name__ == '__main__': - loop.run(report_leadership()) diff --git a/modules/libjuju/examples/livemodel.py b/modules/libjuju/examples/livemodel.py deleted file mode 100644 index 1b10ac9..0000000 --- a/modules/libjuju/examples/livemodel.py +++ /dev/null @@ -1,31 +0,0 @@ -""" -This example: - -1. Connects to the current model -2. Watches the model and prints all changes -3. Runs forever (kill with Ctrl-C) - -""" -from juju.model import Model -from juju import loop - - -async def on_model_change(delta, old, new, model): - print(delta.entity, delta.type, delta.data) - print(old) - print(new) - print(model) - - -async def watch_model(): - model = Model() - # connect to current model with current user, per Juju CLI - await model.connect() - - model.add_observer(on_model_change) - - -if __name__ == '__main__': - # Run loop until the process is manually stopped (watch_model will loop - # forever). - loop.run(watch_model()) diff --git a/modules/libjuju/examples/localcharm.py b/modules/libjuju/examples/localcharm.py deleted file mode 100644 index b9481d4..0000000 --- a/modules/libjuju/examples/localcharm.py +++ /dev/null @@ -1,34 +0,0 @@ -""" -This example shows how to deploy a local charm. It: - -1. Connects to current model. -2. Uploads a local charm (directory on filesystem) to the model. -3. Deploys the uploaded charm. - -""" -import asyncio -import logging - -from juju.model import Model -from juju import loop - - -async def main(): - model = Model() - await model.connect() - - # Deploy a local charm using a path to the charm directory - await model.deploy( - '/home/tvansteenburgh/src/charms/ubuntu', - application_name='ubuntu', - series='trusty', - ) - - await model.disconnect() - - -if __name__ == '__main__': - logging.basicConfig(level=logging.DEBUG) - ws_logger = logging.getLogger('websockets.protocol') - ws_logger.setLevel(logging.INFO) - loop.run(main()) diff --git a/modules/libjuju/examples/relate.py b/modules/libjuju/examples/relate.py deleted file mode 100644 index 347e021..0000000 --- a/modules/libjuju/examples/relate.py +++ /dev/null @@ -1,102 +0,0 @@ -""" -This example: - -1. Connects to the current model -2. Resets it -3. Deploys two charms and relates them -4. Waits for units to be idle, then exits - -""" -import asyncio -import logging - -from juju.model import Model, ModelObserver -from juju import loop - - -class MyRemoveObserver(ModelObserver): - async def on_change(self, delta, old, new, model): - if delta.type == 'remove': - assert(new.latest() == new) - assert(new.next() is None) - assert(new.dead) - assert(new.current) - assert(new.connected) - assert(new.previous().dead) - assert(not new.previous().current) - assert(not new.previous().connected) - - -class MyModelObserver(ModelObserver): - _shutting_down = False - - async def on_change(self, delta, old, new, model): - if model.units and model.all_units_idle() and not self._shutting_down: - self._shutting_down = True - logging.debug('All units idle, disconnecting') - await model.reset(force=True) - await model.disconnect() - - -async def main(): - model = Model() - # connect to current model with current user, per Juju CLI - await model.connect() - - try: - model.add_observer(MyRemoveObserver()) - await model.reset(force=True) - model.add_observer(MyModelObserver()) - - ubuntu_app = await model.deploy( - 'ubuntu', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - ubuntu_app.on_change(asyncio.coroutine( - lambda delta, old_app, new_app, model: - print('App changed: {}'.format(new_app.entity_id)) - )) - ubuntu_app.on_remove(asyncio.coroutine( - lambda delta, old_app, new_app, model: - print('App removed: {}'.format(old_app.entity_id)) - )) - ubuntu_app.on_unit_add(asyncio.coroutine( - lambda delta, old_unit, new_unit, model: - print('Unit added: {}'.format(new_unit.entity_id)) - )) - ubuntu_app.on_unit_remove(asyncio.coroutine( - lambda delta, old_unit, new_unit, model: - print('Unit removed: {}'.format(old_unit.entity_id)) - )) - unit_a, unit_b = await ubuntu_app.add_units(count=2) - unit_a.on_change(asyncio.coroutine( - lambda delta, old_unit, new_unit, model: - print('Unit changed: {}'.format(new_unit.entity_id)) - )) - await model.deploy( - 'nrpe', - application_name='nrpe', - series='trusty', - channel='stable', - # subordinates must be deployed without units - num_units=0, - ) - my_relation = await model.add_relation( - 'ubuntu', - 'nrpe', - ) - my_relation.on_remove(asyncio.coroutine( - lambda delta, old_rel, new_rel, model: - print('Relation removed: {}'.format(old_rel.endpoints)) - )) - finally: - await model.disconnect() - - -if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) - ws_logger = logging.getLogger('websockets.protocol') - ws_logger.setLevel(logging.INFO) - loop.run(main()) diff --git a/modules/libjuju/examples/unitrun.py b/modules/libjuju/examples/unitrun.py deleted file mode 100644 index 805f0ae..0000000 --- a/modules/libjuju/examples/unitrun.py +++ /dev/null @@ -1,46 +0,0 @@ -""" -This example: - -1. Connects to current model and resets it. -2. Deploys one ubuntu unit. -3. Runs an action against the unit. -4. Waits for the action results to come back, then exits. - -""" -import logging - -from juju.model import Model -from juju import loop - - -async def run_command(unit): - logging.debug('Running command on unit %s', unit.name) - - # unit.run() returns a juju.action.Action instance - action = await unit.run('unit-get public-address') - logging.debug("Action results: %s", action.results) - - -async def main(): - model = Model() - # connect to current model with current user, per Juju CLI - await model.connect() - - app = await model.deploy( - 'ubuntu-0', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - - for unit in app.units: - await run_command(unit) - - await model.disconnect() - - -if __name__ == '__main__': - logging.basicConfig(level=logging.DEBUG) - ws_logger = logging.getLogger('websockets.protocol') - ws_logger.setLevel(logging.INFO) - loop.run(main()) diff --git a/modules/libjuju/juju/__init__.py b/modules/libjuju/juju/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/modules/libjuju/juju/action.py b/modules/libjuju/juju/action.py deleted file mode 100644 index 7a136a7..0000000 --- a/modules/libjuju/juju/action.py +++ /dev/null @@ -1,10 +0,0 @@ -from . import model - - -class Action(model.ModelEntity): - @property - def status(self): - return self.data['status'] - - async def wait(self): - return await self.model.wait_for_action(self.id) diff --git a/modules/libjuju/juju/annotation.py b/modules/libjuju/juju/annotation.py deleted file mode 100644 index 73c9b1c..0000000 --- a/modules/libjuju/juju/annotation.py +++ /dev/null @@ -1,9 +0,0 @@ -import logging - -from . import model - -log = logging.getLogger(__name__) - - -class Annotation(model.ModelEntity): - pass diff --git a/modules/libjuju/juju/application.py b/modules/libjuju/juju/application.py deleted file mode 100644 index 3f7f02e..0000000 --- a/modules/libjuju/juju/application.py +++ /dev/null @@ -1,533 +0,0 @@ -# Copyright 2016 Canonical Ltd. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import asyncio -import logging - -from . import model -from .client import client -from .errors import JujuError -from .placement import parse as parse_placement - -log = logging.getLogger(__name__) - - -class Application(model.ModelEntity): - @property - def _unit_match_pattern(self): - return r'^{}.*$'.format(self.entity_id) - - def on_unit_add(self, callable_): - """Add a "unit added" observer to this entity, which will be called - whenever a unit is added to this application. - - """ - self.model.add_observer( - callable_, 'unit', 'add', self._unit_match_pattern) - - def on_unit_remove(self, callable_): - """Add a "unit removed" observer to this entity, which will be called - whenever a unit is removed from this application. - - """ - self.model.add_observer( - callable_, 'unit', 'remove', self._unit_match_pattern) - - @property - def units(self): - return [ - unit for unit in self.model.units.values() - if unit.application == self.name - ] - - @property - def relations(self): - return [rel for rel in self.model.relations if rel.matches(self.name)] - - def related_applications(self, endpoint_name=None): - apps = {} - for rel in self.relations: - if rel.is_peer: - local_ep, remote_ep = rel.endpoints[0] - else: - def is_us(ep): - return ep.application.name == self.name - local_ep, remote_ep = sorted(rel.endpoints, key=is_us) - if endpoint_name is not None and endpoint_name != local_ep.name: - continue - apps[remote_ep.application.name] = remote_ep.application - return apps - - @property - def status(self): - """Get the application status, as set by the charm's leader. - - """ - return self.safe_data['status']['current'] - - @property - def status_message(self): - """Get the application status message, as set by the charm's leader. - - """ - return self.safe_data['status']['message'] - - @property - def tag(self): - return 'application-%s' % self.name - - async def add_relation(self, local_relation, remote_relation): - """Add a relation to another application. - - :param str local_relation: Name of relation on this application - :param str remote_relation: Name of relation on the other - application in the form '[:]' - - """ - if ':' not in local_relation: - local_relation = '{}:{}'.format(self.name, local_relation) - - return await self.model.add_relation(local_relation, remote_relation) - - async def add_unit(self, count=1, to=None): - """Add one or more units to this application. - - :param int count: Number of units to add - :param str to: Placement directive, e.g.:: - '23' - machine 23 - 'lxc:7' - new lxc container on machine 7 - '24/lxc/3' - lxc container 3 or machine 24 - - If None, a new machine is provisioned. - - """ - app_facade = client.ApplicationFacade.from_connection(self.connection) - - log.debug( - 'Adding %s unit%s to %s', - count, '' if count == 1 else 's', self.name) - - result = await app_facade.AddUnits( - application=self.name, - placement=parse_placement(to) if to else None, - num_units=count, - ) - - return await asyncio.gather(*[ - asyncio.ensure_future(self.model._wait_for_new('unit', unit_id)) - for unit_id in result.units - ]) - - add_units = add_unit - - async def scale(self, scale=None, scale_change=None): - """ - Set or adjust the scale of this (K8s) application. - - One or the other of scale or scale_change must be provided. - - :param int scale: Scale to which to set this application. - :param int scale_change: Amount by which to adjust the scale of this - application (can be positive or negative). - """ - app_facade = client.ApplicationFacade.from_connection(self.connection) - - if (scale, scale_change) == (None, None): - raise ValueError('Must provide either scale or scale_change') - - log.debug( - 'Scaling application %s %s %s', - self.name, 'to' if scale else 'by', scale or scale_change) - - await app_facade.ScaleApplications([ - client.ScaleApplicationParam(application_tag=self.tag, - scale=scale, - scale_change=scale_change) - ]) - - def allocate(self, budget, value): - """Allocate budget to this application. - - :param str budget: Name of budget - :param int value: Budget limit - - """ - raise NotImplementedError() - - def attach(self, resource_name, file_path): - """Upload a file as a resource for this application. - - :param str resource: Name of the resource - :param str file_path: Path to the file to upload - - """ - raise NotImplementedError() - - def collect_metrics(self): - """Collect metrics on this application. - - """ - raise NotImplementedError() - - async def destroy_relation(self, local_relation, remote_relation): - """Remove a relation to another application. - - :param str local_relation: Name of relation on this application - :param str remote_relation: Name of relation on the other - application in the form '[:]' - - """ - if ':' not in local_relation: - local_relation = '{}:{}'.format(self.name, local_relation) - - app_facade = client.ApplicationFacade.from_connection(self.connection) - - log.debug( - 'Destroying relation %s <-> %s', local_relation, remote_relation) - - return await app_facade.DestroyRelation([ - local_relation, remote_relation]) - remove_relation = destroy_relation - - async def destroy_unit(self, *unit_names): - """Destroy units by name. - - """ - return await self.model.destroy_units(*unit_names) - destroy_units = destroy_unit - - async def destroy(self): - """Remove this application from the model. - - """ - app_facade = client.ApplicationFacade.from_connection(self.connection) - - log.debug( - 'Destroying %s', self.name) - - return await app_facade.Destroy(self.name) - remove = destroy - - async def expose(self): - """Make this application publicly available over the network. - - """ - app_facade = client.ApplicationFacade.from_connection(self.connection) - - log.debug( - 'Exposing %s', self.name) - - return await app_facade.Expose(self.name) - - async def get_config(self): - """Return the configuration settings dict for this application. - - """ - app_facade = client.ApplicationFacade.from_connection(self.connection) - - log.debug( - 'Getting config for %s', self.name) - - return (await app_facade.Get(self.name)).config - - async def get_constraints(self): - """Return the machine constraints dict for this application. - - """ - app_facade = client.ApplicationFacade.from_connection(self.connection) - - log.debug( - 'Getting constraints for %s', self.name) - - result = (await app_facade.Get(self.name)).constraints - return vars(result) if result else result - - async def get_actions(self, schema=False): - """Get actions defined for this application. - - :param bool schema: Return the full action schema - :return dict: The charms actions, empty dict if none are defined. - """ - actions = {} - entity = [{"tag": self.tag}] - action_facade = client.ActionFacade.from_connection(self.connection) - results = ( - await action_facade.ApplicationsCharmsActions(entity)).results - for result in results: - if result.application_tag == self.tag and result.actions: - actions = result.actions - break - if not schema: - actions = {k: v['description'] for k, v in actions.items()} - return actions - - async def get_resources(self): - """Return resources for this application. - - Returns a dict mapping resource name to - :class:`~juju._definitions.CharmResource` instances. - """ - facade = client.ResourcesFacade.from_connection(self.connection) - response = await facade.ListResources([client.Entity(self.tag)]) - - resources = dict() - for result in response.results: - for resource in result.charm_store_resources or []: - resources[resource.name] = resource - for resource in result.resources or []: - if resource.charmresource: - resource = resource.charmresource - resources[resource.name] = resource - return resources - - async def run(self, command, timeout=None): - """Run command on all units for this application. - - :param str command: The command to run - :param int timeout: Time to wait before command is considered failed - - """ - action = client.ActionFacade.from_connection(self.connection) - - log.debug( - 'Running `%s` on all units of %s', command, self.name) - - # TODO this should return a list of Actions - return await action.Run( - [self.name], - command, - [], - timeout, - [], - ) - - async def set_annotations(self, annotations): - """Set annotations on this application. - - :param annotations map[string]string: the annotations as key/value - pairs. - - """ - log.debug('Updating annotations on application %s', self.name) - - self.ann_facade = client.AnnotationsFacade.from_connection( - self.connection) - - ann = client.EntityAnnotations( - entity=self.tag, - annotations=annotations, - ) - return await self.ann_facade.Set([ann]) - - async def set_config(self, config): - """Set configuration options for this application. - - :param config: Dict of configuration to set - """ - app_facade = client.ApplicationFacade.from_connection(self.connection) - - log.debug( - 'Setting config for %s: %s', self.name, config) - - return await app_facade.Set(self.name, config) - - async def reset_config(self, to_default): - """ - Restore application config to default values. - - :param list to_default: A list of config options to be reset to their - default value. - """ - app_facade = client.ApplicationFacade.from_connection(self.connection) - - log.debug( - 'Restoring default config for %s: %s', self.name, to_default) - - return await app_facade.Unset(self.name, to_default) - - async def set_constraints(self, constraints): - """Set machine constraints for this application. - - :param dict constraints: Dict of machine constraints - - """ - app_facade = client.ApplicationFacade.from_connection(self.connection) - - log.debug( - 'Setting constraints for %s: %s', self.name, constraints) - - return await app_facade.SetConstraints(self.name, constraints) - - def set_meter_status(self, status, info=None): - """Set the meter status on this status. - - :param str status: Meter status, e.g. 'RED', 'AMBER' - :param str info: Extra info message - - """ - raise NotImplementedError() - - def set_plan(self, plan_name): - """Set the plan for this application, effective immediately. - - :param str plan_name: Name of plan - - """ - raise NotImplementedError() - - async def unexpose(self): - """Remove public availability over the network for this application. - - """ - app_facade = client.ApplicationFacade.from_connection(self.connection) - - log.debug( - 'Unexposing %s', self.name) - - return await app_facade.Unexpose(self.name) - - def update_allocation(self, allocation): - """Update existing allocation for this application. - - :param int allocation: The allocation to set - - """ - raise NotImplementedError() - - async def upgrade_charm( - self, channel=None, force_series=False, force_units=False, - path=None, resources=None, revision=None, switch=None): - """Upgrade the charm for this application. - - :param str channel: Channel to use when getting the charm from the - charm store, e.g. 'development' - :param bool force_series: Upgrade even if series of deployed - application is not supported by the new charm - :param bool force_units: Upgrade all units immediately, even if in - error state - :param str path: Uprade to a charm located at path - :param dict resources: Dictionary of resource name/filepath pairs - :param int revision: Explicit upgrade revision - :param str switch: Crossgrade charm url - - """ - # TODO: Support local upgrades - if path is not None: - raise NotImplementedError("path option is not implemented") - if resources is not None: - raise NotImplementedError("resources option is not implemented") - - if switch is not None and revision is not None: - raise ValueError("switch and revision are mutually exclusive") - - client_facade = client.ClientFacade.from_connection(self.connection) - resources_facade = client.ResourcesFacade.from_connection( - self.connection) - app_facade = client.ApplicationFacade.from_connection(self.connection) - - charmstore = self.model.charmstore - charmstore_entity = None - - if switch is not None: - charm_url = switch - if not charm_url.startswith('cs:'): - charm_url = 'cs:' + charm_url - else: - charm_url = self.data['charm-url'] - charm_url = charm_url.rpartition('-')[0] - if revision is not None: - charm_url = "%s-%d" % (charm_url, revision) - else: - charmstore_entity = await charmstore.entity(charm_url, - channel=channel) - charm_url = charmstore_entity['Id'] - - if charm_url == self.data['charm-url']: - raise JujuError('already running charm "%s"' % charm_url) - - # Update charm - await client_facade.AddCharm( - url=charm_url, - channel=channel - ) - - # Update resources - if not charmstore_entity: - charmstore_entity = await charmstore.entity(charm_url, - channel=channel) - store_resources = charmstore_entity['Meta']['resources'] - - request_data = [client.Entity(self.tag)] - response = await resources_facade.ListResources(request_data) - existing_resources = { - resource.name: resource - for resource in response.results[0].resources - } - - resources_to_update = [ - resource for resource in store_resources - if resource['Name'] not in existing_resources or - existing_resources[resource['Name']].origin != 'upload' - ] - - if resources_to_update: - request_data = [ - client.CharmResource( - description=resource.get('Description'), - fingerprint=resource['Fingerprint'], - name=resource['Name'], - path=resource['Path'], - revision=resource['Revision'], - size=resource['Size'], - type_=resource['Type'], - origin='store', - ) for resource in resources_to_update - ] - response = await resources_facade.AddPendingResources( - self.tag, - charm_url, - request_data - ) - pending_ids = response.pending_ids - resource_ids = { - resource['Name']: id - for resource, id in zip(resources_to_update, pending_ids) - } - else: - resource_ids = None - - # Update application - await app_facade.SetCharm( - application=self.entity_id, - channel=channel, - charm_url=charm_url, - config_settings=None, - config_settings_yaml=None, - force_series=force_series, - force_units=force_units, - resource_ids=resource_ids, - storage_constraints=None - ) - - await self.model.block_until( - lambda: self.data['charm-url'] == charm_url - ) - - async def get_metrics(self): - """Get metrics for this application's units. - - :return: Dictionary of unit_name:metrics - - """ - return await self.model.get_metrics(self.tag) diff --git a/modules/libjuju/juju/client/__init__.py b/modules/libjuju/juju/client/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/modules/libjuju/juju/client/_client.py b/modules/libjuju/juju/client/_client.py deleted file mode 100644 index bfa9e6f..0000000 --- a/modules/libjuju/juju/client/_client.py +++ /dev/null @@ -1,454 +0,0 @@ -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. - -from juju.client._definitions import * - -from juju.client import _client2, _client1, _client3, _client4, _client5, _client8, _client7, _client9 - - -CLIENTS = { - "2": _client2, - "1": _client1, - "3": _client3, - "4": _client4, - "5": _client5, - "8": _client8, - "7": _client7, - "9": _client9 -} - - -def lookup_facade(name, version): - """ - Given a facade name and version, attempt to pull that facade out - of the correct client.py file. - - """ - for _version in range(int(version), 0, -1): - try: - facade = getattr(CLIENTS[str(_version)], name) - return facade - except (KeyError, AttributeError): - continue - else: - raise ImportError("No supported version for facade: " - "{}".format(name)) - - -class TypeFactory: - @classmethod - def from_connection(cls, connection): - """ - Given a connected Connection object, return an initialized and - connected instance of an API Interface matching the name of - this class. - - @param connection: initialized Connection object. - - """ - facade_name = cls.__name__ - if not facade_name.endswith('Facade'): - raise TypeError('Unexpected class name: {}'.format(facade_name)) - facade_name = facade_name[:-len('Facade')] - version = connection.facades.get(facade_name) - if version is None: - raise Exception('No facade {} in facades {}'.format(facade_name, - connection.facades)) - - c = lookup_facade(cls.__name__, version) - c = c() - c.connect(connection) - - return c - - -class ActionFacade(TypeFactory): - pass - - -class ActionPrunerFacade(TypeFactory): - pass - - -class AgentFacade(TypeFactory): - pass - - -class AgentToolsFacade(TypeFactory): - pass - - -class AllModelWatcherFacade(TypeFactory): - pass - - -class AllWatcherFacade(TypeFactory): - pass - - -class AnnotationsFacade(TypeFactory): - pass - - -class ApplicationFacade(TypeFactory): - pass - - -class ApplicationOffersFacade(TypeFactory): - pass - - -class ApplicationRelationsWatcherFacade(TypeFactory): - pass - - -class ApplicationScalerFacade(TypeFactory): - pass - - -class BackupsFacade(TypeFactory): - pass - - -class BlockFacade(TypeFactory): - pass - - -class BundleFacade(TypeFactory): - pass - - -class CAASAgentFacade(TypeFactory): - pass - - -class CAASFirewallerFacade(TypeFactory): - pass - - -class CAASOperatorFacade(TypeFactory): - pass - - -class CAASOperatorProvisionerFacade(TypeFactory): - pass - - -class CAASUnitProvisionerFacade(TypeFactory): - pass - - -class CharmRevisionUpdaterFacade(TypeFactory): - pass - - -class CharmsFacade(TypeFactory): - pass - - -class CleanerFacade(TypeFactory): - pass - - -class ClientFacade(TypeFactory): - pass - - -class CloudFacade(TypeFactory): - pass - - -class ControllerFacade(TypeFactory): - pass - - -class CredentialManagerFacade(TypeFactory): - pass - - -class CredentialValidatorFacade(TypeFactory): - pass - - -class CrossControllerFacade(TypeFactory): - pass - - -class CrossModelRelationsFacade(TypeFactory): - pass - - -class DeployerFacade(TypeFactory): - pass - - -class DiscoverSpacesFacade(TypeFactory): - pass - - -class DiskManagerFacade(TypeFactory): - pass - - -class EntityWatcherFacade(TypeFactory): - pass - - -class ExternalControllerUpdaterFacade(TypeFactory): - pass - - -class FanConfigurerFacade(TypeFactory): - pass - - -class FilesystemAttachmentsWatcherFacade(TypeFactory): - pass - - -class FirewallRulesFacade(TypeFactory): - pass - - -class FirewallerFacade(TypeFactory): - pass - - -class HighAvailabilityFacade(TypeFactory): - pass - - -class HostKeyReporterFacade(TypeFactory): - pass - - -class ImageManagerFacade(TypeFactory): - pass - - -class ImageMetadataFacade(TypeFactory): - pass - - -class InstancePollerFacade(TypeFactory): - pass - - -class KeyManagerFacade(TypeFactory): - pass - - -class KeyUpdaterFacade(TypeFactory): - pass - - -class LeadershipServiceFacade(TypeFactory): - pass - - -class LifeFlagFacade(TypeFactory): - pass - - -class LogForwardingFacade(TypeFactory): - pass - - -class LoggerFacade(TypeFactory): - pass - - -class MachineActionsFacade(TypeFactory): - pass - - -class MachineManagerFacade(TypeFactory): - pass - - -class MachineUndertakerFacade(TypeFactory): - pass - - -class MachinerFacade(TypeFactory): - pass - - -class MeterStatusFacade(TypeFactory): - pass - - -class MetricsAdderFacade(TypeFactory): - pass - - -class MetricsDebugFacade(TypeFactory): - pass - - -class MetricsManagerFacade(TypeFactory): - pass - - -class MigrationFlagFacade(TypeFactory): - pass - - -class MigrationMasterFacade(TypeFactory): - pass - - -class MigrationMinionFacade(TypeFactory): - pass - - -class MigrationStatusWatcherFacade(TypeFactory): - pass - - -class MigrationTargetFacade(TypeFactory): - pass - - -class ModelConfigFacade(TypeFactory): - pass - - -class ModelManagerFacade(TypeFactory): - pass - - -class ModelUpgraderFacade(TypeFactory): - pass - - -class NotifyWatcherFacade(TypeFactory): - pass - - -class OfferStatusWatcherFacade(TypeFactory): - pass - - -class PayloadsFacade(TypeFactory): - pass - - -class PayloadsHookContextFacade(TypeFactory): - pass - - -class PingerFacade(TypeFactory): - pass - - -class ProvisionerFacade(TypeFactory): - pass - - -class ProxyUpdaterFacade(TypeFactory): - pass - - -class RebootFacade(TypeFactory): - pass - - -class RelationStatusWatcherFacade(TypeFactory): - pass - - -class RelationUnitsWatcherFacade(TypeFactory): - pass - - -class RemoteApplicationWatcherFacade(TypeFactory): - pass - - -class RemoteRelationsFacade(TypeFactory): - pass - - -class RemoteRelationsWatcherFacade(TypeFactory): - pass - - -class ResourcesFacade(TypeFactory): - pass - - -class ResourcesHookContextFacade(TypeFactory): - pass - - -class ResumerFacade(TypeFactory): - pass - - -class RetryStrategyFacade(TypeFactory): - pass - - -class SSHClientFacade(TypeFactory): - pass - - -class SingularFacade(TypeFactory): - pass - - -class SpacesFacade(TypeFactory): - pass - - -class StatusHistoryFacade(TypeFactory): - pass - - -class StorageFacade(TypeFactory): - pass - - -class StorageProvisionerFacade(TypeFactory): - pass - - -class StringsWatcherFacade(TypeFactory): - pass - - -class SubnetsFacade(TypeFactory): - pass - - -class UndertakerFacade(TypeFactory): - pass - - -class UnitAssignerFacade(TypeFactory): - pass - - -class UniterFacade(TypeFactory): - pass - - -class UpgradeSeriesFacade(TypeFactory): - pass - - -class UpgraderFacade(TypeFactory): - pass - - -class UserManagerFacade(TypeFactory): - pass - - -class VolumeAttachmentPlansWatcherFacade(TypeFactory): - pass - - -class VolumeAttachmentsWatcherFacade(TypeFactory): - pass diff --git a/modules/libjuju/juju/client/_client1.py b/modules/libjuju/juju/client/_client1.py deleted file mode 100644 index 83437bc..0000000 --- a/modules/libjuju/juju/client/_client1.py +++ /dev/null @@ -1,11068 +0,0 @@ -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. - -from juju.client._definitions import * -from juju.client.facade import ReturnMapping, Type - - -class ActionPrunerFacade(Type): - name = 'ActionPruner' - version = 1 - schema = {'definitions': {'ActionPruneArgs': {'additionalProperties': False, - 'properties': {'max-history-mb': {'type': 'integer'}, - 'max-history-time': {'type': 'integer'}}, - 'required': ['max-history-time', - 'max-history-mb'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}}, - 'properties': {'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'Prune': {'properties': {'Params': {'$ref': '#/definitions/ActionPruneArgs'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ActionPruner', - request='ModelConfig', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Prune(self, max_history_mb, max_history_time): - ''' - max_history_mb : int - max_history_time : int - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ActionPruner', - request='Prune', - version=1, - params=_params) - _params['max-history-mb'] = max_history_mb - _params['max-history-time'] = max_history_time - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ActionPruner', - request='WatchForModelConfigChanges', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class AgentToolsFacade(Type): - name = 'AgentTools' - version = 1 - schema = {'properties': {'UpdateToolsAvailable': {'type': 'object'}}, 'type': 'object'} - - - @ReturnMapping(None) - async def UpdateToolsAvailable(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='AgentTools', - request='UpdateToolsAvailable', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class AllWatcherFacade(Type): - name = 'AllWatcher' - version = 1 - schema = {'definitions': {'AllWatcherNextResults': {'additionalProperties': False, - 'properties': {'deltas': {'items': {'$ref': '#/definitions/Delta'}, - 'type': 'array'}}, - 'required': ['deltas'], - 'type': 'object'}, - 'Delta': {'additionalProperties': False, - 'properties': {'entity': {'additionalProperties': True, - 'type': 'object'}, - 'removed': {'type': 'boolean'}}, - 'required': ['removed', 'entity'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherNextResults'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AllWatcherNextResults) - async def Next(self): - ''' - - Returns -> typing.Sequence[~Delta] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='AllWatcher', - request='Next', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='AllWatcher', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class ApplicationRelationsWatcherFacade(Type): - name = 'ApplicationRelationsWatcher' - version = 1 - schema = {'definitions': {'ApplicationRelationsChange': {'additionalProperties': False, - 'properties': {'changed': {'items': {'$ref': '#/definitions/RelationChange'}, - 'type': 'array'}, - 'removed': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ApplicationRelationsWatchResult': {'additionalProperties': False, - 'properties': {'ApplicationRelationsWatcherId': {'type': 'string'}, - 'changes': {'$ref': '#/definitions/ApplicationRelationsChange'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['ApplicationRelationsWatcherId'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'RelationChange': {'additionalProperties': False, - 'properties': {'changedunits': {'patternProperties': {'.*': {'$ref': '#/definitions/RelationUnitChange'}}, - 'type': 'object'}, - 'departedunits': {'items': {'type': 'string'}, - 'type': 'array'}, - 'id': {'type': 'integer'}, - 'life': {'type': 'string'}}, - 'required': ['id', 'life'], - 'type': 'object'}, - 'RelationUnitChange': {'additionalProperties': False, - 'properties': {'settings': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/ApplicationRelationsWatchResult'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ApplicationRelationsWatchResult) - async def Next(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('ApplicationRelationsChange'), _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationRelationsWatcher', - request='Next', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationRelationsWatcher', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class ApplicationScalerFacade(Type): - name = 'ApplicationScaler' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}}, - 'properties': {'Rescale': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def Rescale(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationScaler', - request='Rescale', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def Watch(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationScaler', - request='Watch', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class BackupsFacade(Type): - name = 'Backups' - version = 1 - schema = {'definitions': {'BackupsCreateArgs': {'additionalProperties': False, - 'properties': {'notes': {'type': 'string'}}, - 'required': ['notes'], - 'type': 'object'}, - 'BackupsInfoArgs': {'additionalProperties': False, - 'properties': {'id': {'type': 'string'}}, - 'required': ['id'], - 'type': 'object'}, - 'BackupsListArgs': {'additionalProperties': False, - 'type': 'object'}, - 'BackupsListResult': {'additionalProperties': False, - 'properties': {'list': {'items': {'$ref': '#/definitions/BackupsMetadataResult'}, - 'type': 'array'}}, - 'required': ['list'], - 'type': 'object'}, - 'BackupsMetadataResult': {'additionalProperties': False, - 'properties': {'ca-cert': {'type': 'string'}, - 'ca-private-key': {'type': 'string'}, - 'checksum': {'type': 'string'}, - 'checksum-format': {'type': 'string'}, - 'finished': {'format': 'date-time', - 'type': 'string'}, - 'hostname': {'type': 'string'}, - 'id': {'type': 'string'}, - 'machine': {'type': 'string'}, - 'model': {'type': 'string'}, - 'notes': {'type': 'string'}, - 'series': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'started': {'format': 'date-time', - 'type': 'string'}, - 'stored': {'format': 'date-time', - 'type': 'string'}, - 'version': {'$ref': '#/definitions/Number'}}, - 'required': ['id', - 'checksum', - 'checksum-format', - 'size', - 'stored', - 'started', - 'finished', - 'notes', - 'model', - 'machine', - 'hostname', - 'version', - 'series', - 'ca-cert', - 'ca-private-key'], - 'type': 'object'}, - 'BackupsRemoveArgs': {'additionalProperties': False, - 'properties': {'id': {'type': 'string'}}, - 'required': ['id'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'RestoreArgs': {'additionalProperties': False, - 'properties': {'backup-id': {'type': 'string'}}, - 'required': ['backup-id'], - 'type': 'object'}}, - 'properties': {'Create': {'properties': {'Params': {'$ref': '#/definitions/BackupsCreateArgs'}, - 'Result': {'$ref': '#/definitions/BackupsMetadataResult'}}, - 'type': 'object'}, - 'FinishRestore': {'type': 'object'}, - 'Info': {'properties': {'Params': {'$ref': '#/definitions/BackupsInfoArgs'}, - 'Result': {'$ref': '#/definitions/BackupsMetadataResult'}}, - 'type': 'object'}, - 'List': {'properties': {'Params': {'$ref': '#/definitions/BackupsListArgs'}, - 'Result': {'$ref': '#/definitions/BackupsListResult'}}, - 'type': 'object'}, - 'PrepareRestore': {'type': 'object'}, - 'Remove': {'properties': {'Params': {'$ref': '#/definitions/BackupsRemoveArgs'}}, - 'type': 'object'}, - 'Restore': {'properties': {'Params': {'$ref': '#/definitions/RestoreArgs'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(BackupsMetadataResult) - async def Create(self, notes): - ''' - notes : str - Returns -> typing.Union[str, int, _ForwardRef('Number')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='Create', - version=1, - params=_params) - _params['notes'] = notes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def FinishRestore(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='FinishRestore', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BackupsMetadataResult) - async def Info(self, id_): - ''' - id_ : str - Returns -> typing.Union[str, int, _ForwardRef('Number')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='Info', - version=1, - params=_params) - _params['id'] = id_ - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BackupsListResult) - async def List(self): - ''' - - Returns -> typing.Sequence[~BackupsMetadataResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='List', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def PrepareRestore(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='PrepareRestore', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Remove(self, id_): - ''' - id_ : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='Remove', - version=1, - params=_params) - _params['id'] = id_ - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Restore(self, backup_id): - ''' - backup_id : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='Restore', - version=1, - params=_params) - _params['backup-id'] = backup_id - reply = await self.rpc(msg) - return reply - - - -class BundleFacade(Type): - name = 'Bundle' - version = 1 - schema = {'definitions': {'BundleChange': {'additionalProperties': False, - 'properties': {'args': {'items': {'additionalProperties': True, - 'type': 'object'}, - 'type': 'array'}, - 'id': {'type': 'string'}, - 'method': {'type': 'string'}, - 'requires': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['id', - 'method', - 'args', - 'requires'], - 'type': 'object'}, - 'BundleChangesParams': {'additionalProperties': False, - 'properties': {'yaml': {'type': 'string'}}, - 'required': ['yaml'], - 'type': 'object'}, - 'BundleChangesResults': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/BundleChange'}, - 'type': 'array'}, - 'errors': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'GetChanges': {'properties': {'Params': {'$ref': '#/definitions/BundleChangesParams'}, - 'Result': {'$ref': '#/definitions/BundleChangesResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(BundleChangesResults) - async def GetChanges(self, yaml): - ''' - yaml : str - Returns -> typing.Union[typing.Sequence[~BundleChange], typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Bundle', - request='GetChanges', - version=1, - params=_params) - _params['yaml'] = yaml - reply = await self.rpc(msg) - return reply - - - -class CAASAgentFacade(Type): - name = 'CAASAgent' - version = 1 - schema = {'definitions': {'CloudCredential': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'auth-type': {'type': 'string'}, - 'redacted': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['auth-type'], - 'type': 'object'}, - 'CloudSpec': {'additionalProperties': False, - 'properties': {'cacertificates': {'items': {'type': 'string'}, - 'type': 'array'}, - 'credential': {'$ref': '#/definitions/CloudCredential'}, - 'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'name': {'type': 'string'}, - 'region': {'type': 'string'}, - 'storage-endpoint': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type', 'name'], - 'type': 'object'}, - 'CloudSpecResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/CloudSpec'}}, - 'type': 'object'}, - 'CloudSpecResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CloudSpecResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelTag': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}}, - 'properties': {'CloudSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/CloudSpecResults'}}, - 'type': 'object'}, - 'GetCloudSpec': {'properties': {'Params': {'$ref': '#/definitions/ModelTag'}, - 'Result': {'$ref': '#/definitions/CloudSpecResult'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(CloudSpecResults) - async def CloudSpec(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~CloudSpecResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASAgent', - request='CloudSpec', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudSpecResult) - async def GetCloudSpec(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASAgent', - request='GetCloudSpec', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASAgent', - request='ModelConfig', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASAgent', - request='WatchForModelConfigChanges', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class CAASFirewallerFacade(Type): - name = 'CAASFirewaller' - version = 1 - schema = {'definitions': {'ApplicationGetConfigResults': {'additionalProperties': False, - 'properties': {'Results': {'items': {'$ref': '#/definitions/ConfigResult'}, - 'type': 'array'}}, - 'required': ['Results'], - 'type': 'object'}, - 'BoolResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'boolean'}}, - 'required': ['result'], - 'type': 'object'}, - 'BoolResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['config'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}}, - 'properties': {'ApplicationsConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ApplicationGetConfigResults'}}, - 'type': 'object'}, - 'IsExposed': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/BoolResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchApplications': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ApplicationGetConfigResults) - async def ApplicationsConfig(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ConfigResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASFirewaller', - request='ApplicationsConfig', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BoolResults) - async def IsExposed(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~BoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASFirewaller', - request='IsExposed', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASFirewaller', - request='Life', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def Watch(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASFirewaller', - request='Watch', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchApplications(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASFirewaller', - request='WatchApplications', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class CAASOperatorFacade(Type): - name = 'CAASOperator' - version = 1 - schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, - 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, - 'type': 'array'}, - 'type': 'array'}}, - 'required': ['servers'], - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'ApplicationCharm': {'additionalProperties': False, - 'properties': {'charm-modified-version': {'type': 'integer'}, - 'force-upgrade': {'type': 'boolean'}, - 'sha256': {'type': 'string'}, - 'url': {'type': 'string'}}, - 'required': ['url', - 'sha256', - 'charm-modified-version'], - 'type': 'object'}, - 'ApplicationCharmResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ApplicationCharm'}}, - 'type': 'object'}, - 'ApplicationCharmResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationCharmResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Binary': {'additionalProperties': False, - 'properties': {'Arch': {'type': 'string'}, - 'Number': {'$ref': '#/definitions/Number'}, - 'Series': {'type': 'string'}}, - 'required': ['Number', 'Series', 'Arch'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesVersion': {'additionalProperties': False, - 'properties': {'agent-tools': {'items': {'$ref': '#/definitions/EntityVersion'}, - 'type': 'array'}}, - 'required': ['agent-tools'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'EntityString': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['tag', 'value'], - 'type': 'object'}, - 'EntityVersion': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}, - 'tools': {'$ref': '#/definitions/Version'}}, - 'required': ['tag', 'tools'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'HostPort': {'additionalProperties': False, - 'properties': {'Address': {'$ref': '#/definitions/Address'}, - 'port': {'type': 'integer'}}, - 'required': ['Address', 'port'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', 'uuid', 'type'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'SetPodSpecParams': {'additionalProperties': False, - 'properties': {'specs': {'items': {'$ref': '#/definitions/EntityString'}, - 'type': 'array'}}, - 'required': ['specs'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Version': {'additionalProperties': False, - 'properties': {'version': {'$ref': '#/definitions/Binary'}}, - 'required': ['version'], - 'type': 'object'}}, - 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, - 'type': 'object'}, - 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, - 'type': 'object'}, - 'Charm': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ApplicationCharmResults'}}, - 'type': 'object'}, - 'CurrentModel': {'properties': {'Result': {'$ref': '#/definitions/ModelResult'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'Remove': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetPodSpec': {'properties': {'Params': {'$ref': '#/definitions/SetPodSpecParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetTools': {'properties': {'Params': {'$ref': '#/definitions/EntitiesVersion'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringsResult) - async def APIAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='APIAddresses', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(APIHostPortsResult) - async def APIHostPorts(self): - ''' - - Returns -> typing.Sequence[~HostPort] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='APIHostPorts', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationCharmResults) - async def Charm(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ApplicationCharmResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='Charm', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelResult) - async def CurrentModel(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='CurrentModel', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='Life', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ModelUUID(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='ModelUUID', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Remove(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='Remove', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetPodSpec(self, specs): - ''' - specs : typing.Sequence[~EntityString] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='SetPodSpec', - version=1, - params=_params) - _params['specs'] = specs - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='SetStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetTools(self, agent_tools): - ''' - agent_tools : typing.Sequence[~EntityVersion] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='SetTools', - version=1, - params=_params) - _params['agent-tools'] = agent_tools - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def Watch(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='Watch', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchAPIHostPorts(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='WatchAPIHostPorts', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchUnits(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='WatchUnits', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class CAASOperatorProvisionerFacade(Type): - name = 'CAASOperatorProvisioner' - version = 1 - schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, - 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, - 'type': 'array'}, - 'type': 'array'}}, - 'required': ['servers'], - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityPassword': {'additionalProperties': False, - 'properties': {'password': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'password'], - 'type': 'object'}, - 'EntityPasswords': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'HostPort': {'additionalProperties': False, - 'properties': {'Address': {'$ref': '#/definitions/Address'}, - 'port': {'type': 'integer'}}, - 'required': ['Address', 'port'], - 'type': 'object'}, - 'KubernetesFilesystemAttachmentParams': {'additionalProperties': False, - 'properties': {'mount-point': {'type': 'string'}, - 'provider': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'required': ['provider'], - 'type': 'object'}, - 'KubernetesFilesystemParams': {'additionalProperties': False, - 'properties': {'attachment': {'$ref': '#/definitions/KubernetesFilesystemAttachmentParams'}, - 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'provider': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'storagename': {'type': 'string'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['storagename', - 'size', - 'provider'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'OperatorProvisioningInfo': {'additionalProperties': False, - 'properties': {'api-addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'charm-storage': {'$ref': '#/definitions/KubernetesFilesystemParams'}, - 'image-path': {'type': 'string'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'version': {'$ref': '#/definitions/Number'}}, - 'required': ['image-path', - 'version', - 'api-addresses', - 'charm-storage'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}}, - 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, - 'type': 'object'}, - 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'OperatorProvisioningInfo': {'properties': {'Result': {'$ref': '#/definitions/OperatorProvisioningInfo'}}, - 'type': 'object'}, - 'SetPasswords': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchApplications': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringsResult) - async def APIAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperatorProvisioner', - request='APIAddresses', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(APIHostPortsResult) - async def APIHostPorts(self): - ''' - - Returns -> typing.Sequence[~HostPort] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperatorProvisioner', - request='APIHostPorts', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperatorProvisioner', - request='Life', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ModelUUID(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperatorProvisioner', - request='ModelUUID', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(OperatorProvisioningInfo) - async def OperatorProvisioningInfo(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('KubernetesFilesystemParams'), str, typing.Mapping[str, str], _ForwardRef('Number')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperatorProvisioner', - request='OperatorProvisioningInfo', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetPasswords(self, changes): - ''' - changes : typing.Sequence[~EntityPassword] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperatorProvisioner', - request='SetPasswords', - version=1, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchAPIHostPorts(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperatorProvisioner', - request='WatchAPIHostPorts', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchApplications(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperatorProvisioner', - request='WatchApplications', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class CAASUnitProvisionerFacade(Type): - name = 'CAASUnitProvisioner' - version = 1 - schema = {'definitions': {'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'ApplicationGetConfigResults': {'additionalProperties': False, - 'properties': {'Results': {'items': {'$ref': '#/definitions/ConfigResult'}, - 'type': 'array'}}, - 'required': ['Results'], - 'type': 'object'}, - 'ApplicationUnitParams': {'additionalProperties': False, - 'properties': {'address': {'type': 'string'}, - 'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'filesystem-info': {'items': {'$ref': '#/definitions/KubernetesFilesystemInfo'}, - 'type': 'array'}, - 'info': {'type': 'string'}, - 'ports': {'items': {'type': 'string'}, - 'type': 'array'}, - 'provider-id': {'type': 'string'}, - 'status': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['provider-id', - 'unit-tag', - 'address', - 'ports', - 'status', - 'info'], - 'type': 'object'}, - 'ConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['config'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'IntResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'integer'}}, - 'required': ['result'], - 'type': 'object'}, - 'IntResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/IntResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'KubernetesDeviceParams': {'additionalProperties': False, - 'properties': {'Attributes': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'Count': {'type': 'integer'}, - 'Type': {'type': 'string'}}, - 'required': ['Type', - 'Count', - 'Attributes'], - 'type': 'object'}, - 'KubernetesFilesystemAttachmentParams': {'additionalProperties': False, - 'properties': {'mount-point': {'type': 'string'}, - 'provider': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'required': ['provider'], - 'type': 'object'}, - 'KubernetesFilesystemInfo': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'filesystem-id': {'type': 'string'}, - 'info': {'type': 'string'}, - 'mount-point': {'type': 'string'}, - 'pool': {'type': 'string'}, - 'read-only': {'type': 'boolean'}, - 'size': {'type': 'integer'}, - 'status': {'type': 'string'}, - 'storagename': {'type': 'string'}, - 'volume': {'$ref': '#/definitions/KubernetesVolumeInfo'}}, - 'required': ['storagename', - 'pool', - 'size', - 'filesystem-id', - 'status', - 'info', - 'volume'], - 'type': 'object'}, - 'KubernetesFilesystemParams': {'additionalProperties': False, - 'properties': {'attachment': {'$ref': '#/definitions/KubernetesFilesystemAttachmentParams'}, - 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'provider': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'storagename': {'type': 'string'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['storagename', - 'size', - 'provider'], - 'type': 'object'}, - 'KubernetesProvisioningInfo': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}, - 'devices': {'items': {'$ref': '#/definitions/KubernetesDeviceParams'}, - 'type': 'array'}, - 'filesystems': {'items': {'$ref': '#/definitions/KubernetesFilesystemParams'}, - 'type': 'array'}, - 'placement': {'type': 'string'}, - 'pod-spec': {'type': 'string'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'volumes': {'items': {'$ref': '#/definitions/KubernetesVolumeParams'}, - 'type': 'array'}}, - 'required': ['pod-spec', - 'constraints'], - 'type': 'object'}, - 'KubernetesProvisioningInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/KubernetesProvisioningInfo'}}, - 'required': ['result'], - 'type': 'object'}, - 'KubernetesProvisioningInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/KubernetesProvisioningInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'KubernetesVolumeAttachmentParams': {'additionalProperties': False, - 'properties': {'provider': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'required': ['provider'], - 'type': 'object'}, - 'KubernetesVolumeInfo': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'persistent': {'type': 'boolean'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'status': {'type': 'string'}, - 'volume-id': {'type': 'string'}}, - 'required': ['volume-id', - 'size', - 'persistent', - 'status', - 'info'], - 'type': 'object'}, - 'KubernetesVolumeParams': {'additionalProperties': False, - 'properties': {'attachment': {'$ref': '#/definitions/KubernetesVolumeAttachmentParams'}, - 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'provider': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'storagename': {'type': 'string'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['storagename', - 'size', - 'provider'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'UpdateApplicationServiceArg': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, - 'type': 'array'}, - 'application-tag': {'type': 'string'}, - 'provider-id': {'type': 'string'}}, - 'required': ['application-tag', - 'provider-id', - 'addresses'], - 'type': 'object'}, - 'UpdateApplicationServiceArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/UpdateApplicationServiceArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'UpdateApplicationUnitArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/UpdateApplicationUnits'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'UpdateApplicationUnits': {'additionalProperties': False, - 'properties': {'application-tag': {'type': 'string'}, - 'units': {'items': {'$ref': '#/definitions/ApplicationUnitParams'}, - 'type': 'array'}}, - 'required': ['application-tag', - 'units'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'ApplicationsConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ApplicationGetConfigResults'}}, - 'type': 'object'}, - 'ApplicationsScale': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/IntResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'ProvisioningInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/KubernetesProvisioningInfoResults'}}, - 'type': 'object'}, - 'SetOperatorStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UpdateApplicationsService': {'properties': {'Params': {'$ref': '#/definitions/UpdateApplicationServiceArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UpdateApplicationsUnits': {'properties': {'Params': {'$ref': '#/definitions/UpdateApplicationUnitArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchApplications': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}, - 'WatchApplicationsScale': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchPodSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ApplicationGetConfigResults) - async def ApplicationsConfig(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ConfigResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASUnitProvisioner', - request='ApplicationsConfig', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(IntResults) - async def ApplicationsScale(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~IntResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASUnitProvisioner', - request='ApplicationsScale', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASUnitProvisioner', - request='Life', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(KubernetesProvisioningInfoResults) - async def ProvisioningInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~KubernetesProvisioningInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASUnitProvisioner', - request='ProvisioningInfo', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetOperatorStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASUnitProvisioner', - request='SetOperatorStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateApplicationsService(self, args): - ''' - args : typing.Sequence[~UpdateApplicationServiceArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASUnitProvisioner', - request='UpdateApplicationsService', - version=1, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateApplicationsUnits(self, args): - ''' - args : typing.Sequence[~UpdateApplicationUnits] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASUnitProvisioner', - request='UpdateApplicationsUnits', - version=1, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchApplications(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASUnitProvisioner', - request='WatchApplications', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchApplicationsScale(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASUnitProvisioner', - request='WatchApplicationsScale', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchPodSpec(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASUnitProvisioner', - request='WatchPodSpec', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class ClientFacade(Type): - name = 'Client' - version = 1 - schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, - 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, - 'type': 'array'}, - 'type': 'array'}}, - 'required': ['servers'], - 'type': 'object'}, - 'AddCharm': {'additionalProperties': False, - 'properties': {'channel': {'type': 'string'}, - 'url': {'type': 'string'}}, - 'required': ['url', 'channel'], - 'type': 'object'}, - 'AddCharmWithAuthorization': {'additionalProperties': False, - 'properties': {'channel': {'type': 'string'}, - 'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'url': {'type': 'string'}}, - 'required': ['url', - 'channel', - 'macaroon'], - 'type': 'object'}, - 'AddMachineParams': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, - 'type': 'array'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'container-type': {'type': 'string'}, - 'disks': {'items': {'$ref': '#/definitions/Constraints'}, - 'type': 'array'}, - 'hardware-characteristics': {'$ref': '#/definitions/HardwareCharacteristics'}, - 'instance-id': {'type': 'string'}, - 'jobs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'nonce': {'type': 'string'}, - 'parent-id': {'type': 'string'}, - 'placement': {'$ref': '#/definitions/Placement'}, - 'series': {'type': 'string'}}, - 'required': ['series', - 'constraints', - 'jobs', - 'parent-id', - 'container-type', - 'instance-id', - 'nonce', - 'hardware-characteristics', - 'addresses'], - 'type': 'object'}, - 'AddMachines': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/AddMachineParams'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'AddMachinesResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'machine': {'type': 'string'}}, - 'required': ['machine'], - 'type': 'object'}, - 'AddMachinesResults': {'additionalProperties': False, - 'properties': {'machines': {'items': {'$ref': '#/definitions/AddMachinesResult'}, - 'type': 'array'}}, - 'required': ['machines'], - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'AgentVersionResult': {'additionalProperties': False, - 'properties': {'version': {'$ref': '#/definitions/Number'}}, - 'required': ['version'], - 'type': 'object'}, - 'AllWatcherId': {'additionalProperties': False, - 'properties': {'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'ApplicationStatus': {'additionalProperties': False, - 'properties': {'can-upgrade-to': {'type': 'string'}, - 'charm': {'type': 'string'}, - 'err': {'additionalProperties': True, - 'type': 'object'}, - 'exposed': {'type': 'boolean'}, - 'life': {'type': 'string'}, - 'meter-statuses': {'patternProperties': {'.*': {'$ref': '#/definitions/MeterStatus'}}, - 'type': 'object'}, - 'relations': {'patternProperties': {'.*': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'series': {'type': 'string'}, - 'status': {'$ref': '#/definitions/DetailedStatus'}, - 'subordinate-to': {'items': {'type': 'string'}, - 'type': 'array'}, - 'units': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitStatus'}}, - 'type': 'object'}, - 'workload-version': {'type': 'string'}}, - 'required': ['charm', - 'series', - 'exposed', - 'life', - 'relations', - 'can-upgrade-to', - 'subordinate-to', - 'units', - 'meter-statuses', - 'status', - 'workload-version'], - 'type': 'object'}, - 'Binary': {'additionalProperties': False, - 'properties': {'Arch': {'type': 'string'}, - 'Number': {'$ref': '#/definitions/Number'}, - 'Series': {'type': 'string'}}, - 'required': ['Number', 'Series', 'Arch'], - 'type': 'object'}, - 'BundleChange': {'additionalProperties': False, - 'properties': {'args': {'items': {'additionalProperties': True, - 'type': 'object'}, - 'type': 'array'}, - 'id': {'type': 'string'}, - 'method': {'type': 'string'}, - 'requires': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['id', - 'method', - 'args', - 'requires'], - 'type': 'object'}, - 'BundleChangesParams': {'additionalProperties': False, - 'properties': {'yaml': {'type': 'string'}}, - 'required': ['yaml'], - 'type': 'object'}, - 'BundleChangesResults': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/BundleChange'}, - 'type': 'array'}, - 'errors': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'BytesResult': {'additionalProperties': False, - 'properties': {'result': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['result'], - 'type': 'object'}, - 'ConfigValue': {'additionalProperties': False, - 'properties': {'source': {'type': 'string'}, - 'value': {'additionalProperties': True, - 'type': 'object'}}, - 'required': ['value', 'source'], - 'type': 'object'}, - 'Constraints': {'additionalProperties': False, - 'properties': {'Count': {'type': 'integer'}, - 'Pool': {'type': 'string'}, - 'Size': {'type': 'integer'}}, - 'required': ['Pool', 'Size', 'Count'], - 'type': 'object'}, - 'DestroyMachines': {'additionalProperties': False, - 'properties': {'force': {'type': 'boolean'}, - 'machine-names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['machine-names', 'force'], - 'type': 'object'}, - 'DetailedStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'err': {'additionalProperties': True, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'kind': {'type': 'string'}, - 'life': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}, - 'version': {'type': 'string'}}, - 'required': ['status', - 'info', - 'data', - 'since', - 'kind', - 'version', - 'life'], - 'type': 'object'}, - 'EndpointStatus': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'name': {'type': 'string'}, - 'role': {'type': 'string'}, - 'subordinate': {'type': 'boolean'}}, - 'required': ['application', - 'name', - 'role', - 'subordinate'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'info', 'since'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'FindToolsParams': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'major': {'type': 'integer'}, - 'minor': {'type': 'integer'}, - 'number': {'$ref': '#/definitions/Number'}, - 'series': {'type': 'string'}}, - 'required': ['number', - 'major', - 'minor', - 'arch', - 'series'], - 'type': 'object'}, - 'FindToolsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'list': {'items': {'$ref': '#/definitions/Tools'}, - 'type': 'array'}}, - 'required': ['list'], - 'type': 'object'}, - 'FullStatus': {'additionalProperties': False, - 'properties': {'applications': {'patternProperties': {'.*': {'$ref': '#/definitions/ApplicationStatus'}}, - 'type': 'object'}, - 'machines': {'patternProperties': {'.*': {'$ref': '#/definitions/MachineStatus'}}, - 'type': 'object'}, - 'model': {'$ref': '#/definitions/ModelStatusInfo'}, - 'relations': {'items': {'$ref': '#/definitions/RelationStatus'}, - 'type': 'array'}, - 'remote-applications': {'patternProperties': {'.*': {'$ref': '#/definitions/RemoteApplicationStatus'}}, - 'type': 'object'}}, - 'required': ['model', - 'machines', - 'applications', - 'remote-applications', - 'relations'], - 'type': 'object'}, - 'GetConstraintsResults': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'HardwareCharacteristics': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cpu-cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'History': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'statuses': {'items': {'$ref': '#/definitions/DetailedStatus'}, - 'type': 'array'}}, - 'required': ['statuses'], - 'type': 'object'}, - 'HostPort': {'additionalProperties': False, - 'properties': {'Address': {'$ref': '#/definitions/Address'}, - 'port': {'type': 'integer'}}, - 'required': ['Address', 'port'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineHardware': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'MachineStatus': {'additionalProperties': False, - 'properties': {'agent-status': {'$ref': '#/definitions/DetailedStatus'}, - 'constraints': {'type': 'string'}, - 'containers': {'patternProperties': {'.*': {'$ref': '#/definitions/MachineStatus'}}, - 'type': 'object'}, - 'dns-name': {'type': 'string'}, - 'hardware': {'type': 'string'}, - 'has-vote': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'instance-id': {'type': 'string'}, - 'instance-status': {'$ref': '#/definitions/DetailedStatus'}, - 'ip-addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'jobs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'network-interfaces': {'patternProperties': {'.*': {'$ref': '#/definitions/NetworkInterface'}}, - 'type': 'object'}, - 'series': {'type': 'string'}, - 'wants-vote': {'type': 'boolean'}}, - 'required': ['agent-status', - 'instance-status', - 'dns-name', - 'instance-id', - 'series', - 'id', - 'containers', - 'constraints', - 'hardware', - 'jobs', - 'has-vote', - 'wants-vote'], - 'type': 'object'}, - 'MeterStatus': {'additionalProperties': False, - 'properties': {'color': {'type': 'string'}, - 'message': {'type': 'string'}}, - 'required': ['color', 'message'], - 'type': 'object'}, - 'ModelConfigResults': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelInfo': {'additionalProperties': False, - 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, - 'cloud-credential-tag': {'type': 'string'}, - 'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'controller-uuid': {'type': 'string'}, - 'default-series': {'type': 'string'}, - 'life': {'type': 'string'}, - 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, - 'type': 'array'}, - 'migration': {'$ref': '#/definitions/ModelMigrationStatus'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'provider-type': {'type': 'string'}, - 'sla': {'$ref': '#/definitions/ModelSLAInfo'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'users': {'items': {'$ref': '#/definitions/ModelUserInfo'}, - 'type': 'array'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', - 'uuid', - 'controller-uuid', - 'cloud-tag', - 'owner-tag', - 'life', - 'users', - 'machines', - 'sla', - 'agent-version'], - 'type': 'object'}, - 'ModelMachineInfo': {'additionalProperties': False, - 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'}, - 'has-vote': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'instance-id': {'type': 'string'}, - 'status': {'type': 'string'}, - 'wants-vote': {'type': 'boolean'}}, - 'required': ['id'], - 'type': 'object'}, - 'ModelMigrationStatus': {'additionalProperties': False, - 'properties': {'end': {'format': 'date-time', - 'type': 'string'}, - 'start': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'start'], - 'type': 'object'}, - 'ModelSLA': {'additionalProperties': False, - 'properties': {'ModelSLAInfo': {'$ref': '#/definitions/ModelSLAInfo'}, - 'creds': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['ModelSLAInfo', 'creds'], - 'type': 'object'}, - 'ModelSLAInfo': {'additionalProperties': False, - 'properties': {'level': {'type': 'string'}, - 'owner': {'type': 'string'}}, - 'required': ['level', 'owner'], - 'type': 'object'}, - 'ModelSet': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelStatusInfo': {'additionalProperties': False, - 'properties': {'available-version': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'meter-status': {'$ref': '#/definitions/MeterStatus'}, - 'model-status': {'$ref': '#/definitions/DetailedStatus'}, - 'name': {'type': 'string'}, - 'region': {'type': 'string'}, - 'sla': {'type': 'string'}, - 'version': {'type': 'string'}}, - 'required': ['name', - 'cloud-tag', - 'version', - 'available-version', - 'model-status', - 'meter-status', - 'sla'], - 'type': 'object'}, - 'ModelUnset': {'additionalProperties': False, - 'properties': {'keys': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['keys'], - 'type': 'object'}, - 'ModelUserInfo': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'display-name': {'type': 'string'}, - 'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'user': {'type': 'string'}}, - 'required': ['user', - 'display-name', - 'last-connection', - 'access'], - 'type': 'object'}, - 'ModelUserInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ModelUserInfo'}}, - 'type': 'object'}, - 'ModelUserInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ModelUserInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'NetworkInterface': {'additionalProperties': False, - 'properties': {'dns-nameservers': {'items': {'type': 'string'}, - 'type': 'array'}, - 'gateway': {'type': 'string'}, - 'ip-addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'is-up': {'type': 'boolean'}, - 'mac-address': {'type': 'string'}, - 'space': {'type': 'string'}}, - 'required': ['ip-addresses', - 'mac-address', - 'is-up'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'Placement': {'additionalProperties': False, - 'properties': {'directive': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['scope', 'directive'], - 'type': 'object'}, - 'PrivateAddress': {'additionalProperties': False, - 'properties': {'target': {'type': 'string'}}, - 'required': ['target'], - 'type': 'object'}, - 'PrivateAddressResults': {'additionalProperties': False, - 'properties': {'private-address': {'type': 'string'}}, - 'required': ['private-address'], - 'type': 'object'}, - 'ProvisioningScriptParams': {'additionalProperties': False, - 'properties': {'data-dir': {'type': 'string'}, - 'disable-package-commands': {'type': 'boolean'}, - 'machine-id': {'type': 'string'}, - 'nonce': {'type': 'string'}}, - 'required': ['machine-id', - 'nonce', - 'data-dir', - 'disable-package-commands'], - 'type': 'object'}, - 'ProvisioningScriptResult': {'additionalProperties': False, - 'properties': {'script': {'type': 'string'}}, - 'required': ['script'], - 'type': 'object'}, - 'PublicAddress': {'additionalProperties': False, - 'properties': {'target': {'type': 'string'}}, - 'required': ['target'], - 'type': 'object'}, - 'PublicAddressResults': {'additionalProperties': False, - 'properties': {'public-address': {'type': 'string'}}, - 'required': ['public-address'], - 'type': 'object'}, - 'RelationStatus': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'$ref': '#/definitions/EndpointStatus'}, - 'type': 'array'}, - 'id': {'type': 'integer'}, - 'interface': {'type': 'string'}, - 'key': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['id', - 'key', - 'interface', - 'scope', - 'endpoints'], - 'type': 'object'}, - 'RemoteApplicationStatus': {'additionalProperties': False, - 'properties': {'application-name': {'type': 'string'}, - 'application-url': {'type': 'string'}, - 'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'}, - 'type': 'array'}, - 'err': {'additionalProperties': True, - 'type': 'object'}, - 'life': {'type': 'string'}, - 'relations': {'patternProperties': {'.*': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'status': {'$ref': '#/definitions/DetailedStatus'}}, - 'required': ['application-url', - 'application-name', - 'endpoints', - 'life', - 'relations', - 'status'], - 'type': 'object'}, - 'RemoteEndpoint': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'limit', - 'scope'], - 'type': 'object'}, - 'ResolveCharmResult': {'additionalProperties': False, - 'properties': {'error': {'type': 'string'}, - 'url': {'type': 'string'}}, - 'type': 'object'}, - 'ResolveCharmResults': {'additionalProperties': False, - 'properties': {'urls': {'items': {'$ref': '#/definitions/ResolveCharmResult'}, - 'type': 'array'}}, - 'required': ['urls'], - 'type': 'object'}, - 'ResolveCharms': {'additionalProperties': False, - 'properties': {'references': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['references'], - 'type': 'object'}, - 'Resolved': {'additionalProperties': False, - 'properties': {'retry': {'type': 'boolean'}, - 'unit-name': {'type': 'string'}}, - 'required': ['unit-name', 'retry'], - 'type': 'object'}, - 'SetConstraints': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['application', 'constraints'], - 'type': 'object'}, - 'SetModelAgentVersion': {'additionalProperties': False, - 'properties': {'version': {'$ref': '#/definitions/Number'}}, - 'required': ['version'], - 'type': 'object'}, - 'StatusHistoryFilter': {'additionalProperties': False, - 'properties': {'date': {'format': 'date-time', - 'type': 'string'}, - 'delta': {'type': 'integer'}, - 'exclude': {'items': {'type': 'string'}, - 'type': 'array'}, - 'size': {'type': 'integer'}}, - 'required': ['size', - 'date', - 'delta', - 'exclude'], - 'type': 'object'}, - 'StatusHistoryRequest': {'additionalProperties': False, - 'properties': {'filter': {'$ref': '#/definitions/StatusHistoryFilter'}, - 'historyKind': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'tag': {'type': 'string'}}, - 'required': ['historyKind', - 'size', - 'filter', - 'tag'], - 'type': 'object'}, - 'StatusHistoryRequests': {'additionalProperties': False, - 'properties': {'requests': {'items': {'$ref': '#/definitions/StatusHistoryRequest'}, - 'type': 'array'}}, - 'required': ['requests'], - 'type': 'object'}, - 'StatusHistoryResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'history': {'$ref': '#/definitions/History'}}, - 'required': ['history'], - 'type': 'object'}, - 'StatusHistoryResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StatusHistoryResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StatusParams': {'additionalProperties': False, - 'properties': {'patterns': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['patterns'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'Tools': {'additionalProperties': False, - 'properties': {'sha256': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'url': {'type': 'string'}, - 'version': {'$ref': '#/definitions/Binary'}}, - 'required': ['version', 'url', 'size'], - 'type': 'object'}, - 'UnitStatus': {'additionalProperties': False, - 'properties': {'agent-status': {'$ref': '#/definitions/DetailedStatus'}, - 'charm': {'type': 'string'}, - 'leader': {'type': 'boolean'}, - 'machine': {'type': 'string'}, - 'opened-ports': {'items': {'type': 'string'}, - 'type': 'array'}, - 'public-address': {'type': 'string'}, - 'subordinates': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitStatus'}}, - 'type': 'object'}, - 'workload-status': {'$ref': '#/definitions/DetailedStatus'}, - 'workload-version': {'type': 'string'}}, - 'required': ['agent-status', - 'workload-status', - 'workload-version', - 'machine', - 'opened-ports', - 'public-address', - 'charm', - 'subordinates'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}}, - 'type': 'object'}}, - 'properties': {'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, - 'type': 'object'}, - 'AbortCurrentUpgrade': {'type': 'object'}, - 'AddCharm': {'properties': {'Params': {'$ref': '#/definitions/AddCharm'}}, - 'type': 'object'}, - 'AddCharmWithAuthorization': {'properties': {'Params': {'$ref': '#/definitions/AddCharmWithAuthorization'}}, - 'type': 'object'}, - 'AddMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, - 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, - 'type': 'object'}, - 'AddMachinesV2': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, - 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, - 'type': 'object'}, - 'AgentVersion': {'properties': {'Result': {'$ref': '#/definitions/AgentVersionResult'}}, - 'type': 'object'}, - 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, - 'type': 'object'}, - 'DestroyMachines': {'properties': {'Params': {'$ref': '#/definitions/DestroyMachines'}}, - 'type': 'object'}, - 'FindTools': {'properties': {'Params': {'$ref': '#/definitions/FindToolsParams'}, - 'Result': {'$ref': '#/definitions/FindToolsResult'}}, - 'type': 'object'}, - 'FullStatus': {'properties': {'Params': {'$ref': '#/definitions/StatusParams'}, - 'Result': {'$ref': '#/definitions/FullStatus'}}, - 'type': 'object'}, - 'GetBundleChanges': {'properties': {'Params': {'$ref': '#/definitions/BundleChangesParams'}, - 'Result': {'$ref': '#/definitions/BundleChangesResults'}}, - 'type': 'object'}, - 'GetModelConstraints': {'properties': {'Result': {'$ref': '#/definitions/GetConstraintsResults'}}, - 'type': 'object'}, - 'InjectMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, - 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, - 'type': 'object'}, - 'ModelGet': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}}, - 'type': 'object'}, - 'ModelInfo': {'properties': {'Result': {'$ref': '#/definitions/ModelInfo'}}, - 'type': 'object'}, - 'ModelSet': {'properties': {'Params': {'$ref': '#/definitions/ModelSet'}}, - 'type': 'object'}, - 'ModelUnset': {'properties': {'Params': {'$ref': '#/definitions/ModelUnset'}}, - 'type': 'object'}, - 'ModelUserInfo': {'properties': {'Result': {'$ref': '#/definitions/ModelUserInfoResults'}}, - 'type': 'object'}, - 'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/PrivateAddress'}, - 'Result': {'$ref': '#/definitions/PrivateAddressResults'}}, - 'type': 'object'}, - 'ProvisioningScript': {'properties': {'Params': {'$ref': '#/definitions/ProvisioningScriptParams'}, - 'Result': {'$ref': '#/definitions/ProvisioningScriptResult'}}, - 'type': 'object'}, - 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/PublicAddress'}, - 'Result': {'$ref': '#/definitions/PublicAddressResults'}}, - 'type': 'object'}, - 'ResolveCharms': {'properties': {'Params': {'$ref': '#/definitions/ResolveCharms'}, - 'Result': {'$ref': '#/definitions/ResolveCharmResults'}}, - 'type': 'object'}, - 'Resolved': {'properties': {'Params': {'$ref': '#/definitions/Resolved'}}, - 'type': 'object'}, - 'RetryProvisioning': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'SetModelAgentVersion': {'properties': {'Params': {'$ref': '#/definitions/SetModelAgentVersion'}}, - 'type': 'object'}, - 'SetModelConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, - 'type': 'object'}, - 'SetSLALevel': {'properties': {'Params': {'$ref': '#/definitions/ModelSLA'}}, - 'type': 'object'}, - 'StatusHistory': {'properties': {'Params': {'$ref': '#/definitions/StatusHistoryRequests'}, - 'Result': {'$ref': '#/definitions/StatusHistoryResults'}}, - 'type': 'object'}, - 'WatchAll': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherId'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(APIHostPortsResult) - async def APIHostPorts(self): - ''' - - Returns -> typing.Sequence[~HostPort] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='APIHostPorts', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def AbortCurrentUpgrade(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AbortCurrentUpgrade', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def AddCharm(self, channel, url): - ''' - channel : str - url : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AddCharm', - version=1, - params=_params) - _params['channel'] = channel - _params['url'] = url - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def AddCharmWithAuthorization(self, channel, macaroon, url): - ''' - channel : str - macaroon : Macaroon - url : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AddCharmWithAuthorization', - version=1, - params=_params) - _params['channel'] = channel - _params['macaroon'] = macaroon - _params['url'] = url - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddMachinesResults) - async def AddMachines(self, params): - ''' - params : typing.Sequence[~AddMachineParams] - Returns -> typing.Sequence[~AddMachinesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AddMachines', - version=1, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddMachinesResults) - async def AddMachinesV2(self, params): - ''' - params : typing.Sequence[~AddMachineParams] - Returns -> typing.Sequence[~AddMachinesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AddMachinesV2', - version=1, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AgentVersionResult) - async def AgentVersion(self): - ''' - - Returns -> Number - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AgentVersion', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BytesResult) - async def CACert(self): - ''' - - Returns -> typing.Sequence[int] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='CACert', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyMachines(self, force, machine_names): - ''' - force : bool - machine_names : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='DestroyMachines', - version=1, - params=_params) - _params['force'] = force - _params['machine-names'] = machine_names - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FindToolsResult) - async def FindTools(self, arch, major, minor, number, series): - ''' - arch : str - major : int - minor : int - number : Number - series : str - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[~Tools]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='FindTools', - version=1, - params=_params) - _params['arch'] = arch - _params['major'] = major - _params['minor'] = minor - _params['number'] = number - _params['series'] = series - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FullStatus) - async def FullStatus(self, patterns): - ''' - patterns : typing.Sequence[str] - Returns -> typing.Union[typing.Mapping[str, ~ApplicationStatus], str, typing.Mapping[str, ~MachineStatus], _ForwardRef('ModelStatusInfo'), typing.Mapping[str, ~ApplicationOfferStatus], typing.Sequence[~RelationStatus], typing.Mapping[str, ~RemoteApplicationStatus]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='FullStatus', - version=1, - params=_params) - _params['patterns'] = patterns - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BundleChangesResults) - async def GetBundleChanges(self, yaml): - ''' - yaml : str - Returns -> typing.Union[typing.Sequence[~BundleChange], typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='GetBundleChanges', - version=1, - params=_params) - _params['yaml'] = yaml - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(GetConstraintsResults) - async def GetModelConstraints(self): - ''' - - Returns -> Value - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='GetModelConstraints', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddMachinesResults) - async def InjectMachines(self, params): - ''' - params : typing.Sequence[~AddMachineParams] - Returns -> typing.Sequence[~AddMachinesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='InjectMachines', - version=1, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResults) - async def ModelGet(self): - ''' - - Returns -> typing.Mapping[str, ~ConfigValue] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ModelGet', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelInfo) - async def ModelInfo(self): - ''' - - Returns -> typing.Union[_ForwardRef('Number'), str, typing.Sequence[~ModelMachineInfo], _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence[~ModelUserInfo]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ModelInfo', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ModelSet(self, config): - ''' - config : typing.Mapping[str, typing.Any] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ModelSet', - version=1, - params=_params) - _params['config'] = config - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ModelUnset(self, keys): - ''' - keys : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ModelUnset', - version=1, - params=_params) - _params['keys'] = keys - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelUserInfoResults) - async def ModelUserInfo(self): - ''' - - Returns -> typing.Sequence[~ModelUserInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ModelUserInfo', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(PrivateAddressResults) - async def PrivateAddress(self, target): - ''' - target : str - Returns -> str - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='PrivateAddress', - version=1, - params=_params) - _params['target'] = target - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ProvisioningScriptResult) - async def ProvisioningScript(self, data_dir, disable_package_commands, machine_id, nonce): - ''' - data_dir : str - disable_package_commands : bool - machine_id : str - nonce : str - Returns -> str - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ProvisioningScript', - version=1, - params=_params) - _params['data-dir'] = data_dir - _params['disable-package-commands'] = disable_package_commands - _params['machine-id'] = machine_id - _params['nonce'] = nonce - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(PublicAddressResults) - async def PublicAddress(self, target): - ''' - target : str - Returns -> str - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='PublicAddress', - version=1, - params=_params) - _params['target'] = target - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ResolveCharmResults) - async def ResolveCharms(self, references): - ''' - references : typing.Sequence[str] - Returns -> typing.Sequence[~ResolveCharmResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ResolveCharms', - version=1, - params=_params) - _params['references'] = references - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Resolved(self, retry, unit_name): - ''' - retry : bool - unit_name : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='Resolved', - version=1, - params=_params) - _params['retry'] = retry - _params['unit-name'] = unit_name - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RetryProvisioning(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='RetryProvisioning', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def SLALevel(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='SLALevel', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetModelAgentVersion(self, version): - ''' - version : Number - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='SetModelAgentVersion', - version=1, - params=_params) - _params['version'] = version - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetModelConstraints(self, application, constraints): - ''' - application : str - constraints : Value - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='SetModelConstraints', - version=1, - params=_params) - _params['application'] = application - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetSLALevel(self, creds, level): - ''' - creds : typing.Sequence[int] - level : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='SetSLALevel', - version=1, - params=_params) - _params['creds'] = creds - _params['level'] = level - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusHistoryResults) - async def StatusHistory(self, requests): - ''' - requests : typing.Sequence[~StatusHistoryRequest] - Returns -> typing.Sequence[~StatusHistoryResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='StatusHistory', - version=1, - params=_params) - _params['requests'] = requests - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AllWatcherId) - async def WatchAll(self): - ''' - - Returns -> str - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='WatchAll', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class CloudFacade(Type): - name = 'Cloud' - version = 1 - schema = {'definitions': {'Cloud': {'additionalProperties': False, - 'properties': {'auth-types': {'items': {'type': 'string'}, - 'type': 'array'}, - 'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'regions': {'items': {'$ref': '#/definitions/CloudRegion'}, - 'type': 'array'}, - 'storage-endpoint': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type'], - 'type': 'object'}, - 'CloudCredential': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'auth-type': {'type': 'string'}, - 'redacted': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['auth-type'], - 'type': 'object'}, - 'CloudCredentialResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/CloudCredential'}}, - 'type': 'object'}, - 'CloudCredentialResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CloudCredentialResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'CloudInstanceTypesConstraint': {'additionalProperties': False, - 'properties': {'cloud-tag': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'region': {'type': 'string'}}, - 'required': ['cloud-tag', - 'region'], - 'type': 'object'}, - 'CloudInstanceTypesConstraints': {'additionalProperties': False, - 'properties': {'constraints': {'items': {'$ref': '#/definitions/CloudInstanceTypesConstraint'}, - 'type': 'array'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'CloudRegion': {'additionalProperties': False, - 'properties': {'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'name': {'type': 'string'}, - 'storage-endpoint': {'type': 'string'}}, - 'required': ['name'], - 'type': 'object'}, - 'CloudResult': {'additionalProperties': False, - 'properties': {'cloud': {'$ref': '#/definitions/Cloud'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'CloudResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CloudResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'CloudsResult': {'additionalProperties': False, - 'properties': {'clouds': {'patternProperties': {'.*': {'$ref': '#/definitions/Cloud'}}, - 'type': 'object'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'InstanceType': {'additionalProperties': False, - 'properties': {'arches': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cost': {'type': 'integer'}, - 'cpu-cores': {'type': 'integer'}, - 'deprecated': {'type': 'boolean'}, - 'memory': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'root-disk': {'type': 'integer'}, - 'virt-type': {'type': 'string'}}, - 'required': ['arches', 'cpu-cores', 'memory'], - 'type': 'object'}, - 'InstanceTypesResult': {'additionalProperties': False, - 'properties': {'cost-currency': {'type': 'string'}, - 'cost-divisor': {'type': 'integer'}, - 'cost-unit': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'instance-types': {'items': {'$ref': '#/definitions/InstanceType'}, - 'type': 'array'}}, - 'type': 'object'}, - 'InstanceTypesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/InstanceTypesResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UpdateCloudCredential': {'additionalProperties': False, - 'properties': {'credential': {'$ref': '#/definitions/CloudCredential'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'credential'], - 'type': 'object'}, - 'UpdateCloudCredentials': {'additionalProperties': False, - 'properties': {'credentials': {'items': {'$ref': '#/definitions/UpdateCloudCredential'}, - 'type': 'array'}}, - 'type': 'object'}, - 'UserCloud': {'additionalProperties': False, - 'properties': {'cloud-tag': {'type': 'string'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag', 'cloud-tag'], - 'type': 'object'}, - 'UserClouds': {'additionalProperties': False, - 'properties': {'user-clouds': {'items': {'$ref': '#/definitions/UserCloud'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}}, - 'type': 'object'}}, - 'properties': {'Cloud': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/CloudResults'}}, - 'type': 'object'}, - 'Clouds': {'properties': {'Result': {'$ref': '#/definitions/CloudsResult'}}, - 'type': 'object'}, - 'Credential': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/CloudCredentialResults'}}, - 'type': 'object'}, - 'DefaultCloud': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'InstanceTypes': {'properties': {'Params': {'$ref': '#/definitions/CloudInstanceTypesConstraints'}, - 'Result': {'$ref': '#/definitions/InstanceTypesResults'}}, - 'type': 'object'}, - 'RevokeCredentials': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UpdateCredentials': {'properties': {'Params': {'$ref': '#/definitions/UpdateCloudCredentials'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UserCredentials': {'properties': {'Params': {'$ref': '#/definitions/UserClouds'}, - 'Result': {'$ref': '#/definitions/StringsResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(CloudResults) - async def Cloud(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~CloudResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='Cloud', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudsResult) - async def Clouds(self): - ''' - - Returns -> typing.Mapping[str, ~Cloud] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='Clouds', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudCredentialResults) - async def Credential(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~CloudCredentialResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='Credential', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def DefaultCloud(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='DefaultCloud', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(InstanceTypesResults) - async def InstanceTypes(self, constraints): - ''' - constraints : typing.Sequence[~CloudInstanceTypesConstraint] - Returns -> typing.Sequence[~InstanceTypesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='InstanceTypes', - version=1, - params=_params) - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RevokeCredentials(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='RevokeCredentials', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateCredentials(self, credentials): - ''' - credentials : typing.Sequence[~UpdateCloudCredential] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='UpdateCredentials', - version=1, - params=_params) - _params['credentials'] = credentials - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsResults) - async def UserCredentials(self, user_clouds): - ''' - user_clouds : typing.Sequence[~UserCloud] - Returns -> typing.Sequence[~StringsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='UserCredentials', - version=1, - params=_params) - _params['user-clouds'] = user_clouds - reply = await self.rpc(msg) - return reply - - - -class CredentialManagerFacade(Type): - name = 'CredentialManager' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'InvalidateCredentialArg': {'additionalProperties': False, - 'properties': {'reason': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, - 'properties': {'InvalidateModelCredential': {'properties': {'Params': {'$ref': '#/definitions/InvalidateCredentialArg'}, - 'Result': {'$ref': '#/definitions/ErrorResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResult) - async def InvalidateModelCredential(self, reason): - ''' - reason : str - Returns -> Error - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CredentialManager', - request='InvalidateModelCredential', - version=1, - params=_params) - _params['reason'] = reason - reply = await self.rpc(msg) - return reply - - - -class CrossControllerFacade(Type): - name = 'CrossController' - version = 1 - schema = {'definitions': {'ControllerAPIInfoResult': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cacert': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['addresses', - 'cacert'], - 'type': 'object'}, - 'ControllerAPIInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ControllerAPIInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'ControllerInfo': {'properties': {'Result': {'$ref': '#/definitions/ControllerAPIInfoResults'}}, - 'type': 'object'}, - 'WatchControllerInfo': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ControllerAPIInfoResults) - async def ControllerInfo(self): - ''' - - Returns -> typing.Sequence[~ControllerAPIInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CrossController', - request='ControllerInfo', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchControllerInfo(self): - ''' - - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CrossController', - request='WatchControllerInfo', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class CrossModelRelationsFacade(Type): - name = 'CrossModelRelations' - version = 1 - schema = {'definitions': {'EntityStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'info', 'since'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'IngressNetworksChangeEvent': {'additionalProperties': False, - 'properties': {'application-token': {'type': 'string'}, - 'ingress-required': {'type': 'boolean'}, - 'macaroons': {'items': {'$ref': '#/definitions/Macaroon'}, - 'type': 'array'}, - 'networks': {'items': {'type': 'string'}, - 'type': 'array'}, - 'relation-token': {'type': 'string'}}, - 'required': ['relation-token', - 'application-token', - 'ingress-required'], - 'type': 'object'}, - 'IngressNetworksChanges': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/IngressNetworksChangeEvent'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'OfferArg': {'additionalProperties': False, - 'properties': {'macaroons': {'items': {'$ref': '#/definitions/Macaroon'}, - 'type': 'array'}, - 'offer-uuid': {'type': 'string'}}, - 'required': ['offer-uuid'], - 'type': 'object'}, - 'OfferArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/OfferArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'OfferStatusChange': {'additionalProperties': False, - 'properties': {'offer-name': {'type': 'string'}, - 'status': {'$ref': '#/definitions/EntityStatus'}}, - 'required': ['offer-name', 'status'], - 'type': 'object'}, - 'OfferStatusWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/OfferStatusChange'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}, - 'OfferStatusWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/OfferStatusWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RegisterRemoteRelationArg': {'additionalProperties': False, - 'properties': {'application-token': {'type': 'string'}, - 'local-endpoint-name': {'type': 'string'}, - 'macaroons': {'items': {'$ref': '#/definitions/Macaroon'}, - 'type': 'array'}, - 'offer-uuid': {'type': 'string'}, - 'relation-token': {'type': 'string'}, - 'remote-endpoint': {'$ref': '#/definitions/RemoteEndpoint'}, - 'remote-space': {'$ref': '#/definitions/RemoteSpace'}, - 'source-model-tag': {'type': 'string'}}, - 'required': ['application-token', - 'source-model-tag', - 'relation-token', - 'remote-endpoint', - 'remote-space', - 'offer-uuid', - 'local-endpoint-name'], - 'type': 'object'}, - 'RegisterRemoteRelationArgs': {'additionalProperties': False, - 'properties': {'relations': {'items': {'$ref': '#/definitions/RegisterRemoteRelationArg'}, - 'type': 'array'}}, - 'required': ['relations'], - 'type': 'object'}, - 'RegisterRemoteRelationResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/RemoteRelationDetails'}}, - 'type': 'object'}, - 'RegisterRemoteRelationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RegisterRemoteRelationResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'RelationLifeSuspendedStatusChange': {'additionalProperties': False, - 'properties': {'key': {'type': 'string'}, - 'life': {'type': 'string'}, - 'suspended': {'type': 'boolean'}, - 'suspended-reason': {'type': 'string'}}, - 'required': ['key', - 'life', - 'suspended', - 'suspended-reason'], - 'type': 'object'}, - 'RelationLifeSuspendedStatusWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/RelationLifeSuspendedStatusChange'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}, - 'RelationStatusWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RelationLifeSuspendedStatusWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RelationUnitsChange': {'additionalProperties': False, - 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}}, - 'type': 'object'}, - 'departed': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['changed'], - 'type': 'object'}, - 'RelationUnitsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'$ref': '#/definitions/RelationUnitsChange'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}, - 'RelationUnitsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RelationUnitsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RemoteEndpoint': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'role': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'limit'], - 'type': 'object'}, - 'RemoteEntityArg': {'additionalProperties': False, - 'properties': {'macaroons': {'items': {'$ref': '#/definitions/Macaroon'}, - 'type': 'array'}, - 'relation-token': {'type': 'string'}}, - 'required': ['relation-token'], - 'type': 'object'}, - 'RemoteEntityArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/RemoteEntityArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'RemoteRelationChangeEvent': {'additionalProperties': False, - 'properties': {'application-token': {'type': 'string'}, - 'changed-units': {'items': {'$ref': '#/definitions/RemoteRelationUnitChange'}, - 'type': 'array'}, - 'departed-units': {'items': {'type': 'integer'}, - 'type': 'array'}, - 'force-cleanup': {'type': 'boolean'}, - 'life': {'type': 'string'}, - 'macaroons': {'items': {'$ref': '#/definitions/Macaroon'}, - 'type': 'array'}, - 'relation-token': {'type': 'string'}, - 'suspended': {'type': 'boolean'}, - 'suspended-reason': {'type': 'string'}}, - 'required': ['relation-token', - 'application-token', - 'life'], - 'type': 'object'}, - 'RemoteRelationDetails': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'relation-token': {'type': 'string'}}, - 'required': ['relation-token'], - 'type': 'object'}, - 'RemoteRelationUnit': {'additionalProperties': False, - 'properties': {'macaroons': {'items': {'$ref': '#/definitions/Macaroon'}, - 'type': 'array'}, - 'relation-token': {'type': 'string'}, - 'unit': {'type': 'string'}}, - 'required': ['relation-token', 'unit'], - 'type': 'object'}, - 'RemoteRelationUnitChange': {'additionalProperties': False, - 'properties': {'settings': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'unit-id': {'type': 'integer'}}, - 'required': ['unit-id'], - 'type': 'object'}, - 'RemoteRelationUnits': {'additionalProperties': False, - 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RemoteRelationUnit'}, - 'type': 'array'}}, - 'required': ['relation-units'], - 'type': 'object'}, - 'RemoteRelationsChanges': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/RemoteRelationChangeEvent'}, - 'type': 'array'}}, - 'type': 'object'}, - 'RemoteSpace': {'additionalProperties': False, - 'properties': {'cloud-type': {'type': 'string'}, - 'name': {'type': 'string'}, - 'provider-attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'provider-id': {'type': 'string'}, - 'subnets': {'items': {'$ref': '#/definitions/Subnet'}, - 'type': 'array'}}, - 'required': ['cloud-type', - 'name', - 'provider-id', - 'provider-attributes', - 'subnets'], - 'type': 'object'}, - 'SettingsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['settings'], - 'type': 'object'}, - 'SettingsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/SettingsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Subnet': {'additionalProperties': False, - 'properties': {'cidr': {'type': 'string'}, - 'life': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-network-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'space-tag': {'type': 'string'}, - 'status': {'type': 'string'}, - 'vlan-tag': {'type': 'integer'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['cidr', - 'vlan-tag', - 'life', - 'space-tag', - 'zones'], - 'type': 'object'}, - 'UnitSettings': {'additionalProperties': False, - 'properties': {'version': {'type': 'integer'}}, - 'required': ['version'], - 'type': 'object'}}, - 'properties': {'PublishIngressNetworkChanges': {'properties': {'Params': {'$ref': '#/definitions/IngressNetworksChanges'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'PublishRelationChanges': {'properties': {'Params': {'$ref': '#/definitions/RemoteRelationsChanges'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RegisterRemoteRelations': {'properties': {'Params': {'$ref': '#/definitions/RegisterRemoteRelationArgs'}, - 'Result': {'$ref': '#/definitions/RegisterRemoteRelationResults'}}, - 'type': 'object'}, - 'RelationUnitSettings': {'properties': {'Params': {'$ref': '#/definitions/RemoteRelationUnits'}, - 'Result': {'$ref': '#/definitions/SettingsResults'}}, - 'type': 'object'}, - 'WatchEgressAddressesForRelations': {'properties': {'Params': {'$ref': '#/definitions/RemoteEntityArgs'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchOfferStatus': {'properties': {'Params': {'$ref': '#/definitions/OfferArgs'}, - 'Result': {'$ref': '#/definitions/OfferStatusWatchResults'}}, - 'type': 'object'}, - 'WatchRelationUnits': {'properties': {'Params': {'$ref': '#/definitions/RemoteEntityArgs'}, - 'Result': {'$ref': '#/definitions/RelationUnitsWatchResults'}}, - 'type': 'object'}, - 'WatchRelationsSuspendedStatus': {'properties': {'Params': {'$ref': '#/definitions/RemoteEntityArgs'}, - 'Result': {'$ref': '#/definitions/RelationStatusWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def PublishIngressNetworkChanges(self, changes): - ''' - changes : typing.Sequence[~IngressNetworksChangeEvent] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CrossModelRelations', - request='PublishIngressNetworkChanges', - version=1, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def PublishRelationChanges(self, changes): - ''' - changes : typing.Sequence[~RemoteRelationChangeEvent] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CrossModelRelations', - request='PublishRelationChanges', - version=1, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RegisterRemoteRelationResults) - async def RegisterRemoteRelations(self, relations): - ''' - relations : typing.Sequence[~RegisterRemoteRelationArg] - Returns -> typing.Sequence[~RegisterRemoteRelationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CrossModelRelations', - request='RegisterRemoteRelations', - version=1, - params=_params) - _params['relations'] = relations - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SettingsResults) - async def RelationUnitSettings(self, relation_units): - ''' - relation_units : typing.Sequence[~RemoteRelationUnit] - Returns -> typing.Sequence[~SettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CrossModelRelations', - request='RelationUnitSettings', - version=1, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchEgressAddressesForRelations(self, args): - ''' - args : typing.Sequence[~RemoteEntityArg] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CrossModelRelations', - request='WatchEgressAddressesForRelations', - version=1, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(OfferStatusWatchResults) - async def WatchOfferStatus(self, args): - ''' - args : typing.Sequence[~OfferArg] - Returns -> typing.Sequence[~OfferStatusWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CrossModelRelations', - request='WatchOfferStatus', - version=1, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationUnitsWatchResults) - async def WatchRelationUnits(self, args): - ''' - args : typing.Sequence[~RemoteEntityArg] - Returns -> typing.Sequence[~RelationUnitsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CrossModelRelations', - request='WatchRelationUnits', - version=1, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationStatusWatchResults) - async def WatchRelationsSuspendedStatus(self, args): - ''' - args : typing.Sequence[~RemoteEntityArg] - Returns -> typing.Sequence[~RelationLifeSuspendedStatusWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CrossModelRelations', - request='WatchRelationsSuspendedStatus', - version=1, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - -class DeployerFacade(Type): - name = 'Deployer' - version = 1 - schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, - 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, - 'type': 'array'}, - 'type': 'array'}}, - 'required': ['servers'], - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'DeployerConnectionValues': {'additionalProperties': False, - 'properties': {'api-addresses': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['api-addresses'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityPassword': {'additionalProperties': False, - 'properties': {'password': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'password'], - 'type': 'object'}, - 'EntityPasswords': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'HostPort': {'additionalProperties': False, - 'properties': {'Address': {'$ref': '#/definitions/Address'}, - 'port': {'type': 'integer'}}, - 'required': ['Address', 'port'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, - 'type': 'object'}, - 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, - 'type': 'object'}, - 'ConnectionInfo': {'properties': {'Result': {'$ref': '#/definitions/DeployerConnectionValues'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'Remove': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetPasswords': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringsResult) - async def APIAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Deployer', - request='APIAddresses', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(APIHostPortsResult) - async def APIHostPorts(self): - ''' - - Returns -> typing.Sequence[~HostPort] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Deployer', - request='APIHostPorts', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DeployerConnectionValues) - async def ConnectionInfo(self): - ''' - - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Deployer', - request='ConnectionInfo', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Deployer', - request='Life', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ModelUUID(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Deployer', - request='ModelUUID', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Remove(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Deployer', - request='Remove', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetPasswords(self, changes): - ''' - changes : typing.Sequence[~EntityPassword] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Deployer', - request='SetPasswords', - version=1, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Deployer', - request='SetStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Deployer', - request='UpdateStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchAPIHostPorts(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Deployer', - request='WatchAPIHostPorts', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchUnits(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Deployer', - request='WatchUnits', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class ExternalControllerUpdaterFacade(Type): - name = 'ExternalControllerUpdater' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ExternalControllerInfo': {'additionalProperties': False, - 'properties': {'addrs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'ca-cert': {'type': 'string'}, - 'controller-alias': {'type': 'string'}, - 'controller-tag': {'type': 'string'}}, - 'required': ['controller-tag', - 'controller-alias', - 'addrs', - 'ca-cert'], - 'type': 'object'}, - 'ExternalControllerInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ExternalControllerInfo'}}, - 'required': ['result', - 'error'], - 'type': 'object'}, - 'ExternalControllerInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ExternalControllerInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'SetExternalControllerInfoParams': {'additionalProperties': False, - 'properties': {'info': {'$ref': '#/definitions/ExternalControllerInfo'}}, - 'required': ['info'], - 'type': 'object'}, - 'SetExternalControllersInfoParams': {'additionalProperties': False, - 'properties': {'controllers': {'items': {'$ref': '#/definitions/SetExternalControllerInfoParams'}, - 'type': 'array'}}, - 'required': ['controllers'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'ExternalControllerInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ExternalControllerInfoResults'}}, - 'type': 'object'}, - 'SetExternalControllerInfo': {'properties': {'Params': {'$ref': '#/definitions/SetExternalControllersInfoParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchExternalControllers': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ExternalControllerInfoResults) - async def ExternalControllerInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ExternalControllerInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ExternalControllerUpdater', - request='ExternalControllerInfo', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetExternalControllerInfo(self, controllers): - ''' - controllers : typing.Sequence[~SetExternalControllerInfoParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ExternalControllerUpdater', - request='SetExternalControllerInfo', - version=1, - params=_params) - _params['controllers'] = controllers - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchExternalControllers(self): - ''' - - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ExternalControllerUpdater', - request='WatchExternalControllers', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class FanConfigurerFacade(Type): - name = 'FanConfigurer' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'FanConfigEntry': {'additionalProperties': False, - 'properties': {'overlay': {'type': 'string'}, - 'underlay': {'type': 'string'}}, - 'required': ['underlay', 'overlay'], - 'type': 'object'}, - 'FanConfigResult': {'additionalProperties': False, - 'properties': {'fans': {'items': {'$ref': '#/definitions/FanConfigEntry'}, - 'type': 'array'}}, - 'required': ['fans'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}}, - 'properties': {'FanConfig': {'properties': {'Result': {'$ref': '#/definitions/FanConfigResult'}}, - 'type': 'object'}, - 'WatchForFanConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(FanConfigResult) - async def FanConfig(self): - ''' - - Returns -> typing.Sequence[~FanConfigEntry] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='FanConfigurer', - request='FanConfig', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForFanConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='FanConfigurer', - request='WatchForFanConfigChanges', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class FirewallRulesFacade(Type): - name = 'FirewallRules' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'FirewallRule': {'additionalProperties': False, - 'properties': {'known-service': {'type': 'string'}, - 'whitelist-cidrs': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['known-service'], - 'type': 'object'}, - 'FirewallRuleArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/FirewallRule'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'ListFirewallRulesResults': {'additionalProperties': False, - 'properties': {'Rules': {'items': {'$ref': '#/definitions/FirewallRule'}, - 'type': 'array'}}, - 'required': ['Rules'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, - 'properties': {'ListFirewallRules': {'properties': {'Result': {'$ref': '#/definitions/ListFirewallRulesResults'}}, - 'type': 'object'}, - 'SetFirewallRules': {'properties': {'Params': {'$ref': '#/definitions/FirewallRuleArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ListFirewallRulesResults) - async def ListFirewallRules(self): - ''' - - Returns -> typing.Sequence[~FirewallRule] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='FirewallRules', - request='ListFirewallRules', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetFirewallRules(self, args): - ''' - args : typing.Sequence[~FirewallRule] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='FirewallRules', - request='SetFirewallRules', - version=1, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - -class HostKeyReporterFacade(Type): - name = 'HostKeyReporter' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'SSHHostKeySet': {'additionalProperties': False, - 'properties': {'entity-keys': {'items': {'$ref': '#/definitions/SSHHostKeys'}, - 'type': 'array'}}, - 'required': ['entity-keys'], - 'type': 'object'}, - 'SSHHostKeys': {'additionalProperties': False, - 'properties': {'public-keys': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'public-keys'], - 'type': 'object'}}, - 'properties': {'ReportKeys': {'properties': {'Params': {'$ref': '#/definitions/SSHHostKeySet'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def ReportKeys(self, entity_keys): - ''' - entity_keys : typing.Sequence[~SSHHostKeys] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='HostKeyReporter', - request='ReportKeys', - version=1, - params=_params) - _params['entity-keys'] = entity_keys - reply = await self.rpc(msg) - return reply - - - -class KeyManagerFacade(Type): - name = 'KeyManager' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ListSSHKeys': {'additionalProperties': False, - 'properties': {'entities': {'$ref': '#/definitions/Entities'}, - 'mode': {'type': 'boolean'}}, - 'required': ['entities', 'mode'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModifyUserSSHKeys': {'additionalProperties': False, - 'properties': {'ssh-keys': {'items': {'type': 'string'}, - 'type': 'array'}, - 'user': {'type': 'string'}}, - 'required': ['user', 'ssh-keys'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'AddKeys': {'properties': {'Params': {'$ref': '#/definitions/ModifyUserSSHKeys'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'DeleteKeys': {'properties': {'Params': {'$ref': '#/definitions/ModifyUserSSHKeys'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ImportKeys': {'properties': {'Params': {'$ref': '#/definitions/ModifyUserSSHKeys'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ListKeys': {'properties': {'Params': {'$ref': '#/definitions/ListSSHKeys'}, - 'Result': {'$ref': '#/definitions/StringsResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def AddKeys(self, ssh_keys, user): - ''' - ssh_keys : typing.Sequence[str] - user : str - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='KeyManager', - request='AddKeys', - version=1, - params=_params) - _params['ssh-keys'] = ssh_keys - _params['user'] = user - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DeleteKeys(self, ssh_keys, user): - ''' - ssh_keys : typing.Sequence[str] - user : str - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='KeyManager', - request='DeleteKeys', - version=1, - params=_params) - _params['ssh-keys'] = ssh_keys - _params['user'] = user - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ImportKeys(self, ssh_keys, user): - ''' - ssh_keys : typing.Sequence[str] - user : str - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='KeyManager', - request='ImportKeys', - version=1, - params=_params) - _params['ssh-keys'] = ssh_keys - _params['user'] = user - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsResults) - async def ListKeys(self, entities, mode): - ''' - entities : Entities - mode : bool - Returns -> typing.Sequence[~StringsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='KeyManager', - request='ListKeys', - version=1, - params=_params) - _params['entities'] = entities - _params['mode'] = mode - reply = await self.rpc(msg) - return reply - - - -class KeyUpdaterFacade(Type): - name = 'KeyUpdater' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'AuthorisedKeys': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsResults'}}, - 'type': 'object'}, - 'WatchAuthorisedKeys': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringsResults) - async def AuthorisedKeys(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='KeyUpdater', - request='AuthorisedKeys', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchAuthorisedKeys(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='KeyUpdater', - request='WatchAuthorisedKeys', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class LifeFlagFacade(Type): - name = 'LifeFlag' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='LifeFlag', - request='Life', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def Watch(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='LifeFlag', - request='Watch', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class LogForwardingFacade(Type): - name = 'LogForwarding' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'LogForwardingGetLastSentParams': {'additionalProperties': False, - 'properties': {'ids': {'items': {'$ref': '#/definitions/LogForwardingID'}, - 'type': 'array'}}, - 'required': ['ids'], - 'type': 'object'}, - 'LogForwardingGetLastSentResult': {'additionalProperties': False, - 'properties': {'err': {'$ref': '#/definitions/Error'}, - 'record-id': {'type': 'integer'}, - 'record-timestamp': {'type': 'integer'}}, - 'required': ['record-id', - 'record-timestamp', - 'err'], - 'type': 'object'}, - 'LogForwardingGetLastSentResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LogForwardingGetLastSentResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'LogForwardingID': {'additionalProperties': False, - 'properties': {'model': {'type': 'string'}, - 'sink': {'type': 'string'}}, - 'required': ['model', 'sink'], - 'type': 'object'}, - 'LogForwardingSetLastSentParam': {'additionalProperties': False, - 'properties': {'LogForwardingID': {'$ref': '#/definitions/LogForwardingID'}, - 'record-id': {'type': 'integer'}, - 'record-timestamp': {'type': 'integer'}}, - 'required': ['LogForwardingID', - 'record-id', - 'record-timestamp'], - 'type': 'object'}, - 'LogForwardingSetLastSentParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/LogForwardingSetLastSentParam'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, - 'properties': {'GetLastSent': {'properties': {'Params': {'$ref': '#/definitions/LogForwardingGetLastSentParams'}, - 'Result': {'$ref': '#/definitions/LogForwardingGetLastSentResults'}}, - 'type': 'object'}, - 'SetLastSent': {'properties': {'Params': {'$ref': '#/definitions/LogForwardingSetLastSentParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(LogForwardingGetLastSentResults) - async def GetLastSent(self, ids): - ''' - ids : typing.Sequence[~LogForwardingID] - Returns -> typing.Sequence[~LogForwardingGetLastSentResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='LogForwarding', - request='GetLastSent', - version=1, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetLastSent(self, params): - ''' - params : typing.Sequence[~LogForwardingSetLastSentParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='LogForwarding', - request='SetLastSent', - version=1, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - -class LoggerFacade(Type): - name = 'Logger' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'LoggingConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'WatchLoggingConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringResults) - async def LoggingConfig(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Logger', - request='LoggingConfig', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchLoggingConfig(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Logger', - request='WatchLoggingConfig', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class MachineActionsFacade(Type): - name = 'MachineActions' - version = 1 - schema = {'definitions': {'Action': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'parameters': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'receiver': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'receiver', 'name'], - 'type': 'object'}, - 'ActionExecutionResult': {'additionalProperties': False, - 'properties': {'action-tag': {'type': 'string'}, - 'message': {'type': 'string'}, - 'results': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'status': {'type': 'string'}}, - 'required': ['action-tag', 'status'], - 'type': 'object'}, - 'ActionExecutionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ActionExecutionResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ActionResult': {'additionalProperties': False, - 'properties': {'action': {'$ref': '#/definitions/Action'}, - 'completed': {'format': 'date-time', - 'type': 'string'}, - 'enqueued': {'format': 'date-time', - 'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'message': {'type': 'string'}, - 'output': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'started': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'type': 'object'}, - 'ActionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ActionsByReceiver': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionResult'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'receiver': {'type': 'string'}}, - 'type': 'object'}, - 'ActionsByReceivers': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionsByReceiver'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'BeginActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'FinishActions': {'properties': {'Params': {'$ref': '#/definitions/ActionExecutionResults'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RunningActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, - 'type': 'object'}, - 'WatchActionNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ActionResults) - async def Actions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineActions', - request='Actions', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def BeginActions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineActions', - request='BeginActions', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def FinishActions(self, results): - ''' - results : typing.Sequence[~ActionExecutionResult] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineActions', - request='FinishActions', - version=1, - params=_params) - _params['results'] = results - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionsByReceivers) - async def RunningActions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionsByReceiver] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineActions', - request='RunningActions', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchActionNotifications(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineActions', - request='WatchActionNotifications', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class MachineUndertakerFacade(Type): - name = 'MachineUndertaker' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesResult': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/EntitiesResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ProviderInterfaceInfo': {'additionalProperties': False, - 'properties': {'interface-name': {'type': 'string'}, - 'mac-address': {'type': 'string'}, - 'provider-id': {'type': 'string'}}, - 'required': ['interface-name', - 'mac-address', - 'provider-id'], - 'type': 'object'}, - 'ProviderInterfaceInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'interfaces': {'items': {'$ref': '#/definitions/ProviderInterfaceInfo'}, - 'type': 'array'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['machine-tag', - 'interfaces'], - 'type': 'object'}, - 'ProviderInterfaceInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ProviderInterfaceInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'AllMachineRemovals': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/EntitiesResults'}}, - 'type': 'object'}, - 'CompleteMachineRemovals': {'properties': {'Params': {'$ref': '#/definitions/Entities'}}, - 'type': 'object'}, - 'GetMachineProviderInterfaceInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ProviderInterfaceInfoResults'}}, - 'type': 'object'}, - 'WatchMachineRemovals': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(EntitiesResults) - async def AllMachineRemovals(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~EntitiesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineUndertaker', - request='AllMachineRemovals', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def CompleteMachineRemovals(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineUndertaker', - request='CompleteMachineRemovals', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ProviderInterfaceInfoResults) - async def GetMachineProviderInterfaceInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ProviderInterfaceInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineUndertaker', - request='GetMachineProviderInterfaceInfo', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchMachineRemovals(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineUndertaker', - request='WatchMachineRemovals', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class MachinerFacade(Type): - name = 'Machiner' - version = 1 - schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, - 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, - 'type': 'array'}, - 'type': 'array'}}, - 'required': ['servers'], - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'HostPort': {'additionalProperties': False, - 'properties': {'Address': {'$ref': '#/definitions/Address'}, - 'port': {'type': 'integer'}}, - 'required': ['Address', 'port'], - 'type': 'object'}, - 'JobsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'jobs': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['jobs'], - 'type': 'object'}, - 'JobsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/JobsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineAddresses': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, - 'type': 'array'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'addresses'], - 'type': 'object'}, - 'NetworkConfig': {'additionalProperties': False, - 'properties': {'address': {'type': 'string'}, - 'cidr': {'type': 'string'}, - 'config-type': {'type': 'string'}, - 'device-index': {'type': 'integer'}, - 'disabled': {'type': 'boolean'}, - 'dns-search-domains': {'items': {'type': 'string'}, - 'type': 'array'}, - 'dns-servers': {'items': {'type': 'string'}, - 'type': 'array'}, - 'gateway-address': {'type': 'string'}, - 'interface-name': {'type': 'string'}, - 'interface-type': {'type': 'string'}, - 'is-default-gateway': {'type': 'boolean'}, - 'mac-address': {'type': 'string'}, - 'mtu': {'type': 'integer'}, - 'no-auto-start': {'type': 'boolean'}, - 'parent-interface-name': {'type': 'string'}, - 'provider-address-id': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'provider-subnet-id': {'type': 'string'}, - 'provider-vlan-id': {'type': 'string'}, - 'routes': {'items': {'$ref': '#/definitions/NetworkRoute'}, - 'type': 'array'}, - 'vlan-tag': {'type': 'integer'}}, - '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'], - 'type': 'object'}, - 'NetworkRoute': {'additionalProperties': False, - 'properties': {'destination-cidr': {'type': 'string'}, - 'gateway-ip': {'type': 'string'}, - 'metric': {'type': 'integer'}}, - 'required': ['destination-cidr', - 'gateway-ip', - 'metric'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SetMachineNetworkConfig': {'additionalProperties': False, - 'properties': {'config': {'items': {'$ref': '#/definitions/NetworkConfig'}, - 'type': 'array'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'config'], - 'type': 'object'}, - 'SetMachinesAddresses': {'additionalProperties': False, - 'properties': {'machine-addresses': {'items': {'$ref': '#/definitions/MachineAddresses'}, - 'type': 'array'}}, - 'required': ['machine-addresses'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, - 'type': 'object'}, - 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, - 'type': 'object'}, - 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Jobs': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/JobsResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'SetMachineAddresses': {'properties': {'Params': {'$ref': '#/definitions/SetMachinesAddresses'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetObservedNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/SetMachineNetworkConfig'}}, - 'type': 'object'}, - 'SetProviderNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringsResult) - async def APIAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='APIAddresses', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(APIHostPortsResult) - async def APIHostPorts(self): - ''' - - Returns -> typing.Sequence[~HostPort] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='APIHostPorts', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnsureDead(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='EnsureDead', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(JobsResults) - async def Jobs(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~JobsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='Jobs', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='Life', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ModelUUID(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='ModelUUID', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetMachineAddresses(self, machine_addresses): - ''' - machine_addresses : typing.Sequence[~MachineAddresses] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='SetMachineAddresses', - version=1, - params=_params) - _params['machine-addresses'] = machine_addresses - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetObservedNetworkConfig(self, config, tag): - ''' - config : typing.Sequence[~NetworkConfig] - tag : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='SetObservedNetworkConfig', - version=1, - params=_params) - _params['config'] = config - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetProviderNetworkConfig(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='SetProviderNetworkConfig', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='SetStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='UpdateStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def Watch(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='Watch', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchAPIHostPorts(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='WatchAPIHostPorts', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class MeterStatusFacade(Type): - name = 'MeterStatus' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MeterStatusResult': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'info': {'type': 'string'}}, - 'required': ['code', 'info'], - 'type': 'object'}, - 'MeterStatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MeterStatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'GetMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MeterStatusResults'}}, - 'type': 'object'}, - 'WatchMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(MeterStatusResults) - async def GetMeterStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MeterStatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MeterStatus', - request='GetMeterStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchMeterStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MeterStatus', - request='WatchMeterStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class MetricsManagerFacade(Type): - name = 'MetricsManager' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, - 'properties': {'AddJujuMachineMetrics': {'type': 'object'}, - 'CleanupOldMetrics': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SendMetrics': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(None) - async def AddJujuMachineMetrics(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MetricsManager', - request='AddJujuMachineMetrics', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def CleanupOldMetrics(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MetricsManager', - request='CleanupOldMetrics', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SendMetrics(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MetricsManager', - request='SendMetrics', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class MigrationFlagFacade(Type): - name = 'MigrationFlag' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'PhaseResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'phase': {'type': 'string'}}, - 'type': 'object'}, - 'PhaseResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/PhaseResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'Phase': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/PhaseResults'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(PhaseResults) - async def Phase(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~PhaseResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationFlag', - request='Phase', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def Watch(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationFlag', - request='Watch', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class MigrationMasterFacade(Type): - name = 'MigrationMaster' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MasterMigrationStatus': {'additionalProperties': False, - 'properties': {'migration-id': {'type': 'string'}, - 'phase': {'type': 'string'}, - 'phase-changed-time': {'format': 'date-time', - 'type': 'string'}, - 'spec': {'$ref': '#/definitions/MigrationSpec'}}, - 'required': ['spec', - 'migration-id', - 'phase', - 'phase-changed-time'], - 'type': 'object'}, - 'MigrationModelInfo': {'additionalProperties': False, - 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, - 'controller-agent-version': {'$ref': '#/definitions/Number'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['uuid', - 'name', - 'owner-tag', - 'agent-version', - 'controller-agent-version'], - 'type': 'object'}, - 'MigrationSpec': {'additionalProperties': False, - 'properties': {'model-tag': {'type': 'string'}, - 'target-info': {'$ref': '#/definitions/MigrationTargetInfo'}}, - 'required': ['model-tag', 'target-info'], - 'type': 'object'}, - 'MigrationTargetInfo': {'additionalProperties': False, - 'properties': {'addrs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'auth-tag': {'type': 'string'}, - 'ca-cert': {'type': 'string'}, - 'controller-tag': {'type': 'string'}, - 'macaroons': {'type': 'string'}, - 'password': {'type': 'string'}}, - 'required': ['controller-tag', - 'addrs', - 'ca-cert', - 'auth-tag'], - 'type': 'object'}, - 'MinionReports': {'additionalProperties': False, - 'properties': {'failed': {'items': {'type': 'string'}, - 'type': 'array'}, - 'migration-id': {'type': 'string'}, - 'phase': {'type': 'string'}, - 'success-count': {'type': 'integer'}, - 'unknown-count': {'type': 'integer'}, - 'unknown-sample': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['migration-id', - 'phase', - 'success-count', - 'unknown-count', - 'unknown-sample', - 'failed'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'SerializedModel': {'additionalProperties': False, - 'properties': {'bytes': {'items': {'type': 'integer'}, - 'type': 'array'}, - 'charms': {'items': {'type': 'string'}, - 'type': 'array'}, - 'resources': {'items': {'$ref': '#/definitions/SerializedModelResource'}, - 'type': 'array'}, - 'tools': {'items': {'$ref': '#/definitions/SerializedModelTools'}, - 'type': 'array'}}, - 'required': ['bytes', - 'charms', - 'tools', - 'resources'], - 'type': 'object'}, - 'SerializedModelResource': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'application-revision': {'$ref': '#/definitions/SerializedModelResourceRevision'}, - 'charmstore-revision': {'$ref': '#/definitions/SerializedModelResourceRevision'}, - 'name': {'type': 'string'}, - 'unit-revisions': {'patternProperties': {'.*': {'$ref': '#/definitions/SerializedModelResourceRevision'}}, - 'type': 'object'}}, - 'required': ['application', - 'name', - 'application-revision', - 'charmstore-revision', - 'unit-revisions'], - 'type': 'object'}, - 'SerializedModelResourceRevision': {'additionalProperties': False, - 'properties': {'description': {'type': 'string'}, - 'fingerprint': {'type': 'string'}, - 'origin': {'type': 'string'}, - 'path': {'type': 'string'}, - 'revision': {'type': 'integer'}, - 'size': {'type': 'integer'}, - 'timestamp': {'format': 'date-time', - 'type': 'string'}, - 'type': {'type': 'string'}, - 'username': {'type': 'string'}}, - 'required': ['revision', - 'type', - 'path', - 'description', - 'origin', - 'fingerprint', - 'size', - 'timestamp'], - 'type': 'object'}, - 'SerializedModelTools': {'additionalProperties': False, - 'properties': {'uri': {'type': 'string'}, - 'version': {'type': 'string'}}, - 'required': ['version', 'uri'], - 'type': 'object'}, - 'SetMigrationPhaseArgs': {'additionalProperties': False, - 'properties': {'phase': {'type': 'string'}}, - 'required': ['phase'], - 'type': 'object'}, - 'SetMigrationStatusMessageArgs': {'additionalProperties': False, - 'properties': {'message': {'type': 'string'}}, - 'required': ['message'], - 'type': 'object'}}, - 'properties': {'Export': {'properties': {'Result': {'$ref': '#/definitions/SerializedModel'}}, - 'type': 'object'}, - 'MigrationStatus': {'properties': {'Result': {'$ref': '#/definitions/MasterMigrationStatus'}}, - 'type': 'object'}, - 'MinionReports': {'properties': {'Result': {'$ref': '#/definitions/MinionReports'}}, - 'type': 'object'}, - 'ModelInfo': {'properties': {'Result': {'$ref': '#/definitions/MigrationModelInfo'}}, - 'type': 'object'}, - 'Prechecks': {'type': 'object'}, - 'Reap': {'type': 'object'}, - 'SetPhase': {'properties': {'Params': {'$ref': '#/definitions/SetMigrationPhaseArgs'}}, - 'type': 'object'}, - 'SetStatusMessage': {'properties': {'Params': {'$ref': '#/definitions/SetMigrationStatusMessageArgs'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchMinionReports': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(SerializedModel) - async def Export(self): - ''' - - Returns -> typing.Union[typing.Sequence[int], typing.Sequence[str], typing.Sequence[~SerializedModelTools]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMaster', - request='Export', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MasterMigrationStatus) - async def MigrationStatus(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('MigrationSpec')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMaster', - request='MigrationStatus', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MinionReports) - async def MinionReports(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], str, int] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMaster', - request='MinionReports', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MigrationModelInfo) - async def ModelInfo(self): - ''' - - Returns -> typing.Union[_ForwardRef('Number'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMaster', - request='ModelInfo', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Prechecks(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMaster', - request='Prechecks', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Reap(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMaster', - request='Reap', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetPhase(self, phase): - ''' - phase : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMaster', - request='SetPhase', - version=1, - params=_params) - _params['phase'] = phase - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetStatusMessage(self, message): - ''' - message : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMaster', - request='SetStatusMessage', - version=1, - params=_params) - _params['message'] = message - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def Watch(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMaster', - request='Watch', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchMinionReports(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMaster', - request='WatchMinionReports', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class MigrationMinionFacade(Type): - name = 'MigrationMinion' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MinionReport': {'additionalProperties': False, - 'properties': {'migration-id': {'type': 'string'}, - 'phase': {'type': 'string'}, - 'success': {'type': 'boolean'}}, - 'required': ['migration-id', - 'phase', - 'success'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}}, - 'properties': {'Report': {'properties': {'Params': {'$ref': '#/definitions/MinionReport'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(None) - async def Report(self, migration_id, phase, success): - ''' - migration_id : str - phase : str - success : bool - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMinion', - request='Report', - version=1, - params=_params) - _params['migration-id'] = migration_id - _params['phase'] = phase - _params['success'] = success - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def Watch(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMinion', - request='Watch', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class MigrationStatusWatcherFacade(Type): - name = 'MigrationStatusWatcher' - version = 1 - schema = {'definitions': {'MigrationStatus': {'additionalProperties': False, - 'properties': {'attempt': {'type': 'integer'}, - 'migration-id': {'type': 'string'}, - 'phase': {'type': 'string'}, - 'source-api-addrs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'source-ca-cert': {'type': 'string'}, - 'target-api-addrs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'target-ca-cert': {'type': 'string'}}, - 'required': ['migration-id', - 'attempt', - 'phase', - 'source-api-addrs', - 'source-ca-cert', - 'target-api-addrs', - 'target-ca-cert'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/MigrationStatus'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(MigrationStatus) - async def Next(self): - ''' - - Returns -> typing.Union[int, str, typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationStatusWatcher', - request='Next', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationStatusWatcher', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class MigrationTargetFacade(Type): - name = 'MigrationTarget' - version = 1 - schema = {'definitions': {'AdoptResourcesArgs': {'additionalProperties': False, - 'properties': {'model-tag': {'type': 'string'}, - 'source-controller-version': {'$ref': '#/definitions/Number'}}, - 'required': ['model-tag', - 'source-controller-version'], - 'type': 'object'}, - 'BytesResult': {'additionalProperties': False, - 'properties': {'result': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['result'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MigrationModelInfo': {'additionalProperties': False, - 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, - 'controller-agent-version': {'$ref': '#/definitions/Number'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['uuid', - 'name', - 'owner-tag', - 'agent-version', - 'controller-agent-version'], - 'type': 'object'}, - 'ModelArgs': {'additionalProperties': False, - 'properties': {'model-tag': {'type': 'string'}}, - 'required': ['model-tag'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'SerializedModel': {'additionalProperties': False, - 'properties': {'bytes': {'items': {'type': 'integer'}, - 'type': 'array'}, - 'charms': {'items': {'type': 'string'}, - 'type': 'array'}, - 'resources': {'items': {'$ref': '#/definitions/SerializedModelResource'}, - 'type': 'array'}, - 'tools': {'items': {'$ref': '#/definitions/SerializedModelTools'}, - 'type': 'array'}}, - 'required': ['bytes', - 'charms', - 'tools', - 'resources'], - 'type': 'object'}, - 'SerializedModelResource': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'application-revision': {'$ref': '#/definitions/SerializedModelResourceRevision'}, - 'charmstore-revision': {'$ref': '#/definitions/SerializedModelResourceRevision'}, - 'name': {'type': 'string'}, - 'unit-revisions': {'patternProperties': {'.*': {'$ref': '#/definitions/SerializedModelResourceRevision'}}, - 'type': 'object'}}, - 'required': ['application', - 'name', - 'application-revision', - 'charmstore-revision', - 'unit-revisions'], - 'type': 'object'}, - 'SerializedModelResourceRevision': {'additionalProperties': False, - 'properties': {'description': {'type': 'string'}, - 'fingerprint': {'type': 'string'}, - 'origin': {'type': 'string'}, - 'path': {'type': 'string'}, - 'revision': {'type': 'integer'}, - 'size': {'type': 'integer'}, - 'timestamp': {'format': 'date-time', - 'type': 'string'}, - 'type': {'type': 'string'}, - 'username': {'type': 'string'}}, - 'required': ['revision', - 'type', - 'path', - 'description', - 'origin', - 'fingerprint', - 'size', - 'timestamp'], - 'type': 'object'}, - 'SerializedModelTools': {'additionalProperties': False, - 'properties': {'uri': {'type': 'string'}, - 'version': {'type': 'string'}}, - 'required': ['version', 'uri'], - 'type': 'object'}}, - 'properties': {'Abort': {'properties': {'Params': {'$ref': '#/definitions/ModelArgs'}}, - 'type': 'object'}, - 'Activate': {'properties': {'Params': {'$ref': '#/definitions/ModelArgs'}}, - 'type': 'object'}, - 'AdoptResources': {'properties': {'Params': {'$ref': '#/definitions/AdoptResourcesArgs'}}, - 'type': 'object'}, - 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, - 'type': 'object'}, - 'CheckMachines': {'properties': {'Params': {'$ref': '#/definitions/ModelArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Import': {'properties': {'Params': {'$ref': '#/definitions/SerializedModel'}}, - 'type': 'object'}, - 'LatestLogTime': {'properties': {'Params': {'$ref': '#/definitions/ModelArgs'}, - 'Result': {'format': 'date-time', - 'type': 'string'}}, - 'type': 'object'}, - 'Prechecks': {'properties': {'Params': {'$ref': '#/definitions/MigrationModelInfo'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(None) - async def Abort(self, model_tag): - ''' - model_tag : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationTarget', - request='Abort', - version=1, - params=_params) - _params['model-tag'] = model_tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Activate(self, model_tag): - ''' - model_tag : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationTarget', - request='Activate', - version=1, - params=_params) - _params['model-tag'] = model_tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def AdoptResources(self, model_tag, source_controller_version): - ''' - model_tag : str - source_controller_version : Number - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationTarget', - request='AdoptResources', - version=1, - params=_params) - _params['model-tag'] = model_tag - _params['source-controller-version'] = source_controller_version - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BytesResult) - async def CACert(self): - ''' - - Returns -> typing.Sequence[int] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationTarget', - request='CACert', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def CheckMachines(self, model_tag): - ''' - model_tag : str - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationTarget', - request='CheckMachines', - version=1, - params=_params) - _params['model-tag'] = model_tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Import(self, bytes_, charms, tools): - ''' - bytes_ : typing.Sequence[int] - charms : typing.Sequence[str] - tools : typing.Sequence[~SerializedModelTools] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationTarget', - request='Import', - version=1, - params=_params) - _params['bytes'] = bytes_ - _params['charms'] = charms - _params['tools'] = tools - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(str) - async def LatestLogTime(self, model_tag): - ''' - model_tag : str - Returns -> str - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationTarget', - request='LatestLogTime', - version=1, - params=_params) - _params['model-tag'] = model_tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Prechecks(self, agent_version, name, owner_tag, uuid): - ''' - agent_version : Number - name : str - owner_tag : str - uuid : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationTarget', - request='Prechecks', - version=1, - params=_params) - _params['agent-version'] = agent_version - _params['name'] = name - _params['owner-tag'] = owner_tag - _params['uuid'] = uuid - reply = await self.rpc(msg) - return reply - - - -class ModelConfigFacade(Type): - name = 'ModelConfig' - version = 1 - schema = {'definitions': {'ConfigValue': {'additionalProperties': False, - 'properties': {'source': {'type': 'string'}, - 'value': {'additionalProperties': True, - 'type': 'object'}}, - 'required': ['value', 'source'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelConfigResults': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelSLA': {'additionalProperties': False, - 'properties': {'ModelSLAInfo': {'$ref': '#/definitions/ModelSLAInfo'}, - 'creds': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['ModelSLAInfo', 'creds'], - 'type': 'object'}, - 'ModelSLAInfo': {'additionalProperties': False, - 'properties': {'level': {'type': 'string'}, - 'owner': {'type': 'string'}}, - 'required': ['level', 'owner'], - 'type': 'object'}, - 'ModelSet': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelUnset': {'additionalProperties': False, - 'properties': {'keys': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['keys'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}}, - 'properties': {'ModelGet': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}}, - 'type': 'object'}, - 'ModelSet': {'properties': {'Params': {'$ref': '#/definitions/ModelSet'}}, - 'type': 'object'}, - 'ModelUnset': {'properties': {'Params': {'$ref': '#/definitions/ModelUnset'}}, - 'type': 'object'}, - 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'SetSLALevel': {'properties': {'Params': {'$ref': '#/definitions/ModelSLA'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ModelConfigResults) - async def ModelGet(self): - ''' - - Returns -> typing.Mapping[str, ~ConfigValue] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelConfig', - request='ModelGet', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ModelSet(self, config): - ''' - config : typing.Mapping[str, typing.Any] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelConfig', - request='ModelSet', - version=1, - params=_params) - _params['config'] = config - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ModelUnset(self, keys): - ''' - keys : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelConfig', - request='ModelUnset', - version=1, - params=_params) - _params['keys'] = keys - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def SLALevel(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelConfig', - request='SLALevel', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetSLALevel(self, creds, level): - ''' - creds : typing.Sequence[int] - level : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelConfig', - request='SetSLALevel', - version=1, - params=_params) - _params['creds'] = creds - _params['level'] = level - reply = await self.rpc(msg) - return reply - - - -class ModelUpgraderFacade(Type): - name = 'ModelUpgrader' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'IntResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'integer'}}, - 'required': ['result'], - 'type': 'object'}, - 'IntResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/IntResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SetModelEnvironVersion': {'additionalProperties': False, - 'properties': {'model-tag': {'type': 'string'}, - 'version': {'type': 'integer'}}, - 'required': ['model-tag', - 'version'], - 'type': 'object'}, - 'SetModelEnvironVersions': {'additionalProperties': False, - 'properties': {'models': {'items': {'$ref': '#/definitions/SetModelEnvironVersion'}, - 'type': 'array'}}, - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}}, - 'properties': {'ModelEnvironVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/IntResults'}}, - 'type': 'object'}, - 'ModelTargetEnvironVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/IntResults'}}, - 'type': 'object'}, - 'SetModelEnvironVersion': {'properties': {'Params': {'$ref': '#/definitions/SetModelEnvironVersions'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetModelStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchModelEnvironVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(IntResults) - async def ModelEnvironVersion(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~IntResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelUpgrader', - request='ModelEnvironVersion', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(IntResults) - async def ModelTargetEnvironVersion(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~IntResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelUpgrader', - request='ModelTargetEnvironVersion', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetModelEnvironVersion(self, models): - ''' - models : typing.Sequence[~SetModelEnvironVersion] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelUpgrader', - request='SetModelEnvironVersion', - version=1, - params=_params) - _params['models'] = models - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetModelStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelUpgrader', - request='SetModelStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchModelEnvironVersion(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelUpgrader', - request='WatchModelEnvironVersion', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class NotifyWatcherFacade(Type): - name = 'NotifyWatcher' - version = 1 - schema = {'properties': {'Next': {'type': 'object'}, 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(None) - async def Next(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='NotifyWatcher', - request='Next', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='NotifyWatcher', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class OfferStatusWatcherFacade(Type): - name = 'OfferStatusWatcher' - version = 1 - schema = {'definitions': {'EntityStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'info', 'since'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'OfferStatusChange': {'additionalProperties': False, - 'properties': {'offer-name': {'type': 'string'}, - 'status': {'$ref': '#/definitions/EntityStatus'}}, - 'required': ['offer-name', 'status'], - 'type': 'object'}, - 'OfferStatusWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/OfferStatusChange'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/OfferStatusWatchResult'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(OfferStatusWatchResult) - async def Next(self): - ''' - - Returns -> typing.Union[typing.Sequence[~OfferStatusChange], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='OfferStatusWatcher', - request='Next', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='OfferStatusWatcher', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class PayloadsFacade(Type): - name = 'Payloads' - version = 1 - schema = {'definitions': {'Payload': {'additionalProperties': False, - 'properties': {'class': {'type': 'string'}, - 'id': {'type': 'string'}, - 'labels': {'items': {'type': 'string'}, - 'type': 'array'}, - 'machine': {'type': 'string'}, - 'status': {'type': 'string'}, - 'type': {'type': 'string'}, - 'unit': {'type': 'string'}}, - 'required': ['class', - 'type', - 'id', - 'status', - 'labels', - 'unit', - 'machine'], - 'type': 'object'}, - 'PayloadListArgs': {'additionalProperties': False, - 'properties': {'patterns': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['patterns'], - 'type': 'object'}, - 'PayloadListResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/Payload'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'List': {'properties': {'Params': {'$ref': '#/definitions/PayloadListArgs'}, - 'Result': {'$ref': '#/definitions/PayloadListResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(PayloadListResults) - async def List(self, patterns): - ''' - patterns : typing.Sequence[str] - Returns -> typing.Sequence[~Payload] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Payloads', - request='List', - version=1, - params=_params) - _params['patterns'] = patterns - reply = await self.rpc(msg) - return reply - - - -class PayloadsHookContextFacade(Type): - name = 'PayloadsHookContext' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'LookUpPayloadArg': {'additionalProperties': False, - 'properties': {'id': {'type': 'string'}, - 'name': {'type': 'string'}}, - 'required': ['name', 'id'], - 'type': 'object'}, - 'LookUpPayloadArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/LookUpPayloadArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Payload': {'additionalProperties': False, - 'properties': {'class': {'type': 'string'}, - 'id': {'type': 'string'}, - 'labels': {'items': {'type': 'string'}, - 'type': 'array'}, - 'machine': {'type': 'string'}, - 'status': {'type': 'string'}, - 'type': {'type': 'string'}, - 'unit': {'type': 'string'}}, - 'required': ['class', - 'type', - 'id', - 'status', - 'labels', - 'unit', - 'machine'], - 'type': 'object'}, - 'PayloadResult': {'additionalProperties': False, - 'properties': {'Entity': {'$ref': '#/definitions/Entity'}, - 'error': {'$ref': '#/definitions/Error'}, - 'not-found': {'type': 'boolean'}, - 'payload': {'$ref': '#/definitions/Payload'}}, - 'required': ['Entity', - 'payload', - 'not-found'], - 'type': 'object'}, - 'PayloadResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/PayloadResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SetPayloadStatusArg': {'additionalProperties': False, - 'properties': {'Entity': {'$ref': '#/definitions/Entity'}, - 'status': {'type': 'string'}}, - 'required': ['Entity', 'status'], - 'type': 'object'}, - 'SetPayloadStatusArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/SetPayloadStatusArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'TrackPayloadArgs': {'additionalProperties': False, - 'properties': {'payloads': {'items': {'$ref': '#/definitions/Payload'}, - 'type': 'array'}}, - 'required': ['payloads'], - 'type': 'object'}}, - 'properties': {'List': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/PayloadResults'}}, - 'type': 'object'}, - 'LookUp': {'properties': {'Params': {'$ref': '#/definitions/LookUpPayloadArgs'}, - 'Result': {'$ref': '#/definitions/PayloadResults'}}, - 'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetPayloadStatusArgs'}, - 'Result': {'$ref': '#/definitions/PayloadResults'}}, - 'type': 'object'}, - 'Track': {'properties': {'Params': {'$ref': '#/definitions/TrackPayloadArgs'}, - 'Result': {'$ref': '#/definitions/PayloadResults'}}, - 'type': 'object'}, - 'Untrack': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/PayloadResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(PayloadResults) - async def List(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~PayloadResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='PayloadsHookContext', - request='List', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(PayloadResults) - async def LookUp(self, args): - ''' - args : typing.Sequence[~LookUpPayloadArg] - Returns -> typing.Sequence[~PayloadResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='PayloadsHookContext', - request='LookUp', - version=1, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(PayloadResults) - async def SetStatus(self, args): - ''' - args : typing.Sequence[~SetPayloadStatusArg] - Returns -> typing.Sequence[~PayloadResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='PayloadsHookContext', - request='SetStatus', - version=1, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(PayloadResults) - async def Track(self, payloads): - ''' - payloads : typing.Sequence[~Payload] - Returns -> typing.Sequence[~PayloadResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='PayloadsHookContext', - request='Track', - version=1, - params=_params) - _params['payloads'] = payloads - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(PayloadResults) - async def Untrack(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~PayloadResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='PayloadsHookContext', - request='Untrack', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class PingerFacade(Type): - name = 'Pinger' - version = 1 - schema = {'properties': {'Ping': {'type': 'object'}, 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(None) - async def Ping(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Pinger', - request='Ping', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Pinger', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class ProxyUpdaterFacade(Type): - name = 'ProxyUpdater' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ProxyConfig': {'additionalProperties': False, - 'properties': {'ftp': {'type': 'string'}, - 'http': {'type': 'string'}, - 'https': {'type': 'string'}, - 'no-proxy': {'type': 'string'}}, - 'required': ['http', - 'https', - 'ftp', - 'no-proxy'], - 'type': 'object'}, - 'ProxyConfigResult': {'additionalProperties': False, - 'properties': {'apt-proxy-settings': {'$ref': '#/definitions/ProxyConfig'}, - 'error': {'$ref': '#/definitions/Error'}, - 'proxy-settings': {'$ref': '#/definitions/ProxyConfig'}}, - 'required': ['proxy-settings', - 'apt-proxy-settings'], - 'type': 'object'}, - 'ProxyConfigResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ProxyConfigResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'ProxyConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ProxyConfigResults'}}, - 'type': 'object'}, - 'WatchForProxyConfigAndAPIHostPortChanges': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ProxyConfigResults) - async def ProxyConfig(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ProxyConfigResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ProxyUpdater', - request='ProxyConfig', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchForProxyConfigAndAPIHostPortChanges(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ProxyUpdater', - request='WatchForProxyConfigAndAPIHostPortChanges', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class RelationStatusWatcherFacade(Type): - name = 'RelationStatusWatcher' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'RelationLifeSuspendedStatusChange': {'additionalProperties': False, - 'properties': {'key': {'type': 'string'}, - 'life': {'type': 'string'}, - 'suspended': {'type': 'boolean'}, - 'suspended-reason': {'type': 'string'}}, - 'required': ['key', - 'life', - 'suspended', - 'suspended-reason'], - 'type': 'object'}, - 'RelationLifeSuspendedStatusWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/RelationLifeSuspendedStatusChange'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/RelationLifeSuspendedStatusWatchResult'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(RelationLifeSuspendedStatusWatchResult) - async def Next(self): - ''' - - Returns -> typing.Union[typing.Sequence[~RelationLifeSuspendedStatusChange], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RelationStatusWatcher', - request='Next', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RelationStatusWatcher', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class RelationUnitsWatcherFacade(Type): - name = 'RelationUnitsWatcher' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'RelationUnitsChange': {'additionalProperties': False, - 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}}, - 'type': 'object'}, - 'departed': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['changed'], - 'type': 'object'}, - 'RelationUnitsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'$ref': '#/definitions/RelationUnitsChange'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}, - 'UnitSettings': {'additionalProperties': False, - 'properties': {'version': {'type': 'integer'}}, - 'required': ['version'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/RelationUnitsWatchResult'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(RelationUnitsWatchResult) - async def Next(self): - ''' - - Returns -> typing.Union[_ForwardRef('RelationUnitsChange'), _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RelationUnitsWatcher', - request='Next', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RelationUnitsWatcher', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class RemoteApplicationWatcherFacade(Type): - name = 'RemoteApplicationWatcher' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'RemoteApplicationChange': {'additionalProperties': False, - 'properties': {'application-tag': {'type': 'string'}, - 'life': {'type': 'string'}, - 'relations': {'$ref': '#/definitions/RemoteRelationsChange'}}, - 'required': ['application-tag', - 'life', - 'relations'], - 'type': 'object'}, - 'RemoteApplicationWatchResult': {'additionalProperties': False, - 'properties': {'change': {'$ref': '#/definitions/RemoteApplicationChange'}, - 'error': {'$ref': '#/definitions/Error'}, - 'id': {'type': 'string'}}, - 'required': ['id'], - 'type': 'object'}, - 'RemoteEntityId': {'additionalProperties': False, - 'properties': {'model-uuid': {'type': 'string'}, - 'token': {'type': 'string'}}, - 'required': ['model-uuid', 'token'], - 'type': 'object'}, - 'RemoteRelationChange': {'additionalProperties': False, - 'properties': {'changed-units': {'patternProperties': {'.*': {'$ref': '#/definitions/RemoteRelationUnitChange'}}, - 'type': 'object'}, - 'departed-units': {'items': {'type': 'string'}, - 'type': 'array'}, - 'id': {'type': 'integer'}, - 'life': {'type': 'string'}}, - 'required': ['id', 'life'], - 'type': 'object'}, - 'RemoteRelationUnitChange': {'additionalProperties': False, - 'properties': {'settings': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'unit-id': {'$ref': '#/definitions/RemoteEntityId'}}, - 'required': ['unit-id'], - 'type': 'object'}, - 'RemoteRelationsChange': {'additionalProperties': False, - 'properties': {'changed': {'items': {'$ref': '#/definitions/RemoteRelationChange'}, - 'type': 'array'}, - 'initial': {'type': 'boolean'}, - 'removed': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['initial'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/RemoteApplicationWatchResult'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(RemoteApplicationWatchResult) - async def Next(self): - ''' - - Returns -> typing.Union[_ForwardRef('RemoteApplicationChange'), _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteApplicationWatcher', - request='Next', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteApplicationWatcher', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class RemoteRelationsFacade(Type): - name = 'RemoteRelations' - version = 1 - schema = {'definitions': {'ControllerAPIInfoResult': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cacert': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['addresses', - 'cacert'], - 'type': 'object'}, - 'ControllerAPIInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ControllerAPIInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ControllerConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityMacaroonArg': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'tag': {'type': 'string'}}, - 'required': ['macaroon', 'tag'], - 'type': 'object'}, - 'EntityMacaroonArgs': {'additionalProperties': False, - 'properties': {'Args': {'items': {'$ref': '#/definitions/EntityMacaroonArg'}, - 'type': 'array'}}, - 'required': ['Args'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GetTokenArg': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'GetTokenArgs': {'additionalProperties': False, - 'properties': {'Args': {'items': {'$ref': '#/definitions/GetTokenArg'}, - 'type': 'array'}}, - 'required': ['Args'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'RelationUnit': {'additionalProperties': False, - 'properties': {'relation': {'type': 'string'}, - 'unit': {'type': 'string'}}, - 'required': ['relation', 'unit'], - 'type': 'object'}, - 'RelationUnits': {'additionalProperties': False, - 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnit'}, - 'type': 'array'}}, - 'required': ['relation-units'], - 'type': 'object'}, - 'RelationUnitsChange': {'additionalProperties': False, - 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}}, - 'type': 'object'}, - 'departed': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['changed'], - 'type': 'object'}, - 'RelationUnitsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'$ref': '#/definitions/RelationUnitsChange'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}, - 'RelationUnitsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RelationUnitsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RemoteApplication': {'additionalProperties': False, - 'properties': {'is-consumer-proxy': {'type': 'boolean'}, - 'life': {'type': 'string'}, - 'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'model-uuid': {'type': 'string'}, - 'name': {'type': 'string'}, - 'offer-uuid': {'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['name', - 'offer-uuid', - 'model-uuid', - 'is-consumer-proxy'], - 'type': 'object'}, - 'RemoteApplicationResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/RemoteApplication'}}, - 'type': 'object'}, - 'RemoteApplicationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RemoteApplicationResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'RemoteEndpoint': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'role': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'limit'], - 'type': 'object'}, - 'RemoteEntityTokenArg': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}, - 'token': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'RemoteEntityTokenArgs': {'additionalProperties': False, - 'properties': {'Args': {'items': {'$ref': '#/definitions/RemoteEntityTokenArg'}, - 'type': 'array'}}, - 'required': ['Args'], - 'type': 'object'}, - 'RemoteRelation': {'additionalProperties': False, - 'properties': {'application-name': {'type': 'string'}, - 'endpoint': {'$ref': '#/definitions/RemoteEndpoint'}, - 'id': {'type': 'integer'}, - 'key': {'type': 'string'}, - 'life': {'type': 'string'}, - 'remote-application-name': {'type': 'string'}, - 'remote-endpoint-name': {'type': 'string'}, - 'source-model-uuid': {'type': 'string'}, - 'suspended': {'type': 'boolean'}}, - 'required': ['life', - 'suspended', - 'id', - 'key', - 'application-name', - 'endpoint', - 'remote-application-name', - 'remote-endpoint-name', - 'source-model-uuid'], - 'type': 'object'}, - 'RemoteRelationChangeEvent': {'additionalProperties': False, - 'properties': {'application-token': {'type': 'string'}, - 'changed-units': {'items': {'$ref': '#/definitions/RemoteRelationUnitChange'}, - 'type': 'array'}, - 'departed-units': {'items': {'type': 'integer'}, - 'type': 'array'}, - 'force-cleanup': {'type': 'boolean'}, - 'life': {'type': 'string'}, - 'macaroons': {'items': {'$ref': '#/definitions/Macaroon'}, - 'type': 'array'}, - 'relation-token': {'type': 'string'}, - 'suspended': {'type': 'boolean'}, - 'suspended-reason': {'type': 'string'}}, - 'required': ['relation-token', - 'application-token', - 'life'], - 'type': 'object'}, - 'RemoteRelationResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/RemoteRelation'}}, - 'type': 'object'}, - 'RemoteRelationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RemoteRelationResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RemoteRelationUnitChange': {'additionalProperties': False, - 'properties': {'settings': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'unit-id': {'type': 'integer'}}, - 'required': ['unit-id'], - 'type': 'object'}, - 'RemoteRelationsChanges': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/RemoteRelationChangeEvent'}, - 'type': 'array'}}, - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'SettingsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['settings'], - 'type': 'object'}, - 'SettingsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/SettingsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'TokenResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'token': {'type': 'string'}}, - 'type': 'object'}, - 'TokenResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/TokenResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'UnitSettings': {'additionalProperties': False, - 'properties': {'version': {'type': 'integer'}}, - 'required': ['version'], - 'type': 'object'}}, - 'properties': {'ConsumeRemoteRelationChanges': {'properties': {'Params': {'$ref': '#/definitions/RemoteRelationsChanges'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ControllerAPIInfoForModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ControllerAPIInfoResults'}}, - 'type': 'object'}, - 'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}}, - 'type': 'object'}, - 'ExportEntities': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/TokenResults'}}, - 'type': 'object'}, - 'GetTokens': {'properties': {'Params': {'$ref': '#/definitions/GetTokenArgs'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'ImportRemoteEntities': {'properties': {'Params': {'$ref': '#/definitions/RemoteEntityTokenArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RelationUnitSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/SettingsResults'}}, - 'type': 'object'}, - 'Relations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/RemoteRelationResults'}}, - 'type': 'object'}, - 'RemoteApplications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/RemoteApplicationResults'}}, - 'type': 'object'}, - 'SaveMacaroons': {'properties': {'Params': {'$ref': '#/definitions/EntityMacaroonArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetRemoteApplicationsStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchLocalRelationUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/RelationUnitsWatchResults'}}, - 'type': 'object'}, - 'WatchRemoteApplicationRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchRemoteApplications': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}, - 'WatchRemoteRelations': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def ConsumeRemoteRelationChanges(self, changes): - ''' - changes : typing.Sequence[~RemoteRelationChangeEvent] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='ConsumeRemoteRelationChanges', - version=1, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerAPIInfoResults) - async def ControllerAPIInfoForModels(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ControllerAPIInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='ControllerAPIInfoForModels', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerConfigResult) - async def ControllerConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='ControllerConfig', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(TokenResults) - async def ExportEntities(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~TokenResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='ExportEntities', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def GetTokens(self, args): - ''' - args : typing.Sequence[~GetTokenArg] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='GetTokens', - version=1, - params=_params) - _params['Args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ImportRemoteEntities(self, args): - ''' - args : typing.Sequence[~RemoteEntityTokenArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='ImportRemoteEntities', - version=1, - params=_params) - _params['Args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SettingsResults) - async def RelationUnitSettings(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~SettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='RelationUnitSettings', - version=1, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RemoteRelationResults) - async def Relations(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~RemoteRelationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='Relations', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RemoteApplicationResults) - async def RemoteApplications(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~RemoteApplicationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='RemoteApplications', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SaveMacaroons(self, args): - ''' - args : typing.Sequence[~EntityMacaroonArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='SaveMacaroons', - version=1, - params=_params) - _params['Args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetRemoteApplicationsStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='SetRemoteApplicationsStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationUnitsWatchResults) - async def WatchLocalRelationUnits(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~RelationUnitsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='WatchLocalRelationUnits', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchRemoteApplicationRelations(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='WatchRemoteApplicationRelations', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchRemoteApplications(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='WatchRemoteApplications', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchRemoteRelations(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='WatchRemoteRelations', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class RemoteRelationsWatcherFacade(Type): - name = 'RemoteRelationsWatcher' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'RemoteEntityId': {'additionalProperties': False, - 'properties': {'model-uuid': {'type': 'string'}, - 'token': {'type': 'string'}}, - 'required': ['model-uuid', 'token'], - 'type': 'object'}, - 'RemoteRelationChange': {'additionalProperties': False, - 'properties': {'changed-units': {'patternProperties': {'.*': {'$ref': '#/definitions/RemoteRelationUnitChange'}}, - 'type': 'object'}, - 'departed-units': {'items': {'type': 'string'}, - 'type': 'array'}, - 'id': {'type': 'integer'}, - 'life': {'type': 'string'}}, - 'required': ['id', 'life'], - 'type': 'object'}, - 'RemoteRelationUnitChange': {'additionalProperties': False, - 'properties': {'settings': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'unit-id': {'$ref': '#/definitions/RemoteEntityId'}}, - 'required': ['unit-id'], - 'type': 'object'}, - 'RemoteRelationsChange': {'additionalProperties': False, - 'properties': {'changed': {'items': {'$ref': '#/definitions/RemoteRelationChange'}, - 'type': 'array'}, - 'initial': {'type': 'boolean'}, - 'removed': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['initial'], - 'type': 'object'}, - 'RemoteRelationsWatchResult': {'additionalProperties': False, - 'properties': {'RemoteRelationsWatcherId': {'type': 'string'}, - 'change': {'$ref': '#/definitions/RemoteRelationsChange'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['RemoteRelationsWatcherId'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/RemoteRelationsWatchResult'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(RemoteRelationsWatchResult) - async def Next(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('RemoteRelationsChange'), _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelationsWatcher', - request='Next', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelationsWatcher', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class ResourcesFacade(Type): - name = 'Resources' - version = 1 - schema = {'definitions': {'AddCharmWithAuthorization': {'additionalProperties': False, - 'properties': {'channel': {'type': 'string'}, - 'force': {'type': 'boolean'}, - 'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'url': {'type': 'string'}}, - 'required': ['url', - 'channel', - 'macaroon', - 'force'], - 'type': 'object'}, - 'AddPendingResourcesArgs': {'additionalProperties': False, - 'properties': {'AddCharmWithAuthorization': {'$ref': '#/definitions/AddCharmWithAuthorization'}, - 'Entity': {'$ref': '#/definitions/Entity'}, - 'resources': {'items': {'$ref': '#/definitions/CharmResource'}, - 'type': 'array'}}, - 'required': ['Entity', - 'AddCharmWithAuthorization', - 'resources'], - 'type': 'object'}, - 'AddPendingResourcesResult': {'additionalProperties': False, - 'properties': {'ErrorResult': {'$ref': '#/definitions/ErrorResult'}, - 'pending-ids': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['ErrorResult', - 'pending-ids'], - 'type': 'object'}, - 'CharmResource': {'additionalProperties': False, - 'properties': {'description': {'type': 'string'}, - 'fingerprint': {'items': {'type': 'integer'}, - 'type': 'array'}, - 'name': {'type': 'string'}, - 'origin': {'type': 'string'}, - 'path': {'type': 'string'}, - 'revision': {'type': 'integer'}, - 'size': {'type': 'integer'}, - 'type': {'type': 'string'}}, - 'required': ['name', - 'type', - 'path', - 'origin', - 'revision', - 'fingerprint', - 'size'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ListResourcesArgs': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Resource': {'additionalProperties': False, - 'properties': {'CharmResource': {'$ref': '#/definitions/CharmResource'}, - 'application': {'type': 'string'}, - 'id': {'type': 'string'}, - 'pending-id': {'type': 'string'}, - 'timestamp': {'format': 'date-time', - 'type': 'string'}, - 'username': {'type': 'string'}}, - 'required': ['CharmResource', - 'id', - 'pending-id', - 'application', - 'username', - 'timestamp'], - 'type': 'object'}, - 'ResourcesResult': {'additionalProperties': False, - 'properties': {'ErrorResult': {'$ref': '#/definitions/ErrorResult'}, - 'charm-store-resources': {'items': {'$ref': '#/definitions/CharmResource'}, - 'type': 'array'}, - 'resources': {'items': {'$ref': '#/definitions/Resource'}, - 'type': 'array'}, - 'unit-resources': {'items': {'$ref': '#/definitions/UnitResources'}, - 'type': 'array'}}, - 'required': ['ErrorResult', - 'resources', - 'charm-store-resources', - 'unit-resources'], - 'type': 'object'}, - 'ResourcesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ResourcesResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UnitResources': {'additionalProperties': False, - 'properties': {'Entity': {'$ref': '#/definitions/Entity'}, - 'download-progress': {'patternProperties': {'.*': {'type': 'integer'}}, - 'type': 'object'}, - 'resources': {'items': {'$ref': '#/definitions/Resource'}, - 'type': 'array'}}, - 'required': ['Entity', - 'resources', - 'download-progress'], - 'type': 'object'}}, - 'properties': {'AddPendingResources': {'properties': {'Params': {'$ref': '#/definitions/AddPendingResourcesArgs'}, - 'Result': {'$ref': '#/definitions/AddPendingResourcesResult'}}, - 'type': 'object'}, - 'ListResources': {'properties': {'Params': {'$ref': '#/definitions/ListResourcesArgs'}, - 'Result': {'$ref': '#/definitions/ResourcesResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddPendingResourcesResult) - async def AddPendingResources(self, addcharmwithauthorization, entity, resources): - ''' - addcharmwithauthorization : AddCharmWithAuthorization - entity : Entity - resources : typing.Sequence[~CharmResource] - Returns -> typing.Union[_ForwardRef('ErrorResult'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Resources', - request='AddPendingResources', - version=1, - params=_params) - _params['AddCharmWithAuthorization'] = addcharmwithauthorization - _params['Entity'] = entity - _params['Resources'] = resources - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ResourcesResults) - async def ListResources(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ResourcesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Resources', - request='ListResources', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class ResourcesHookContextFacade(Type): - name = 'ResourcesHookContext' - version = 1 - schema = {'definitions': {'CharmResource': {'additionalProperties': False, - 'properties': {'description': {'type': 'string'}, - 'fingerprint': {'items': {'type': 'integer'}, - 'type': 'array'}, - 'name': {'type': 'string'}, - 'origin': {'type': 'string'}, - 'path': {'type': 'string'}, - 'revision': {'type': 'integer'}, - 'size': {'type': 'integer'}, - 'type': {'type': 'string'}}, - 'required': ['name', - 'type', - 'path', - 'origin', - 'revision', - 'fingerprint', - 'size'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ListUnitResourcesArgs': {'additionalProperties': False, - 'properties': {'resource-names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['resource-names'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Resource': {'additionalProperties': False, - 'properties': {'CharmResource': {'$ref': '#/definitions/CharmResource'}, - 'application': {'type': 'string'}, - 'id': {'type': 'string'}, - 'pending-id': {'type': 'string'}, - 'timestamp': {'format': 'date-time', - 'type': 'string'}, - 'username': {'type': 'string'}}, - 'required': ['CharmResource', - 'id', - 'pending-id', - 'application', - 'username', - 'timestamp'], - 'type': 'object'}, - 'UnitResourceResult': {'additionalProperties': False, - 'properties': {'ErrorResult': {'$ref': '#/definitions/ErrorResult'}, - 'resource': {'$ref': '#/definitions/Resource'}}, - 'required': ['ErrorResult', 'resource'], - 'type': 'object'}, - 'UnitResourcesResult': {'additionalProperties': False, - 'properties': {'ErrorResult': {'$ref': '#/definitions/ErrorResult'}, - 'resources': {'items': {'$ref': '#/definitions/UnitResourceResult'}, - 'type': 'array'}}, - 'required': ['ErrorResult', - 'resources'], - 'type': 'object'}}, - 'properties': {'GetResourceInfo': {'properties': {'Params': {'$ref': '#/definitions/ListUnitResourcesArgs'}, - 'Result': {'$ref': '#/definitions/UnitResourcesResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(UnitResourcesResult) - async def GetResourceInfo(self, resource_names): - ''' - resource_names : typing.Sequence[str] - Returns -> typing.Union[_ForwardRef('ErrorResult'), typing.Sequence[~UnitResourceResult]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ResourcesHookContext', - request='GetResourceInfo', - version=1, - params=_params) - _params['resource-names'] = resource_names - reply = await self.rpc(msg) - return reply - - - -class RetryStrategyFacade(Type): - name = 'RetryStrategy' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RetryStrategy': {'additionalProperties': False, - 'properties': {'jitter-retry-time': {'type': 'boolean'}, - 'max-retry-time': {'type': 'integer'}, - 'min-retry-time': {'type': 'integer'}, - 'retry-time-factor': {'type': 'integer'}, - 'should-retry': {'type': 'boolean'}}, - 'required': ['should-retry', - 'min-retry-time', - 'max-retry-time', - 'jitter-retry-time', - 'retry-time-factor'], - 'type': 'object'}, - 'RetryStrategyResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/RetryStrategy'}}, - 'type': 'object'}, - 'RetryStrategyResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RetryStrategyResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'RetryStrategy': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/RetryStrategyResults'}}, - 'type': 'object'}, - 'WatchRetryStrategy': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(RetryStrategyResults) - async def RetryStrategy(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~RetryStrategyResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RetryStrategy', - request='RetryStrategy', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchRetryStrategy(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RetryStrategy', - request='WatchRetryStrategy', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class SSHClientFacade(Type): - name = 'SSHClient' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'SSHAddressResult': {'additionalProperties': False, - 'properties': {'address': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'SSHAddressResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/SSHAddressResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SSHProxyResult': {'additionalProperties': False, - 'properties': {'use-proxy': {'type': 'boolean'}}, - 'required': ['use-proxy'], - 'type': 'object'}, - 'SSHPublicKeysResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'public-keys': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'SSHPublicKeysResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/SSHPublicKeysResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/SSHAddressResults'}}, - 'type': 'object'}, - 'Proxy': {'properties': {'Result': {'$ref': '#/definitions/SSHProxyResult'}}, - 'type': 'object'}, - 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/SSHAddressResults'}}, - 'type': 'object'}, - 'PublicKeys': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/SSHPublicKeysResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(SSHAddressResults) - async def PrivateAddress(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~SSHAddressResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='SSHClient', - request='PrivateAddress', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SSHProxyResult) - async def Proxy(self): - ''' - - Returns -> bool - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='SSHClient', - request='Proxy', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SSHAddressResults) - async def PublicAddress(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~SSHAddressResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='SSHClient', - request='PublicAddress', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SSHPublicKeysResults) - async def PublicKeys(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~SSHPublicKeysResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='SSHClient', - request='PublicKeys', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class SingularFacade(Type): - name = 'Singular' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'SingularClaim': {'additionalProperties': False, - 'properties': {'controller-tag': {'type': 'string'}, - 'duration': {'type': 'integer'}, - 'model-tag': {'type': 'string'}}, - 'required': ['model-tag', - 'controller-tag', - 'duration'], - 'type': 'object'}, - 'SingularClaims': {'additionalProperties': False, - 'properties': {'claims': {'items': {'$ref': '#/definitions/SingularClaim'}, - 'type': 'array'}}, - 'required': ['claims'], - 'type': 'object'}}, - 'properties': {'Claim': {'properties': {'Params': {'$ref': '#/definitions/SingularClaims'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Wait': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def Claim(self, claims): - ''' - claims : typing.Sequence[~SingularClaim] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Singular', - request='Claim', - version=1, - params=_params) - _params['claims'] = claims - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Wait(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Singular', - request='Wait', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class StringsWatcherFacade(Type): - name = 'StringsWatcher' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringsWatchResult) - async def Next(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StringsWatcher', - request='Next', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StringsWatcher', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class UndertakerFacade(Type): - name = 'Undertaker' - version = 1 - schema = {'definitions': {'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'UndertakerModelInfo': {'additionalProperties': False, - 'properties': {'global-name': {'type': 'string'}, - 'is-system': {'type': 'boolean'}, - 'life': {'type': 'string'}, - 'name': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['uuid', - 'name', - 'global-name', - 'is-system', - 'life'], - 'type': 'object'}, - 'UndertakerModelInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/UndertakerModelInfo'}}, - 'required': ['result'], - 'type': 'object'}}, - 'properties': {'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'ModelInfo': {'properties': {'Result': {'$ref': '#/definitions/UndertakerModelInfoResult'}}, - 'type': 'object'}, - 'ProcessDyingModel': {'type': 'object'}, - 'RemoveModel': {'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchModelResources': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Undertaker', - request='ModelConfig', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UndertakerModelInfoResult) - async def ModelInfo(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('UndertakerModelInfo')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Undertaker', - request='ModelInfo', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ProcessDyingModel(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Undertaker', - request='ProcessDyingModel', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def RemoveModel(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Undertaker', - request='RemoveModel', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Undertaker', - request='SetStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Undertaker', - request='UpdateStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchModelResources(self): - ''' - - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Undertaker', - request='WatchModelResources', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class UnitAssignerFacade(Type): - name = 'UnitAssigner' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}}, - 'properties': {'AssignUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetAgentStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchUnitAssignments': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def AssignUnits(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UnitAssigner', - request='AssignUnits', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetAgentStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UnitAssigner', - request='SetAgentStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchUnitAssignments(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UnitAssigner', - request='WatchUnitAssignments', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class UpgradeSeriesFacade(Type): - name = 'UpgradeSeries' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesResult': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/EntitiesResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'PinApplicationResult': {'additionalProperties': False, - 'properties': {'application-name': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['application-name'], - 'type': 'object'}, - 'PinApplicationsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/PinApplicationResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'PinnedLeadershipResult': {'additionalProperties': False, - 'properties': {'result': {'patternProperties': {'.*': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UpdateSeriesArg': {'additionalProperties': False, - 'properties': {'force': {'type': 'boolean'}, - 'series': {'type': 'string'}, - 'tag': {'$ref': '#/definitions/Entity'}}, - 'required': ['tag', 'force', 'series'], - 'type': 'object'}, - 'UpdateSeriesArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/UpdateSeriesArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'UpgradeSeriesStartUnitCompletionParam': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'message': {'type': 'string'}}, - 'required': ['entities', - 'message'], - 'type': 'object'}, - 'UpgradeSeriesStatusParam': {'additionalProperties': False, - 'properties': {'entity': {'$ref': '#/definitions/Entity'}, - 'message': {'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['entity', - 'status', - 'message'], - 'type': 'object'}, - 'UpgradeSeriesStatusParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/UpgradeSeriesStatusParam'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'UpgradeSeriesStatusResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'status': {'type': 'string'}}, - 'type': 'object'}, - 'UpgradeSeriesStatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/UpgradeSeriesStatusResult'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'FinishUpgradeSeries': {'properties': {'Params': {'$ref': '#/definitions/UpdateSeriesArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'MachineStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/UpgradeSeriesStatusResults'}}, - 'type': 'object'}, - 'PinMachineApplications': {'properties': {'Result': {'$ref': '#/definitions/PinApplicationsResults'}}, - 'type': 'object'}, - 'PinnedLeadership': {'properties': {'Result': {'$ref': '#/definitions/PinnedLeadershipResult'}}, - 'type': 'object'}, - 'SetMachineStatus': {'properties': {'Params': {'$ref': '#/definitions/UpgradeSeriesStatusParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetUpgradeSeriesUnitStatus': {'properties': {'Params': {'$ref': '#/definitions/UpgradeSeriesStatusParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'StartUnitCompletion': {'properties': {'Params': {'$ref': '#/definitions/UpgradeSeriesStartUnitCompletionParam'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'TargetSeries': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'UnitsCompleted': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/EntitiesResults'}}, - 'type': 'object'}, - 'UnitsPrepared': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/EntitiesResults'}}, - 'type': 'object'}, - 'UnpinMachineApplications': {'properties': {'Result': {'$ref': '#/definitions/PinApplicationsResults'}}, - 'type': 'object'}, - 'UpgradeSeriesUnitStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/UpgradeSeriesStatusResults'}}, - 'type': 'object'}, - 'WatchUpgradeSeriesNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def FinishUpgradeSeries(self, args): - ''' - args : typing.Sequence[~UpdateSeriesArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='FinishUpgradeSeries', - version=1, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UpgradeSeriesStatusResults) - async def MachineStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~UpgradeSeriesStatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='MachineStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(PinApplicationsResults) - async def PinMachineApplications(self): - ''' - - Returns -> typing.Sequence[~PinApplicationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='PinMachineApplications', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(PinnedLeadershipResult) - async def PinnedLeadership(self): - ''' - - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='PinnedLeadership', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetMachineStatus(self, params): - ''' - params : typing.Sequence[~UpgradeSeriesStatusParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='SetMachineStatus', - version=1, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetUpgradeSeriesUnitStatus(self, params): - ''' - params : typing.Sequence[~UpgradeSeriesStatusParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='SetUpgradeSeriesUnitStatus', - version=1, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def StartUnitCompletion(self, entities, message): - ''' - entities : typing.Sequence[~Entity] - message : str - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='StartUnitCompletion', - version=1, - params=_params) - _params['entities'] = entities - _params['message'] = message - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def TargetSeries(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='TargetSeries', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(EntitiesResults) - async def UnitsCompleted(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~EntitiesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='UnitsCompleted', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(EntitiesResults) - async def UnitsPrepared(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~EntitiesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='UnitsPrepared', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(PinApplicationsResults) - async def UnpinMachineApplications(self): - ''' - - Returns -> typing.Sequence[~PinApplicationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='UnpinMachineApplications', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UpgradeSeriesStatusResults) - async def UpgradeSeriesUnitStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~UpgradeSeriesStatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='UpgradeSeriesUnitStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchUpgradeSeriesNotifications(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='WatchUpgradeSeriesNotifications', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class UpgraderFacade(Type): - name = 'Upgrader' - version = 1 - schema = {'definitions': {'Binary': {'additionalProperties': False, - 'properties': {'Arch': {'type': 'string'}, - 'Number': {'$ref': '#/definitions/Number'}, - 'Series': {'type': 'string'}}, - 'required': ['Number', 'Series', 'Arch'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesVersion': {'additionalProperties': False, - 'properties': {'agent-tools': {'items': {'$ref': '#/definitions/EntityVersion'}, - 'type': 'array'}}, - 'required': ['agent-tools'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityVersion': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}, - 'tools': {'$ref': '#/definitions/Version'}}, - 'required': ['tag', 'tools'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'Tools': {'additionalProperties': False, - 'properties': {'sha256': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'url': {'type': 'string'}, - 'version': {'$ref': '#/definitions/Binary'}}, - 'required': ['version', 'url', 'size'], - 'type': 'object'}, - 'ToolsResult': {'additionalProperties': False, - 'properties': {'disable-ssl-hostname-verification': {'type': 'boolean'}, - 'error': {'$ref': '#/definitions/Error'}, - 'tools': {'items': {'$ref': '#/definitions/Tools'}, - 'type': 'array'}}, - 'required': ['tools', - 'disable-ssl-hostname-verification'], - 'type': 'object'}, - 'ToolsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ToolsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Version': {'additionalProperties': False, - 'properties': {'version': {'$ref': '#/definitions/Binary'}}, - 'required': ['version'], - 'type': 'object'}, - 'VersionResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'version': {'$ref': '#/definitions/Number'}}, - 'type': 'object'}, - 'VersionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VersionResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'DesiredVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/VersionResults'}}, - 'type': 'object'}, - 'SetTools': {'properties': {'Params': {'$ref': '#/definitions/EntitiesVersion'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Tools': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ToolsResults'}}, - 'type': 'object'}, - 'WatchAPIVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(VersionResults) - async def DesiredVersion(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~VersionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Upgrader', - request='DesiredVersion', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetTools(self, agent_tools): - ''' - agent_tools : typing.Sequence[~EntityVersion] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Upgrader', - request='SetTools', - version=1, - params=_params) - _params['agent-tools'] = agent_tools - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ToolsResults) - async def Tools(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ToolsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Upgrader', - request='Tools', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchAPIVersion(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Upgrader', - request='WatchAPIVersion', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class UserManagerFacade(Type): - name = 'UserManager' - version = 1 - schema = {'definitions': {'AddUser': {'additionalProperties': False, - 'properties': {'display-name': {'type': 'string'}, - 'password': {'type': 'string'}, - 'username': {'type': 'string'}}, - 'required': ['username', 'display-name'], - 'type': 'object'}, - 'AddUserResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'secret-key': {'items': {'type': 'integer'}, - 'type': 'array'}, - 'tag': {'type': 'string'}}, - 'type': 'object'}, - 'AddUserResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/AddUserResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'AddUsers': {'additionalProperties': False, - 'properties': {'users': {'items': {'$ref': '#/definitions/AddUser'}, - 'type': 'array'}}, - 'required': ['users'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityPassword': {'additionalProperties': False, - 'properties': {'password': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'password'], - 'type': 'object'}, - 'EntityPasswords': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'UserInfo': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'created-by': {'type': 'string'}, - 'date-created': {'format': 'date-time', - 'type': 'string'}, - 'disabled': {'type': 'boolean'}, - 'display-name': {'type': 'string'}, - 'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'username': {'type': 'string'}}, - 'required': ['username', - 'display-name', - 'access', - 'created-by', - 'date-created', - 'disabled'], - 'type': 'object'}, - 'UserInfoRequest': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'include-disabled': {'type': 'boolean'}}, - 'required': ['entities', - 'include-disabled'], - 'type': 'object'}, - 'UserInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/UserInfo'}}, - 'type': 'object'}, - 'UserInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/UserInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'AddUser': {'properties': {'Params': {'$ref': '#/definitions/AddUsers'}, - 'Result': {'$ref': '#/definitions/AddUserResults'}}, - 'type': 'object'}, - 'DisableUser': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'EnableUser': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RemoveUser': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetPassword': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UserInfo': {'properties': {'Params': {'$ref': '#/definitions/UserInfoRequest'}, - 'Result': {'$ref': '#/definitions/UserInfoResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddUserResults) - async def AddUser(self, users): - ''' - users : typing.Sequence[~AddUser] - Returns -> typing.Sequence[~AddUserResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='AddUser', - version=1, - params=_params) - _params['users'] = users - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DisableUser(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='DisableUser', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnableUser(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='EnableUser', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RemoveUser(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='RemoveUser', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetPassword(self, changes): - ''' - changes : typing.Sequence[~EntityPassword] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='SetPassword', - version=1, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UserInfoResults) - async def UserInfo(self, entities, include_disabled): - ''' - entities : typing.Sequence[~Entity] - include_disabled : bool - Returns -> typing.Sequence[~UserInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='UserInfo', - version=1, - params=_params) - _params['entities'] = entities - _params['include-disabled'] = include_disabled - reply = await self.rpc(msg) - return reply - - - -class VolumeAttachmentPlansWatcherFacade(Type): - name = 'VolumeAttachmentPlansWatcher' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineStorageId': {'additionalProperties': False, - 'properties': {'attachment-tag': {'type': 'string'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['machine-tag', - 'attachment-tag'], - 'type': 'object'}, - 'MachineStorageIdsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/MachineStorageId'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResult'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(MachineStorageIdsWatchResult) - async def Next(self): - ''' - - Returns -> typing.Union[typing.Sequence[~MachineStorageId], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='VolumeAttachmentPlansWatcher', - request='Next', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='VolumeAttachmentPlansWatcher', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply diff --git a/modules/libjuju/juju/client/_client2.py b/modules/libjuju/juju/client/_client2.py deleted file mode 100644 index 416faab..0000000 --- a/modules/libjuju/juju/client/_client2.py +++ /dev/null @@ -1,7535 +0,0 @@ -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. - -from juju.client._definitions import * -from juju.client.facade import ReturnMapping, Type - - -class ActionFacade(Type): - name = 'Action' - version = 2 - schema = {'definitions': {'Action': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'parameters': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'receiver': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'receiver', 'name'], - 'type': 'object'}, - 'ActionResult': {'additionalProperties': False, - 'properties': {'action': {'$ref': '#/definitions/Action'}, - 'completed': {'format': 'date-time', - 'type': 'string'}, - 'enqueued': {'format': 'date-time', - 'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'message': {'type': 'string'}, - 'output': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'started': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'type': 'object'}, - 'ActionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ActionSpec': {'additionalProperties': False, - 'properties': {'description': {'type': 'string'}, - 'params': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['description', 'params'], - 'type': 'object'}, - 'Actions': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/Action'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ActionsByName': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionResult'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}}, - 'type': 'object'}, - 'ActionsByNames': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionsByName'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ActionsByReceiver': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionResult'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'receiver': {'type': 'string'}}, - 'type': 'object'}, - 'ActionsByReceivers': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionsByReceiver'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ApplicationCharmActionsResult': {'additionalProperties': False, - 'properties': {'actions': {'patternProperties': {'.*': {'$ref': '#/definitions/ActionSpec'}}, - 'type': 'object'}, - 'application-tag': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ApplicationsCharmActionsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationCharmActionsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'FindActionsByNames': {'additionalProperties': False, - 'properties': {'names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FindTags': {'additionalProperties': False, - 'properties': {'prefixes': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['prefixes'], - 'type': 'object'}, - 'FindTagsResults': {'additionalProperties': False, - 'properties': {'matches': {'patternProperties': {'.*': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'required': ['matches'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'RunParams': {'additionalProperties': False, - 'properties': {'applications': {'items': {'type': 'string'}, - 'type': 'array'}, - 'commands': {'type': 'string'}, - 'machines': {'items': {'type': 'string'}, - 'type': 'array'}, - 'timeout': {'type': 'integer'}, - 'units': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['commands', 'timeout'], - 'type': 'object'}}, - 'properties': {'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'ApplicationsCharmsActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ApplicationsCharmActionsResults'}}, - 'type': 'object'}, - 'Cancel': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'Enqueue': {'properties': {'Params': {'$ref': '#/definitions/Actions'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'FindActionTagsByPrefix': {'properties': {'Params': {'$ref': '#/definitions/FindTags'}, - 'Result': {'$ref': '#/definitions/FindTagsResults'}}, - 'type': 'object'}, - 'FindActionsByNames': {'properties': {'Params': {'$ref': '#/definitions/FindActionsByNames'}, - 'Result': {'$ref': '#/definitions/ActionsByNames'}}, - 'type': 'object'}, - 'ListAll': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, - 'type': 'object'}, - 'ListCompleted': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, - 'type': 'object'}, - 'ListPending': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, - 'type': 'object'}, - 'ListRunning': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, - 'type': 'object'}, - 'Run': {'properties': {'Params': {'$ref': '#/definitions/RunParams'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'RunOnAllMachines': {'properties': {'Params': {'$ref': '#/definitions/RunParams'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ActionResults) - async def Actions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='Actions', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationsCharmActionsResults) - async def ApplicationsCharmsActions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ApplicationCharmActionsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='ApplicationsCharmsActions', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionResults) - async def Cancel(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='Cancel', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionResults) - async def Enqueue(self, actions): - ''' - actions : typing.Sequence[~Action] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='Enqueue', - version=2, - params=_params) - _params['actions'] = actions - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FindTagsResults) - async def FindActionTagsByPrefix(self, prefixes): - ''' - prefixes : typing.Sequence[str] - Returns -> typing.Sequence[~Entity] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='FindActionTagsByPrefix', - version=2, - params=_params) - _params['prefixes'] = prefixes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionsByNames) - async def FindActionsByNames(self, names): - ''' - names : typing.Sequence[str] - Returns -> typing.Sequence[~ActionsByName] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='FindActionsByNames', - version=2, - params=_params) - _params['names'] = names - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionsByReceivers) - async def ListAll(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionsByReceiver] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='ListAll', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionsByReceivers) - async def ListCompleted(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionsByReceiver] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='ListCompleted', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionsByReceivers) - async def ListPending(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionsByReceiver] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='ListPending', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionsByReceivers) - async def ListRunning(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionsByReceiver] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='ListRunning', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionResults) - async def Run(self, applications, commands, machines, timeout, units): - ''' - applications : typing.Sequence[str] - commands : str - machines : typing.Sequence[str] - timeout : int - units : typing.Sequence[str] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='Run', - version=2, - params=_params) - _params['applications'] = applications - _params['commands'] = commands - _params['machines'] = machines - _params['timeout'] = timeout - _params['units'] = units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionResults) - async def RunOnAllMachines(self, applications, commands, machines, timeout, units): - ''' - applications : typing.Sequence[str] - commands : str - machines : typing.Sequence[str] - timeout : int - units : typing.Sequence[str] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='RunOnAllMachines', - version=2, - params=_params) - _params['applications'] = applications - _params['commands'] = commands - _params['machines'] = machines - _params['timeout'] = timeout - _params['units'] = units - reply = await self.rpc(msg) - return reply - - - -class AgentFacade(Type): - name = 'Agent' - version = 2 - schema = {'definitions': {'AgentGetEntitiesResult': {'additionalProperties': False, - 'properties': {'container-type': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'jobs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'life': {'type': 'string'}}, - 'required': ['life', - 'jobs', - 'container-type'], - 'type': 'object'}, - 'AgentGetEntitiesResults': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/AgentGetEntitiesResult'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'CloudCredential': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'auth-type': {'type': 'string'}, - 'redacted': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['auth-type'], - 'type': 'object'}, - 'CloudSpec': {'additionalProperties': False, - 'properties': {'cacertificates': {'items': {'type': 'string'}, - 'type': 'array'}, - 'credential': {'$ref': '#/definitions/CloudCredential'}, - 'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'name': {'type': 'string'}, - 'region': {'type': 'string'}, - 'storage-endpoint': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type', 'name'], - 'type': 'object'}, - 'CloudSpecResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/CloudSpec'}}, - 'type': 'object'}, - 'CloudSpecResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CloudSpecResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ControllerAPIInfoResult': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cacert': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['addresses', - 'cacert'], - 'type': 'object'}, - 'ControllerAPIInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ControllerAPIInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ControllerConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityPassword': {'additionalProperties': False, - 'properties': {'password': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'password'], - 'type': 'object'}, - 'EntityPasswords': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'IsMasterResult': {'additionalProperties': False, - 'properties': {'master': {'type': 'boolean'}}, - 'required': ['master'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelTag': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StateServingInfo': {'additionalProperties': False, - 'properties': {'api-port': {'type': 'integer'}, - 'ca-private-key': {'type': 'string'}, - 'cert': {'type': 'string'}, - 'controller-api-port': {'type': 'integer'}, - 'private-key': {'type': 'string'}, - 'shared-secret': {'type': 'string'}, - 'state-port': {'type': 'integer'}, - 'system-identity': {'type': 'string'}}, - 'required': ['api-port', - 'state-port', - 'cert', - 'private-key', - 'ca-private-key', - 'shared-secret', - 'system-identity'], - 'type': 'object'}}, - 'properties': {'ClearReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'CloudSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/CloudSpecResults'}}, - 'type': 'object'}, - 'ControllerAPIInfoForModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ControllerAPIInfoResults'}}, - 'type': 'object'}, - 'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}}, - 'type': 'object'}, - 'GetCloudSpec': {'properties': {'Params': {'$ref': '#/definitions/ModelTag'}, - 'Result': {'$ref': '#/definitions/CloudSpecResult'}}, - 'type': 'object'}, - 'GetEntities': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/AgentGetEntitiesResults'}}, - 'type': 'object'}, - 'IsMaster': {'properties': {'Result': {'$ref': '#/definitions/IsMasterResult'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'SetPasswords': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'StateServingInfo': {'properties': {'Result': {'$ref': '#/definitions/StateServingInfo'}}, - 'type': 'object'}, - 'WatchCredentials': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def ClearReboot(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='ClearReboot', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudSpecResults) - async def CloudSpec(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~CloudSpecResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='CloudSpec', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerAPIInfoResults) - async def ControllerAPIInfoForModels(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ControllerAPIInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='ControllerAPIInfoForModels', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerConfigResult) - async def ControllerConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='ControllerConfig', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudSpecResult) - async def GetCloudSpec(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='GetCloudSpec', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AgentGetEntitiesResults) - async def GetEntities(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~AgentGetEntitiesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='GetEntities', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(IsMasterResult) - async def IsMaster(self): - ''' - - Returns -> bool - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='IsMaster', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='ModelConfig', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetPasswords(self, changes): - ''' - changes : typing.Sequence[~EntityPassword] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='SetPasswords', - version=2, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StateServingInfo) - async def StateServingInfo(self): - ''' - - Returns -> typing.Union[int, str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='StateServingInfo', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchCredentials(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='WatchCredentials', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='WatchForModelConfigChanges', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class AllModelWatcherFacade(Type): - name = 'AllModelWatcher' - version = 2 - schema = {'definitions': {'AllWatcherNextResults': {'additionalProperties': False, - 'properties': {'deltas': {'items': {'$ref': '#/definitions/Delta'}, - 'type': 'array'}}, - 'required': ['deltas'], - 'type': 'object'}, - 'Delta': {'additionalProperties': False, - 'properties': {'entity': {'additionalProperties': True, - 'type': 'object'}, - 'removed': {'type': 'boolean'}}, - 'required': ['removed', 'entity'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherNextResults'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AllWatcherNextResults) - async def Next(self): - ''' - - Returns -> typing.Sequence[~Delta] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='AllModelWatcher', - request='Next', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='AllModelWatcher', - request='Stop', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class AnnotationsFacade(Type): - name = 'Annotations' - version = 2 - schema = {'definitions': {'AnnotationsGetResult': {'additionalProperties': False, - 'properties': {'annotations': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'entity': {'type': 'string'}, - 'error': {'$ref': '#/definitions/ErrorResult'}}, - 'required': ['entity', 'annotations'], - 'type': 'object'}, - 'AnnotationsGetResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/AnnotationsGetResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'AnnotationsSet': {'additionalProperties': False, - 'properties': {'annotations': {'items': {'$ref': '#/definitions/EntityAnnotations'}, - 'type': 'array'}}, - 'required': ['annotations'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityAnnotations': {'additionalProperties': False, - 'properties': {'annotations': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'entity': {'type': 'string'}}, - 'required': ['entity', 'annotations'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, - 'properties': {'Get': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/AnnotationsGetResults'}}, - 'type': 'object'}, - 'Set': {'properties': {'Params': {'$ref': '#/definitions/AnnotationsSet'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AnnotationsGetResults) - async def Get(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~AnnotationsGetResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Annotations', - request='Get', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Set(self, annotations): - ''' - annotations : typing.Sequence[~EntityAnnotations] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Annotations', - request='Set', - version=2, - params=_params) - _params['annotations'] = annotations - reply = await self.rpc(msg) - return reply - - - -class ApplicationFacade(Type): - name = 'Application' - version = 2 - schema = {'definitions': {'AddApplicationUnits': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'num-units': {'type': 'integer'}, - 'placement': {'items': {'$ref': '#/definitions/Placement'}, - 'type': 'array'}}, - 'required': ['application', - 'num-units', - 'placement'], - 'type': 'object'}, - 'AddApplicationUnitsResults': {'additionalProperties': False, - 'properties': {'units': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['units'], - 'type': 'object'}, - 'AddRelation': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'AddRelationResults': {'additionalProperties': False, - 'properties': {'endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, - 'type': 'object'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'ApplicationCharmRelations': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationCharmRelationsResults': {'additionalProperties': False, - 'properties': {'charm-relations': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['charm-relations'], - 'type': 'object'}, - 'ApplicationDeploy': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'channel': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'config-yaml': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'num-units': {'type': 'integer'}, - 'placement': {'items': {'$ref': '#/definitions/Placement'}, - 'type': 'array'}, - 'resources': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'series': {'type': 'string'}, - 'storage': {'patternProperties': {'.*': {'$ref': '#/definitions/Constraints'}}, - 'type': 'object'}}, - 'required': ['application', - 'series', - 'charm-url', - 'channel', - 'num-units', - 'config-yaml', - 'constraints'], - 'type': 'object'}, - 'ApplicationDestroy': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationExpose': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationGet': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationGetResults': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'charm': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'series': {'type': 'string'}}, - 'required': ['application', - 'charm', - 'config', - 'constraints', - 'series'], - 'type': 'object'}, - 'ApplicationMetricCredential': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'metrics-credentials': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['application', - 'metrics-credentials'], - 'type': 'object'}, - 'ApplicationMetricCredentials': {'additionalProperties': False, - 'properties': {'creds': {'items': {'$ref': '#/definitions/ApplicationMetricCredential'}, - 'type': 'array'}}, - 'required': ['creds'], - 'type': 'object'}, - 'ApplicationSet': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'options': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['application', 'options'], - 'type': 'object'}, - 'ApplicationSetCharm': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'channel': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'config-settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'config-settings-yaml': {'type': 'string'}, - 'force-series': {'type': 'boolean'}, - 'force-units': {'type': 'boolean'}, - 'resource-ids': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'storage-constraints': {'patternProperties': {'.*': {'$ref': '#/definitions/StorageConstraints'}}, - 'type': 'object'}}, - 'required': ['application', - 'charm-url', - 'channel', - 'force-units', - 'force-series'], - 'type': 'object'}, - 'ApplicationUnexpose': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationUnset': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'options': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['application', 'options'], - 'type': 'object'}, - 'ApplicationUpdate': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'force-charm-url': {'type': 'boolean'}, - 'force-series': {'type': 'boolean'}, - 'min-units': {'type': 'integer'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'settings-yaml': {'type': 'string'}}, - 'required': ['application', - 'charm-url', - 'force-charm-url', - 'force-series', - 'settings-yaml'], - 'type': 'object'}, - 'ApplicationsDeploy': {'additionalProperties': False, - 'properties': {'applications': {'items': {'$ref': '#/definitions/ApplicationDeploy'}, - 'type': 'array'}}, - 'required': ['applications'], - 'type': 'object'}, - 'CharmRelation': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'optional': {'type': 'boolean'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'optional', - 'limit', - 'scope'], - 'type': 'object'}, - 'Constraints': {'additionalProperties': False, - 'properties': {'Count': {'type': 'integer'}, - 'Pool': {'type': 'string'}, - 'Size': {'type': 'integer'}}, - 'required': ['Pool', 'Size', 'Count'], - 'type': 'object'}, - 'DestroyApplicationUnits': {'additionalProperties': False, - 'properties': {'unit-names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['unit-names'], - 'type': 'object'}, - 'DestroyRelation': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GetApplicationConstraints': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'GetConstraintsResults': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Placement': {'additionalProperties': False, - 'properties': {'directive': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['scope', 'directive'], - 'type': 'object'}, - 'SetConstraints': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['application', 'constraints'], - 'type': 'object'}, - 'StorageConstraints': {'additionalProperties': False, - 'properties': {'count': {'type': 'integer'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}}, - 'type': 'object'}}, - 'properties': {'AddRelation': {'properties': {'Params': {'$ref': '#/definitions/AddRelation'}, - 'Result': {'$ref': '#/definitions/AddRelationResults'}}, - 'type': 'object'}, - 'AddUnits': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationUnits'}, - 'Result': {'$ref': '#/definitions/AddApplicationUnitsResults'}}, - 'type': 'object'}, - 'CharmRelations': {'properties': {'Params': {'$ref': '#/definitions/ApplicationCharmRelations'}, - 'Result': {'$ref': '#/definitions/ApplicationCharmRelationsResults'}}, - 'type': 'object'}, - 'Deploy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationsDeploy'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationDestroy'}}, - 'type': 'object'}, - 'DestroyRelation': {'properties': {'Params': {'$ref': '#/definitions/DestroyRelation'}}, - 'type': 'object'}, - 'DestroyUnits': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationUnits'}}, - 'type': 'object'}, - 'Expose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationExpose'}}, - 'type': 'object'}, - 'Get': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, - 'Result': {'$ref': '#/definitions/ApplicationGetResults'}}, - 'type': 'object'}, - 'GetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, - 'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'GetConstraints': {'properties': {'Params': {'$ref': '#/definitions/GetApplicationConstraints'}, - 'Result': {'$ref': '#/definitions/GetConstraintsResults'}}, - 'type': 'object'}, - 'Set': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSet'}}, - 'type': 'object'}, - 'SetCharm': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSetCharm'}}, - 'type': 'object'}, - 'SetConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, - 'type': 'object'}, - 'SetMetricCredentials': {'properties': {'Params': {'$ref': '#/definitions/ApplicationMetricCredentials'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Unexpose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnexpose'}}, - 'type': 'object'}, - 'Unset': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnset'}}, - 'type': 'object'}, - 'Update': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUpdate'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddRelationResults) - async def AddRelation(self, endpoints): - ''' - endpoints : typing.Sequence[str] - Returns -> typing.Mapping[str, ~CharmRelation] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='AddRelation', - version=2, - params=_params) - _params['endpoints'] = endpoints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddApplicationUnitsResults) - async def AddUnits(self, application, num_units, placement): - ''' - application : str - num_units : int - placement : typing.Sequence[~Placement] - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='AddUnits', - version=2, - params=_params) - _params['application'] = application - _params['num-units'] = num_units - _params['placement'] = placement - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationCharmRelationsResults) - async def CharmRelations(self, application): - ''' - application : str - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='CharmRelations', - version=2, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Deploy(self, applications): - ''' - applications : typing.Sequence[~ApplicationDeploy] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Deploy', - version=2, - params=_params) - _params['applications'] = applications - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Destroy(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Destroy', - version=2, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyRelation(self, endpoints): - ''' - endpoints : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyRelation', - version=2, - params=_params) - _params['endpoints'] = endpoints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyUnits(self, unit_names): - ''' - unit_names : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyUnits', - version=2, - params=_params) - _params['unit-names'] = unit_names - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Expose(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Expose', - version=2, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationGetResults) - async def Get(self, application): - ''' - application : str - Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Get', - version=2, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def GetCharmURL(self, application): - ''' - application : str - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetCharmURL', - version=2, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(GetConstraintsResults) - async def GetConstraints(self, application): - ''' - application : str - Returns -> Value - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetConstraints', - version=2, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Set(self, application, options): - ''' - application : str - options : typing.Mapping[str, str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Set', - version=2, - params=_params) - _params['application'] = application - _params['options'] = options - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetCharm(self, application, channel, charm_url, config_settings, config_settings_yaml, force_series, force_units, resource_ids, storage_constraints): - ''' - application : str - channel : str - charm_url : str - config_settings : typing.Mapping[str, str] - config_settings_yaml : str - force_series : bool - force_units : bool - resource_ids : typing.Mapping[str, str] - storage_constraints : typing.Mapping[str, ~StorageConstraints] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetCharm', - version=2, - params=_params) - _params['application'] = application - _params['channel'] = channel - _params['charm-url'] = charm_url - _params['config-settings'] = config_settings - _params['config-settings-yaml'] = config_settings_yaml - _params['force-series'] = force_series - _params['force-units'] = force_units - _params['resource-ids'] = resource_ids - _params['storage-constraints'] = storage_constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetConstraints(self, application, constraints): - ''' - application : str - constraints : Value - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetConstraints', - version=2, - params=_params) - _params['application'] = application - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetMetricCredentials(self, creds): - ''' - creds : typing.Sequence[~ApplicationMetricCredential] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetMetricCredentials', - version=2, - params=_params) - _params['creds'] = creds - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Unexpose(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Unexpose', - version=2, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Unset(self, application, options): - ''' - application : str - options : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Unset', - version=2, - params=_params) - _params['application'] = application - _params['options'] = options - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Update(self, application, charm_url, constraints, force_charm_url, force_series, min_units, settings, settings_yaml): - ''' - application : str - charm_url : str - constraints : Value - force_charm_url : bool - force_series : bool - min_units : int - settings : typing.Mapping[str, str] - settings_yaml : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Update', - version=2, - params=_params) - _params['application'] = application - _params['charm-url'] = charm_url - _params['constraints'] = constraints - _params['force-charm-url'] = force_charm_url - _params['force-series'] = force_series - _params['min-units'] = min_units - _params['settings'] = settings - _params['settings-yaml'] = settings_yaml - reply = await self.rpc(msg) - return reply - - - -class ApplicationOffersFacade(Type): - name = 'ApplicationOffers' - version = 2 - schema = {'definitions': {'AddApplicationOffer': {'additionalProperties': False, - 'properties': {'application-description': {'type': 'string'}, - 'application-name': {'type': 'string'}, - 'endpoints': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'model-tag': {'type': 'string'}, - 'offer-name': {'type': 'string'}}, - 'required': ['model-tag', - 'offer-name', - 'application-name', - 'application-description', - 'endpoints'], - 'type': 'object'}, - 'AddApplicationOffers': {'additionalProperties': False, - 'properties': {'Offers': {'items': {'$ref': '#/definitions/AddApplicationOffer'}, - 'type': 'array'}}, - 'required': ['Offers'], - 'type': 'object'}, - 'ApplicationOfferAdminDetails': {'additionalProperties': False, - 'properties': {'ApplicationOfferDetails': {'$ref': '#/definitions/ApplicationOfferDetails'}, - 'application-name': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'connections': {'items': {'$ref': '#/definitions/OfferConnection'}, - 'type': 'array'}}, - 'required': ['ApplicationOfferDetails', - 'application-name', - 'charm-url'], - 'type': 'object'}, - 'ApplicationOfferDetails': {'additionalProperties': False, - 'properties': {'application-description': {'type': 'string'}, - 'bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'}, - 'type': 'array'}, - 'offer-name': {'type': 'string'}, - 'offer-url': {'type': 'string'}, - 'offer-uuid': {'type': 'string'}, - 'source-model-tag': {'type': 'string'}, - 'spaces': {'items': {'$ref': '#/definitions/RemoteSpace'}, - 'type': 'array'}, - 'users': {'items': {'$ref': '#/definitions/OfferUserDetails'}, - 'type': 'array'}}, - 'required': ['source-model-tag', - 'offer-uuid', - 'offer-url', - 'offer-name', - 'application-description'], - 'type': 'object'}, - 'ApplicationOfferResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ApplicationOfferAdminDetails'}}, - 'type': 'object'}, - 'ApplicationOffersResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationOfferResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ConsumeOfferDetails': {'additionalProperties': False, - 'properties': {'external-controller': {'$ref': '#/definitions/ExternalControllerInfo'}, - 'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'offer': {'$ref': '#/definitions/ApplicationOfferDetails'}}, - 'type': 'object'}, - 'ConsumeOfferDetailsResult': {'additionalProperties': False, - 'properties': {'ConsumeOfferDetails': {'$ref': '#/definitions/ConsumeOfferDetails'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['ConsumeOfferDetails'], - 'type': 'object'}, - 'ConsumeOfferDetailsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ConsumeOfferDetailsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyApplicationOffers': {'additionalProperties': False, - 'properties': {'force': {'type': 'boolean'}, - 'offer-urls': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['offer-urls'], - 'type': 'object'}, - 'EndpointFilterAttributes': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'name': {'type': 'string'}, - 'role': {'type': 'string'}}, - 'required': ['role', - 'interface', - 'name'], - 'type': 'object'}, - 'EntityStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'info', 'since'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ExternalControllerInfo': {'additionalProperties': False, - 'properties': {'addrs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'ca-cert': {'type': 'string'}, - 'controller-alias': {'type': 'string'}, - 'controller-tag': {'type': 'string'}}, - 'required': ['controller-tag', - 'controller-alias', - 'addrs', - 'ca-cert'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModifyOfferAccess': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'action': {'type': 'string'}, - 'offer-url': {'type': 'string'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag', - 'action', - 'access', - 'offer-url'], - 'type': 'object'}, - 'ModifyOfferAccessRequest': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyOfferAccess'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'OfferConnection': {'additionalProperties': False, - 'properties': {'endpoint': {'type': 'string'}, - 'ingress-subnets': {'items': {'type': 'string'}, - 'type': 'array'}, - 'relation-id': {'type': 'integer'}, - 'source-model-tag': {'type': 'string'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'username': {'type': 'string'}}, - 'required': ['source-model-tag', - 'relation-id', - 'username', - 'endpoint', - 'status', - 'ingress-subnets'], - 'type': 'object'}, - 'OfferFilter': {'additionalProperties': False, - 'properties': {'allowed-users': {'items': {'type': 'string'}, - 'type': 'array'}, - 'application-description': {'type': 'string'}, - 'application-name': {'type': 'string'}, - 'application-user': {'type': 'string'}, - 'connected-users': {'items': {'type': 'string'}, - 'type': 'array'}, - 'endpoints': {'items': {'$ref': '#/definitions/EndpointFilterAttributes'}, - 'type': 'array'}, - 'model-name': {'type': 'string'}, - 'offer-name': {'type': 'string'}, - 'owner-name': {'type': 'string'}}, - 'required': ['owner-name', - 'model-name', - 'offer-name', - 'application-name', - 'application-description', - 'application-user', - 'endpoints', - 'connected-users', - 'allowed-users'], - 'type': 'object'}, - 'OfferFilters': {'additionalProperties': False, - 'properties': {'Filters': {'items': {'$ref': '#/definitions/OfferFilter'}, - 'type': 'array'}}, - 'required': ['Filters'], - 'type': 'object'}, - 'OfferURLs': {'additionalProperties': False, - 'properties': {'offer-urls': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'OfferUserDetails': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'display-name': {'type': 'string'}, - 'user': {'type': 'string'}}, - 'required': ['user', - 'display-name', - 'access'], - 'type': 'object'}, - 'QueryApplicationOffersResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationOfferAdminDetails'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RemoteApplicationInfo': {'additionalProperties': False, - 'properties': {'description': {'type': 'string'}, - 'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'}, - 'type': 'array'}, - 'icon-url-path': {'type': 'string'}, - 'model-tag': {'type': 'string'}, - 'name': {'type': 'string'}, - 'offer-url': {'type': 'string'}, - 'source-model-label': {'type': 'string'}}, - 'required': ['model-tag', - 'name', - 'description', - 'offer-url', - 'endpoints', - 'icon-url-path'], - 'type': 'object'}, - 'RemoteApplicationInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/RemoteApplicationInfo'}}, - 'type': 'object'}, - 'RemoteApplicationInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RemoteApplicationInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RemoteEndpoint': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'role': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'limit'], - 'type': 'object'}, - 'RemoteSpace': {'additionalProperties': False, - 'properties': {'cloud-type': {'type': 'string'}, - 'name': {'type': 'string'}, - 'provider-attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'provider-id': {'type': 'string'}, - 'subnets': {'items': {'$ref': '#/definitions/Subnet'}, - 'type': 'array'}}, - 'required': ['cloud-type', - 'name', - 'provider-id', - 'provider-attributes', - 'subnets'], - 'type': 'object'}, - 'Subnet': {'additionalProperties': False, - 'properties': {'cidr': {'type': 'string'}, - 'life': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-network-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'space-tag': {'type': 'string'}, - 'status': {'type': 'string'}, - 'vlan-tag': {'type': 'integer'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['cidr', - 'vlan-tag', - 'life', - 'space-tag', - 'zones'], - 'type': 'object'}}, - 'properties': {'ApplicationOffers': {'properties': {'Params': {'$ref': '#/definitions/OfferURLs'}, - 'Result': {'$ref': '#/definitions/ApplicationOffersResults'}}, - 'type': 'object'}, - 'DestroyOffers': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationOffers'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'FindApplicationOffers': {'properties': {'Params': {'$ref': '#/definitions/OfferFilters'}, - 'Result': {'$ref': '#/definitions/QueryApplicationOffersResults'}}, - 'type': 'object'}, - 'GetConsumeDetails': {'properties': {'Params': {'$ref': '#/definitions/OfferURLs'}, - 'Result': {'$ref': '#/definitions/ConsumeOfferDetailsResults'}}, - 'type': 'object'}, - 'ListApplicationOffers': {'properties': {'Params': {'$ref': '#/definitions/OfferFilters'}, - 'Result': {'$ref': '#/definitions/QueryApplicationOffersResults'}}, - 'type': 'object'}, - 'ModifyOfferAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyOfferAccessRequest'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Offer': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationOffers'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RemoteApplicationInfo': {'properties': {'Params': {'$ref': '#/definitions/OfferURLs'}, - 'Result': {'$ref': '#/definitions/RemoteApplicationInfoResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ApplicationOffersResults) - async def ApplicationOffers(self, offer_urls): - ''' - offer_urls : typing.Sequence[str] - Returns -> typing.Sequence[~ApplicationOfferResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationOffers', - request='ApplicationOffers', - version=2, - params=_params) - _params['offer-urls'] = offer_urls - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DestroyOffers(self, force, offer_urls): - ''' - force : bool - offer_urls : typing.Sequence[str] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationOffers', - request='DestroyOffers', - version=2, - params=_params) - _params['force'] = force - _params['offer-urls'] = offer_urls - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(QueryApplicationOffersResults) - async def FindApplicationOffers(self, filters): - ''' - filters : typing.Sequence[~OfferFilter] - Returns -> typing.Sequence[~ApplicationOfferAdminDetails] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationOffers', - request='FindApplicationOffers', - version=2, - params=_params) - _params['Filters'] = filters - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ConsumeOfferDetailsResults) - async def GetConsumeDetails(self, offer_urls): - ''' - offer_urls : typing.Sequence[str] - Returns -> typing.Sequence[~ConsumeOfferDetailsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationOffers', - request='GetConsumeDetails', - version=2, - params=_params) - _params['offer-urls'] = offer_urls - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(QueryApplicationOffersResults) - async def ListApplicationOffers(self, filters): - ''' - filters : typing.Sequence[~OfferFilter] - Returns -> typing.Sequence[~ApplicationOfferAdminDetails] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationOffers', - request='ListApplicationOffers', - version=2, - params=_params) - _params['Filters'] = filters - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ModifyOfferAccess(self, changes): - ''' - changes : typing.Sequence[~ModifyOfferAccess] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationOffers', - request='ModifyOfferAccess', - version=2, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Offer(self, offers): - ''' - offers : typing.Sequence[~AddApplicationOffer] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationOffers', - request='Offer', - version=2, - params=_params) - _params['Offers'] = offers - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RemoteApplicationInfoResults) - async def RemoteApplicationInfo(self, offer_urls): - ''' - offer_urls : typing.Sequence[str] - Returns -> typing.Sequence[~RemoteApplicationInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationOffers', - request='RemoteApplicationInfo', - version=2, - params=_params) - _params['offer-urls'] = offer_urls - reply = await self.rpc(msg) - return reply - - - -class BackupsFacade(Type): - name = 'Backups' - version = 2 - schema = {'definitions': {'BackupsCreateArgs': {'additionalProperties': False, - 'properties': {'keep-copy': {'type': 'boolean'}, - 'no-download': {'type': 'boolean'}, - 'notes': {'type': 'string'}}, - 'required': ['notes', - 'keep-copy', - 'no-download'], - 'type': 'object'}, - 'BackupsInfoArgs': {'additionalProperties': False, - 'properties': {'id': {'type': 'string'}}, - 'required': ['id'], - 'type': 'object'}, - 'BackupsListArgs': {'additionalProperties': False, - 'type': 'object'}, - 'BackupsListResult': {'additionalProperties': False, - 'properties': {'list': {'items': {'$ref': '#/definitions/BackupsMetadataResult'}, - 'type': 'array'}}, - 'required': ['list'], - 'type': 'object'}, - 'BackupsMetadataResult': {'additionalProperties': False, - 'properties': {'ca-cert': {'type': 'string'}, - 'ca-private-key': {'type': 'string'}, - 'checksum': {'type': 'string'}, - 'checksum-format': {'type': 'string'}, - 'filename': {'type': 'string'}, - 'finished': {'format': 'date-time', - 'type': 'string'}, - 'hostname': {'type': 'string'}, - 'id': {'type': 'string'}, - 'machine': {'type': 'string'}, - 'model': {'type': 'string'}, - 'notes': {'type': 'string'}, - 'series': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'started': {'format': 'date-time', - 'type': 'string'}, - 'stored': {'format': 'date-time', - 'type': 'string'}, - 'version': {'$ref': '#/definitions/Number'}}, - 'required': ['id', - 'checksum', - 'checksum-format', - 'size', - 'stored', - 'started', - 'finished', - 'notes', - 'model', - 'machine', - 'hostname', - 'version', - 'series', - 'ca-cert', - 'ca-private-key', - 'filename'], - 'type': 'object'}, - 'BackupsRemoveArgs': {'additionalProperties': False, - 'properties': {'ids': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['ids'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'RestoreArgs': {'additionalProperties': False, - 'properties': {'backup-id': {'type': 'string'}}, - 'required': ['backup-id'], - 'type': 'object'}}, - 'properties': {'Create': {'properties': {'Params': {'$ref': '#/definitions/BackupsCreateArgs'}, - 'Result': {'$ref': '#/definitions/BackupsMetadataResult'}}, - 'type': 'object'}, - 'FinishRestore': {'type': 'object'}, - 'Info': {'properties': {'Params': {'$ref': '#/definitions/BackupsInfoArgs'}, - 'Result': {'$ref': '#/definitions/BackupsMetadataResult'}}, - 'type': 'object'}, - 'List': {'properties': {'Params': {'$ref': '#/definitions/BackupsListArgs'}, - 'Result': {'$ref': '#/definitions/BackupsListResult'}}, - 'type': 'object'}, - 'PrepareRestore': {'type': 'object'}, - 'Remove': {'properties': {'Params': {'$ref': '#/definitions/BackupsRemoveArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Restore': {'properties': {'Params': {'$ref': '#/definitions/RestoreArgs'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(BackupsMetadataResult) - async def Create(self, notes): - ''' - notes : str - Returns -> typing.Union[str, int, _ForwardRef('Number')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='Create', - version=2, - params=_params) - _params['notes'] = notes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def FinishRestore(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='FinishRestore', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BackupsMetadataResult) - async def Info(self, id_): - ''' - id_ : str - Returns -> typing.Union[str, int, _ForwardRef('Number')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='Info', - version=2, - params=_params) - _params['id'] = id_ - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BackupsListResult) - async def List(self): - ''' - - Returns -> typing.Sequence[~BackupsMetadataResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='List', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def PrepareRestore(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='PrepareRestore', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Remove(self, id_): - ''' - id_ : str - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='Remove', - version=2, - params=_params) - _params['id'] = id_ - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Restore(self, backup_id): - ''' - backup_id : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='Restore', - version=2, - params=_params) - _params['backup-id'] = backup_id - reply = await self.rpc(msg) - return reply - - - -class BlockFacade(Type): - name = 'Block' - version = 2 - schema = {'definitions': {'Block': {'additionalProperties': False, - 'properties': {'id': {'type': 'string'}, - 'message': {'type': 'string'}, - 'tag': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['id', 'tag', 'type'], - 'type': 'object'}, - 'BlockResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/Block'}}, - 'required': ['result'], - 'type': 'object'}, - 'BlockResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/BlockResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'BlockSwitchParams': {'additionalProperties': False, - 'properties': {'message': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, - 'properties': {'List': {'properties': {'Result': {'$ref': '#/definitions/BlockResults'}}, - 'type': 'object'}, - 'SwitchBlockOff': {'properties': {'Params': {'$ref': '#/definitions/BlockSwitchParams'}, - 'Result': {'$ref': '#/definitions/ErrorResult'}}, - 'type': 'object'}, - 'SwitchBlockOn': {'properties': {'Params': {'$ref': '#/definitions/BlockSwitchParams'}, - 'Result': {'$ref': '#/definitions/ErrorResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(BlockResults) - async def List(self): - ''' - - Returns -> typing.Sequence[~BlockResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Block', - request='List', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResult) - async def SwitchBlockOff(self, message, type_): - ''' - message : str - type_ : str - Returns -> Error - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Block', - request='SwitchBlockOff', - version=2, - params=_params) - _params['message'] = message - _params['type'] = type_ - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResult) - async def SwitchBlockOn(self, message, type_): - ''' - message : str - type_ : str - Returns -> Error - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Block', - request='SwitchBlockOn', - version=2, - params=_params) - _params['message'] = message - _params['type'] = type_ - reply = await self.rpc(msg) - return reply - - - -class BundleFacade(Type): - name = 'Bundle' - version = 2 - schema = {'definitions': {'BundleChange': {'additionalProperties': False, - 'properties': {'args': {'items': {'additionalProperties': True, - 'type': 'object'}, - 'type': 'array'}, - 'id': {'type': 'string'}, - 'method': {'type': 'string'}, - 'requires': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['id', - 'method', - 'args', - 'requires'], - 'type': 'object'}, - 'BundleChangesParams': {'additionalProperties': False, - 'properties': {'bundleURL': {'type': 'string'}, - 'yaml': {'type': 'string'}}, - 'required': ['yaml', 'bundleURL'], - 'type': 'object'}, - 'BundleChangesResults': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/BundleChange'}, - 'type': 'array'}, - 'errors': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}}, - 'properties': {'ExportBundle': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'GetChanges': {'properties': {'Params': {'$ref': '#/definitions/BundleChangesParams'}, - 'Result': {'$ref': '#/definitions/BundleChangesResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringResult) - async def ExportBundle(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Bundle', - request='ExportBundle', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BundleChangesResults) - async def GetChanges(self, yaml): - ''' - yaml : str - Returns -> typing.Union[typing.Sequence[~BundleChange], typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Bundle', - request='GetChanges', - version=2, - params=_params) - _params['yaml'] = yaml - reply = await self.rpc(msg) - return reply - - - -class CharmRevisionUpdaterFacade(Type): - name = 'CharmRevisionUpdater' - version = 2 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, - 'properties': {'UpdateLatestRevisions': {'properties': {'Result': {'$ref': '#/definitions/ErrorResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResult) - async def UpdateLatestRevisions(self): - ''' - - Returns -> Error - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CharmRevisionUpdater', - request='UpdateLatestRevisions', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class CharmsFacade(Type): - name = 'Charms' - version = 2 - schema = {'definitions': {'CharmActionSpec': {'additionalProperties': False, - 'properties': {'description': {'type': 'string'}, - 'params': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['description', 'params'], - 'type': 'object'}, - 'CharmActions': {'additionalProperties': False, - 'properties': {'specs': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmActionSpec'}}, - 'type': 'object'}}, - 'type': 'object'}, - 'CharmDevice': {'additionalProperties': False, - 'properties': {'CountMax': {'type': 'integer'}, - 'CountMin': {'type': 'integer'}, - 'Description': {'type': 'string'}, - 'Name': {'type': 'string'}, - 'Type': {'type': 'string'}}, - 'required': ['Name', - 'Description', - 'Type', - 'CountMin', - 'CountMax'], - 'type': 'object'}, - 'CharmInfo': {'additionalProperties': False, - 'properties': {'actions': {'$ref': '#/definitions/CharmActions'}, - 'config': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmOption'}}, - 'type': 'object'}, - 'lxd-profile': {'$ref': '#/definitions/CharmLXDProfile'}, - 'meta': {'$ref': '#/definitions/CharmMeta'}, - 'metrics': {'$ref': '#/definitions/CharmMetrics'}, - 'revision': {'type': 'integer'}, - 'url': {'type': 'string'}}, - 'required': ['revision', 'url', 'config'], - 'type': 'object'}, - 'CharmLXDProfile': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'description': {'type': 'string'}, - 'devices': {'patternProperties': {'.*': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config', - 'description', - 'devices'], - 'type': 'object'}, - 'CharmMeta': {'additionalProperties': False, - 'properties': {'categories': {'items': {'type': 'string'}, - 'type': 'array'}, - 'description': {'type': 'string'}, - 'devices': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmDevice'}}, - 'type': 'object'}, - 'extra-bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'min-juju-version': {'type': 'string'}, - 'name': {'type': 'string'}, - 'payload-classes': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmPayloadClass'}}, - 'type': 'object'}, - 'peers': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, - 'type': 'object'}, - 'provides': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, - 'type': 'object'}, - 'requires': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, - 'type': 'object'}, - 'resources': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmResourceMeta'}}, - 'type': 'object'}, - 'series': {'items': {'type': 'string'}, - 'type': 'array'}, - 'storage': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmStorage'}}, - 'type': 'object'}, - 'subordinate': {'type': 'boolean'}, - 'summary': {'type': 'string'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'terms': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['name', - 'summary', - 'description', - 'subordinate'], - 'type': 'object'}, - 'CharmMetric': {'additionalProperties': False, - 'properties': {'description': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type', 'description'], - 'type': 'object'}, - 'CharmMetrics': {'additionalProperties': False, - 'properties': {'metrics': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmMetric'}}, - 'type': 'object'}, - 'plan': {'$ref': '#/definitions/CharmPlan'}}, - 'required': ['metrics', 'plan'], - 'type': 'object'}, - 'CharmOption': {'additionalProperties': False, - 'properties': {'default': {'additionalProperties': True, - 'type': 'object'}, - 'description': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type'], - 'type': 'object'}, - 'CharmPayloadClass': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['name', 'type'], - 'type': 'object'}, - 'CharmPlan': {'additionalProperties': False, - 'properties': {'required': {'type': 'boolean'}}, - 'required': ['required'], - 'type': 'object'}, - 'CharmRelation': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'optional': {'type': 'boolean'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'optional', - 'limit', - 'scope'], - 'type': 'object'}, - 'CharmResourceMeta': {'additionalProperties': False, - 'properties': {'description': {'type': 'string'}, - 'name': {'type': 'string'}, - 'path': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['name', - 'type', - 'path', - 'description'], - 'type': 'object'}, - 'CharmStorage': {'additionalProperties': False, - 'properties': {'count-max': {'type': 'integer'}, - 'count-min': {'type': 'integer'}, - 'description': {'type': 'string'}, - 'location': {'type': 'string'}, - 'minimum-size': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'properties': {'items': {'type': 'string'}, - 'type': 'array'}, - 'read-only': {'type': 'boolean'}, - 'shared': {'type': 'boolean'}, - 'type': {'type': 'string'}}, - 'required': ['name', - 'description', - 'type', - 'shared', - 'read-only', - 'count-min', - 'count-max', - 'minimum-size'], - 'type': 'object'}, - 'CharmURL': {'additionalProperties': False, - 'properties': {'url': {'type': 'string'}}, - 'required': ['url'], - 'type': 'object'}, - 'CharmsList': {'additionalProperties': False, - 'properties': {'names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['names'], - 'type': 'object'}, - 'CharmsListResult': {'additionalProperties': False, - 'properties': {'charm-urls': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['charm-urls'], - 'type': 'object'}, - 'IsMeteredResult': {'additionalProperties': False, - 'properties': {'metered': {'type': 'boolean'}}, - 'required': ['metered'], - 'type': 'object'}}, - 'properties': {'CharmInfo': {'properties': {'Params': {'$ref': '#/definitions/CharmURL'}, - 'Result': {'$ref': '#/definitions/CharmInfo'}}, - 'type': 'object'}, - 'IsMetered': {'properties': {'Params': {'$ref': '#/definitions/CharmURL'}, - 'Result': {'$ref': '#/definitions/IsMeteredResult'}}, - 'type': 'object'}, - 'List': {'properties': {'Params': {'$ref': '#/definitions/CharmsList'}, - 'Result': {'$ref': '#/definitions/CharmsListResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(CharmInfo) - async def CharmInfo(self, url): - ''' - url : str - Returns -> typing.Union[_ForwardRef('CharmActions'), typing.Mapping[str, ~CharmOption], _ForwardRef('CharmMeta'), _ForwardRef('CharmMetrics'), int, str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Charms', - request='CharmInfo', - version=2, - params=_params) - _params['url'] = url - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(IsMeteredResult) - async def IsMetered(self, url): - ''' - url : str - Returns -> bool - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Charms', - request='IsMetered', - version=2, - params=_params) - _params['url'] = url - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CharmsListResult) - async def List(self, names): - ''' - names : typing.Sequence[str] - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Charms', - request='List', - version=2, - params=_params) - _params['names'] = names - reply = await self.rpc(msg) - return reply - - - -class CleanerFacade(Type): - name = 'Cleaner' - version = 2 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}}, - 'properties': {'Cleanup': {'type': 'object'}, - 'WatchCleanups': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(None) - async def Cleanup(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cleaner', - request='Cleanup', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchCleanups(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cleaner', - request='WatchCleanups', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class ClientFacade(Type): - name = 'Client' - version = 2 - schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, - 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, - 'type': 'array'}, - 'type': 'array'}}, - 'required': ['servers'], - 'type': 'object'}, - 'AddCharm': {'additionalProperties': False, - 'properties': {'channel': {'type': 'string'}, - 'force': {'type': 'boolean'}, - 'url': {'type': 'string'}}, - 'required': ['url', 'channel', 'force'], - 'type': 'object'}, - 'AddCharmWithAuthorization': {'additionalProperties': False, - 'properties': {'channel': {'type': 'string'}, - 'force': {'type': 'boolean'}, - 'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'url': {'type': 'string'}}, - 'required': ['url', - 'channel', - 'macaroon', - 'force'], - 'type': 'object'}, - 'AddMachineParams': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, - 'type': 'array'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'container-type': {'type': 'string'}, - 'disks': {'items': {'$ref': '#/definitions/Constraints'}, - 'type': 'array'}, - 'hardware-characteristics': {'$ref': '#/definitions/HardwareCharacteristics'}, - 'instance-id': {'type': 'string'}, - 'jobs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'nonce': {'type': 'string'}, - 'parent-id': {'type': 'string'}, - 'placement': {'$ref': '#/definitions/Placement'}, - 'series': {'type': 'string'}}, - 'required': ['series', - 'constraints', - 'jobs', - 'parent-id', - 'container-type', - 'instance-id', - 'nonce', - 'hardware-characteristics', - 'addresses'], - 'type': 'object'}, - 'AddMachines': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/AddMachineParams'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'AddMachinesResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'machine': {'type': 'string'}}, - 'required': ['machine'], - 'type': 'object'}, - 'AddMachinesResults': {'additionalProperties': False, - 'properties': {'machines': {'items': {'$ref': '#/definitions/AddMachinesResult'}, - 'type': 'array'}}, - 'required': ['machines'], - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'AgentVersionResult': {'additionalProperties': False, - 'properties': {'version': {'$ref': '#/definitions/Number'}}, - 'required': ['version'], - 'type': 'object'}, - 'AllWatcherId': {'additionalProperties': False, - 'properties': {'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'ApplicationOfferStatus': {'additionalProperties': False, - 'properties': {'active-connected-count': {'type': 'integer'}, - 'application-name': {'type': 'string'}, - 'charm': {'type': 'string'}, - 'endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/RemoteEndpoint'}}, - 'type': 'object'}, - 'err': {'additionalProperties': True, - 'type': 'object'}, - 'offer-name': {'type': 'string'}, - 'total-connected-count': {'type': 'integer'}}, - 'required': ['offer-name', - 'application-name', - 'charm', - 'endpoints', - 'active-connected-count', - 'total-connected-count'], - 'type': 'object'}, - 'ApplicationStatus': {'additionalProperties': False, - 'properties': {'can-upgrade-to': {'type': 'string'}, - 'charm': {'type': 'string'}, - 'charm-verion': {'type': 'string'}, - 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'err': {'additionalProperties': True, - 'type': 'object'}, - 'exposed': {'type': 'boolean'}, - 'int': {'type': 'integer'}, - 'life': {'type': 'string'}, - 'meter-statuses': {'patternProperties': {'.*': {'$ref': '#/definitions/MeterStatus'}}, - 'type': 'object'}, - 'provider-id': {'type': 'string'}, - 'public-address': {'type': 'string'}, - 'relations': {'patternProperties': {'.*': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'series': {'type': 'string'}, - 'status': {'$ref': '#/definitions/DetailedStatus'}, - 'string': {'type': 'string'}, - 'subordinate-to': {'items': {'type': 'string'}, - 'type': 'array'}, - 'units': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitStatus'}}, - 'type': 'object'}, - 'workload-version': {'type': 'string'}}, - 'required': ['charm', - 'series', - 'exposed', - 'life', - 'relations', - 'can-upgrade-to', - 'subordinate-to', - 'units', - 'meter-statuses', - 'status', - 'workload-version', - 'charm-verion', - 'endpoint-bindings', - 'public-address'], - 'type': 'object'}, - 'Binary': {'additionalProperties': False, - 'properties': {'Arch': {'type': 'string'}, - 'Number': {'$ref': '#/definitions/Number'}, - 'Series': {'type': 'string'}}, - 'required': ['Number', 'Series', 'Arch'], - 'type': 'object'}, - 'BundleChange': {'additionalProperties': False, - 'properties': {'args': {'items': {'additionalProperties': True, - 'type': 'object'}, - 'type': 'array'}, - 'id': {'type': 'string'}, - 'method': {'type': 'string'}, - 'requires': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['id', - 'method', - 'args', - 'requires'], - 'type': 'object'}, - 'BundleChangesParams': {'additionalProperties': False, - 'properties': {'bundleURL': {'type': 'string'}, - 'yaml': {'type': 'string'}}, - 'required': ['yaml', 'bundleURL'], - 'type': 'object'}, - 'BundleChangesResults': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/BundleChange'}, - 'type': 'array'}, - 'errors': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'BytesResult': {'additionalProperties': False, - 'properties': {'result': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['result'], - 'type': 'object'}, - 'ConfigValue': {'additionalProperties': False, - 'properties': {'source': {'type': 'string'}, - 'value': {'additionalProperties': True, - 'type': 'object'}}, - 'required': ['value', 'source'], - 'type': 'object'}, - 'Constraints': {'additionalProperties': False, - 'properties': {'Count': {'type': 'integer'}, - 'Pool': {'type': 'string'}, - 'Size': {'type': 'integer'}}, - 'required': ['Pool', 'Size', 'Count'], - 'type': 'object'}, - 'DestroyMachines': {'additionalProperties': False, - 'properties': {'force': {'type': 'boolean'}, - 'machine-names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['machine-names', 'force'], - 'type': 'object'}, - 'DetailedStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'err': {'additionalProperties': True, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'kind': {'type': 'string'}, - 'life': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}, - 'version': {'type': 'string'}}, - 'required': ['status', - 'info', - 'data', - 'since', - 'kind', - 'version', - 'life'], - 'type': 'object'}, - 'EndpointStatus': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'name': {'type': 'string'}, - 'role': {'type': 'string'}, - 'subordinate': {'type': 'boolean'}}, - 'required': ['application', - 'name', - 'role', - 'subordinate'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'info', 'since'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'FindToolsParams': {'additionalProperties': False, - 'properties': {'agentstream': {'type': 'string'}, - 'arch': {'type': 'string'}, - 'major': {'type': 'integer'}, - 'minor': {'type': 'integer'}, - 'number': {'$ref': '#/definitions/Number'}, - 'series': {'type': 'string'}}, - 'required': ['number', - 'major', - 'minor', - 'arch', - 'series', - 'agentstream'], - 'type': 'object'}, - 'FindToolsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'list': {'items': {'$ref': '#/definitions/Tools'}, - 'type': 'array'}}, - 'required': ['list'], - 'type': 'object'}, - 'FullStatus': {'additionalProperties': False, - 'properties': {'applications': {'patternProperties': {'.*': {'$ref': '#/definitions/ApplicationStatus'}}, - 'type': 'object'}, - 'controller-timestamp': {'format': 'date-time', - 'type': 'string'}, - 'machines': {'patternProperties': {'.*': {'$ref': '#/definitions/MachineStatus'}}, - 'type': 'object'}, - 'model': {'$ref': '#/definitions/ModelStatusInfo'}, - 'offers': {'patternProperties': {'.*': {'$ref': '#/definitions/ApplicationOfferStatus'}}, - 'type': 'object'}, - 'relations': {'items': {'$ref': '#/definitions/RelationStatus'}, - 'type': 'array'}, - 'remote-applications': {'patternProperties': {'.*': {'$ref': '#/definitions/RemoteApplicationStatus'}}, - 'type': 'object'}}, - 'required': ['model', - 'machines', - 'applications', - 'remote-applications', - 'offers', - 'relations', - 'controller-timestamp'], - 'type': 'object'}, - 'GetConstraintsResults': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'HardwareCharacteristics': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cpu-cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'History': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'statuses': {'items': {'$ref': '#/definitions/DetailedStatus'}, - 'type': 'array'}}, - 'required': ['statuses'], - 'type': 'object'}, - 'HostPort': {'additionalProperties': False, - 'properties': {'Address': {'$ref': '#/definitions/Address'}, - 'port': {'type': 'integer'}}, - 'required': ['Address', 'port'], - 'type': 'object'}, - 'LXDProfile': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'description': {'type': 'string'}, - 'devices': {'patternProperties': {'.*': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config', - 'description', - 'devices'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineHardware': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'MachineStatus': {'additionalProperties': False, - 'properties': {'agent-status': {'$ref': '#/definitions/DetailedStatus'}, - 'constraints': {'type': 'string'}, - 'containers': {'patternProperties': {'.*': {'$ref': '#/definitions/MachineStatus'}}, - 'type': 'object'}, - 'dns-name': {'type': 'string'}, - 'hardware': {'type': 'string'}, - 'has-vote': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'instance-id': {'type': 'string'}, - 'instance-status': {'$ref': '#/definitions/DetailedStatus'}, - 'ip-addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'jobs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'lxd-profiles': {'patternProperties': {'.*': {'$ref': '#/definitions/LXDProfile'}}, - 'type': 'object'}, - 'network-interfaces': {'patternProperties': {'.*': {'$ref': '#/definitions/NetworkInterface'}}, - 'type': 'object'}, - 'series': {'type': 'string'}, - 'wants-vote': {'type': 'boolean'}}, - 'required': ['agent-status', - 'instance-status', - 'dns-name', - 'instance-id', - 'series', - 'id', - 'containers', - 'constraints', - 'hardware', - 'jobs', - 'has-vote', - 'wants-vote'], - 'type': 'object'}, - 'MeterStatus': {'additionalProperties': False, - 'properties': {'color': {'type': 'string'}, - 'message': {'type': 'string'}}, - 'required': ['color', 'message'], - 'type': 'object'}, - 'ModelConfigResults': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelInfo': {'additionalProperties': False, - 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, - 'cloud-credential-tag': {'type': 'string'}, - 'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'controller-uuid': {'type': 'string'}, - 'default-series': {'type': 'string'}, - 'life': {'type': 'string'}, - 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, - 'type': 'array'}, - 'migration': {'$ref': '#/definitions/ModelMigrationStatus'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'provider-type': {'type': 'string'}, - 'sla': {'$ref': '#/definitions/ModelSLAInfo'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'type': {'type': 'string'}, - 'users': {'items': {'$ref': '#/definitions/ModelUserInfo'}, - 'type': 'array'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', - 'type', - 'uuid', - 'controller-uuid', - 'cloud-tag', - 'owner-tag', - 'life', - 'users', - 'machines', - 'sla', - 'agent-version'], - 'type': 'object'}, - 'ModelMachineInfo': {'additionalProperties': False, - 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'}, - 'has-vote': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'instance-id': {'type': 'string'}, - 'message': {'type': 'string'}, - 'status': {'type': 'string'}, - 'wants-vote': {'type': 'boolean'}}, - 'required': ['id'], - 'type': 'object'}, - 'ModelMigrationStatus': {'additionalProperties': False, - 'properties': {'end': {'format': 'date-time', - 'type': 'string'}, - 'start': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'start'], - 'type': 'object'}, - 'ModelSLA': {'additionalProperties': False, - 'properties': {'ModelSLAInfo': {'$ref': '#/definitions/ModelSLAInfo'}, - 'creds': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['ModelSLAInfo', 'creds'], - 'type': 'object'}, - 'ModelSLAInfo': {'additionalProperties': False, - 'properties': {'level': {'type': 'string'}, - 'owner': {'type': 'string'}}, - 'required': ['level', 'owner'], - 'type': 'object'}, - 'ModelSet': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelStatusInfo': {'additionalProperties': False, - 'properties': {'available-version': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'meter-status': {'$ref': '#/definitions/MeterStatus'}, - 'model-status': {'$ref': '#/definitions/DetailedStatus'}, - 'name': {'type': 'string'}, - 'region': {'type': 'string'}, - 'sla': {'type': 'string'}, - 'type': {'type': 'string'}, - 'version': {'type': 'string'}}, - 'required': ['name', - 'type', - 'cloud-tag', - 'version', - 'available-version', - 'model-status', - 'meter-status', - 'sla'], - 'type': 'object'}, - 'ModelUnset': {'additionalProperties': False, - 'properties': {'keys': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['keys'], - 'type': 'object'}, - 'ModelUserInfo': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'display-name': {'type': 'string'}, - 'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'user': {'type': 'string'}}, - 'required': ['user', - 'display-name', - 'last-connection', - 'access'], - 'type': 'object'}, - 'ModelUserInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ModelUserInfo'}}, - 'type': 'object'}, - 'ModelUserInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ModelUserInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'NetworkInterface': {'additionalProperties': False, - 'properties': {'dns-nameservers': {'items': {'type': 'string'}, - 'type': 'array'}, - 'gateway': {'type': 'string'}, - 'ip-addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'is-up': {'type': 'boolean'}, - 'mac-address': {'type': 'string'}, - 'space': {'type': 'string'}}, - 'required': ['ip-addresses', - 'mac-address', - 'is-up'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'Placement': {'additionalProperties': False, - 'properties': {'directive': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['scope', 'directive'], - 'type': 'object'}, - 'PrivateAddress': {'additionalProperties': False, - 'properties': {'target': {'type': 'string'}}, - 'required': ['target'], - 'type': 'object'}, - 'PrivateAddressResults': {'additionalProperties': False, - 'properties': {'private-address': {'type': 'string'}}, - 'required': ['private-address'], - 'type': 'object'}, - 'ProvisioningScriptParams': {'additionalProperties': False, - 'properties': {'data-dir': {'type': 'string'}, - 'disable-package-commands': {'type': 'boolean'}, - 'machine-id': {'type': 'string'}, - 'nonce': {'type': 'string'}}, - 'required': ['machine-id', - 'nonce', - 'data-dir', - 'disable-package-commands'], - 'type': 'object'}, - 'ProvisioningScriptResult': {'additionalProperties': False, - 'properties': {'script': {'type': 'string'}}, - 'required': ['script'], - 'type': 'object'}, - 'PublicAddress': {'additionalProperties': False, - 'properties': {'target': {'type': 'string'}}, - 'required': ['target'], - 'type': 'object'}, - 'PublicAddressResults': {'additionalProperties': False, - 'properties': {'public-address': {'type': 'string'}}, - 'required': ['public-address'], - 'type': 'object'}, - 'RelationStatus': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'$ref': '#/definitions/EndpointStatus'}, - 'type': 'array'}, - 'id': {'type': 'integer'}, - 'interface': {'type': 'string'}, - 'key': {'type': 'string'}, - 'scope': {'type': 'string'}, - 'status': {'$ref': '#/definitions/DetailedStatus'}}, - 'required': ['id', - 'key', - 'interface', - 'scope', - 'endpoints', - 'status'], - 'type': 'object'}, - 'RemoteApplicationStatus': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'}, - 'type': 'array'}, - 'err': {'additionalProperties': True, - 'type': 'object'}, - 'life': {'type': 'string'}, - 'offer-name': {'type': 'string'}, - 'offer-url': {'type': 'string'}, - 'relations': {'patternProperties': {'.*': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'status': {'$ref': '#/definitions/DetailedStatus'}}, - 'required': ['offer-url', - 'offer-name', - 'endpoints', - 'life', - 'relations', - 'status'], - 'type': 'object'}, - 'RemoteEndpoint': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'role': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'limit'], - 'type': 'object'}, - 'ResolveCharmResult': {'additionalProperties': False, - 'properties': {'error': {'type': 'string'}, - 'url': {'type': 'string'}}, - 'type': 'object'}, - 'ResolveCharmResults': {'additionalProperties': False, - 'properties': {'urls': {'items': {'$ref': '#/definitions/ResolveCharmResult'}, - 'type': 'array'}}, - 'required': ['urls'], - 'type': 'object'}, - 'ResolveCharms': {'additionalProperties': False, - 'properties': {'references': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['references'], - 'type': 'object'}, - 'Resolved': {'additionalProperties': False, - 'properties': {'retry': {'type': 'boolean'}, - 'unit-name': {'type': 'string'}}, - 'required': ['unit-name', 'retry'], - 'type': 'object'}, - 'SetConstraints': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['application', 'constraints'], - 'type': 'object'}, - 'SetModelAgentVersion': {'additionalProperties': False, - 'properties': {'force': {'type': 'boolean'}, - 'version': {'$ref': '#/definitions/Number'}}, - 'required': ['version'], - 'type': 'object'}, - 'StatusHistoryFilter': {'additionalProperties': False, - 'properties': {'date': {'format': 'date-time', - 'type': 'string'}, - 'delta': {'type': 'integer'}, - 'exclude': {'items': {'type': 'string'}, - 'type': 'array'}, - 'size': {'type': 'integer'}}, - 'required': ['size', - 'date', - 'delta', - 'exclude'], - 'type': 'object'}, - 'StatusHistoryRequest': {'additionalProperties': False, - 'properties': {'filter': {'$ref': '#/definitions/StatusHistoryFilter'}, - 'historyKind': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'tag': {'type': 'string'}}, - 'required': ['historyKind', - 'size', - 'filter', - 'tag'], - 'type': 'object'}, - 'StatusHistoryRequests': {'additionalProperties': False, - 'properties': {'requests': {'items': {'$ref': '#/definitions/StatusHistoryRequest'}, - 'type': 'array'}}, - 'required': ['requests'], - 'type': 'object'}, - 'StatusHistoryResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'history': {'$ref': '#/definitions/History'}}, - 'required': ['history'], - 'type': 'object'}, - 'StatusHistoryResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StatusHistoryResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StatusParams': {'additionalProperties': False, - 'properties': {'patterns': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['patterns'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'Tools': {'additionalProperties': False, - 'properties': {'sha256': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'url': {'type': 'string'}, - 'version': {'$ref': '#/definitions/Binary'}}, - 'required': ['version', 'url', 'size'], - 'type': 'object'}, - 'UnitStatus': {'additionalProperties': False, - 'properties': {'address': {'type': 'string'}, - 'agent-status': {'$ref': '#/definitions/DetailedStatus'}, - 'charm': {'type': 'string'}, - 'leader': {'type': 'boolean'}, - 'machine': {'type': 'string'}, - 'opened-ports': {'items': {'type': 'string'}, - 'type': 'array'}, - 'provider-id': {'type': 'string'}, - 'public-address': {'type': 'string'}, - 'subordinates': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitStatus'}}, - 'type': 'object'}, - 'workload-status': {'$ref': '#/definitions/DetailedStatus'}, - 'workload-version': {'type': 'string'}}, - 'required': ['agent-status', - 'workload-status', - 'workload-version', - 'machine', - 'opened-ports', - 'public-address', - 'charm', - 'subordinates'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, - 'type': 'object'}, - 'AbortCurrentUpgrade': {'type': 'object'}, - 'AddCharm': {'properties': {'Params': {'$ref': '#/definitions/AddCharm'}}, - 'type': 'object'}, - 'AddCharmWithAuthorization': {'properties': {'Params': {'$ref': '#/definitions/AddCharmWithAuthorization'}}, - 'type': 'object'}, - 'AddMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, - 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, - 'type': 'object'}, - 'AddMachinesV2': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, - 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, - 'type': 'object'}, - 'AgentVersion': {'properties': {'Result': {'$ref': '#/definitions/AgentVersionResult'}}, - 'type': 'object'}, - 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, - 'type': 'object'}, - 'DestroyMachines': {'properties': {'Params': {'$ref': '#/definitions/DestroyMachines'}}, - 'type': 'object'}, - 'FindTools': {'properties': {'Params': {'$ref': '#/definitions/FindToolsParams'}, - 'Result': {'$ref': '#/definitions/FindToolsResult'}}, - 'type': 'object'}, - 'FullStatus': {'properties': {'Params': {'$ref': '#/definitions/StatusParams'}, - 'Result': {'$ref': '#/definitions/FullStatus'}}, - 'type': 'object'}, - 'GetBundleChanges': {'properties': {'Params': {'$ref': '#/definitions/BundleChangesParams'}, - 'Result': {'$ref': '#/definitions/BundleChangesResults'}}, - 'type': 'object'}, - 'GetModelConstraints': {'properties': {'Result': {'$ref': '#/definitions/GetConstraintsResults'}}, - 'type': 'object'}, - 'InjectMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, - 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, - 'type': 'object'}, - 'ModelGet': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}}, - 'type': 'object'}, - 'ModelInfo': {'properties': {'Result': {'$ref': '#/definitions/ModelInfo'}}, - 'type': 'object'}, - 'ModelSet': {'properties': {'Params': {'$ref': '#/definitions/ModelSet'}}, - 'type': 'object'}, - 'ModelUnset': {'properties': {'Params': {'$ref': '#/definitions/ModelUnset'}}, - 'type': 'object'}, - 'ModelUserInfo': {'properties': {'Result': {'$ref': '#/definitions/ModelUserInfoResults'}}, - 'type': 'object'}, - 'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/PrivateAddress'}, - 'Result': {'$ref': '#/definitions/PrivateAddressResults'}}, - 'type': 'object'}, - 'ProvisioningScript': {'properties': {'Params': {'$ref': '#/definitions/ProvisioningScriptParams'}, - 'Result': {'$ref': '#/definitions/ProvisioningScriptResult'}}, - 'type': 'object'}, - 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/PublicAddress'}, - 'Result': {'$ref': '#/definitions/PublicAddressResults'}}, - 'type': 'object'}, - 'ResolveCharms': {'properties': {'Params': {'$ref': '#/definitions/ResolveCharms'}, - 'Result': {'$ref': '#/definitions/ResolveCharmResults'}}, - 'type': 'object'}, - 'Resolved': {'properties': {'Params': {'$ref': '#/definitions/Resolved'}}, - 'type': 'object'}, - 'RetryProvisioning': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'SetModelAgentVersion': {'properties': {'Params': {'$ref': '#/definitions/SetModelAgentVersion'}}, - 'type': 'object'}, - 'SetModelConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, - 'type': 'object'}, - 'SetSLALevel': {'properties': {'Params': {'$ref': '#/definitions/ModelSLA'}}, - 'type': 'object'}, - 'StatusHistory': {'properties': {'Params': {'$ref': '#/definitions/StatusHistoryRequests'}, - 'Result': {'$ref': '#/definitions/StatusHistoryResults'}}, - 'type': 'object'}, - 'WatchAll': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherId'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(APIHostPortsResult) - async def APIHostPorts(self): - ''' - - Returns -> typing.Sequence[~HostPort] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='APIHostPorts', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def AbortCurrentUpgrade(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AbortCurrentUpgrade', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def AddCharm(self, channel, url): - ''' - channel : str - url : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AddCharm', - version=2, - params=_params) - _params['channel'] = channel - _params['url'] = url - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def AddCharmWithAuthorization(self, channel, macaroon, url): - ''' - channel : str - macaroon : Macaroon - url : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AddCharmWithAuthorization', - version=2, - params=_params) - _params['channel'] = channel - _params['macaroon'] = macaroon - _params['url'] = url - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddMachinesResults) - async def AddMachines(self, params): - ''' - params : typing.Sequence[~AddMachineParams] - Returns -> typing.Sequence[~AddMachinesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AddMachines', - version=2, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddMachinesResults) - async def AddMachinesV2(self, params): - ''' - params : typing.Sequence[~AddMachineParams] - Returns -> typing.Sequence[~AddMachinesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AddMachinesV2', - version=2, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AgentVersionResult) - async def AgentVersion(self): - ''' - - Returns -> Number - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AgentVersion', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BytesResult) - async def CACert(self): - ''' - - Returns -> typing.Sequence[int] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='CACert', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyMachines(self, force, machine_names): - ''' - force : bool - machine_names : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='DestroyMachines', - version=2, - params=_params) - _params['force'] = force - _params['machine-names'] = machine_names - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FindToolsResult) - async def FindTools(self, arch, major, minor, number, series): - ''' - arch : str - major : int - minor : int - number : Number - series : str - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[~Tools]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='FindTools', - version=2, - params=_params) - _params['arch'] = arch - _params['major'] = major - _params['minor'] = minor - _params['number'] = number - _params['series'] = series - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FullStatus) - async def FullStatus(self, patterns): - ''' - patterns : typing.Sequence[str] - Returns -> typing.Union[typing.Mapping[str, ~ApplicationStatus], str, typing.Mapping[str, ~MachineStatus], _ForwardRef('ModelStatusInfo'), typing.Mapping[str, ~ApplicationOfferStatus], typing.Sequence[~RelationStatus], typing.Mapping[str, ~RemoteApplicationStatus]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='FullStatus', - version=2, - params=_params) - _params['patterns'] = patterns - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BundleChangesResults) - async def GetBundleChanges(self, yaml): - ''' - yaml : str - Returns -> typing.Union[typing.Sequence[~BundleChange], typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='GetBundleChanges', - version=2, - params=_params) - _params['yaml'] = yaml - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(GetConstraintsResults) - async def GetModelConstraints(self): - ''' - - Returns -> Value - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='GetModelConstraints', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddMachinesResults) - async def InjectMachines(self, params): - ''' - params : typing.Sequence[~AddMachineParams] - Returns -> typing.Sequence[~AddMachinesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='InjectMachines', - version=2, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResults) - async def ModelGet(self): - ''' - - Returns -> typing.Mapping[str, ~ConfigValue] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ModelGet', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelInfo) - async def ModelInfo(self): - ''' - - Returns -> typing.Union[_ForwardRef('Number'), str, typing.Sequence[~ModelMachineInfo], _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence[~ModelUserInfo]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ModelInfo', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ModelSet(self, config): - ''' - config : typing.Mapping[str, typing.Any] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ModelSet', - version=2, - params=_params) - _params['config'] = config - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ModelUnset(self, keys): - ''' - keys : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ModelUnset', - version=2, - params=_params) - _params['keys'] = keys - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelUserInfoResults) - async def ModelUserInfo(self): - ''' - - Returns -> typing.Sequence[~ModelUserInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ModelUserInfo', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(PrivateAddressResults) - async def PrivateAddress(self, target): - ''' - target : str - Returns -> str - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='PrivateAddress', - version=2, - params=_params) - _params['target'] = target - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ProvisioningScriptResult) - async def ProvisioningScript(self, data_dir, disable_package_commands, machine_id, nonce): - ''' - data_dir : str - disable_package_commands : bool - machine_id : str - nonce : str - Returns -> str - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ProvisioningScript', - version=2, - params=_params) - _params['data-dir'] = data_dir - _params['disable-package-commands'] = disable_package_commands - _params['machine-id'] = machine_id - _params['nonce'] = nonce - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(PublicAddressResults) - async def PublicAddress(self, target): - ''' - target : str - Returns -> str - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='PublicAddress', - version=2, - params=_params) - _params['target'] = target - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ResolveCharmResults) - async def ResolveCharms(self, references): - ''' - references : typing.Sequence[str] - Returns -> typing.Sequence[~ResolveCharmResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ResolveCharms', - version=2, - params=_params) - _params['references'] = references - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Resolved(self, retry, unit_name): - ''' - retry : bool - unit_name : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='Resolved', - version=2, - params=_params) - _params['retry'] = retry - _params['unit-name'] = unit_name - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RetryProvisioning(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='RetryProvisioning', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def SLALevel(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='SLALevel', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetModelAgentVersion(self, version): - ''' - version : Number - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='SetModelAgentVersion', - version=2, - params=_params) - _params['version'] = version - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetModelConstraints(self, application, constraints): - ''' - application : str - constraints : Value - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='SetModelConstraints', - version=2, - params=_params) - _params['application'] = application - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetSLALevel(self, creds, level): - ''' - creds : typing.Sequence[int] - level : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='SetSLALevel', - version=2, - params=_params) - _params['creds'] = creds - _params['level'] = level - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusHistoryResults) - async def StatusHistory(self, requests): - ''' - requests : typing.Sequence[~StatusHistoryRequest] - Returns -> typing.Sequence[~StatusHistoryResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='StatusHistory', - version=2, - params=_params) - _params['requests'] = requests - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AllWatcherId) - async def WatchAll(self): - ''' - - Returns -> str - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='WatchAll', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class CredentialValidatorFacade(Type): - name = 'CredentialValidator' - version = 2 - schema = {'definitions': {'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'InvalidateCredentialArg': {'additionalProperties': False, - 'properties': {'reason': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelCredential': {'additionalProperties': False, - 'properties': {'credential-tag': {'type': 'string'}, - 'exists': {'type': 'boolean'}, - 'model-tag': {'type': 'string'}, - 'valid': {'type': 'boolean'}}, - 'required': ['model-tag', - 'credential-tag'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}}, - 'properties': {'InvalidateModelCredential': {'properties': {'Params': {'$ref': '#/definitions/InvalidateCredentialArg'}, - 'Result': {'$ref': '#/definitions/ErrorResult'}}, - 'type': 'object'}, - 'ModelCredential': {'properties': {'Result': {'$ref': '#/definitions/ModelCredential'}}, - 'type': 'object'}, - 'WatchCredential': {'properties': {'Params': {'$ref': '#/definitions/Entity'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchModelCredential': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResult) - async def InvalidateModelCredential(self, reason): - ''' - reason : str - Returns -> Error - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CredentialValidator', - request='InvalidateModelCredential', - version=2, - params=_params) - _params['reason'] = reason - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelCredential) - async def ModelCredential(self): - ''' - - Returns -> typing.Union[str, bool] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CredentialValidator', - request='ModelCredential', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchCredential(self, tag): - ''' - tag : str - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CredentialValidator', - request='WatchCredential', - version=2, - params=_params) - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchModelCredential(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CredentialValidator', - request='WatchModelCredential', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class DiscoverSpacesFacade(Type): - name = 'DiscoverSpaces' - version = 2 - schema = {'definitions': {'AddSubnetParams': {'additionalProperties': False, - 'properties': {'provider-network-id': {'type': 'string'}, - 'space-tag': {'type': 'string'}, - 'subnet-provider-id': {'type': 'string'}, - 'subnet-tag': {'type': 'string'}, - 'vlan-tag': {'type': 'integer'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['space-tag'], - 'type': 'object'}, - 'AddSubnetsParams': {'additionalProperties': False, - 'properties': {'subnets': {'items': {'$ref': '#/definitions/AddSubnetParams'}, - 'type': 'array'}}, - 'required': ['subnets'], - 'type': 'object'}, - 'CreateSpaceParams': {'additionalProperties': False, - 'properties': {'provider-id': {'type': 'string'}, - 'public': {'type': 'boolean'}, - 'space-tag': {'type': 'string'}, - 'subnet-tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['subnet-tags', - 'space-tag', - 'public'], - 'type': 'object'}, - 'CreateSpacesParams': {'additionalProperties': False, - 'properties': {'spaces': {'items': {'$ref': '#/definitions/CreateSpaceParams'}, - 'type': 'array'}}, - 'required': ['spaces'], - 'type': 'object'}, - 'DiscoverSpacesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ProviderSpace'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ListSubnetsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/Subnet'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ProviderSpace': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'subnets': {'items': {'$ref': '#/definitions/Subnet'}, - 'type': 'array'}}, - 'required': ['name', - 'provider-id', - 'subnets'], - 'type': 'object'}, - 'Subnet': {'additionalProperties': False, - 'properties': {'cidr': {'type': 'string'}, - 'life': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-network-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'space-tag': {'type': 'string'}, - 'status': {'type': 'string'}, - 'vlan-tag': {'type': 'integer'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['cidr', - 'vlan-tag', - 'life', - 'space-tag', - 'zones'], - 'type': 'object'}, - 'SubnetsFilters': {'additionalProperties': False, - 'properties': {'space-tag': {'type': 'string'}, - 'zone': {'type': 'string'}}, - 'type': 'object'}}, - 'properties': {'AddSubnets': {'properties': {'Params': {'$ref': '#/definitions/AddSubnetsParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'CreateSpaces': {'properties': {'Params': {'$ref': '#/definitions/CreateSpacesParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ListSpaces': {'properties': {'Result': {'$ref': '#/definitions/DiscoverSpacesResults'}}, - 'type': 'object'}, - 'ListSubnets': {'properties': {'Params': {'$ref': '#/definitions/SubnetsFilters'}, - 'Result': {'$ref': '#/definitions/ListSubnetsResults'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def AddSubnets(self, subnets): - ''' - subnets : typing.Sequence[~AddSubnetParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='DiscoverSpaces', - request='AddSubnets', - version=2, - params=_params) - _params['subnets'] = subnets - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def CreateSpaces(self, spaces): - ''' - spaces : typing.Sequence[~CreateSpaceParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='DiscoverSpaces', - request='CreateSpaces', - version=2, - params=_params) - _params['spaces'] = spaces - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DiscoverSpacesResults) - async def ListSpaces(self): - ''' - - Returns -> typing.Sequence[~ProviderSpace] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='DiscoverSpaces', - request='ListSpaces', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ListSubnetsResults) - async def ListSubnets(self, space_tag, zone): - ''' - space_tag : str - zone : str - Returns -> typing.Sequence[~Subnet] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='DiscoverSpaces', - request='ListSubnets', - version=2, - params=_params) - _params['space-tag'] = space_tag - _params['zone'] = zone - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='DiscoverSpaces', - request='ModelConfig', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class DiskManagerFacade(Type): - name = 'DiskManager' - version = 2 - schema = {'definitions': {'BlockDevice': {'additionalProperties': False, - 'properties': {'BusAddress': {'type': 'string'}, - 'DeviceLinks': {'items': {'type': 'string'}, - 'type': 'array'}, - 'DeviceName': {'type': 'string'}, - 'FilesystemType': {'type': 'string'}, - 'HardwareId': {'type': 'string'}, - 'InUse': {'type': 'boolean'}, - 'Label': {'type': 'string'}, - 'MountPoint': {'type': 'string'}, - 'Size': {'type': 'integer'}, - 'UUID': {'type': 'string'}, - 'WWN': {'type': 'string'}}, - 'required': ['DeviceName', - 'DeviceLinks', - 'Label', - 'UUID', - 'HardwareId', - 'WWN', - 'BusAddress', - 'Size', - 'FilesystemType', - 'InUse', - 'MountPoint'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineBlockDevices': {'additionalProperties': False, - 'properties': {'block-devices': {'items': {'$ref': '#/definitions/BlockDevice'}, - 'type': 'array'}, - 'machine': {'type': 'string'}}, - 'required': ['machine'], - 'type': 'object'}, - 'SetMachineBlockDevices': {'additionalProperties': False, - 'properties': {'machine-block-devices': {'items': {'$ref': '#/definitions/MachineBlockDevices'}, - 'type': 'array'}}, - 'required': ['machine-block-devices'], - 'type': 'object'}}, - 'properties': {'SetMachineBlockDevices': {'properties': {'Params': {'$ref': '#/definitions/SetMachineBlockDevices'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def SetMachineBlockDevices(self, machine_block_devices): - ''' - machine_block_devices : typing.Sequence[~MachineBlockDevices] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='DiskManager', - request='SetMachineBlockDevices', - version=2, - params=_params) - _params['machine-block-devices'] = machine_block_devices - reply = await self.rpc(msg) - return reply - - - -class EntityWatcherFacade(Type): - name = 'EntityWatcher' - version = 2 - schema = {'definitions': {'EntitiesWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/EntitiesWatchResult'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(EntitiesWatchResult) - async def Next(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='EntityWatcher', - request='Next', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='EntityWatcher', - request='Stop', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class FilesystemAttachmentsWatcherFacade(Type): - name = 'FilesystemAttachmentsWatcher' - version = 2 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineStorageId': {'additionalProperties': False, - 'properties': {'attachment-tag': {'type': 'string'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['machine-tag', - 'attachment-tag'], - 'type': 'object'}, - 'MachineStorageIdsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/MachineStorageId'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResult'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(MachineStorageIdsWatchResult) - async def Next(self): - ''' - - Returns -> typing.Union[typing.Sequence[~MachineStorageId], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='FilesystemAttachmentsWatcher', - request='Next', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='FilesystemAttachmentsWatcher', - request='Stop', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class HighAvailabilityFacade(Type): - name = 'HighAvailability' - version = 2 - schema = {'definitions': {'Address': {'additionalProperties': False, - 'properties': {'Scope': {'type': 'string'}, - 'SpaceName': {'type': 'string'}, - 'SpaceProviderId': {'type': 'string'}, - 'Type': {'type': 'string'}, - 'Value': {'type': 'string'}}, - 'required': ['Value', - 'Type', - 'Scope', - 'SpaceName', - 'SpaceProviderId'], - 'type': 'object'}, - 'ControllersChangeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ControllersChanges'}}, - 'required': ['result'], - 'type': 'object'}, - 'ControllersChangeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ControllersChangeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ControllersChanges': {'additionalProperties': False, - 'properties': {'added': {'items': {'type': 'string'}, - 'type': 'array'}, - 'converted': {'items': {'type': 'string'}, - 'type': 'array'}, - 'demoted': {'items': {'type': 'string'}, - 'type': 'array'}, - 'maintained': {'items': {'type': 'string'}, - 'type': 'array'}, - 'promoted': {'items': {'type': 'string'}, - 'type': 'array'}, - 'removed': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ControllersSpec': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}, - 'num-controllers': {'type': 'integer'}, - 'placement': {'items': {'type': 'string'}, - 'type': 'array'}, - 'series': {'type': 'string'}}, - 'required': ['num-controllers'], - 'type': 'object'}, - 'ControllersSpecs': {'additionalProperties': False, - 'properties': {'specs': {'items': {'$ref': '#/definitions/ControllersSpec'}, - 'type': 'array'}}, - 'required': ['specs'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'HAMember': {'additionalProperties': False, - 'properties': {'public-address': {'$ref': '#/definitions/Address'}, - 'series': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'public-address', 'series'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Member': {'additionalProperties': False, - 'properties': {'Address': {'type': 'string'}, - 'Id': {'type': 'integer'}, - 'Priority': {'type': 'number'}, - 'Tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'Votes': {'type': 'integer'}}, - 'required': ['Id', - 'Address', - 'Priority', - 'Tags', - 'Votes'], - 'type': 'object'}, - 'MongoUpgradeResults': {'additionalProperties': False, - 'properties': {'ha-members': {'items': {'$ref': '#/definitions/HAMember'}, - 'type': 'array'}, - 'master': {'$ref': '#/definitions/HAMember'}, - 'rs-members': {'items': {'$ref': '#/definitions/Member'}, - 'type': 'array'}}, - 'required': ['rs-members', - 'master', - 'ha-members'], - 'type': 'object'}, - 'MongoVersion': {'additionalProperties': False, - 'properties': {'engine': {'type': 'string'}, - 'major': {'type': 'integer'}, - 'minor': {'type': 'integer'}, - 'patch': {'type': 'string'}}, - 'required': ['major', - 'minor', - 'patch', - 'engine'], - 'type': 'object'}, - 'ResumeReplicationParams': {'additionalProperties': False, - 'properties': {'members': {'items': {'$ref': '#/definitions/Member'}, - 'type': 'array'}}, - 'required': ['members'], - 'type': 'object'}, - 'UpgradeMongoParams': {'additionalProperties': False, - 'properties': {'target': {'$ref': '#/definitions/MongoVersion'}}, - 'required': ['target'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'EnableHA': {'properties': {'Params': {'$ref': '#/definitions/ControllersSpecs'}, - 'Result': {'$ref': '#/definitions/ControllersChangeResults'}}, - 'type': 'object'}, - 'ResumeHAReplicationAfterUpgrade': {'properties': {'Params': {'$ref': '#/definitions/ResumeReplicationParams'}}, - 'type': 'object'}, - 'StopHAReplicationForUpgrade': {'properties': {'Params': {'$ref': '#/definitions/UpgradeMongoParams'}, - 'Result': {'$ref': '#/definitions/MongoUpgradeResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ControllersChangeResults) - async def EnableHA(self, specs): - ''' - specs : typing.Sequence[~ControllersSpec] - Returns -> typing.Sequence[~ControllersChangeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='HighAvailability', - request='EnableHA', - version=2, - params=_params) - _params['specs'] = specs - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ResumeHAReplicationAfterUpgrade(self, members): - ''' - members : typing.Sequence[~Member] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='HighAvailability', - request='ResumeHAReplicationAfterUpgrade', - version=2, - params=_params) - _params['members'] = members - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MongoUpgradeResults) - async def StopHAReplicationForUpgrade(self, target): - ''' - target : MongoVersion - Returns -> typing.Union[typing.Sequence[~HAMember], _ForwardRef('HAMember'), typing.Sequence[~Member]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='HighAvailability', - request='StopHAReplicationForUpgrade', - version=2, - params=_params) - _params['target'] = target - reply = await self.rpc(msg) - return reply - - - -class ImageManagerFacade(Type): - name = 'ImageManager' - version = 2 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ImageFilterParams': {'additionalProperties': False, - 'properties': {'images': {'items': {'$ref': '#/definitions/ImageSpec'}, - 'type': 'array'}}, - 'required': ['images'], - 'type': 'object'}, - 'ImageMetadata': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'created': {'format': 'date-time', - 'type': 'string'}, - 'kind': {'type': 'string'}, - 'series': {'type': 'string'}, - 'url': {'type': 'string'}}, - 'required': ['kind', - 'arch', - 'series', - 'url', - 'created'], - 'type': 'object'}, - 'ImageSpec': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'kind': {'type': 'string'}, - 'series': {'type': 'string'}}, - 'required': ['kind', 'arch', 'series'], - 'type': 'object'}, - 'ListImageResult': {'additionalProperties': False, - 'properties': {'result': {'items': {'$ref': '#/definitions/ImageMetadata'}, - 'type': 'array'}}, - 'required': ['result'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, - 'properties': {'DeleteImages': {'properties': {'Params': {'$ref': '#/definitions/ImageFilterParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ListImages': {'properties': {'Params': {'$ref': '#/definitions/ImageFilterParams'}, - 'Result': {'$ref': '#/definitions/ListImageResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def DeleteImages(self, images): - ''' - images : typing.Sequence[~ImageSpec] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ImageManager', - request='DeleteImages', - version=2, - params=_params) - _params['images'] = images - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ListImageResult) - async def ListImages(self, images): - ''' - images : typing.Sequence[~ImageSpec] - Returns -> typing.Sequence[~ImageMetadata] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ImageManager', - request='ListImages', - version=2, - params=_params) - _params['images'] = images - reply = await self.rpc(msg) - return reply - - - -class ImageMetadataFacade(Type): - name = 'ImageMetadata' - version = 2 - schema = {'definitions': {'CloudImageMetadata': {'additionalProperties': False, - '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'}}, - 'required': ['image-id', - 'region', - 'version', - 'series', - 'arch', - 'source', - 'priority'], - 'type': 'object'}, - 'CloudImageMetadataList': {'additionalProperties': False, - 'properties': {'metadata': {'items': {'$ref': '#/definitions/CloudImageMetadata'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ImageMetadataFilter': {'additionalProperties': False, - 'properties': {'arches': {'items': {'type': 'string'}, - 'type': 'array'}, - 'region': {'type': 'string'}, - 'root-storage-type': {'type': 'string'}, - 'series': {'items': {'type': 'string'}, - 'type': 'array'}, - 'stream': {'type': 'string'}, - 'virt-type': {'type': 'string'}}, - 'type': 'object'}, - 'ListCloudImageMetadataResult': {'additionalProperties': False, - 'properties': {'result': {'items': {'$ref': '#/definitions/CloudImageMetadata'}, - 'type': 'array'}}, - 'required': ['result'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MetadataImageIds': {'additionalProperties': False, - 'properties': {'image-ids': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['image-ids'], - 'type': 'object'}, - 'MetadataSaveParams': {'additionalProperties': False, - 'properties': {'metadata': {'items': {'$ref': '#/definitions/CloudImageMetadataList'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'Delete': {'properties': {'Params': {'$ref': '#/definitions/MetadataImageIds'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'List': {'properties': {'Params': {'$ref': '#/definitions/ImageMetadataFilter'}, - 'Result': {'$ref': '#/definitions/ListCloudImageMetadataResult'}}, - 'type': 'object'}, - 'Save': {'properties': {'Params': {'$ref': '#/definitions/MetadataSaveParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UpdateFromPublishedImages': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def Delete(self, image_ids): - ''' - image_ids : typing.Sequence[str] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ImageMetadata', - request='Delete', - version=2, - params=_params) - _params['image-ids'] = image_ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ListCloudImageMetadataResult) - async def List(self, arches, region, root_storage_type, series, stream, virt_type): - ''' - arches : typing.Sequence[str] - region : str - root_storage_type : str - series : typing.Sequence[str] - stream : str - virt_type : str - Returns -> typing.Sequence[~CloudImageMetadata] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ImageMetadata', - request='List', - version=2, - params=_params) - _params['arches'] = arches - _params['region'] = region - _params['root-storage-type'] = root_storage_type - _params['series'] = series - _params['stream'] = stream - _params['virt-type'] = virt_type - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Save(self, metadata): - ''' - metadata : typing.Sequence[~CloudImageMetadataList] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ImageMetadata', - request='Save', - version=2, - params=_params) - _params['metadata'] = metadata - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def UpdateFromPublishedImages(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ImageMetadata', - request='UpdateFromPublishedImages', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class LeadershipServiceFacade(Type): - name = 'LeadershipService' - version = 2 - schema = {'definitions': {'ApplicationTag': {'additionalProperties': False, - 'properties': {'Name': {'type': 'string'}}, - 'required': ['Name'], - 'type': 'object'}, - 'ClaimLeadershipBulkParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/ClaimLeadershipParams'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'ClaimLeadershipBulkResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ClaimLeadershipParams': {'additionalProperties': False, - 'properties': {'application-tag': {'type': 'string'}, - 'duration': {'type': 'number'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['application-tag', - 'unit-tag', - 'duration'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, - 'properties': {'BlockUntilLeadershipReleased': {'properties': {'Params': {'$ref': '#/definitions/ApplicationTag'}, - 'Result': {'$ref': '#/definitions/ErrorResult'}}, - 'type': 'object'}, - 'ClaimLeadership': {'properties': {'Params': {'$ref': '#/definitions/ClaimLeadershipBulkParams'}, - 'Result': {'$ref': '#/definitions/ClaimLeadershipBulkResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResult) - async def BlockUntilLeadershipReleased(self, name): - ''' - name : str - Returns -> Error - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='LeadershipService', - request='BlockUntilLeadershipReleased', - version=2, - params=_params) - _params['Name'] = name - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ClaimLeadershipBulkResults) - async def ClaimLeadership(self, params): - ''' - params : typing.Sequence[~ClaimLeadershipParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='LeadershipService', - request='ClaimLeadership', - version=2, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - -class MachineManagerFacade(Type): - name = 'MachineManager' - version = 2 - schema = {'definitions': {'AddMachineParams': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, - 'type': 'array'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'container-type': {'type': 'string'}, - 'disks': {'items': {'$ref': '#/definitions/Constraints'}, - 'type': 'array'}, - 'hardware-characteristics': {'$ref': '#/definitions/HardwareCharacteristics'}, - 'instance-id': {'type': 'string'}, - 'jobs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'nonce': {'type': 'string'}, - 'parent-id': {'type': 'string'}, - 'placement': {'$ref': '#/definitions/Placement'}, - 'series': {'type': 'string'}}, - 'required': ['series', - 'constraints', - 'jobs', - 'parent-id', - 'container-type', - 'instance-id', - 'nonce', - 'hardware-characteristics', - 'addresses'], - 'type': 'object'}, - 'AddMachines': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/AddMachineParams'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'AddMachinesResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'machine': {'type': 'string'}}, - 'required': ['machine'], - 'type': 'object'}, - 'AddMachinesResults': {'additionalProperties': False, - 'properties': {'machines': {'items': {'$ref': '#/definitions/AddMachinesResult'}, - 'type': 'array'}}, - 'required': ['machines'], - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'Constraints': {'additionalProperties': False, - 'properties': {'Count': {'type': 'integer'}, - 'Pool': {'type': 'string'}, - 'Size': {'type': 'integer'}}, - 'required': ['Pool', 'Size', 'Count'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'HardwareCharacteristics': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cpu-cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'InstanceType': {'additionalProperties': False, - 'properties': {'arches': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cost': {'type': 'integer'}, - 'cpu-cores': {'type': 'integer'}, - 'deprecated': {'type': 'boolean'}, - 'memory': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'root-disk': {'type': 'integer'}, - 'virt-type': {'type': 'string'}}, - 'required': ['arches', 'cpu-cores', 'memory'], - 'type': 'object'}, - 'InstanceTypesResult': {'additionalProperties': False, - 'properties': {'cost-currency': {'type': 'string'}, - 'cost-divisor': {'type': 'integer'}, - 'cost-unit': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'instance-types': {'items': {'$ref': '#/definitions/InstanceType'}, - 'type': 'array'}}, - 'type': 'object'}, - 'InstanceTypesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/InstanceTypesResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelInstanceTypesConstraint': {'additionalProperties': False, - 'properties': {'value': {'$ref': '#/definitions/Value'}}, - 'type': 'object'}, - 'ModelInstanceTypesConstraints': {'additionalProperties': False, - 'properties': {'constraints': {'items': {'$ref': '#/definitions/ModelInstanceTypesConstraint'}, - 'type': 'array'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'Placement': {'additionalProperties': False, - 'properties': {'directive': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['scope', 'directive'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}}, - 'type': 'object'}}, - 'properties': {'AddMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, - 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, - 'type': 'object'}, - 'InstanceTypes': {'properties': {'Params': {'$ref': '#/definitions/ModelInstanceTypesConstraints'}, - 'Result': {'$ref': '#/definitions/InstanceTypesResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddMachinesResults) - async def AddMachines(self, params): - ''' - params : typing.Sequence[~AddMachineParams] - Returns -> typing.Sequence[~AddMachinesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='AddMachines', - version=2, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(InstanceTypesResults) - async def InstanceTypes(self, constraints): - ''' - constraints : typing.Sequence[~ModelInstanceTypesConstraint] - Returns -> typing.Sequence[~InstanceTypesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='InstanceTypes', - version=2, - params=_params) - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - -class MetricsAdderFacade(Type): - name = 'MetricsAdder' - version = 2 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Metric': {'additionalProperties': False, - 'properties': {'key': {'type': 'string'}, - 'labels': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'time': {'format': 'date-time', - 'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['key', 'value', 'time'], - 'type': 'object'}, - 'MetricBatch': {'additionalProperties': False, - 'properties': {'charm-url': {'type': 'string'}, - 'created': {'format': 'date-time', - 'type': 'string'}, - 'metrics': {'items': {'$ref': '#/definitions/Metric'}, - 'type': 'array'}, - 'uuid': {'type': 'string'}}, - 'required': ['uuid', - 'charm-url', - 'created', - 'metrics'], - 'type': 'object'}, - 'MetricBatchParam': {'additionalProperties': False, - 'properties': {'batch': {'$ref': '#/definitions/MetricBatch'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'batch'], - 'type': 'object'}, - 'MetricBatchParams': {'additionalProperties': False, - 'properties': {'batches': {'items': {'$ref': '#/definitions/MetricBatchParam'}, - 'type': 'array'}}, - 'required': ['batches'], - 'type': 'object'}}, - 'properties': {'AddMetricBatches': {'properties': {'Params': {'$ref': '#/definitions/MetricBatchParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def AddMetricBatches(self, batches): - ''' - batches : typing.Sequence[~MetricBatchParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MetricsAdder', - request='AddMetricBatches', - version=2, - params=_params) - _params['batches'] = batches - reply = await self.rpc(msg) - return reply - - - -class MetricsDebugFacade(Type): - name = 'MetricsDebug' - version = 2 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityMetrics': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'metrics': {'items': {'$ref': '#/definitions/MetricResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MeterStatusParam': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'code'], - 'type': 'object'}, - 'MeterStatusParams': {'additionalProperties': False, - 'properties': {'statues': {'items': {'$ref': '#/definitions/MeterStatusParam'}, - 'type': 'array'}}, - 'required': ['statues'], - 'type': 'object'}, - 'MetricResult': {'additionalProperties': False, - 'properties': {'key': {'type': 'string'}, - 'labels': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'time': {'format': 'date-time', - 'type': 'string'}, - 'unit': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['time', - 'key', - 'value', - 'unit', - 'labels'], - 'type': 'object'}, - 'MetricResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/EntityMetrics'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'GetMetrics': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MetricResults'}}, - 'type': 'object'}, - 'SetMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/MeterStatusParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(MetricResults) - async def GetMetrics(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~EntityMetrics] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MetricsDebug', - request='GetMetrics', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetMeterStatus(self, statues): - ''' - statues : typing.Sequence[~MeterStatusParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MetricsDebug', - request='SetMeterStatus', - version=2, - params=_params) - _params['statues'] = statues - reply = await self.rpc(msg) - return reply - - - -class ModelConfigFacade(Type): - name = 'ModelConfig' - version = 2 - schema = {'definitions': {'ConfigValue': {'additionalProperties': False, - 'properties': {'source': {'type': 'string'}, - 'value': {'additionalProperties': True, - 'type': 'object'}}, - 'required': ['value', 'source'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelConfigResults': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelSLA': {'additionalProperties': False, - 'properties': {'ModelSLAInfo': {'$ref': '#/definitions/ModelSLAInfo'}, - 'creds': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['ModelSLAInfo', 'creds'], - 'type': 'object'}, - 'ModelSLAInfo': {'additionalProperties': False, - 'properties': {'level': {'type': 'string'}, - 'owner': {'type': 'string'}}, - 'required': ['level', 'owner'], - 'type': 'object'}, - 'ModelSequencesResult': {'additionalProperties': False, - 'properties': {'sequences': {'patternProperties': {'.*': {'type': 'integer'}}, - 'type': 'object'}}, - 'required': ['sequences'], - 'type': 'object'}, - 'ModelSet': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelUnset': {'additionalProperties': False, - 'properties': {'keys': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['keys'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}}, - 'properties': {'ModelGet': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}}, - 'type': 'object'}, - 'ModelSet': {'properties': {'Params': {'$ref': '#/definitions/ModelSet'}}, - 'type': 'object'}, - 'ModelUnset': {'properties': {'Params': {'$ref': '#/definitions/ModelUnset'}}, - 'type': 'object'}, - 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'Sequences': {'properties': {'Result': {'$ref': '#/definitions/ModelSequencesResult'}}, - 'type': 'object'}, - 'SetSLALevel': {'properties': {'Params': {'$ref': '#/definitions/ModelSLA'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ModelConfigResults) - async def ModelGet(self): - ''' - - Returns -> typing.Mapping[str, ~ConfigValue] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelConfig', - request='ModelGet', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ModelSet(self, config): - ''' - config : typing.Mapping[str, typing.Any] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelConfig', - request='ModelSet', - version=2, - params=_params) - _params['config'] = config - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ModelUnset(self, keys): - ''' - keys : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelConfig', - request='ModelUnset', - version=2, - params=_params) - _params['keys'] = keys - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def SLALevel(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelConfig', - request='SLALevel', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelSequencesResult) - async def Sequences(self): - ''' - - Returns -> typing.Mapping[str, int] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelConfig', - request='Sequences', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetSLALevel(self, creds, level): - ''' - creds : typing.Sequence[int] - level : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelConfig', - request='SetSLALevel', - version=2, - params=_params) - _params['creds'] = creds - _params['level'] = level - reply = await self.rpc(msg) - return reply - - - -class ModelManagerFacade(Type): - name = 'ModelManager' - version = 2 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'info', 'since'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineHardware': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'MapResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['result'], - 'type': 'object'}, - 'MapResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MapResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Model': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', 'uuid', 'owner-tag'], - 'type': 'object'}, - 'ModelCreateArgs': {'additionalProperties': False, - 'properties': {'cloud-tag': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'credential': {'type': 'string'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'region': {'type': 'string'}}, - 'required': ['name', 'owner-tag'], - 'type': 'object'}, - 'ModelDefaultValues': {'additionalProperties': False, - 'properties': {'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelDefaults': {'additionalProperties': False, - 'properties': {'controller': {'additionalProperties': True, - 'type': 'object'}, - 'default': {'additionalProperties': True, - 'type': 'object'}, - 'regions': {'items': {'$ref': '#/definitions/RegionDefaults'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ModelDefaultsResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ModelDefaults'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelInfo': {'additionalProperties': False, - 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, - 'cloud-credential-tag': {'type': 'string'}, - 'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'controller-uuid': {'type': 'string'}, - 'default-series': {'type': 'string'}, - 'life': {'type': 'string'}, - 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, - 'type': 'array'}, - 'migration': {'$ref': '#/definitions/ModelMigrationStatus'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'provider-type': {'type': 'string'}, - 'sla': {'$ref': '#/definitions/ModelSLAInfo'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'users': {'items': {'$ref': '#/definitions/ModelUserInfo'}, - 'type': 'array'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', - 'uuid', - 'controller-uuid', - 'cloud-tag', - 'owner-tag', - 'life', - 'users', - 'machines', - 'sla', - 'agent-version'], - 'type': 'object'}, - 'ModelInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ModelInfo'}}, - 'type': 'object'}, - 'ModelInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ModelInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ModelMachineInfo': {'additionalProperties': False, - 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'}, - 'has-vote': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'instance-id': {'type': 'string'}, - 'status': {'type': 'string'}, - 'wants-vote': {'type': 'boolean'}}, - 'required': ['id'], - 'type': 'object'}, - 'ModelMigrationStatus': {'additionalProperties': False, - 'properties': {'end': {'format': 'date-time', - 'type': 'string'}, - 'start': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'start'], - 'type': 'object'}, - 'ModelSLAInfo': {'additionalProperties': False, - 'properties': {'level': {'type': 'string'}, - 'owner': {'type': 'string'}}, - 'required': ['level', 'owner'], - 'type': 'object'}, - 'ModelStatus': {'additionalProperties': False, - 'properties': {'application-count': {'type': 'integer'}, - 'hosted-machine-count': {'type': 'integer'}, - 'life': {'type': 'string'}, - 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, - 'type': 'array'}, - 'model-tag': {'type': 'string'}, - 'owner-tag': {'type': 'string'}}, - 'required': ['model-tag', - 'life', - 'hosted-machine-count', - 'application-count', - 'owner-tag'], - 'type': 'object'}, - 'ModelStatusResults': {'additionalProperties': False, - 'properties': {'models': {'items': {'$ref': '#/definitions/ModelStatus'}, - 'type': 'array'}}, - 'required': ['models'], - 'type': 'object'}, - 'ModelUnsetKeys': {'additionalProperties': False, - 'properties': {'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'keys': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['keys'], - 'type': 'object'}, - 'ModelUserInfo': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'display-name': {'type': 'string'}, - 'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'user': {'type': 'string'}}, - 'required': ['user', - 'display-name', - 'last-connection', - 'access'], - 'type': 'object'}, - 'ModifyModelAccess': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'action': {'type': 'string'}, - 'model-tag': {'type': 'string'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag', - 'action', - 'access', - 'model-tag'], - 'type': 'object'}, - 'ModifyModelAccessRequest': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyModelAccess'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'RegionDefaults': {'additionalProperties': False, - 'properties': {'region-name': {'type': 'string'}, - 'value': {'additionalProperties': True, - 'type': 'object'}}, - 'required': ['region-name', 'value'], - 'type': 'object'}, - 'SetModelDefaults': {'additionalProperties': False, - 'properties': {'config': {'items': {'$ref': '#/definitions/ModelDefaultValues'}, - 'type': 'array'}}, - 'required': ['config'], - 'type': 'object'}, - 'UnsetModelDefaults': {'additionalProperties': False, - 'properties': {'keys': {'items': {'$ref': '#/definitions/ModelUnsetKeys'}, - 'type': 'array'}}, - 'required': ['keys'], - 'type': 'object'}, - 'UserModel': {'additionalProperties': False, - 'properties': {'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'model': {'$ref': '#/definitions/Model'}}, - 'required': ['model', 'last-connection'], - 'type': 'object'}, - 'UserModelList': {'additionalProperties': False, - 'properties': {'user-models': {'items': {'$ref': '#/definitions/UserModel'}, - 'type': 'array'}}, - 'required': ['user-models'], - 'type': 'object'}}, - 'properties': {'CreateModel': {'properties': {'Params': {'$ref': '#/definitions/ModelCreateArgs'}, - 'Result': {'$ref': '#/definitions/ModelInfo'}}, - 'type': 'object'}, - 'DestroyModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'DumpModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MapResults'}}, - 'type': 'object'}, - 'DumpModelsDB': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MapResults'}}, - 'type': 'object'}, - 'ListModels': {'properties': {'Params': {'$ref': '#/definitions/Entity'}, - 'Result': {'$ref': '#/definitions/UserModelList'}}, - 'type': 'object'}, - 'ModelDefaults': {'properties': {'Result': {'$ref': '#/definitions/ModelDefaultsResult'}}, - 'type': 'object'}, - 'ModelInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ModelInfoResults'}}, - 'type': 'object'}, - 'ModelStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ModelStatusResults'}}, - 'type': 'object'}, - 'ModifyModelAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyModelAccessRequest'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetModelDefaults': {'properties': {'Params': {'$ref': '#/definitions/SetModelDefaults'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UnsetModelDefaults': {'properties': {'Params': {'$ref': '#/definitions/UnsetModelDefaults'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ModelInfo) - async def CreateModel(self, cloud_tag, config, credential, name, owner_tag, region): - ''' - cloud_tag : str - config : typing.Mapping[str, typing.Any] - credential : str - name : str - owner_tag : str - region : str - Returns -> typing.Union[_ForwardRef('Number'), str, typing.Sequence[~ModelMachineInfo], _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence[~ModelUserInfo]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='CreateModel', - version=2, - params=_params) - _params['cloud-tag'] = cloud_tag - _params['config'] = config - _params['credential'] = credential - _params['name'] = name - _params['owner-tag'] = owner_tag - _params['region'] = region - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DestroyModels(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='DestroyModels', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MapResults) - async def DumpModels(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MapResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='DumpModels', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MapResults) - async def DumpModelsDB(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MapResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='DumpModelsDB', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UserModelList) - async def ListModels(self, tag): - ''' - tag : str - Returns -> typing.Sequence[~UserModel] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ListModels', - version=2, - params=_params) - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelDefaultsResult) - async def ModelDefaults(self): - ''' - - Returns -> typing.Mapping[str, ~ModelDefaults] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModelDefaults', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelInfoResults) - async def ModelInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ModelInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModelInfo', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelStatusResults) - async def ModelStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ModelStatus] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModelStatus', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ModifyModelAccess(self, changes): - ''' - changes : typing.Sequence[~ModifyModelAccess] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModifyModelAccess', - version=2, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetModelDefaults(self, config): - ''' - config : typing.Sequence[~ModelDefaultValues] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='SetModelDefaults', - version=2, - params=_params) - _params['config'] = config - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UnsetModelDefaults(self, keys): - ''' - keys : typing.Sequence[~ModelUnsetKeys] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='UnsetModelDefaults', - version=2, - params=_params) - _params['keys'] = keys - reply = await self.rpc(msg) - return reply - - - -class ProxyUpdaterFacade(Type): - name = 'ProxyUpdater' - version = 2 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ProxyConfig': {'additionalProperties': False, - 'properties': {'ftp': {'type': 'string'}, - 'http': {'type': 'string'}, - 'https': {'type': 'string'}, - 'no-proxy': {'type': 'string'}}, - 'required': ['http', - 'https', - 'ftp', - 'no-proxy'], - 'type': 'object'}, - 'ProxyConfigResult': {'additionalProperties': False, - 'properties': {'apt-proxy-settings': {'$ref': '#/definitions/ProxyConfig'}, - 'error': {'$ref': '#/definitions/Error'}, - 'juju-proxy-settings': {'$ref': '#/definitions/ProxyConfig'}, - 'legacy-proxy-settings': {'$ref': '#/definitions/ProxyConfig'}, - 'snap-proxy-settings': {'$ref': '#/definitions/ProxyConfig'}, - 'snap-store-assertions': {'type': 'string'}, - 'snap-store-id': {'type': 'string'}}, - 'required': ['legacy-proxy-settings', - 'juju-proxy-settings'], - 'type': 'object'}, - 'ProxyConfigResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ProxyConfigResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'ProxyConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ProxyConfigResults'}}, - 'type': 'object'}, - 'WatchForProxyConfigAndAPIHostPortChanges': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ProxyConfigResults) - async def ProxyConfig(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ProxyConfigResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ProxyUpdater', - request='ProxyConfig', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchForProxyConfigAndAPIHostPortChanges(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ProxyUpdater', - request='WatchForProxyConfigAndAPIHostPortChanges', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class RebootFacade(Type): - name = 'Reboot' - version = 2 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'RebootActionResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'type': 'object'}, - 'RebootActionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RebootActionResult'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'ClearReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'GetRebootAction': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/RebootActionResults'}}, - 'type': 'object'}, - 'RequestReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchForRebootEvent': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def ClearReboot(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Reboot', - request='ClearReboot', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RebootActionResults) - async def GetRebootAction(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~RebootActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Reboot', - request='GetRebootAction', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RequestReboot(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Reboot', - request='RequestReboot', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForRebootEvent(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Reboot', - request='WatchForRebootEvent', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class ResumerFacade(Type): - name = 'Resumer' - version = 2 - schema = {'properties': {'ResumeTransactions': {'type': 'object'}}, 'type': 'object'} - - - @ReturnMapping(None) - async def ResumeTransactions(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Resumer', - request='ResumeTransactions', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class SSHClientFacade(Type): - name = 'SSHClient' - version = 2 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'SSHAddressResult': {'additionalProperties': False, - 'properties': {'address': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'SSHAddressResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/SSHAddressResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SSHAddressesResult': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['addresses'], - 'type': 'object'}, - 'SSHAddressesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/SSHAddressesResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SSHProxyResult': {'additionalProperties': False, - 'properties': {'use-proxy': {'type': 'boolean'}}, - 'required': ['use-proxy'], - 'type': 'object'}, - 'SSHPublicKeysResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'public-keys': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'SSHPublicKeysResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/SSHPublicKeysResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'AllAddresses': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/SSHAddressesResults'}}, - 'type': 'object'}, - 'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/SSHAddressResults'}}, - 'type': 'object'}, - 'Proxy': {'properties': {'Result': {'$ref': '#/definitions/SSHProxyResult'}}, - 'type': 'object'}, - 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/SSHAddressResults'}}, - 'type': 'object'}, - 'PublicKeys': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/SSHPublicKeysResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(SSHAddressesResults) - async def AllAddresses(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~SSHAddressesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='SSHClient', - request='AllAddresses', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SSHAddressResults) - async def PrivateAddress(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~SSHAddressResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='SSHClient', - request='PrivateAddress', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SSHProxyResult) - async def Proxy(self): - ''' - - Returns -> bool - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='SSHClient', - request='Proxy', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SSHAddressResults) - async def PublicAddress(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~SSHAddressResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='SSHClient', - request='PublicAddress', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SSHPublicKeysResults) - async def PublicKeys(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~SSHPublicKeysResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='SSHClient', - request='PublicKeys', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class SingularFacade(Type): - name = 'Singular' - version = 2 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'SingularClaim': {'additionalProperties': False, - 'properties': {'claimant-tag': {'type': 'string'}, - 'duration': {'type': 'integer'}, - 'entity-tag': {'type': 'string'}}, - 'required': ['entity-tag', - 'claimant-tag', - 'duration'], - 'type': 'object'}, - 'SingularClaims': {'additionalProperties': False, - 'properties': {'claims': {'items': {'$ref': '#/definitions/SingularClaim'}, - 'type': 'array'}}, - 'required': ['claims'], - 'type': 'object'}}, - 'properties': {'Claim': {'properties': {'Params': {'$ref': '#/definitions/SingularClaims'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Wait': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def Claim(self, claims): - ''' - claims : typing.Sequence[~SingularClaim] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Singular', - request='Claim', - version=2, - params=_params) - _params['claims'] = claims - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Wait(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Singular', - request='Wait', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class SpacesFacade(Type): - name = 'Spaces' - version = 2 - schema = {'definitions': {'CreateSpaceParams': {'additionalProperties': False, - 'properties': {'provider-id': {'type': 'string'}, - 'public': {'type': 'boolean'}, - 'space-tag': {'type': 'string'}, - 'subnet-tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['subnet-tags', - 'space-tag', - 'public'], - 'type': 'object'}, - 'CreateSpacesParams': {'additionalProperties': False, - 'properties': {'spaces': {'items': {'$ref': '#/definitions/CreateSpaceParams'}, - 'type': 'array'}}, - 'required': ['spaces'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ListSpacesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/Space'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Space': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}, - 'subnets': {'items': {'$ref': '#/definitions/Subnet'}, - 'type': 'array'}}, - 'required': ['name', 'subnets'], - 'type': 'object'}, - 'Subnet': {'additionalProperties': False, - 'properties': {'cidr': {'type': 'string'}, - 'life': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-network-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'space-tag': {'type': 'string'}, - 'status': {'type': 'string'}, - 'vlan-tag': {'type': 'integer'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['cidr', - 'vlan-tag', - 'life', - 'space-tag', - 'zones'], - 'type': 'object'}}, - 'properties': {'CreateSpaces': {'properties': {'Params': {'$ref': '#/definitions/CreateSpacesParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ListSpaces': {'properties': {'Result': {'$ref': '#/definitions/ListSpacesResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def CreateSpaces(self, spaces): - ''' - spaces : typing.Sequence[~CreateSpaceParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Spaces', - request='CreateSpaces', - version=2, - params=_params) - _params['spaces'] = spaces - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ListSpacesResults) - async def ListSpaces(self): - ''' - - Returns -> typing.Sequence[~Space] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Spaces', - request='ListSpaces', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class StatusHistoryFacade(Type): - name = 'StatusHistory' - version = 2 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'StatusHistoryPruneArgs': {'additionalProperties': False, - 'properties': {'max-history-mb': {'type': 'integer'}, - 'max-history-time': {'type': 'integer'}}, - 'required': ['max-history-time', - 'max-history-mb'], - 'type': 'object'}}, - 'properties': {'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'Prune': {'properties': {'Params': {'$ref': '#/definitions/StatusHistoryPruneArgs'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StatusHistory', - request='ModelConfig', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Prune(self, max_history_mb, max_history_time): - ''' - max_history_mb : int - max_history_time : int - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StatusHistory', - request='Prune', - version=2, - params=_params) - _params['max-history-mb'] = max_history_mb - _params['max-history-time'] = max_history_time - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StatusHistory', - request='WatchForModelConfigChanges', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class SubnetsFacade(Type): - name = 'Subnets' - version = 2 - schema = {'definitions': {'AddSubnetParams': {'additionalProperties': False, - 'properties': {'provider-network-id': {'type': 'string'}, - 'space-tag': {'type': 'string'}, - 'subnet-provider-id': {'type': 'string'}, - 'subnet-tag': {'type': 'string'}, - 'vlan-tag': {'type': 'integer'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['space-tag'], - 'type': 'object'}, - 'AddSubnetsParams': {'additionalProperties': False, - 'properties': {'subnets': {'items': {'$ref': '#/definitions/AddSubnetParams'}, - 'type': 'array'}}, - 'required': ['subnets'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ListSubnetsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/Subnet'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'SpaceResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'SpaceResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/SpaceResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Subnet': {'additionalProperties': False, - 'properties': {'cidr': {'type': 'string'}, - 'life': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-network-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'space-tag': {'type': 'string'}, - 'status': {'type': 'string'}, - 'vlan-tag': {'type': 'integer'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['cidr', - 'vlan-tag', - 'life', - 'space-tag', - 'zones'], - 'type': 'object'}, - 'SubnetsFilters': {'additionalProperties': False, - 'properties': {'space-tag': {'type': 'string'}, - 'zone': {'type': 'string'}}, - 'type': 'object'}, - 'ZoneResult': {'additionalProperties': False, - 'properties': {'available': {'type': 'boolean'}, - 'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}}, - 'required': ['name', 'available'], - 'type': 'object'}, - 'ZoneResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ZoneResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'AddSubnets': {'properties': {'Params': {'$ref': '#/definitions/AddSubnetsParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'AllSpaces': {'properties': {'Result': {'$ref': '#/definitions/SpaceResults'}}, - 'type': 'object'}, - 'AllZones': {'properties': {'Result': {'$ref': '#/definitions/ZoneResults'}}, - 'type': 'object'}, - 'ListSubnets': {'properties': {'Params': {'$ref': '#/definitions/SubnetsFilters'}, - 'Result': {'$ref': '#/definitions/ListSubnetsResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def AddSubnets(self, subnets): - ''' - subnets : typing.Sequence[~AddSubnetParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Subnets', - request='AddSubnets', - version=2, - params=_params) - _params['subnets'] = subnets - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SpaceResults) - async def AllSpaces(self): - ''' - - Returns -> typing.Sequence[~SpaceResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Subnets', - request='AllSpaces', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ZoneResults) - async def AllZones(self): - ''' - - Returns -> typing.Sequence[~ZoneResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Subnets', - request='AllZones', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ListSubnetsResults) - async def ListSubnets(self, space_tag, zone): - ''' - space_tag : str - zone : str - Returns -> typing.Sequence[~Subnet] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Subnets', - request='ListSubnets', - version=2, - params=_params) - _params['space-tag'] = space_tag - _params['zone'] = zone - reply = await self.rpc(msg) - return reply - - - -class UserManagerFacade(Type): - name = 'UserManager' - version = 2 - schema = {'definitions': {'AddUser': {'additionalProperties': False, - 'properties': {'display-name': {'type': 'string'}, - 'password': {'type': 'string'}, - 'username': {'type': 'string'}}, - 'required': ['username', 'display-name'], - 'type': 'object'}, - 'AddUserResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'secret-key': {'items': {'type': 'integer'}, - 'type': 'array'}, - 'tag': {'type': 'string'}}, - 'type': 'object'}, - 'AddUserResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/AddUserResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'AddUsers': {'additionalProperties': False, - 'properties': {'users': {'items': {'$ref': '#/definitions/AddUser'}, - 'type': 'array'}}, - 'required': ['users'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityPassword': {'additionalProperties': False, - 'properties': {'password': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'password'], - 'type': 'object'}, - 'EntityPasswords': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'UserInfo': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'created-by': {'type': 'string'}, - 'date-created': {'format': 'date-time', - 'type': 'string'}, - 'disabled': {'type': 'boolean'}, - 'display-name': {'type': 'string'}, - 'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'username': {'type': 'string'}}, - 'required': ['username', - 'display-name', - 'access', - 'created-by', - 'date-created', - 'disabled'], - 'type': 'object'}, - 'UserInfoRequest': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'include-disabled': {'type': 'boolean'}}, - 'required': ['entities', - 'include-disabled'], - 'type': 'object'}, - 'UserInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/UserInfo'}}, - 'type': 'object'}, - 'UserInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/UserInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'AddUser': {'properties': {'Params': {'$ref': '#/definitions/AddUsers'}, - 'Result': {'$ref': '#/definitions/AddUserResults'}}, - 'type': 'object'}, - 'DisableUser': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'EnableUser': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RemoveUser': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ResetPassword': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/AddUserResults'}}, - 'type': 'object'}, - 'SetPassword': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UserInfo': {'properties': {'Params': {'$ref': '#/definitions/UserInfoRequest'}, - 'Result': {'$ref': '#/definitions/UserInfoResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddUserResults) - async def AddUser(self, users): - ''' - users : typing.Sequence[~AddUser] - Returns -> typing.Sequence[~AddUserResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='AddUser', - version=2, - params=_params) - _params['users'] = users - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DisableUser(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='DisableUser', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnableUser(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='EnableUser', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RemoveUser(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='RemoveUser', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddUserResults) - async def ResetPassword(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~AddUserResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='ResetPassword', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetPassword(self, changes): - ''' - changes : typing.Sequence[~EntityPassword] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='SetPassword', - version=2, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UserInfoResults) - async def UserInfo(self, entities, include_disabled): - ''' - entities : typing.Sequence[~Entity] - include_disabled : bool - Returns -> typing.Sequence[~UserInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='UserInfo', - version=2, - params=_params) - _params['entities'] = entities - _params['include-disabled'] = include_disabled - reply = await self.rpc(msg) - return reply - - - -class VolumeAttachmentsWatcherFacade(Type): - name = 'VolumeAttachmentsWatcher' - version = 2 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineStorageId': {'additionalProperties': False, - 'properties': {'attachment-tag': {'type': 'string'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['machine-tag', - 'attachment-tag'], - 'type': 'object'}, - 'MachineStorageIdsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/MachineStorageId'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResult'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(MachineStorageIdsWatchResult) - async def Next(self): - ''' - - Returns -> typing.Union[typing.Sequence[~MachineStorageId], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='VolumeAttachmentsWatcher', - request='Next', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='VolumeAttachmentsWatcher', - request='Stop', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply diff --git a/modules/libjuju/juju/client/_client3.py b/modules/libjuju/juju/client/_client3.py deleted file mode 100644 index 67840db..0000000 --- a/modules/libjuju/juju/client/_client3.py +++ /dev/null @@ -1,6749 +0,0 @@ -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. - -from juju.client._definitions import * -from juju.client.facade import ReturnMapping, Type - - -class ActionFacade(Type): - name = 'Action' - version = 3 - schema = {'definitions': {'Action': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'parameters': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'receiver': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'receiver', 'name'], - 'type': 'object'}, - 'ActionResult': {'additionalProperties': False, - 'properties': {'action': {'$ref': '#/definitions/Action'}, - 'completed': {'format': 'date-time', - 'type': 'string'}, - 'enqueued': {'format': 'date-time', - 'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'message': {'type': 'string'}, - 'output': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'started': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'type': 'object'}, - 'ActionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ActionSpec': {'additionalProperties': False, - 'properties': {'description': {'type': 'string'}, - 'params': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['description', 'params'], - 'type': 'object'}, - 'Actions': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/Action'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ActionsByName': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionResult'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}}, - 'type': 'object'}, - 'ActionsByNames': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionsByName'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ActionsByReceiver': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionResult'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'receiver': {'type': 'string'}}, - 'type': 'object'}, - 'ActionsByReceivers': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionsByReceiver'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ApplicationCharmActionsResult': {'additionalProperties': False, - 'properties': {'actions': {'patternProperties': {'.*': {'$ref': '#/definitions/ActionSpec'}}, - 'type': 'object'}, - 'application-tag': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ApplicationsCharmActionsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationCharmActionsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'FindActionsByNames': {'additionalProperties': False, - 'properties': {'names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FindTags': {'additionalProperties': False, - 'properties': {'prefixes': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['prefixes'], - 'type': 'object'}, - 'FindTagsResults': {'additionalProperties': False, - 'properties': {'matches': {'patternProperties': {'.*': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'required': ['matches'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'RunParams': {'additionalProperties': False, - 'properties': {'applications': {'items': {'type': 'string'}, - 'type': 'array'}, - 'commands': {'type': 'string'}, - 'machines': {'items': {'type': 'string'}, - 'type': 'array'}, - 'timeout': {'type': 'integer'}, - 'units': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['commands', 'timeout'], - 'type': 'object'}}, - 'properties': {'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'ApplicationsCharmsActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ApplicationsCharmActionsResults'}}, - 'type': 'object'}, - 'Cancel': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'Enqueue': {'properties': {'Params': {'$ref': '#/definitions/Actions'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'FindActionTagsByPrefix': {'properties': {'Params': {'$ref': '#/definitions/FindTags'}, - 'Result': {'$ref': '#/definitions/FindTagsResults'}}, - 'type': 'object'}, - 'FindActionsByNames': {'properties': {'Params': {'$ref': '#/definitions/FindActionsByNames'}, - 'Result': {'$ref': '#/definitions/ActionsByNames'}}, - 'type': 'object'}, - 'ListAll': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, - 'type': 'object'}, - 'ListCompleted': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, - 'type': 'object'}, - 'ListPending': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, - 'type': 'object'}, - 'ListRunning': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, - 'type': 'object'}, - 'Run': {'properties': {'Params': {'$ref': '#/definitions/RunParams'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'RunOnAllMachines': {'properties': {'Params': {'$ref': '#/definitions/RunParams'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ActionResults) - async def Actions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='Actions', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationsCharmActionsResults) - async def ApplicationsCharmsActions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ApplicationCharmActionsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='ApplicationsCharmsActions', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionResults) - async def Cancel(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='Cancel', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionResults) - async def Enqueue(self, actions): - ''' - actions : typing.Sequence[~Action] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='Enqueue', - version=3, - params=_params) - _params['actions'] = actions - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FindTagsResults) - async def FindActionTagsByPrefix(self, prefixes): - ''' - prefixes : typing.Sequence[str] - Returns -> typing.Sequence[~Entity] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='FindActionTagsByPrefix', - version=3, - params=_params) - _params['prefixes'] = prefixes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionsByNames) - async def FindActionsByNames(self, names): - ''' - names : typing.Sequence[str] - Returns -> typing.Sequence[~ActionsByName] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='FindActionsByNames', - version=3, - params=_params) - _params['names'] = names - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionsByReceivers) - async def ListAll(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionsByReceiver] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='ListAll', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionsByReceivers) - async def ListCompleted(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionsByReceiver] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='ListCompleted', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionsByReceivers) - async def ListPending(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionsByReceiver] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='ListPending', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionsByReceivers) - async def ListRunning(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionsByReceiver] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='ListRunning', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionResults) - async def Run(self, applications, commands, machines, timeout, units): - ''' - applications : typing.Sequence[str] - commands : str - machines : typing.Sequence[str] - timeout : int - units : typing.Sequence[str] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='Run', - version=3, - params=_params) - _params['applications'] = applications - _params['commands'] = commands - _params['machines'] = machines - _params['timeout'] = timeout - _params['units'] = units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionResults) - async def RunOnAllMachines(self, applications, commands, machines, timeout, units): - ''' - applications : typing.Sequence[str] - commands : str - machines : typing.Sequence[str] - timeout : int - units : typing.Sequence[str] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='RunOnAllMachines', - version=3, - params=_params) - _params['applications'] = applications - _params['commands'] = commands - _params['machines'] = machines - _params['timeout'] = timeout - _params['units'] = units - reply = await self.rpc(msg) - return reply - - - -class ApplicationFacade(Type): - name = 'Application' - version = 3 - schema = {'definitions': {'AddApplicationUnits': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'num-units': {'type': 'integer'}, - 'placement': {'items': {'$ref': '#/definitions/Placement'}, - 'type': 'array'}}, - 'required': ['application', - 'num-units', - 'placement'], - 'type': 'object'}, - 'AddApplicationUnitsResults': {'additionalProperties': False, - 'properties': {'units': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['units'], - 'type': 'object'}, - 'AddRelation': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'AddRelationResults': {'additionalProperties': False, - 'properties': {'endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, - 'type': 'object'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'ApplicationCharmRelations': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationCharmRelationsResults': {'additionalProperties': False, - 'properties': {'charm-relations': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['charm-relations'], - 'type': 'object'}, - 'ApplicationDeploy': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'channel': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'config-yaml': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'num-units': {'type': 'integer'}, - 'placement': {'items': {'$ref': '#/definitions/Placement'}, - 'type': 'array'}, - 'resources': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'series': {'type': 'string'}, - 'storage': {'patternProperties': {'.*': {'$ref': '#/definitions/Constraints'}}, - 'type': 'object'}}, - 'required': ['application', - 'series', - 'charm-url', - 'channel', - 'num-units', - 'config-yaml', - 'constraints'], - 'type': 'object'}, - 'ApplicationDestroy': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationExpose': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationGet': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationGetResults': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'charm': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'series': {'type': 'string'}}, - 'required': ['application', - 'charm', - 'config', - 'constraints', - 'series'], - 'type': 'object'}, - 'ApplicationMetricCredential': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'metrics-credentials': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['application', - 'metrics-credentials'], - 'type': 'object'}, - 'ApplicationMetricCredentials': {'additionalProperties': False, - 'properties': {'creds': {'items': {'$ref': '#/definitions/ApplicationMetricCredential'}, - 'type': 'array'}}, - 'required': ['creds'], - 'type': 'object'}, - 'ApplicationSet': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'options': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['application', 'options'], - 'type': 'object'}, - 'ApplicationSetCharm': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'channel': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'config-settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'config-settings-yaml': {'type': 'string'}, - 'force-series': {'type': 'boolean'}, - 'force-units': {'type': 'boolean'}, - 'resource-ids': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'storage-constraints': {'patternProperties': {'.*': {'$ref': '#/definitions/StorageConstraints'}}, - 'type': 'object'}}, - 'required': ['application', - 'charm-url', - 'channel', - 'force-units', - 'force-series'], - 'type': 'object'}, - 'ApplicationUnexpose': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationUnset': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'options': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['application', 'options'], - 'type': 'object'}, - 'ApplicationUpdate': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'force-charm-url': {'type': 'boolean'}, - 'force-series': {'type': 'boolean'}, - 'min-units': {'type': 'integer'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'settings-yaml': {'type': 'string'}}, - 'required': ['application', - 'charm-url', - 'force-charm-url', - 'force-series', - 'settings-yaml'], - 'type': 'object'}, - 'ApplicationsDeploy': {'additionalProperties': False, - 'properties': {'applications': {'items': {'$ref': '#/definitions/ApplicationDeploy'}, - 'type': 'array'}}, - 'required': ['applications'], - 'type': 'object'}, - 'CharmRelation': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'optional': {'type': 'boolean'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'optional', - 'limit', - 'scope'], - 'type': 'object'}, - 'Constraints': {'additionalProperties': False, - 'properties': {'Count': {'type': 'integer'}, - 'Pool': {'type': 'string'}, - 'Size': {'type': 'integer'}}, - 'required': ['Pool', 'Size', 'Count'], - 'type': 'object'}, - 'DestroyApplicationUnits': {'additionalProperties': False, - 'properties': {'unit-names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['unit-names'], - 'type': 'object'}, - 'DestroyRelation': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GetApplicationConstraints': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'GetConstraintsResults': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Placement': {'additionalProperties': False, - 'properties': {'directive': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['scope', 'directive'], - 'type': 'object'}, - 'SetConstraints': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['application', 'constraints'], - 'type': 'object'}, - 'StorageConstraints': {'additionalProperties': False, - 'properties': {'count': {'type': 'integer'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}}, - 'type': 'object'}}, - 'properties': {'AddRelation': {'properties': {'Params': {'$ref': '#/definitions/AddRelation'}, - 'Result': {'$ref': '#/definitions/AddRelationResults'}}, - 'type': 'object'}, - 'AddUnits': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationUnits'}, - 'Result': {'$ref': '#/definitions/AddApplicationUnitsResults'}}, - 'type': 'object'}, - 'CharmRelations': {'properties': {'Params': {'$ref': '#/definitions/ApplicationCharmRelations'}, - 'Result': {'$ref': '#/definitions/ApplicationCharmRelationsResults'}}, - 'type': 'object'}, - 'Deploy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationsDeploy'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationDestroy'}}, - 'type': 'object'}, - 'DestroyRelation': {'properties': {'Params': {'$ref': '#/definitions/DestroyRelation'}}, - 'type': 'object'}, - 'DestroyUnits': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationUnits'}}, - 'type': 'object'}, - 'Expose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationExpose'}}, - 'type': 'object'}, - 'Get': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, - 'Result': {'$ref': '#/definitions/ApplicationGetResults'}}, - 'type': 'object'}, - 'GetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, - 'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'GetConstraints': {'properties': {'Params': {'$ref': '#/definitions/GetApplicationConstraints'}, - 'Result': {'$ref': '#/definitions/GetConstraintsResults'}}, - 'type': 'object'}, - 'Set': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSet'}}, - 'type': 'object'}, - 'SetCharm': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSetCharm'}}, - 'type': 'object'}, - 'SetConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, - 'type': 'object'}, - 'SetMetricCredentials': {'properties': {'Params': {'$ref': '#/definitions/ApplicationMetricCredentials'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Unexpose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnexpose'}}, - 'type': 'object'}, - 'Unset': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnset'}}, - 'type': 'object'}, - 'Update': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUpdate'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddRelationResults) - async def AddRelation(self, endpoints): - ''' - endpoints : typing.Sequence[str] - Returns -> typing.Mapping[str, ~CharmRelation] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='AddRelation', - version=3, - params=_params) - _params['endpoints'] = endpoints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddApplicationUnitsResults) - async def AddUnits(self, application, num_units, placement): - ''' - application : str - num_units : int - placement : typing.Sequence[~Placement] - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='AddUnits', - version=3, - params=_params) - _params['application'] = application - _params['num-units'] = num_units - _params['placement'] = placement - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationCharmRelationsResults) - async def CharmRelations(self, application): - ''' - application : str - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='CharmRelations', - version=3, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Deploy(self, applications): - ''' - applications : typing.Sequence[~ApplicationDeploy] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Deploy', - version=3, - params=_params) - _params['applications'] = applications - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Destroy(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Destroy', - version=3, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyRelation(self, endpoints): - ''' - endpoints : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyRelation', - version=3, - params=_params) - _params['endpoints'] = endpoints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyUnits(self, unit_names): - ''' - unit_names : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyUnits', - version=3, - params=_params) - _params['unit-names'] = unit_names - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Expose(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Expose', - version=3, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationGetResults) - async def Get(self, application): - ''' - application : str - Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Get', - version=3, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def GetCharmURL(self, application): - ''' - application : str - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetCharmURL', - version=3, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(GetConstraintsResults) - async def GetConstraints(self, application): - ''' - application : str - Returns -> Value - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetConstraints', - version=3, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Set(self, application, options): - ''' - application : str - options : typing.Mapping[str, str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Set', - version=3, - params=_params) - _params['application'] = application - _params['options'] = options - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetCharm(self, application, channel, charm_url, config_settings, config_settings_yaml, force_series, force_units, resource_ids, storage_constraints): - ''' - application : str - channel : str - charm_url : str - config_settings : typing.Mapping[str, str] - config_settings_yaml : str - force_series : bool - force_units : bool - resource_ids : typing.Mapping[str, str] - storage_constraints : typing.Mapping[str, ~StorageConstraints] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetCharm', - version=3, - params=_params) - _params['application'] = application - _params['channel'] = channel - _params['charm-url'] = charm_url - _params['config-settings'] = config_settings - _params['config-settings-yaml'] = config_settings_yaml - _params['force-series'] = force_series - _params['force-units'] = force_units - _params['resource-ids'] = resource_ids - _params['storage-constraints'] = storage_constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetConstraints(self, application, constraints): - ''' - application : str - constraints : Value - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetConstraints', - version=3, - params=_params) - _params['application'] = application - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetMetricCredentials(self, creds): - ''' - creds : typing.Sequence[~ApplicationMetricCredential] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetMetricCredentials', - version=3, - params=_params) - _params['creds'] = creds - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Unexpose(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Unexpose', - version=3, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Unset(self, application, options): - ''' - application : str - options : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Unset', - version=3, - params=_params) - _params['application'] = application - _params['options'] = options - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Update(self, application, charm_url, constraints, force_charm_url, force_series, min_units, settings, settings_yaml): - ''' - application : str - charm_url : str - constraints : Value - force_charm_url : bool - force_series : bool - min_units : int - settings : typing.Mapping[str, str] - settings_yaml : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Update', - version=3, - params=_params) - _params['application'] = application - _params['charm-url'] = charm_url - _params['constraints'] = constraints - _params['force-charm-url'] = force_charm_url - _params['force-series'] = force_series - _params['min-units'] = min_units - _params['settings'] = settings - _params['settings-yaml'] = settings_yaml - reply = await self.rpc(msg) - return reply - - - -class CloudFacade(Type): - name = 'Cloud' - version = 3 - schema = {'definitions': {'AddCloudArgs': {'additionalProperties': False, - 'properties': {'cloud': {'$ref': '#/definitions/Cloud'}, - 'name': {'type': 'string'}}, - 'required': ['cloud', 'name'], - 'type': 'object'}, - 'Cloud': {'additionalProperties': False, - 'properties': {'auth-types': {'items': {'type': 'string'}, - 'type': 'array'}, - 'ca-certificates': {'items': {'type': 'string'}, - 'type': 'array'}, - 'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'regions': {'items': {'$ref': '#/definitions/CloudRegion'}, - 'type': 'array'}, - 'storage-endpoint': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type'], - 'type': 'object'}, - 'CloudCredential': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'auth-type': {'type': 'string'}, - 'redacted': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['auth-type'], - 'type': 'object'}, - 'CloudCredentialArg': {'additionalProperties': False, - 'properties': {'cloud-name': {'type': 'string'}, - 'credential-name': {'type': 'string'}}, - 'required': ['cloud-name', - 'credential-name'], - 'type': 'object'}, - 'CloudCredentialArgs': {'additionalProperties': False, - 'properties': {'credentials': {'items': {'$ref': '#/definitions/CloudCredentialArg'}, - 'type': 'array'}, - 'include-secrets': {'type': 'boolean'}}, - 'required': ['include-secrets'], - 'type': 'object'}, - 'CloudCredentialResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/CloudCredential'}}, - 'type': 'object'}, - 'CloudCredentialResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CloudCredentialResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'CloudDetails': {'additionalProperties': False, - 'properties': {'auth-types': {'items': {'type': 'string'}, - 'type': 'array'}, - 'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'regions': {'items': {'$ref': '#/definitions/CloudRegion'}, - 'type': 'array'}, - 'storage-endpoint': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type'], - 'type': 'object'}, - 'CloudInfo': {'additionalProperties': False, - 'properties': {'CloudDetails': {'$ref': '#/definitions/CloudDetails'}, - 'users': {'items': {'$ref': '#/definitions/CloudUserInfo'}, - 'type': 'array'}}, - 'required': ['CloudDetails', 'users'], - 'type': 'object'}, - 'CloudInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/CloudInfo'}}, - 'type': 'object'}, - 'CloudInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CloudInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'CloudInstanceTypesConstraint': {'additionalProperties': False, - 'properties': {'cloud-tag': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'region': {'type': 'string'}}, - 'required': ['cloud-tag', - 'region'], - 'type': 'object'}, - 'CloudInstanceTypesConstraints': {'additionalProperties': False, - 'properties': {'constraints': {'items': {'$ref': '#/definitions/CloudInstanceTypesConstraint'}, - 'type': 'array'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'CloudRegion': {'additionalProperties': False, - 'properties': {'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'name': {'type': 'string'}, - 'storage-endpoint': {'type': 'string'}}, - 'required': ['name'], - 'type': 'object'}, - 'CloudResult': {'additionalProperties': False, - 'properties': {'cloud': {'$ref': '#/definitions/Cloud'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'CloudResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CloudResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'CloudUserInfo': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'display-name': {'type': 'string'}, - 'user': {'type': 'string'}}, - 'required': ['user', - 'display-name', - 'access'], - 'type': 'object'}, - 'CloudsResult': {'additionalProperties': False, - 'properties': {'clouds': {'patternProperties': {'.*': {'$ref': '#/definitions/Cloud'}}, - 'type': 'object'}}, - 'type': 'object'}, - 'ControllerCredentialInfo': {'additionalProperties': False, - 'properties': {'content': {'$ref': '#/definitions/CredentialContent'}, - 'models': {'items': {'$ref': '#/definitions/ModelAccess'}, - 'type': 'array'}}, - 'type': 'object'}, - 'CredentialContent': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'auth-type': {'type': 'string'}, - 'cloud': {'type': 'string'}, - 'name': {'type': 'string'}}, - 'required': ['name', - 'cloud', - 'auth-type'], - 'type': 'object'}, - 'CredentialContentResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ControllerCredentialInfo'}}, - 'type': 'object'}, - 'CredentialContentResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CredentialContentResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'InstanceType': {'additionalProperties': False, - 'properties': {'arches': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cost': {'type': 'integer'}, - 'cpu-cores': {'type': 'integer'}, - 'deprecated': {'type': 'boolean'}, - 'memory': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'root-disk': {'type': 'integer'}, - 'virt-type': {'type': 'string'}}, - 'required': ['arches', 'cpu-cores', 'memory'], - 'type': 'object'}, - 'InstanceTypesResult': {'additionalProperties': False, - 'properties': {'cost-currency': {'type': 'string'}, - 'cost-divisor': {'type': 'integer'}, - 'cost-unit': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'instance-types': {'items': {'$ref': '#/definitions/InstanceType'}, - 'type': 'array'}}, - 'type': 'object'}, - 'InstanceTypesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/InstanceTypesResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ListCloudInfo': {'additionalProperties': False, - 'properties': {'CloudDetails': {'$ref': '#/definitions/CloudDetails'}, - 'user-access': {'type': 'string'}}, - 'required': ['CloudDetails', 'user-access'], - 'type': 'object'}, - 'ListCloudInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ListCloudInfo'}}, - 'type': 'object'}, - 'ListCloudInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ListCloudInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ListCloudsRequest': {'additionalProperties': False, - 'properties': {'all': {'type': 'boolean'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelAccess': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'model': {'type': 'string'}}, - 'type': 'object'}, - 'ModifyCloudAccess': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'action': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag', - 'cloud-tag', - 'action', - 'access'], - 'type': 'object'}, - 'ModifyCloudAccessRequest': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyCloudAccess'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'RevokeCredentialArg': {'additionalProperties': False, - 'properties': {'force': {'type': 'boolean'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'force'], - 'type': 'object'}, - 'RevokeCredentialArgs': {'additionalProperties': False, - 'properties': {'credentials': {'items': {'$ref': '#/definitions/RevokeCredentialArg'}, - 'type': 'array'}}, - 'required': ['credentials'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'TaggedCredential': {'additionalProperties': False, - 'properties': {'credential': {'$ref': '#/definitions/CloudCredential'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'credential'], - 'type': 'object'}, - 'TaggedCredentials': {'additionalProperties': False, - 'properties': {'credentials': {'items': {'$ref': '#/definitions/TaggedCredential'}, - 'type': 'array'}}, - 'type': 'object'}, - 'UpdateCredentialArgs': {'additionalProperties': False, - 'properties': {'credentials': {'items': {'$ref': '#/definitions/TaggedCredential'}, - 'type': 'array'}, - 'force': {'type': 'boolean'}}, - 'required': ['credentials', 'force'], - 'type': 'object'}, - 'UpdateCredentialModelResult': {'additionalProperties': False, - 'properties': {'errors': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}, - 'name': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['uuid', 'name'], - 'type': 'object'}, - 'UpdateCredentialResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'models': {'items': {'$ref': '#/definitions/UpdateCredentialModelResult'}, - 'type': 'array'}, - 'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'UpdateCredentialResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/UpdateCredentialResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'UserCloud': {'additionalProperties': False, - 'properties': {'cloud-tag': {'type': 'string'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag', 'cloud-tag'], - 'type': 'object'}, - 'UserClouds': {'additionalProperties': False, - 'properties': {'user-clouds': {'items': {'$ref': '#/definitions/UserCloud'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'AddCloud': {'properties': {'Params': {'$ref': '#/definitions/AddCloudArgs'}}, - 'type': 'object'}, - 'AddCredentials': {'properties': {'Params': {'$ref': '#/definitions/TaggedCredentials'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'CheckCredentialsModels': {'properties': {'Params': {'$ref': '#/definitions/TaggedCredentials'}, - 'Result': {'$ref': '#/definitions/UpdateCredentialResults'}}, - 'type': 'object'}, - 'Cloud': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/CloudResults'}}, - 'type': 'object'}, - 'CloudInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/CloudInfoResults'}}, - 'type': 'object'}, - 'Clouds': {'properties': {'Result': {'$ref': '#/definitions/CloudsResult'}}, - 'type': 'object'}, - 'Credential': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/CloudCredentialResults'}}, - 'type': 'object'}, - 'CredentialContents': {'properties': {'Params': {'$ref': '#/definitions/CloudCredentialArgs'}, - 'Result': {'$ref': '#/definitions/CredentialContentResults'}}, - 'type': 'object'}, - 'DefaultCloud': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'InstanceTypes': {'properties': {'Params': {'$ref': '#/definitions/CloudInstanceTypesConstraints'}, - 'Result': {'$ref': '#/definitions/InstanceTypesResults'}}, - 'type': 'object'}, - 'ListCloudInfo': {'properties': {'Params': {'$ref': '#/definitions/ListCloudsRequest'}, - 'Result': {'$ref': '#/definitions/ListCloudInfoResults'}}, - 'type': 'object'}, - 'ModifyCloudAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyCloudAccessRequest'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RemoveClouds': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RevokeCredentialsCheckModels': {'properties': {'Params': {'$ref': '#/definitions/RevokeCredentialArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UpdateCredentialsCheckModels': {'properties': {'Params': {'$ref': '#/definitions/UpdateCredentialArgs'}, - 'Result': {'$ref': '#/definitions/UpdateCredentialResults'}}, - 'type': 'object'}, - 'UserCredentials': {'properties': {'Params': {'$ref': '#/definitions/UserClouds'}, - 'Result': {'$ref': '#/definitions/StringsResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(None) - async def AddCloud(self, cloud, name): - ''' - cloud : Cloud - name : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='AddCloud', - version=3, - params=_params) - _params['cloud'] = cloud - _params['name'] = name - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def AddCredentials(self, credentials): - ''' - credentials : typing.Sequence[~TaggedCredential] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='AddCredentials', - version=3, - params=_params) - _params['credentials'] = credentials - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UpdateCredentialResults) - async def CheckCredentialsModels(self, credentials): - ''' - credentials : typing.Sequence[~TaggedCredential] - Returns -> typing.Sequence[~UpdateCredentialResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='CheckCredentialsModels', - version=3, - params=_params) - _params['credentials'] = credentials - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudResults) - async def Cloud(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~CloudResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='Cloud', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudInfoResults) - async def CloudInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~CloudInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='CloudInfo', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudsResult) - async def Clouds(self): - ''' - - Returns -> typing.Mapping[str, ~Cloud] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='Clouds', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudCredentialResults) - async def Credential(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~CloudCredentialResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='Credential', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CredentialContentResults) - async def CredentialContents(self, credentials, include_secrets): - ''' - credentials : typing.Sequence[~CloudCredentialArg] - include_secrets : bool - Returns -> typing.Sequence[~CredentialContentResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='CredentialContents', - version=3, - params=_params) - _params['credentials'] = credentials - _params['include-secrets'] = include_secrets - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def DefaultCloud(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='DefaultCloud', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(InstanceTypesResults) - async def InstanceTypes(self, constraints): - ''' - constraints : typing.Sequence[~CloudInstanceTypesConstraint] - Returns -> typing.Sequence[~InstanceTypesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='InstanceTypes', - version=3, - params=_params) - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ListCloudInfoResults) - async def ListCloudInfo(self, all_, user_tag): - ''' - all_ : bool - user_tag : str - Returns -> typing.Sequence[~ListCloudInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='ListCloudInfo', - version=3, - params=_params) - _params['all'] = all_ - _params['user-tag'] = user_tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ModifyCloudAccess(self, changes): - ''' - changes : typing.Sequence[~ModifyCloudAccess] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='ModifyCloudAccess', - version=3, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RemoveClouds(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='RemoveClouds', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RevokeCredentialsCheckModels(self, credentials): - ''' - credentials : typing.Sequence[~RevokeCredentialArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='RevokeCredentialsCheckModels', - version=3, - params=_params) - _params['credentials'] = credentials - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UpdateCredentialResults) - async def UpdateCredentialsCheckModels(self, credentials, force): - ''' - credentials : typing.Sequence[~TaggedCredential] - force : bool - Returns -> typing.Sequence[~UpdateCredentialResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='UpdateCredentialsCheckModels', - version=3, - params=_params) - _params['credentials'] = credentials - _params['force'] = force - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsResults) - async def UserCredentials(self, user_clouds): - ''' - user_clouds : typing.Sequence[~UserCloud] - Returns -> typing.Sequence[~StringsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='UserCredentials', - version=3, - params=_params) - _params['user-clouds'] = user_clouds - reply = await self.rpc(msg) - return reply - - - -class ControllerFacade(Type): - name = 'Controller' - version = 3 - schema = {'definitions': {'AllWatcherId': {'additionalProperties': False, - 'properties': {'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'CloudCredential': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'auth-type': {'type': 'string'}, - 'redacted': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['auth-type'], - 'type': 'object'}, - 'CloudSpec': {'additionalProperties': False, - 'properties': {'credential': {'$ref': '#/definitions/CloudCredential'}, - 'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'name': {'type': 'string'}, - 'region': {'type': 'string'}, - 'storage-endpoint': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type', 'name'], - 'type': 'object'}, - 'CloudSpecResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/CloudSpec'}}, - 'type': 'object'}, - 'CloudSpecResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CloudSpecResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ConfigValue': {'additionalProperties': False, - 'properties': {'source': {'type': 'string'}, - 'value': {'additionalProperties': True, - 'type': 'object'}}, - 'required': ['value', 'source'], - 'type': 'object'}, - 'ControllerConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'DestroyControllerArgs': {'additionalProperties': False, - 'properties': {'destroy-models': {'type': 'boolean'}}, - 'required': ['destroy-models'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'HostedModelConfig': {'additionalProperties': False, - 'properties': {'cloud-spec': {'$ref': '#/definitions/CloudSpec'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}, - 'owner': {'type': 'string'}}, - 'required': ['name', 'owner'], - 'type': 'object'}, - 'HostedModelConfigsResults': {'additionalProperties': False, - 'properties': {'models': {'items': {'$ref': '#/definitions/HostedModelConfig'}, - 'type': 'array'}}, - 'required': ['models'], - 'type': 'object'}, - 'InitiateMigrationArgs': {'additionalProperties': False, - 'properties': {'specs': {'items': {'$ref': '#/definitions/MigrationSpec'}, - 'type': 'array'}}, - 'required': ['specs'], - 'type': 'object'}, - 'InitiateMigrationResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'migration-id': {'type': 'string'}, - 'model-tag': {'type': 'string'}}, - 'required': ['model-tag', - 'migration-id'], - 'type': 'object'}, - 'InitiateMigrationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/InitiateMigrationResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineHardware': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'MigrationSpec': {'additionalProperties': False, - 'properties': {'model-tag': {'type': 'string'}, - 'target-info': {'$ref': '#/definitions/MigrationTargetInfo'}}, - 'required': ['model-tag', 'target-info'], - 'type': 'object'}, - 'MigrationTargetInfo': {'additionalProperties': False, - 'properties': {'addrs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'auth-tag': {'type': 'string'}, - 'ca-cert': {'type': 'string'}, - 'controller-tag': {'type': 'string'}, - 'macaroons': {'type': 'string'}, - 'password': {'type': 'string'}}, - 'required': ['controller-tag', - 'addrs', - 'ca-cert', - 'auth-tag'], - 'type': 'object'}, - 'Model': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', 'uuid', 'owner-tag'], - 'type': 'object'}, - 'ModelBlockInfo': {'additionalProperties': False, - 'properties': {'blocks': {'items': {'type': 'string'}, - 'type': 'array'}, - 'model-uuid': {'type': 'string'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}}, - 'required': ['name', - 'model-uuid', - 'owner-tag', - 'blocks'], - 'type': 'object'}, - 'ModelBlockInfoList': {'additionalProperties': False, - 'properties': {'models': {'items': {'$ref': '#/definitions/ModelBlockInfo'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ModelConfigResults': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelMachineInfo': {'additionalProperties': False, - 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'}, - 'has-vote': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'instance-id': {'type': 'string'}, - 'status': {'type': 'string'}, - 'wants-vote': {'type': 'boolean'}}, - 'required': ['id'], - 'type': 'object'}, - 'ModelStatus': {'additionalProperties': False, - 'properties': {'application-count': {'type': 'integer'}, - 'hosted-machine-count': {'type': 'integer'}, - 'life': {'type': 'string'}, - 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, - 'type': 'array'}, - 'model-tag': {'type': 'string'}, - 'owner-tag': {'type': 'string'}}, - 'required': ['model-tag', - 'life', - 'hosted-machine-count', - 'application-count', - 'owner-tag'], - 'type': 'object'}, - 'ModelStatusResults': {'additionalProperties': False, - 'properties': {'models': {'items': {'$ref': '#/definitions/ModelStatus'}, - 'type': 'array'}}, - 'required': ['models'], - 'type': 'object'}, - 'ModelTag': {'additionalProperties': False, 'type': 'object'}, - 'ModifyControllerAccess': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'action': {'type': 'string'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag', - 'action', - 'access'], - 'type': 'object'}, - 'ModifyControllerAccessRequest': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyControllerAccess'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'RemoveBlocksArgs': {'additionalProperties': False, - 'properties': {'all': {'type': 'boolean'}}, - 'required': ['all'], - 'type': 'object'}, - 'UserAccess': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag', 'access'], - 'type': 'object'}, - 'UserAccessResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/UserAccess'}}, - 'type': 'object'}, - 'UserAccessResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/UserAccessResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'UserModel': {'additionalProperties': False, - 'properties': {'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'model': {'$ref': '#/definitions/Model'}}, - 'required': ['model', 'last-connection'], - 'type': 'object'}, - 'UserModelList': {'additionalProperties': False, - 'properties': {'user-models': {'items': {'$ref': '#/definitions/UserModel'}, - 'type': 'array'}}, - 'required': ['user-models'], - 'type': 'object'}}, - 'properties': {'AllModels': {'properties': {'Result': {'$ref': '#/definitions/UserModelList'}}, - 'type': 'object'}, - 'CloudSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/CloudSpecResults'}}, - 'type': 'object'}, - 'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}}, - 'type': 'object'}, - 'DestroyController': {'properties': {'Params': {'$ref': '#/definitions/DestroyControllerArgs'}}, - 'type': 'object'}, - 'GetCloudSpec': {'properties': {'Params': {'$ref': '#/definitions/ModelTag'}, - 'Result': {'$ref': '#/definitions/CloudSpecResult'}}, - 'type': 'object'}, - 'GetControllerAccess': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/UserAccessResults'}}, - 'type': 'object'}, - 'HostedModelConfigs': {'properties': {'Result': {'$ref': '#/definitions/HostedModelConfigsResults'}}, - 'type': 'object'}, - 'InitiateMigration': {'properties': {'Params': {'$ref': '#/definitions/InitiateMigrationArgs'}, - 'Result': {'$ref': '#/definitions/InitiateMigrationResults'}}, - 'type': 'object'}, - 'ListBlockedModels': {'properties': {'Result': {'$ref': '#/definitions/ModelBlockInfoList'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}}, - 'type': 'object'}, - 'ModelStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ModelStatusResults'}}, - 'type': 'object'}, - 'ModifyControllerAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyControllerAccessRequest'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RemoveBlocks': {'properties': {'Params': {'$ref': '#/definitions/RemoveBlocksArgs'}}, - 'type': 'object'}, - 'WatchAllModels': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherId'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(UserModelList) - async def AllModels(self): - ''' - - Returns -> typing.Sequence[~UserModel] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='AllModels', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudSpecResults) - async def CloudSpec(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~CloudSpecResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='CloudSpec', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerConfigResult) - async def ControllerConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ControllerConfig', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyController(self, destroy_models): - ''' - destroy_models : bool - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='DestroyController', - version=3, - params=_params) - _params['destroy-models'] = destroy_models - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudSpecResult) - async def GetCloudSpec(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='GetCloudSpec', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UserAccessResults) - async def GetControllerAccess(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~UserAccessResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='GetControllerAccess', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(HostedModelConfigsResults) - async def HostedModelConfigs(self): - ''' - - Returns -> typing.Sequence[~HostedModelConfig] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='HostedModelConfigs', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(InitiateMigrationResults) - async def InitiateMigration(self, specs): - ''' - specs : typing.Sequence[~MigrationSpec] - Returns -> typing.Sequence[~InitiateMigrationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='InitiateMigration', - version=3, - params=_params) - _params['specs'] = specs - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelBlockInfoList) - async def ListBlockedModels(self): - ''' - - Returns -> typing.Sequence[~ModelBlockInfo] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ListBlockedModels', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResults) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, ~ConfigValue] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ModelConfig', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelStatusResults) - async def ModelStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ModelStatus] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ModelStatus', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ModifyControllerAccess(self, changes): - ''' - changes : typing.Sequence[~ModifyControllerAccess] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ModifyControllerAccess', - version=3, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def RemoveBlocks(self, all_): - ''' - all_ : bool - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='RemoveBlocks', - version=3, - params=_params) - _params['all'] = all_ - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AllWatcherId) - async def WatchAllModels(self): - ''' - - Returns -> str - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='WatchAllModels', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class FirewallerFacade(Type): - name = 'Firewaller' - version = 3 - schema = {'definitions': {'BoolResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'boolean'}}, - 'required': ['result'], - 'type': 'object'}, - 'BoolResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'CloudCredential': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'auth-type': {'type': 'string'}, - 'redacted': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['auth-type'], - 'type': 'object'}, - 'CloudSpec': {'additionalProperties': False, - 'properties': {'credential': {'$ref': '#/definitions/CloudCredential'}, - 'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'name': {'type': 'string'}, - 'region': {'type': 'string'}, - 'storage-endpoint': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type', 'name'], - 'type': 'object'}, - 'CloudSpecResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/CloudSpec'}}, - 'type': 'object'}, - 'CloudSpecResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CloudSpecResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachinePortRange': {'additionalProperties': False, - 'properties': {'port-range': {'$ref': '#/definitions/PortRange'}, - 'relation-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['unit-tag', - 'relation-tag', - 'port-range'], - 'type': 'object'}, - 'MachinePorts': {'additionalProperties': False, - 'properties': {'machine-tag': {'type': 'string'}, - 'subnet-tag': {'type': 'string'}}, - 'required': ['machine-tag', 'subnet-tag'], - 'type': 'object'}, - 'MachinePortsParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/MachinePorts'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'MachinePortsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'ports': {'items': {'$ref': '#/definitions/MachinePortRange'}, - 'type': 'array'}}, - 'required': ['ports'], - 'type': 'object'}, - 'MachinePortsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MachinePortsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelTag': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'PortRange': {'additionalProperties': False, - 'properties': {'from-port': {'type': 'integer'}, - 'protocol': {'type': 'string'}, - 'to-port': {'type': 'integer'}}, - 'required': ['from-port', 'to-port', 'protocol'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'CloudSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/CloudSpecResults'}}, - 'type': 'object'}, - 'GetAssignedMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'GetCloudSpec': {'properties': {'Params': {'$ref': '#/definitions/ModelTag'}, - 'Result': {'$ref': '#/definitions/CloudSpecResult'}}, - 'type': 'object'}, - 'GetExposed': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/BoolResults'}}, - 'type': 'object'}, - 'GetMachineActiveSubnets': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsResults'}}, - 'type': 'object'}, - 'GetMachinePorts': {'properties': {'Params': {'$ref': '#/definitions/MachinePortsParams'}, - 'Result': {'$ref': '#/definitions/MachinePortsResults'}}, - 'type': 'object'}, - 'InstanceId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchModelMachines': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}, - 'WatchOpenedPorts': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(CloudSpecResults) - async def CloudSpec(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~CloudSpecResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='CloudSpec', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def GetAssignedMachine(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='GetAssignedMachine', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudSpecResult) - async def GetCloudSpec(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='GetCloudSpec', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BoolResults) - async def GetExposed(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~BoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='GetExposed', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsResults) - async def GetMachineActiveSubnets(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='GetMachineActiveSubnets', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachinePortsResults) - async def GetMachinePorts(self, params): - ''' - params : typing.Sequence[~MachinePorts] - Returns -> typing.Sequence[~MachinePortsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='GetMachinePorts', - version=3, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def InstanceId(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='InstanceId', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='Life', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='ModelConfig', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def Watch(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='Watch', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='WatchForModelConfigChanges', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchModelMachines(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='WatchModelMachines', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchOpenedPorts(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='WatchOpenedPorts', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchUnits(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='WatchUnits', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class ImageMetadataFacade(Type): - name = 'ImageMetadata' - version = 3 - schema = {'properties': {'UpdateFromPublishedImages': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(None) - async def UpdateFromPublishedImages(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ImageMetadata', - request='UpdateFromPublishedImages', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class InstancePollerFacade(Type): - name = 'InstancePoller' - version = 3 - schema = {'definitions': {'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'BoolResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'boolean'}}, - 'required': ['result'], - 'type': 'object'}, - 'BoolResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineAddresses': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, - 'type': 'array'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'addresses'], - 'type': 'object'}, - 'MachineAddressesResult': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['addresses'], - 'type': 'object'}, - 'MachineAddressesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MachineAddressesResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'SetMachinesAddresses': {'additionalProperties': False, - 'properties': {'machine-addresses': {'items': {'$ref': '#/definitions/MachineAddresses'}, - 'type': 'array'}}, - 'required': ['machine-addresses'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'StatusResult': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'error': {'$ref': '#/definitions/Error'}, - 'id': {'type': 'string'}, - 'info': {'type': 'string'}, - 'life': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['id', - 'life', - 'status', - 'info', - 'data', - 'since'], - 'type': 'object'}, - 'StatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}}, - 'properties': {'AreManuallyProvisioned': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/BoolResults'}}, - 'type': 'object'}, - 'InstanceId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'InstanceStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StatusResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'ProviderAddresses': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachineAddressesResults'}}, - 'type': 'object'}, - 'SetInstanceStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetProviderAddresses': {'properties': {'Params': {'$ref': '#/definitions/SetMachinesAddresses'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Status': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StatusResults'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchModelMachines': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(BoolResults) - async def AreManuallyProvisioned(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~BoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='InstancePoller', - request='AreManuallyProvisioned', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def InstanceId(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='InstancePoller', - request='InstanceId', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusResults) - async def InstanceStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='InstancePoller', - request='InstanceStatus', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='InstancePoller', - request='Life', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='InstancePoller', - request='ModelConfig', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachineAddressesResults) - async def ProviderAddresses(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachineAddressesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='InstancePoller', - request='ProviderAddresses', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetInstanceStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='InstancePoller', - request='SetInstanceStatus', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetProviderAddresses(self, machine_addresses): - ''' - machine_addresses : typing.Sequence[~MachineAddresses] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='InstancePoller', - request='SetProviderAddresses', - version=3, - params=_params) - _params['machine-addresses'] = machine_addresses - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusResults) - async def Status(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='InstancePoller', - request='Status', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='InstancePoller', - request='WatchForModelConfigChanges', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchModelMachines(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='InstancePoller', - request='WatchModelMachines', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class MachineManagerFacade(Type): - name = 'MachineManager' - version = 3 - schema = {'definitions': {'AddMachineParams': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, - 'type': 'array'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'container-type': {'type': 'string'}, - 'disks': {'items': {'$ref': '#/definitions/Constraints'}, - 'type': 'array'}, - 'hardware-characteristics': {'$ref': '#/definitions/HardwareCharacteristics'}, - 'instance-id': {'type': 'string'}, - 'jobs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'nonce': {'type': 'string'}, - 'parent-id': {'type': 'string'}, - 'placement': {'$ref': '#/definitions/Placement'}, - 'series': {'type': 'string'}}, - 'required': ['series', - 'constraints', - 'jobs', - 'parent-id', - 'container-type', - 'instance-id', - 'nonce', - 'hardware-characteristics', - 'addresses'], - 'type': 'object'}, - 'AddMachines': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/AddMachineParams'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'AddMachinesResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'machine': {'type': 'string'}}, - 'required': ['machine'], - 'type': 'object'}, - 'AddMachinesResults': {'additionalProperties': False, - 'properties': {'machines': {'items': {'$ref': '#/definitions/AddMachinesResult'}, - 'type': 'array'}}, - 'required': ['machines'], - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'Constraints': {'additionalProperties': False, - 'properties': {'Count': {'type': 'integer'}, - 'Pool': {'type': 'string'}, - 'Size': {'type': 'integer'}}, - 'required': ['Pool', 'Size', 'Count'], - 'type': 'object'}, - 'DestroyMachineInfo': {'additionalProperties': False, - 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'destroyed-units': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyMachineResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'$ref': '#/definitions/DestroyMachineInfo'}}, - 'type': 'object'}, - 'DestroyMachineResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyMachineResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'HardwareCharacteristics': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cpu-cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'InstanceType': {'additionalProperties': False, - 'properties': {'arches': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cost': {'type': 'integer'}, - 'cpu-cores': {'type': 'integer'}, - 'deprecated': {'type': 'boolean'}, - 'memory': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'root-disk': {'type': 'integer'}, - 'virt-type': {'type': 'string'}}, - 'required': ['arches', 'cpu-cores', 'memory'], - 'type': 'object'}, - 'InstanceTypesResult': {'additionalProperties': False, - 'properties': {'cost-currency': {'type': 'string'}, - 'cost-divisor': {'type': 'integer'}, - 'cost-unit': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'instance-types': {'items': {'$ref': '#/definitions/InstanceType'}, - 'type': 'array'}}, - 'type': 'object'}, - 'InstanceTypesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/InstanceTypesResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelInstanceTypesConstraint': {'additionalProperties': False, - 'properties': {'value': {'$ref': '#/definitions/Value'}}, - 'type': 'object'}, - 'ModelInstanceTypesConstraints': {'additionalProperties': False, - 'properties': {'constraints': {'items': {'$ref': '#/definitions/ModelInstanceTypesConstraint'}, - 'type': 'array'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'Placement': {'additionalProperties': False, - 'properties': {'directive': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['scope', 'directive'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}}, - 'type': 'object'}}, - 'properties': {'AddMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, - 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, - 'type': 'object'}, - 'DestroyMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/DestroyMachineResults'}}, - 'type': 'object'}, - 'ForceDestroyMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/DestroyMachineResults'}}, - 'type': 'object'}, - 'InstanceTypes': {'properties': {'Params': {'$ref': '#/definitions/ModelInstanceTypesConstraints'}, - 'Result': {'$ref': '#/definitions/InstanceTypesResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddMachinesResults) - async def AddMachines(self, params): - ''' - params : typing.Sequence[~AddMachineParams] - Returns -> typing.Sequence[~AddMachinesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='AddMachines', - version=3, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DestroyMachineResults) - async def DestroyMachine(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~DestroyMachineResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='DestroyMachine', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DestroyMachineResults) - async def ForceDestroyMachine(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~DestroyMachineResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='ForceDestroyMachine', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(InstanceTypesResults) - async def InstanceTypes(self, constraints): - ''' - constraints : typing.Sequence[~ModelInstanceTypesConstraint] - Returns -> typing.Sequence[~InstanceTypesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='InstanceTypes', - version=3, - params=_params) - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - -class ModelManagerFacade(Type): - name = 'ModelManager' - version = 3 - schema = {'definitions': {'DumpModelRequest': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'simplified': {'type': 'boolean'}}, - 'required': ['entities', 'simplified'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'info', 'since'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineHardware': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'MapResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['result'], - 'type': 'object'}, - 'MapResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MapResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Model': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', 'uuid', 'owner-tag'], - 'type': 'object'}, - 'ModelCreateArgs': {'additionalProperties': False, - 'properties': {'cloud-tag': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'credential': {'type': 'string'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'region': {'type': 'string'}}, - 'required': ['name', 'owner-tag'], - 'type': 'object'}, - 'ModelDefaultValues': {'additionalProperties': False, - 'properties': {'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelDefaults': {'additionalProperties': False, - 'properties': {'controller': {'additionalProperties': True, - 'type': 'object'}, - 'default': {'additionalProperties': True, - 'type': 'object'}, - 'regions': {'items': {'$ref': '#/definitions/RegionDefaults'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ModelDefaultsResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ModelDefaults'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelInfo': {'additionalProperties': False, - 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, - 'cloud-credential-tag': {'type': 'string'}, - 'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'controller-uuid': {'type': 'string'}, - 'default-series': {'type': 'string'}, - 'life': {'type': 'string'}, - 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, - 'type': 'array'}, - 'migration': {'$ref': '#/definitions/ModelMigrationStatus'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'provider-type': {'type': 'string'}, - 'sla': {'$ref': '#/definitions/ModelSLAInfo'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'users': {'items': {'$ref': '#/definitions/ModelUserInfo'}, - 'type': 'array'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', - 'uuid', - 'controller-uuid', - 'cloud-tag', - 'owner-tag', - 'life', - 'users', - 'machines', - 'sla', - 'agent-version'], - 'type': 'object'}, - 'ModelInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ModelInfo'}}, - 'type': 'object'}, - 'ModelInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ModelInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ModelMachineInfo': {'additionalProperties': False, - 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'}, - 'has-vote': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'instance-id': {'type': 'string'}, - 'status': {'type': 'string'}, - 'wants-vote': {'type': 'boolean'}}, - 'required': ['id'], - 'type': 'object'}, - 'ModelMigrationStatus': {'additionalProperties': False, - 'properties': {'end': {'format': 'date-time', - 'type': 'string'}, - 'start': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'start'], - 'type': 'object'}, - 'ModelSLAInfo': {'additionalProperties': False, - 'properties': {'level': {'type': 'string'}, - 'owner': {'type': 'string'}}, - 'required': ['level', 'owner'], - 'type': 'object'}, - 'ModelStatus': {'additionalProperties': False, - 'properties': {'application-count': {'type': 'integer'}, - 'hosted-machine-count': {'type': 'integer'}, - 'life': {'type': 'string'}, - 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, - 'type': 'array'}, - 'model-tag': {'type': 'string'}, - 'owner-tag': {'type': 'string'}}, - 'required': ['model-tag', - 'life', - 'hosted-machine-count', - 'application-count', - 'owner-tag'], - 'type': 'object'}, - 'ModelStatusResults': {'additionalProperties': False, - 'properties': {'models': {'items': {'$ref': '#/definitions/ModelStatus'}, - 'type': 'array'}}, - 'required': ['models'], - 'type': 'object'}, - 'ModelUnsetKeys': {'additionalProperties': False, - 'properties': {'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'keys': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['keys'], - 'type': 'object'}, - 'ModelUserInfo': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'display-name': {'type': 'string'}, - 'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'user': {'type': 'string'}}, - 'required': ['user', - 'display-name', - 'last-connection', - 'access'], - 'type': 'object'}, - 'ModifyModelAccess': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'action': {'type': 'string'}, - 'model-tag': {'type': 'string'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag', - 'action', - 'access', - 'model-tag'], - 'type': 'object'}, - 'ModifyModelAccessRequest': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyModelAccess'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'RegionDefaults': {'additionalProperties': False, - 'properties': {'region-name': {'type': 'string'}, - 'value': {'additionalProperties': True, - 'type': 'object'}}, - 'required': ['region-name', 'value'], - 'type': 'object'}, - 'SetModelDefaults': {'additionalProperties': False, - 'properties': {'config': {'items': {'$ref': '#/definitions/ModelDefaultValues'}, - 'type': 'array'}}, - 'required': ['config'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UnsetModelDefaults': {'additionalProperties': False, - 'properties': {'keys': {'items': {'$ref': '#/definitions/ModelUnsetKeys'}, - 'type': 'array'}}, - 'required': ['keys'], - 'type': 'object'}, - 'UserModel': {'additionalProperties': False, - 'properties': {'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'model': {'$ref': '#/definitions/Model'}}, - 'required': ['model', 'last-connection'], - 'type': 'object'}, - 'UserModelList': {'additionalProperties': False, - 'properties': {'user-models': {'items': {'$ref': '#/definitions/UserModel'}, - 'type': 'array'}}, - 'required': ['user-models'], - 'type': 'object'}}, - 'properties': {'CreateModel': {'properties': {'Params': {'$ref': '#/definitions/ModelCreateArgs'}, - 'Result': {'$ref': '#/definitions/ModelInfo'}}, - 'type': 'object'}, - 'DestroyModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'DumpModels': {'properties': {'Params': {'$ref': '#/definitions/DumpModelRequest'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'DumpModelsDB': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MapResults'}}, - 'type': 'object'}, - 'ListModels': {'properties': {'Params': {'$ref': '#/definitions/Entity'}, - 'Result': {'$ref': '#/definitions/UserModelList'}}, - 'type': 'object'}, - 'ModelDefaults': {'properties': {'Result': {'$ref': '#/definitions/ModelDefaultsResult'}}, - 'type': 'object'}, - 'ModelInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ModelInfoResults'}}, - 'type': 'object'}, - 'ModelStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ModelStatusResults'}}, - 'type': 'object'}, - 'ModifyModelAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyModelAccessRequest'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetModelDefaults': {'properties': {'Params': {'$ref': '#/definitions/SetModelDefaults'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UnsetModelDefaults': {'properties': {'Params': {'$ref': '#/definitions/UnsetModelDefaults'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ModelInfo) - async def CreateModel(self, cloud_tag, config, credential, name, owner_tag, region): - ''' - cloud_tag : str - config : typing.Mapping[str, typing.Any] - credential : str - name : str - owner_tag : str - region : str - Returns -> typing.Union[_ForwardRef('Number'), str, typing.Sequence[~ModelMachineInfo], _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence[~ModelUserInfo]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='CreateModel', - version=3, - params=_params) - _params['cloud-tag'] = cloud_tag - _params['config'] = config - _params['credential'] = credential - _params['name'] = name - _params['owner-tag'] = owner_tag - _params['region'] = region - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DestroyModels(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='DestroyModels', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def DumpModels(self, entities, simplified): - ''' - entities : typing.Sequence[~Entity] - simplified : bool - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='DumpModels', - version=3, - params=_params) - _params['entities'] = entities - _params['simplified'] = simplified - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MapResults) - async def DumpModelsDB(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MapResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='DumpModelsDB', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UserModelList) - async def ListModels(self, tag): - ''' - tag : str - Returns -> typing.Sequence[~UserModel] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ListModels', - version=3, - params=_params) - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelDefaultsResult) - async def ModelDefaults(self): - ''' - - Returns -> typing.Mapping[str, ~ModelDefaults] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModelDefaults', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelInfoResults) - async def ModelInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ModelInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModelInfo', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelStatusResults) - async def ModelStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ModelStatus] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModelStatus', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ModifyModelAccess(self, changes): - ''' - changes : typing.Sequence[~ModifyModelAccess] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModifyModelAccess', - version=3, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetModelDefaults(self, config): - ''' - config : typing.Sequence[~ModelDefaultValues] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='SetModelDefaults', - version=3, - params=_params) - _params['config'] = config - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UnsetModelDefaults(self, keys): - ''' - keys : typing.Sequence[~ModelUnsetKeys] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='UnsetModelDefaults', - version=3, - params=_params) - _params['keys'] = keys - reply = await self.rpc(msg) - return reply - - - -class ProvisionerFacade(Type): - name = 'Provisioner' - version = 3 - schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, - 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, - 'type': 'array'}, - 'type': 'array'}}, - 'required': ['servers'], - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'Binary': {'additionalProperties': False, - 'properties': {'Arch': {'type': 'string'}, - 'Number': {'$ref': '#/definitions/Number'}, - 'Series': {'type': 'string'}}, - 'required': ['Number', 'Series', 'Arch'], - 'type': 'object'}, - 'BytesResult': {'additionalProperties': False, - 'properties': {'result': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['result'], - 'type': 'object'}, - 'CloudImageMetadata': {'additionalProperties': False, - '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'}}, - 'required': ['image-id', - 'region', - 'version', - 'series', - 'arch', - 'source', - 'priority'], - 'type': 'object'}, - 'ConstraintsResult': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'ConstraintsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ConstraintsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ContainerConfig': {'additionalProperties': False, - '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'}}, - 'required': ['provider-type', - 'authorized-keys', - 'ssl-hostname-verification', - 'proxy', - 'apt-proxy', - 'apt-mirror', - 'UpdateBehavior'], - 'type': 'object'}, - 'ContainerManagerConfig': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ContainerManagerConfigParams': {'additionalProperties': False, - 'properties': {'type': {'type': 'string'}}, - 'required': ['type'], - 'type': 'object'}, - 'ControllerConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'DeviceBridgeInfo': {'additionalProperties': False, - 'properties': {'bridge-name': {'type': 'string'}, - 'host-device-name': {'type': 'string'}}, - 'required': ['host-device-name', - 'bridge-name'], - 'type': 'object'}, - 'DistributionGroupResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['result'], - 'type': 'object'}, - 'DistributionGroupResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/DistributionGroupResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityPassword': {'additionalProperties': False, - 'properties': {'password': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'password'], - 'type': 'object'}, - 'EntityPasswords': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'FindToolsParams': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'major': {'type': 'integer'}, - 'minor': {'type': 'integer'}, - 'number': {'$ref': '#/definitions/Number'}, - 'series': {'type': 'string'}}, - 'required': ['number', - 'major', - 'minor', - 'arch', - 'series'], - 'type': 'object'}, - 'FindToolsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'list': {'items': {'$ref': '#/definitions/Tools'}, - 'type': 'array'}}, - 'required': ['list'], - 'type': 'object'}, - 'HardwareCharacteristics': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cpu-cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'HostNetworkChange': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'new-bridges': {'items': {'$ref': '#/definitions/DeviceBridgeInfo'}, - 'type': 'array'}, - 'reconfigure-delay': {'type': 'integer'}}, - 'required': ['new-bridges', - 'reconfigure-delay'], - 'type': 'object'}, - 'HostNetworkChangeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/HostNetworkChange'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'HostPort': {'additionalProperties': False, - 'properties': {'Address': {'$ref': '#/definitions/Address'}, - 'port': {'type': 'integer'}}, - 'required': ['Address', 'port'], - 'type': 'object'}, - 'InstanceInfo': {'additionalProperties': False, - 'properties': {'characteristics': {'$ref': '#/definitions/HardwareCharacteristics'}, - 'instance-id': {'type': 'string'}, - 'network-config': {'items': {'$ref': '#/definitions/NetworkConfig'}, - 'type': 'array'}, - 'nonce': {'type': 'string'}, - 'tag': {'type': 'string'}, - 'volume-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/VolumeAttachmentInfo'}}, - 'type': 'object'}, - 'volumes': {'items': {'$ref': '#/definitions/Volume'}, - 'type': 'array'}}, - 'required': ['tag', - 'instance-id', - 'nonce', - 'characteristics', - 'volumes', - 'volume-attachments', - 'network-config'], - 'type': 'object'}, - 'InstancesInfo': {'additionalProperties': False, - 'properties': {'machines': {'items': {'$ref': '#/definitions/InstanceInfo'}, - 'type': 'array'}}, - 'required': ['machines'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineContainers': {'additionalProperties': False, - 'properties': {'container-types': {'items': {'type': 'string'}, - 'type': 'array'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['machine-tag', - 'container-types'], - 'type': 'object'}, - 'MachineContainersParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/MachineContainers'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'MachineNetworkConfigResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'items': {'$ref': '#/definitions/NetworkConfig'}, - 'type': 'array'}}, - 'required': ['info'], - 'type': 'object'}, - 'MachineNetworkConfigResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MachineNetworkConfigResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'NetworkConfig': {'additionalProperties': False, - 'properties': {'address': {'type': 'string'}, - 'cidr': {'type': 'string'}, - 'config-type': {'type': 'string'}, - 'device-index': {'type': 'integer'}, - 'disabled': {'type': 'boolean'}, - 'dns-search-domains': {'items': {'type': 'string'}, - 'type': 'array'}, - 'dns-servers': {'items': {'type': 'string'}, - 'type': 'array'}, - 'gateway-address': {'type': 'string'}, - 'interface-name': {'type': 'string'}, - 'interface-type': {'type': 'string'}, - 'mac-address': {'type': 'string'}, - 'mtu': {'type': 'integer'}, - 'no-auto-start': {'type': 'boolean'}, - 'parent-interface-name': {'type': 'string'}, - 'provider-address-id': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'provider-subnet-id': {'type': 'string'}, - 'provider-vlan-id': {'type': 'string'}, - 'routes': {'items': {'$ref': '#/definitions/NetworkRoute'}, - 'type': 'array'}, - 'vlan-tag': {'type': 'integer'}}, - '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'], - 'type': 'object'}, - 'NetworkRoute': {'additionalProperties': False, - 'properties': {'destination-cidr': {'type': 'string'}, - 'gateway-ip': {'type': 'string'}, - 'metric': {'type': 'integer'}}, - 'required': ['destination-cidr', - 'gateway-ip', - 'metric'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'ProvisioningInfo': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}, - 'controller-config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'image-metadata': {'items': {'$ref': '#/definitions/CloudImageMetadata'}, - 'type': 'array'}, - 'jobs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'placement': {'type': 'string'}, - 'series': {'type': 'string'}, - 'subnets-to-zones': {'patternProperties': {'.*': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'volume-attachments': {'items': {'$ref': '#/definitions/VolumeAttachmentParams'}, - 'type': 'array'}, - 'volumes': {'items': {'$ref': '#/definitions/VolumeParams'}, - 'type': 'array'}}, - 'required': ['constraints', - 'series', - 'placement', - 'jobs'], - 'type': 'object'}, - 'ProvisioningInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ProvisioningInfo'}}, - 'required': ['result'], - 'type': 'object'}, - 'ProvisioningInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ProvisioningInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SetMachineNetworkConfig': {'additionalProperties': False, - 'properties': {'config': {'items': {'$ref': '#/definitions/NetworkConfig'}, - 'type': 'array'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'config'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Settings': {'additionalProperties': False, - 'properties': {'AutoNoProxy': {'type': 'string'}, - 'Ftp': {'type': 'string'}, - 'Http': {'type': 'string'}, - 'Https': {'type': 'string'}, - 'NoProxy': {'type': 'string'}}, - 'required': ['Http', - 'Https', - 'Ftp', - 'NoProxy', - 'AutoNoProxy'], - 'type': 'object'}, - 'StatusResult': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'error': {'$ref': '#/definitions/Error'}, - 'id': {'type': 'string'}, - 'info': {'type': 'string'}, - 'life': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['id', - 'life', - 'status', - 'info', - 'data', - 'since'], - 'type': 'object'}, - 'StatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Tools': {'additionalProperties': False, - 'properties': {'sha256': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'url': {'type': 'string'}, - 'version': {'$ref': '#/definitions/Binary'}}, - 'required': ['version', 'url', 'size'], - 'type': 'object'}, - 'ToolsResult': {'additionalProperties': False, - 'properties': {'disable-ssl-hostname-verification': {'type': 'boolean'}, - 'error': {'$ref': '#/definitions/Error'}, - 'tools': {'items': {'$ref': '#/definitions/Tools'}, - 'type': 'array'}}, - 'required': ['tools', - 'disable-ssl-hostname-verification'], - 'type': 'object'}, - 'ToolsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ToolsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UpdateBehavior': {'additionalProperties': False, - 'properties': {'enable-os-refresh-update': {'type': 'boolean'}, - 'enable-os-upgrade': {'type': 'boolean'}}, - 'required': ['enable-os-refresh-update', - 'enable-os-upgrade'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}}, - 'type': 'object'}, - 'Volume': {'additionalProperties': False, - 'properties': {'info': {'$ref': '#/definitions/VolumeInfo'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', 'info'], - 'type': 'object'}, - 'VolumeAttachmentInfo': {'additionalProperties': False, - 'properties': {'bus-address': {'type': 'string'}, - 'device-link': {'type': 'string'}, - 'device-name': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'type': 'object'}, - 'VolumeAttachmentParams': {'additionalProperties': False, - 'properties': {'instance-id': {'type': 'string'}, - 'machine-tag': {'type': 'string'}, - 'provider': {'type': 'string'}, - 'read-only': {'type': 'boolean'}, - 'volume-id': {'type': 'string'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', - 'machine-tag', - 'provider'], - 'type': 'object'}, - 'VolumeInfo': {'additionalProperties': False, - 'properties': {'hardware-id': {'type': 'string'}, - 'persistent': {'type': 'boolean'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'volume-id': {'type': 'string'}, - 'wwn': {'type': 'string'}}, - 'required': ['volume-id', 'size', 'persistent'], - 'type': 'object'}, - 'VolumeParams': {'additionalProperties': False, - 'properties': {'attachment': {'$ref': '#/definitions/VolumeAttachmentParams'}, - 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'provider': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', - 'size', - 'provider'], - 'type': 'object'}, - 'WatchContainer': {'additionalProperties': False, - 'properties': {'container-type': {'type': 'string'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['machine-tag', - 'container-type'], - 'type': 'object'}, - 'WatchContainers': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/WatchContainer'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}}, - 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, - 'type': 'object'}, - 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, - 'type': 'object'}, - 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, - 'type': 'object'}, - 'Constraints': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ConstraintsResults'}}, - 'type': 'object'}, - 'ContainerConfig': {'properties': {'Result': {'$ref': '#/definitions/ContainerConfig'}}, - 'type': 'object'}, - 'ContainerManagerConfig': {'properties': {'Params': {'$ref': '#/definitions/ContainerManagerConfigParams'}, - 'Result': {'$ref': '#/definitions/ContainerManagerConfig'}}, - 'type': 'object'}, - 'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}}, - 'type': 'object'}, - 'DistributionGroup': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/DistributionGroupResults'}}, - 'type': 'object'}, - 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'FindTools': {'properties': {'Params': {'$ref': '#/definitions/FindToolsParams'}, - 'Result': {'$ref': '#/definitions/FindToolsResult'}}, - 'type': 'object'}, - 'GetContainerInterfaceInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachineNetworkConfigResults'}}, - 'type': 'object'}, - 'HostChangesForContainers': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/HostNetworkChangeResults'}}, - 'type': 'object'}, - 'InstanceId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'InstanceStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StatusResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'MachinesWithTransientErrors': {'properties': {'Result': {'$ref': '#/definitions/StatusResults'}}, - 'type': 'object'}, - 'MarkMachinesForRemoval': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'PrepareContainerInterfaceInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachineNetworkConfigResults'}}, - 'type': 'object'}, - 'ProvisioningInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ProvisioningInfoResults'}}, - 'type': 'object'}, - 'ReleaseContainerAddresses': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Remove': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Series': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'SetHostMachineNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/SetMachineNetworkConfig'}}, - 'type': 'object'}, - 'SetInstanceInfo': {'properties': {'Params': {'$ref': '#/definitions/InstancesInfo'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetInstanceStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetObservedNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/SetMachineNetworkConfig'}}, - 'type': 'object'}, - 'SetPasswords': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetProviderNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetSupportedContainers': {'properties': {'Params': {'$ref': '#/definitions/MachineContainersParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'StateAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, - 'type': 'object'}, - 'Status': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StatusResults'}}, - 'type': 'object'}, - 'Tools': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ToolsResults'}}, - 'type': 'object'}, - 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchAllContainers': {'properties': {'Params': {'$ref': '#/definitions/WatchContainers'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchContainers': {'properties': {'Params': {'$ref': '#/definitions/WatchContainers'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchMachineErrorRetry': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchModelMachines': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringsResult) - async def APIAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='APIAddresses', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(APIHostPortsResult) - async def APIHostPorts(self): - ''' - - Returns -> typing.Sequence[~HostPort] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='APIHostPorts', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BytesResult) - async def CACert(self): - ''' - - Returns -> typing.Sequence[int] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='CACert', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ConstraintsResults) - async def Constraints(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ConstraintsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Constraints', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ContainerConfig) - async def ContainerConfig(self): - ''' - - Returns -> typing.Union[_ForwardRef('UpdateBehavior'), str, _ForwardRef('Settings'), bool] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ContainerConfig', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ContainerManagerConfig) - async def ContainerManagerConfig(self, type_): - ''' - type_ : str - Returns -> typing.Mapping[str, str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ContainerManagerConfig', - version=3, - params=_params) - _params['type'] = type_ - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerConfigResult) - async def ControllerConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ControllerConfig', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DistributionGroupResults) - async def DistributionGroup(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~DistributionGroupResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='DistributionGroup', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnsureDead(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='EnsureDead', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FindToolsResult) - async def FindTools(self, arch, major, minor, number, series): - ''' - arch : str - major : int - minor : int - number : Number - series : str - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[~Tools]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='FindTools', - version=3, - params=_params) - _params['arch'] = arch - _params['major'] = major - _params['minor'] = minor - _params['number'] = number - _params['series'] = series - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachineNetworkConfigResults) - async def GetContainerInterfaceInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachineNetworkConfigResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='GetContainerInterfaceInfo', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(HostNetworkChangeResults) - async def HostChangesForContainers(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~HostNetworkChange] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='HostChangesForContainers', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def InstanceId(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='InstanceId', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusResults) - async def InstanceStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='InstanceStatus', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Life', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusResults) - async def MachinesWithTransientErrors(self): - ''' - - Returns -> typing.Sequence[~StatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='MachinesWithTransientErrors', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def MarkMachinesForRemoval(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='MarkMachinesForRemoval', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ModelConfig', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ModelUUID(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ModelUUID', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachineNetworkConfigResults) - async def PrepareContainerInterfaceInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachineNetworkConfigResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='PrepareContainerInterfaceInfo', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ProvisioningInfoResults) - async def ProvisioningInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ProvisioningInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ProvisioningInfo', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ReleaseContainerAddresses(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ReleaseContainerAddresses', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Remove(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Remove', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def Series(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Series', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetHostMachineNetworkConfig(self, config, tag): - ''' - config : typing.Sequence[~NetworkConfig] - tag : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetHostMachineNetworkConfig', - version=3, - params=_params) - _params['config'] = config - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetInstanceInfo(self, machines): - ''' - machines : typing.Sequence[~InstanceInfo] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetInstanceInfo', - version=3, - params=_params) - _params['machines'] = machines - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetInstanceStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetInstanceStatus', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetObservedNetworkConfig(self, config, tag): - ''' - config : typing.Sequence[~NetworkConfig] - tag : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetObservedNetworkConfig', - version=3, - params=_params) - _params['config'] = config - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetPasswords(self, changes): - ''' - changes : typing.Sequence[~EntityPassword] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetPasswords', - version=3, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetProviderNetworkConfig(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetProviderNetworkConfig', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetStatus', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetSupportedContainers(self, params): - ''' - params : typing.Sequence[~MachineContainers] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetSupportedContainers', - version=3, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsResult) - async def StateAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='StateAddresses', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusResults) - async def Status(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Status', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ToolsResults) - async def Tools(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ToolsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Tools', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='UpdateStatus', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchAPIHostPorts(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchAPIHostPorts', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchAllContainers(self, params): - ''' - params : typing.Sequence[~WatchContainer] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchAllContainers', - version=3, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchContainers(self, params): - ''' - params : typing.Sequence[~WatchContainer] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchContainers', - version=3, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchForModelConfigChanges', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchMachineErrorRetry(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchMachineErrorRetry', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchModelMachines(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchModelMachines', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class SpacesFacade(Type): - name = 'Spaces' - version = 3 - schema = {'definitions': {'CreateSpaceParams': {'additionalProperties': False, - 'properties': {'provider-id': {'type': 'string'}, - 'public': {'type': 'boolean'}, - 'space-tag': {'type': 'string'}, - 'subnet-tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['subnet-tags', - 'space-tag', - 'public'], - 'type': 'object'}, - 'CreateSpacesParams': {'additionalProperties': False, - 'properties': {'spaces': {'items': {'$ref': '#/definitions/CreateSpaceParams'}, - 'type': 'array'}}, - 'required': ['spaces'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ListSpacesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/Space'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Space': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}, - 'subnets': {'items': {'$ref': '#/definitions/Subnet'}, - 'type': 'array'}}, - 'required': ['name', 'subnets'], - 'type': 'object'}, - 'Subnet': {'additionalProperties': False, - 'properties': {'cidr': {'type': 'string'}, - 'life': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-network-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'space-tag': {'type': 'string'}, - 'status': {'type': 'string'}, - 'vlan-tag': {'type': 'integer'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['cidr', - 'vlan-tag', - 'life', - 'space-tag', - 'zones'], - 'type': 'object'}}, - 'properties': {'CreateSpaces': {'properties': {'Params': {'$ref': '#/definitions/CreateSpacesParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ListSpaces': {'properties': {'Result': {'$ref': '#/definitions/ListSpacesResults'}}, - 'type': 'object'}, - 'ReloadSpaces': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def CreateSpaces(self, spaces): - ''' - spaces : typing.Sequence[~CreateSpaceParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Spaces', - request='CreateSpaces', - version=3, - params=_params) - _params['spaces'] = spaces - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ListSpacesResults) - async def ListSpaces(self): - ''' - - Returns -> typing.Sequence[~Space] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Spaces', - request='ListSpaces', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ReloadSpaces(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Spaces', - request='ReloadSpaces', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class StorageFacade(Type): - name = 'Storage' - version = 3 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'info', 'since'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'FilesystemAttachmentDetails': {'additionalProperties': False, - 'properties': {'FilesystemAttachmentInfo': {'$ref': '#/definitions/FilesystemAttachmentInfo'}, - 'life': {'type': 'string'}}, - 'required': ['FilesystemAttachmentInfo'], - 'type': 'object'}, - 'FilesystemAttachmentInfo': {'additionalProperties': False, - 'properties': {'mount-point': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'type': 'object'}, - 'FilesystemDetails': {'additionalProperties': False, - 'properties': {'filesystem-tag': {'type': 'string'}, - 'info': {'$ref': '#/definitions/FilesystemInfo'}, - 'life': {'type': 'string'}, - 'machine-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/FilesystemAttachmentDetails'}}, - 'type': 'object'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'storage': {'$ref': '#/definitions/StorageDetails'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['filesystem-tag', - 'info', - 'status'], - 'type': 'object'}, - 'FilesystemDetailsListResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'$ref': '#/definitions/FilesystemDetails'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemDetailsListResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemDetailsListResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemFilter': {'additionalProperties': False, - 'properties': {'machines': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemFilters': {'additionalProperties': False, - 'properties': {'filters': {'items': {'$ref': '#/definitions/FilesystemFilter'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemInfo': {'additionalProperties': False, - 'properties': {'filesystem-id': {'type': 'string'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'required': ['filesystem-id', - 'pool', - 'size'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'StorageAddParams': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'storage': {'$ref': '#/definitions/StorageConstraints'}, - 'unit': {'type': 'string'}}, - 'required': ['unit', 'name', 'storage'], - 'type': 'object'}, - 'StorageAttachmentDetails': {'additionalProperties': False, - 'properties': {'life': {'type': 'string'}, - 'location': {'type': 'string'}, - 'machine-tag': {'type': 'string'}, - 'storage-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'unit-tag', - 'machine-tag'], - 'type': 'object'}, - 'StorageAttachmentId': {'additionalProperties': False, - 'properties': {'storage-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'unit-tag'], - 'type': 'object'}, - 'StorageAttachmentIds': {'additionalProperties': False, - 'properties': {'ids': {'items': {'$ref': '#/definitions/StorageAttachmentId'}, - 'type': 'array'}}, - 'required': ['ids'], - 'type': 'object'}, - 'StorageConstraints': {'additionalProperties': False, - 'properties': {'count': {'type': 'integer'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'type': 'object'}, - 'StorageDetails': {'additionalProperties': False, - 'properties': {'attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/StorageAttachmentDetails'}}, - 'type': 'object'}, - 'kind': {'type': 'integer'}, - 'life': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'persistent': {'type': 'boolean'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'storage-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'owner-tag', - 'kind', - 'status', - 'persistent'], - 'type': 'object'}, - 'StorageDetailsListResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'$ref': '#/definitions/StorageDetails'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageDetailsListResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StorageDetailsListResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageDetailsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/StorageDetails'}}, - 'type': 'object'}, - 'StorageDetailsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StorageDetailsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageFilter': {'additionalProperties': False, - 'type': 'object'}, - 'StorageFilters': {'additionalProperties': False, - 'properties': {'filters': {'items': {'$ref': '#/definitions/StorageFilter'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StoragePool': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'name': {'type': 'string'}, - 'provider': {'type': 'string'}}, - 'required': ['name', 'provider', 'attrs'], - 'type': 'object'}, - 'StoragePoolFilter': {'additionalProperties': False, - 'properties': {'names': {'items': {'type': 'string'}, - 'type': 'array'}, - 'providers': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StoragePoolFilters': {'additionalProperties': False, - 'properties': {'filters': {'items': {'$ref': '#/definitions/StoragePoolFilter'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StoragePoolsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'storage-pools': {'items': {'$ref': '#/definitions/StoragePool'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StoragePoolsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StoragePoolsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StoragesAddParams': {'additionalProperties': False, - 'properties': {'storages': {'items': {'$ref': '#/definitions/StorageAddParams'}, - 'type': 'array'}}, - 'required': ['storages'], - 'type': 'object'}, - 'VolumeAttachmentDetails': {'additionalProperties': False, - 'properties': {'VolumeAttachmentInfo': {'$ref': '#/definitions/VolumeAttachmentInfo'}, - 'life': {'type': 'string'}}, - 'required': ['VolumeAttachmentInfo'], - 'type': 'object'}, - 'VolumeAttachmentInfo': {'additionalProperties': False, - 'properties': {'bus-address': {'type': 'string'}, - 'device-link': {'type': 'string'}, - 'device-name': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'type': 'object'}, - 'VolumeDetails': {'additionalProperties': False, - 'properties': {'info': {'$ref': '#/definitions/VolumeInfo'}, - 'life': {'type': 'string'}, - 'machine-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/VolumeAttachmentDetails'}}, - 'type': 'object'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'storage': {'$ref': '#/definitions/StorageDetails'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', 'info', 'status'], - 'type': 'object'}, - 'VolumeDetailsListResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'$ref': '#/definitions/VolumeDetails'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeDetailsListResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeDetailsListResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeFilter': {'additionalProperties': False, - 'properties': {'machines': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeFilters': {'additionalProperties': False, - 'properties': {'filters': {'items': {'$ref': '#/definitions/VolumeFilter'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeInfo': {'additionalProperties': False, - 'properties': {'hardware-id': {'type': 'string'}, - 'persistent': {'type': 'boolean'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'volume-id': {'type': 'string'}, - 'wwn': {'type': 'string'}}, - 'required': ['volume-id', 'size', 'persistent'], - 'type': 'object'}}, - 'properties': {'AddToUnit': {'properties': {'Params': {'$ref': '#/definitions/StoragesAddParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Attach': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'CreatePool': {'properties': {'Params': {'$ref': '#/definitions/StoragePool'}}, - 'type': 'object'}, - 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Detach': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ListFilesystems': {'properties': {'Params': {'$ref': '#/definitions/FilesystemFilters'}, - 'Result': {'$ref': '#/definitions/FilesystemDetailsListResults'}}, - 'type': 'object'}, - 'ListPools': {'properties': {'Params': {'$ref': '#/definitions/StoragePoolFilters'}, - 'Result': {'$ref': '#/definitions/StoragePoolsResults'}}, - 'type': 'object'}, - 'ListStorageDetails': {'properties': {'Params': {'$ref': '#/definitions/StorageFilters'}, - 'Result': {'$ref': '#/definitions/StorageDetailsListResults'}}, - 'type': 'object'}, - 'ListVolumes': {'properties': {'Params': {'$ref': '#/definitions/VolumeFilters'}, - 'Result': {'$ref': '#/definitions/VolumeDetailsListResults'}}, - 'type': 'object'}, - 'StorageDetails': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StorageDetailsResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def AddToUnit(self, storages): - ''' - storages : typing.Sequence[~StorageAddParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='AddToUnit', - version=3, - params=_params) - _params['storages'] = storages - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Attach(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='Attach', - version=3, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def CreatePool(self, attrs, name, provider): - ''' - attrs : typing.Mapping[str, typing.Any] - name : str - provider : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='CreatePool', - version=3, - params=_params) - _params['attrs'] = attrs - _params['name'] = name - _params['provider'] = provider - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Destroy(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='Destroy', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Detach(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='Detach', - version=3, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FilesystemDetailsListResults) - async def ListFilesystems(self, filters): - ''' - filters : typing.Sequence[~FilesystemFilter] - Returns -> typing.Sequence[~FilesystemDetailsListResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='ListFilesystems', - version=3, - params=_params) - _params['filters'] = filters - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StoragePoolsResults) - async def ListPools(self, filters): - ''' - filters : typing.Sequence[~StoragePoolFilter] - Returns -> typing.Sequence[~StoragePoolsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='ListPools', - version=3, - params=_params) - _params['filters'] = filters - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StorageDetailsListResults) - async def ListStorageDetails(self, filters): - ''' - filters : typing.Sequence[~StorageFilter] - Returns -> typing.Sequence[~StorageDetailsListResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='ListStorageDetails', - version=3, - params=_params) - _params['filters'] = filters - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(VolumeDetailsListResults) - async def ListVolumes(self, filters): - ''' - filters : typing.Sequence[~VolumeFilter] - Returns -> typing.Sequence[~VolumeDetailsListResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='ListVolumes', - version=3, - params=_params) - _params['filters'] = filters - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StorageDetailsResults) - async def StorageDetails(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StorageDetailsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='StorageDetails', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class StorageProvisionerFacade(Type): - name = 'StorageProvisioner' - version = 3 - schema = {'definitions': {'BlockDevice': {'additionalProperties': False, - 'properties': {'BusAddress': {'type': 'string'}, - 'DeviceLinks': {'items': {'type': 'string'}, - 'type': 'array'}, - 'DeviceName': {'type': 'string'}, - 'FilesystemType': {'type': 'string'}, - 'HardwareId': {'type': 'string'}, - 'InUse': {'type': 'boolean'}, - 'Label': {'type': 'string'}, - 'MountPoint': {'type': 'string'}, - 'Size': {'type': 'integer'}, - 'UUID': {'type': 'string'}, - 'WWN': {'type': 'string'}}, - 'required': ['DeviceName', - 'DeviceLinks', - 'Label', - 'UUID', - 'HardwareId', - 'WWN', - 'BusAddress', - 'Size', - 'FilesystemType', - 'InUse', - 'MountPoint'], - 'type': 'object'}, - 'BlockDeviceResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/BlockDevice'}}, - 'required': ['result'], - 'type': 'object'}, - 'BlockDeviceResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/BlockDeviceResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Filesystem': {'additionalProperties': False, - 'properties': {'filesystem-tag': {'type': 'string'}, - 'info': {'$ref': '#/definitions/FilesystemInfo'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['filesystem-tag', 'info'], - 'type': 'object'}, - 'FilesystemAttachment': {'additionalProperties': False, - 'properties': {'filesystem-tag': {'type': 'string'}, - 'info': {'$ref': '#/definitions/FilesystemAttachmentInfo'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['filesystem-tag', - 'machine-tag', - 'info'], - 'type': 'object'}, - 'FilesystemAttachmentInfo': {'additionalProperties': False, - 'properties': {'mount-point': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'type': 'object'}, - 'FilesystemAttachmentParams': {'additionalProperties': False, - 'properties': {'filesystem-id': {'type': 'string'}, - 'filesystem-tag': {'type': 'string'}, - 'instance-id': {'type': 'string'}, - 'machine-tag': {'type': 'string'}, - 'mount-point': {'type': 'string'}, - 'provider': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'required': ['filesystem-tag', - 'machine-tag', - 'provider'], - 'type': 'object'}, - 'FilesystemAttachmentParamsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/FilesystemAttachmentParams'}}, - 'required': ['result'], - 'type': 'object'}, - 'FilesystemAttachmentParamsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemAttachmentParamsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemAttachmentResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/FilesystemAttachment'}}, - 'required': ['result'], - 'type': 'object'}, - 'FilesystemAttachmentResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemAttachmentResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemAttachments': {'additionalProperties': False, - 'properties': {'filesystem-attachments': {'items': {'$ref': '#/definitions/FilesystemAttachment'}, - 'type': 'array'}}, - 'required': ['filesystem-attachments'], - 'type': 'object'}, - 'FilesystemInfo': {'additionalProperties': False, - 'properties': {'filesystem-id': {'type': 'string'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'required': ['filesystem-id', - 'pool', - 'size'], - 'type': 'object'}, - 'FilesystemParams': {'additionalProperties': False, - 'properties': {'attachment': {'$ref': '#/definitions/FilesystemAttachmentParams'}, - 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'filesystem-tag': {'type': 'string'}, - 'provider': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['filesystem-tag', - 'size', - 'provider'], - 'type': 'object'}, - 'FilesystemParamsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/FilesystemParams'}}, - 'required': ['result'], - 'type': 'object'}, - 'FilesystemParamsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemParamsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/Filesystem'}}, - 'required': ['result'], - 'type': 'object'}, - 'FilesystemResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Filesystems': {'additionalProperties': False, - 'properties': {'filesystems': {'items': {'$ref': '#/definitions/Filesystem'}, - 'type': 'array'}}, - 'required': ['filesystems'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineStorageId': {'additionalProperties': False, - 'properties': {'attachment-tag': {'type': 'string'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['machine-tag', - 'attachment-tag'], - 'type': 'object'}, - 'MachineStorageIds': {'additionalProperties': False, - 'properties': {'ids': {'items': {'$ref': '#/definitions/MachineStorageId'}, - 'type': 'array'}}, - 'required': ['ids'], - 'type': 'object'}, - 'MachineStorageIdsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/MachineStorageId'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}, - 'MachineStorageIdsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MachineStorageIdsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Volume': {'additionalProperties': False, - 'properties': {'info': {'$ref': '#/definitions/VolumeInfo'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', 'info'], - 'type': 'object'}, - 'VolumeAttachment': {'additionalProperties': False, - 'properties': {'info': {'$ref': '#/definitions/VolumeAttachmentInfo'}, - 'machine-tag': {'type': 'string'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', - 'machine-tag', - 'info'], - 'type': 'object'}, - 'VolumeAttachmentInfo': {'additionalProperties': False, - 'properties': {'bus-address': {'type': 'string'}, - 'device-link': {'type': 'string'}, - 'device-name': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'type': 'object'}, - 'VolumeAttachmentParams': {'additionalProperties': False, - 'properties': {'instance-id': {'type': 'string'}, - 'machine-tag': {'type': 'string'}, - 'provider': {'type': 'string'}, - 'read-only': {'type': 'boolean'}, - 'volume-id': {'type': 'string'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', - 'machine-tag', - 'provider'], - 'type': 'object'}, - 'VolumeAttachmentParamsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/VolumeAttachmentParams'}}, - 'required': ['result'], - 'type': 'object'}, - 'VolumeAttachmentParamsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeAttachmentParamsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeAttachmentResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/VolumeAttachment'}}, - 'required': ['result'], - 'type': 'object'}, - 'VolumeAttachmentResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeAttachmentResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeAttachments': {'additionalProperties': False, - 'properties': {'volume-attachments': {'items': {'$ref': '#/definitions/VolumeAttachment'}, - 'type': 'array'}}, - 'required': ['volume-attachments'], - 'type': 'object'}, - 'VolumeInfo': {'additionalProperties': False, - 'properties': {'hardware-id': {'type': 'string'}, - 'persistent': {'type': 'boolean'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'volume-id': {'type': 'string'}, - 'wwn': {'type': 'string'}}, - 'required': ['volume-id', 'size', 'persistent'], - 'type': 'object'}, - 'VolumeParams': {'additionalProperties': False, - 'properties': {'attachment': {'$ref': '#/definitions/VolumeAttachmentParams'}, - 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'provider': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', - 'size', - 'provider'], - 'type': 'object'}, - 'VolumeParamsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/VolumeParams'}}, - 'required': ['result'], - 'type': 'object'}, - 'VolumeParamsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeParamsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/Volume'}}, - 'required': ['result'], - 'type': 'object'}, - 'VolumeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Volumes': {'additionalProperties': False, - 'properties': {'volumes': {'items': {'$ref': '#/definitions/Volume'}, - 'type': 'array'}}, - 'required': ['volumes'], - 'type': 'object'}}, - 'properties': {'AttachmentLife': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'FilesystemAttachmentParams': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/FilesystemAttachmentParamsResults'}}, - 'type': 'object'}, - 'FilesystemAttachments': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/FilesystemAttachmentResults'}}, - 'type': 'object'}, - 'FilesystemParams': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/FilesystemParamsResults'}}, - 'type': 'object'}, - 'Filesystems': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/FilesystemResults'}}, - 'type': 'object'}, - 'InstanceId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'Remove': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RemoveAttachment': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetFilesystemAttachmentInfo': {'properties': {'Params': {'$ref': '#/definitions/FilesystemAttachments'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetFilesystemInfo': {'properties': {'Params': {'$ref': '#/definitions/Filesystems'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetVolumeAttachmentInfo': {'properties': {'Params': {'$ref': '#/definitions/VolumeAttachments'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetVolumeInfo': {'properties': {'Params': {'$ref': '#/definitions/Volumes'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'VolumeAttachmentParams': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/VolumeAttachmentParamsResults'}}, - 'type': 'object'}, - 'VolumeAttachments': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/VolumeAttachmentResults'}}, - 'type': 'object'}, - 'VolumeBlockDevices': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/BlockDeviceResults'}}, - 'type': 'object'}, - 'VolumeParams': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/VolumeParamsResults'}}, - 'type': 'object'}, - 'Volumes': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/VolumeResults'}}, - 'type': 'object'}, - 'WatchBlockDevices': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchFilesystemAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResults'}}, - 'type': 'object'}, - 'WatchFilesystems': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchMachines': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchVolumeAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResults'}}, - 'type': 'object'}, - 'WatchVolumes': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(LifeResults) - async def AttachmentLife(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='AttachmentLife', - version=3, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnsureDead(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='EnsureDead', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FilesystemAttachmentParamsResults) - async def FilesystemAttachmentParams(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~FilesystemAttachmentParamsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='FilesystemAttachmentParams', - version=3, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FilesystemAttachmentResults) - async def FilesystemAttachments(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~FilesystemAttachmentResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='FilesystemAttachments', - version=3, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FilesystemParamsResults) - async def FilesystemParams(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~FilesystemParamsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='FilesystemParams', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FilesystemResults) - async def Filesystems(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~FilesystemResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='Filesystems', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def InstanceId(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='InstanceId', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='Life', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Remove(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='Remove', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RemoveAttachment(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='RemoveAttachment', - version=3, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetFilesystemAttachmentInfo(self, filesystem_attachments): - ''' - filesystem_attachments : typing.Sequence[~FilesystemAttachment] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='SetFilesystemAttachmentInfo', - version=3, - params=_params) - _params['filesystem-attachments'] = filesystem_attachments - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetFilesystemInfo(self, filesystems): - ''' - filesystems : typing.Sequence[~Filesystem] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='SetFilesystemInfo', - version=3, - params=_params) - _params['filesystems'] = filesystems - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='SetStatus', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetVolumeAttachmentInfo(self, volume_attachments): - ''' - volume_attachments : typing.Sequence[~VolumeAttachment] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='SetVolumeAttachmentInfo', - version=3, - params=_params) - _params['volume-attachments'] = volume_attachments - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetVolumeInfo(self, volumes): - ''' - volumes : typing.Sequence[~Volume] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='SetVolumeInfo', - version=3, - params=_params) - _params['volumes'] = volumes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='UpdateStatus', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(VolumeAttachmentParamsResults) - async def VolumeAttachmentParams(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~VolumeAttachmentParamsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='VolumeAttachmentParams', - version=3, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(VolumeAttachmentResults) - async def VolumeAttachments(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~VolumeAttachmentResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='VolumeAttachments', - version=3, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BlockDeviceResults) - async def VolumeBlockDevices(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~BlockDeviceResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='VolumeBlockDevices', - version=3, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(VolumeParamsResults) - async def VolumeParams(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~VolumeParamsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='VolumeParams', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(VolumeResults) - async def Volumes(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~VolumeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='Volumes', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchBlockDevices(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchBlockDevices', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachineStorageIdsWatchResults) - async def WatchFilesystemAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachineStorageIdsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchFilesystemAttachments', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchFilesystems(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchFilesystems', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchMachines(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchMachines', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachineStorageIdsWatchResults) - async def WatchVolumeAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachineStorageIdsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchVolumeAttachments', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchVolumes(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchVolumes', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply diff --git a/modules/libjuju/juju/client/_client4.py b/modules/libjuju/juju/client/_client4.py deleted file mode 100644 index 2336d2c..0000000 --- a/modules/libjuju/juju/client/_client4.py +++ /dev/null @@ -1,4626 +0,0 @@ -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. - -from juju.client._definitions import * -from juju.client.facade import ReturnMapping, Type - - -class ApplicationFacade(Type): - name = 'Application' - version = 4 - schema = {'definitions': {'AddApplicationUnits': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'num-units': {'type': 'integer'}, - 'placement': {'items': {'$ref': '#/definitions/Placement'}, - 'type': 'array'}}, - 'required': ['application', - 'num-units', - 'placement'], - 'type': 'object'}, - 'AddApplicationUnitsResults': {'additionalProperties': False, - 'properties': {'units': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['units'], - 'type': 'object'}, - 'AddRelation': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'AddRelationResults': {'additionalProperties': False, - 'properties': {'endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, - 'type': 'object'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'ApplicationCharmRelations': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationCharmRelationsResults': {'additionalProperties': False, - 'properties': {'charm-relations': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['charm-relations'], - 'type': 'object'}, - 'ApplicationDeploy': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'channel': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'config-yaml': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'num-units': {'type': 'integer'}, - 'placement': {'items': {'$ref': '#/definitions/Placement'}, - 'type': 'array'}, - 'resources': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'series': {'type': 'string'}, - 'storage': {'patternProperties': {'.*': {'$ref': '#/definitions/Constraints'}}, - 'type': 'object'}}, - 'required': ['application', - 'series', - 'charm-url', - 'channel', - 'num-units', - 'config-yaml', - 'constraints'], - 'type': 'object'}, - 'ApplicationDestroy': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationExpose': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationGet': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationGetResults': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'charm': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'series': {'type': 'string'}}, - 'required': ['application', - 'charm', - 'config', - 'constraints', - 'series'], - 'type': 'object'}, - 'ApplicationMetricCredential': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'metrics-credentials': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['application', - 'metrics-credentials'], - 'type': 'object'}, - 'ApplicationMetricCredentials': {'additionalProperties': False, - 'properties': {'creds': {'items': {'$ref': '#/definitions/ApplicationMetricCredential'}, - 'type': 'array'}}, - 'required': ['creds'], - 'type': 'object'}, - 'ApplicationSet': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'options': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['application', 'options'], - 'type': 'object'}, - 'ApplicationSetCharm': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'channel': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'config-settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'config-settings-yaml': {'type': 'string'}, - 'force-series': {'type': 'boolean'}, - 'force-units': {'type': 'boolean'}, - 'resource-ids': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'storage-constraints': {'patternProperties': {'.*': {'$ref': '#/definitions/StorageConstraints'}}, - 'type': 'object'}}, - 'required': ['application', - 'charm-url', - 'channel', - 'force-units', - 'force-series'], - 'type': 'object'}, - 'ApplicationURLs': {'additionalProperties': False, - 'properties': {'application-urls': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ApplicationUnexpose': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationUnset': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'options': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['application', 'options'], - 'type': 'object'}, - 'ApplicationUpdate': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'force-charm-url': {'type': 'boolean'}, - 'force-series': {'type': 'boolean'}, - 'min-units': {'type': 'integer'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'settings-yaml': {'type': 'string'}}, - 'required': ['application', - 'charm-url', - 'force-charm-url', - 'force-series', - 'settings-yaml'], - 'type': 'object'}, - 'ApplicationsDeploy': {'additionalProperties': False, - 'properties': {'applications': {'items': {'$ref': '#/definitions/ApplicationDeploy'}, - 'type': 'array'}}, - 'required': ['applications'], - 'type': 'object'}, - 'CharmRelation': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'optional': {'type': 'boolean'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'optional', - 'limit', - 'scope'], - 'type': 'object'}, - 'Constraints': {'additionalProperties': False, - 'properties': {'Count': {'type': 'integer'}, - 'Pool': {'type': 'string'}, - 'Size': {'type': 'integer'}}, - 'required': ['Pool', 'Size', 'Count'], - 'type': 'object'}, - 'ConsumeApplicationArg': {'additionalProperties': False, - 'properties': {'application-alias': {'type': 'string'}, - 'application-url': {'type': 'string'}}, - 'required': ['application-url'], - 'type': 'object'}, - 'ConsumeApplicationArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/ConsumeApplicationArg'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ConsumeApplicationResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'local-name': {'type': 'string'}}, - 'type': 'object'}, - 'ConsumeApplicationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ConsumeApplicationResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'DestroyApplicationInfo': {'additionalProperties': False, - 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'destroyed-units': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyApplicationResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'$ref': '#/definitions/DestroyApplicationInfo'}}, - 'type': 'object'}, - 'DestroyApplicationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyApplicationResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyApplicationUnits': {'additionalProperties': False, - 'properties': {'unit-names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['unit-names'], - 'type': 'object'}, - 'DestroyRelation': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'DestroyUnitInfo': {'additionalProperties': False, - 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyUnitResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'$ref': '#/definitions/DestroyUnitInfo'}}, - 'type': 'object'}, - 'DestroyUnitResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyUnitResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GetApplicationConstraints': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'GetConstraintsResults': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Placement': {'additionalProperties': False, - 'properties': {'directive': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['scope', 'directive'], - 'type': 'object'}, - 'RemoteApplicationInfo': {'additionalProperties': False, - 'properties': {'application-url': {'type': 'string'}, - 'description': {'type': 'string'}, - 'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'}, - 'type': 'array'}, - 'icon-url-path': {'type': 'string'}, - 'model-tag': {'type': 'string'}, - 'name': {'type': 'string'}, - 'source-model-label': {'type': 'string'}}, - 'required': ['model-tag', - 'name', - 'description', - 'application-url', - 'endpoints', - 'icon-url-path'], - 'type': 'object'}, - 'RemoteApplicationInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/RemoteApplicationInfo'}}, - 'type': 'object'}, - 'RemoteApplicationInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RemoteApplicationInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RemoteEndpoint': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'limit', - 'scope'], - 'type': 'object'}, - 'SetConstraints': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['application', 'constraints'], - 'type': 'object'}, - 'StorageConstraints': {'additionalProperties': False, - 'properties': {'count': {'type': 'integer'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}}, - 'type': 'object'}}, - 'properties': {'AddRelation': {'properties': {'Params': {'$ref': '#/definitions/AddRelation'}, - 'Result': {'$ref': '#/definitions/AddRelationResults'}}, - 'type': 'object'}, - 'AddUnits': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationUnits'}, - 'Result': {'$ref': '#/definitions/AddApplicationUnitsResults'}}, - 'type': 'object'}, - 'CharmRelations': {'properties': {'Params': {'$ref': '#/definitions/ApplicationCharmRelations'}, - 'Result': {'$ref': '#/definitions/ApplicationCharmRelationsResults'}}, - 'type': 'object'}, - 'Consume': {'properties': {'Params': {'$ref': '#/definitions/ConsumeApplicationArgs'}, - 'Result': {'$ref': '#/definitions/ConsumeApplicationResults'}}, - 'type': 'object'}, - 'Deploy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationsDeploy'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationDestroy'}}, - 'type': 'object'}, - 'DestroyApplication': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/DestroyApplicationResults'}}, - 'type': 'object'}, - 'DestroyRelation': {'properties': {'Params': {'$ref': '#/definitions/DestroyRelation'}}, - 'type': 'object'}, - 'DestroyUnit': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/DestroyUnitResults'}}, - 'type': 'object'}, - 'DestroyUnits': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationUnits'}}, - 'type': 'object'}, - 'Expose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationExpose'}}, - 'type': 'object'}, - 'Get': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, - 'Result': {'$ref': '#/definitions/ApplicationGetResults'}}, - 'type': 'object'}, - 'GetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, - 'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'GetConstraints': {'properties': {'Params': {'$ref': '#/definitions/GetApplicationConstraints'}, - 'Result': {'$ref': '#/definitions/GetConstraintsResults'}}, - 'type': 'object'}, - 'RemoteApplicationInfo': {'properties': {'Params': {'$ref': '#/definitions/ApplicationURLs'}, - 'Result': {'$ref': '#/definitions/RemoteApplicationInfoResults'}}, - 'type': 'object'}, - 'Set': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSet'}}, - 'type': 'object'}, - 'SetCharm': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSetCharm'}}, - 'type': 'object'}, - 'SetConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, - 'type': 'object'}, - 'SetMetricCredentials': {'properties': {'Params': {'$ref': '#/definitions/ApplicationMetricCredentials'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Unexpose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnexpose'}}, - 'type': 'object'}, - 'Unset': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnset'}}, - 'type': 'object'}, - 'Update': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUpdate'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddRelationResults) - async def AddRelation(self, endpoints): - ''' - endpoints : typing.Sequence[str] - Returns -> typing.Mapping[str, ~CharmRelation] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='AddRelation', - version=4, - params=_params) - _params['endpoints'] = endpoints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddApplicationUnitsResults) - async def AddUnits(self, application, num_units, placement): - ''' - application : str - num_units : int - placement : typing.Sequence[~Placement] - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='AddUnits', - version=4, - params=_params) - _params['application'] = application - _params['num-units'] = num_units - _params['placement'] = placement - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationCharmRelationsResults) - async def CharmRelations(self, application): - ''' - application : str - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='CharmRelations', - version=4, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ConsumeApplicationResults) - async def Consume(self, args): - ''' - args : typing.Sequence[~ConsumeApplicationArg] - Returns -> typing.Sequence[~ConsumeApplicationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Consume', - version=4, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Deploy(self, applications): - ''' - applications : typing.Sequence[~ApplicationDeploy] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Deploy', - version=4, - params=_params) - _params['applications'] = applications - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Destroy(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Destroy', - version=4, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DestroyApplicationResults) - async def DestroyApplication(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~DestroyApplicationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyApplication', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyRelation(self, endpoints): - ''' - endpoints : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyRelation', - version=4, - params=_params) - _params['endpoints'] = endpoints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DestroyUnitResults) - async def DestroyUnit(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~DestroyUnitResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyUnit', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyUnits(self, unit_names): - ''' - unit_names : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyUnits', - version=4, - params=_params) - _params['unit-names'] = unit_names - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Expose(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Expose', - version=4, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationGetResults) - async def Get(self, application): - ''' - application : str - Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Get', - version=4, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def GetCharmURL(self, application): - ''' - application : str - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetCharmURL', - version=4, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(GetConstraintsResults) - async def GetConstraints(self, application): - ''' - application : str - Returns -> Value - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetConstraints', - version=4, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RemoteApplicationInfoResults) - async def RemoteApplicationInfo(self, application_urls): - ''' - application_urls : typing.Sequence[str] - Returns -> typing.Sequence[~RemoteApplicationInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='RemoteApplicationInfo', - version=4, - params=_params) - _params['application-urls'] = application_urls - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Set(self, application, options): - ''' - application : str - options : typing.Mapping[str, str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Set', - version=4, - params=_params) - _params['application'] = application - _params['options'] = options - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetCharm(self, application, channel, charm_url, config_settings, config_settings_yaml, force_series, force_units, resource_ids, storage_constraints): - ''' - application : str - channel : str - charm_url : str - config_settings : typing.Mapping[str, str] - config_settings_yaml : str - force_series : bool - force_units : bool - resource_ids : typing.Mapping[str, str] - storage_constraints : typing.Mapping[str, ~StorageConstraints] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetCharm', - version=4, - params=_params) - _params['application'] = application - _params['channel'] = channel - _params['charm-url'] = charm_url - _params['config-settings'] = config_settings - _params['config-settings-yaml'] = config_settings_yaml - _params['force-series'] = force_series - _params['force-units'] = force_units - _params['resource-ids'] = resource_ids - _params['storage-constraints'] = storage_constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetConstraints(self, application, constraints): - ''' - application : str - constraints : Value - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetConstraints', - version=4, - params=_params) - _params['application'] = application - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetMetricCredentials(self, creds): - ''' - creds : typing.Sequence[~ApplicationMetricCredential] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetMetricCredentials', - version=4, - params=_params) - _params['creds'] = creds - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Unexpose(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Unexpose', - version=4, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Unset(self, application, options): - ''' - application : str - options : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Unset', - version=4, - params=_params) - _params['application'] = application - _params['options'] = options - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Update(self, application, charm_url, constraints, force_charm_url, force_series, min_units, settings, settings_yaml): - ''' - application : str - charm_url : str - constraints : Value - force_charm_url : bool - force_series : bool - min_units : int - settings : typing.Mapping[str, str] - settings_yaml : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Update', - version=4, - params=_params) - _params['application'] = application - _params['charm-url'] = charm_url - _params['constraints'] = constraints - _params['force-charm-url'] = force_charm_url - _params['force-series'] = force_series - _params['min-units'] = min_units - _params['settings'] = settings - _params['settings-yaml'] = settings_yaml - reply = await self.rpc(msg) - return reply - - - -class StorageFacade(Type): - name = 'Storage' - version = 4 - schema = {'definitions': {'AddStorageDetails': {'additionalProperties': False, - 'properties': {'storage-tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['storage-tags'], - 'type': 'object'}, - 'AddStorageResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/AddStorageDetails'}}, - 'type': 'object'}, - 'AddStorageResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/AddStorageResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'BulkImportStorageParams': {'additionalProperties': False, - 'properties': {'storage': {'items': {'$ref': '#/definitions/ImportStorageParams'}, - 'type': 'array'}}, - 'required': ['storage'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'info', 'since'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'FilesystemAttachmentDetails': {'additionalProperties': False, - 'properties': {'FilesystemAttachmentInfo': {'$ref': '#/definitions/FilesystemAttachmentInfo'}, - 'life': {'type': 'string'}}, - 'required': ['FilesystemAttachmentInfo'], - 'type': 'object'}, - 'FilesystemAttachmentInfo': {'additionalProperties': False, - 'properties': {'mount-point': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'type': 'object'}, - 'FilesystemDetails': {'additionalProperties': False, - 'properties': {'filesystem-tag': {'type': 'string'}, - 'info': {'$ref': '#/definitions/FilesystemInfo'}, - 'life': {'type': 'string'}, - 'machine-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/FilesystemAttachmentDetails'}}, - 'type': 'object'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'storage': {'$ref': '#/definitions/StorageDetails'}, - 'unit-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/FilesystemAttachmentDetails'}}, - 'type': 'object'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['filesystem-tag', - 'info', - 'status'], - 'type': 'object'}, - 'FilesystemDetailsListResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'$ref': '#/definitions/FilesystemDetails'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemDetailsListResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemDetailsListResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemFilter': {'additionalProperties': False, - 'properties': {'machines': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemFilters': {'additionalProperties': False, - 'properties': {'filters': {'items': {'$ref': '#/definitions/FilesystemFilter'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemInfo': {'additionalProperties': False, - 'properties': {'filesystem-id': {'type': 'string'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'required': ['filesystem-id', - 'pool', - 'size'], - 'type': 'object'}, - 'ImportStorageDetails': {'additionalProperties': False, - 'properties': {'storage-tag': {'type': 'string'}}, - 'required': ['storage-tag'], - 'type': 'object'}, - 'ImportStorageParams': {'additionalProperties': False, - 'properties': {'kind': {'type': 'integer'}, - 'pool': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'storage-name': {'type': 'string'}}, - 'required': ['kind', - 'pool', - 'provider-id', - 'storage-name'], - 'type': 'object'}, - 'ImportStorageResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ImportStorageDetails'}}, - 'type': 'object'}, - 'ImportStorageResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ImportStorageResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'RemoveStorage': {'additionalProperties': False, - 'properties': {'storage': {'items': {'$ref': '#/definitions/RemoveStorageInstance'}, - 'type': 'array'}}, - 'required': ['storage'], - 'type': 'object'}, - 'RemoveStorageInstance': {'additionalProperties': False, - 'properties': {'destroy-attachments': {'type': 'boolean'}, - 'destroy-storage': {'type': 'boolean'}, - 'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'StorageAddParams': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'storage': {'$ref': '#/definitions/StorageConstraints'}, - 'unit': {'type': 'string'}}, - 'required': ['unit', 'name', 'storage'], - 'type': 'object'}, - 'StorageAttachmentDetails': {'additionalProperties': False, - 'properties': {'life': {'type': 'string'}, - 'location': {'type': 'string'}, - 'machine-tag': {'type': 'string'}, - 'storage-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'unit-tag', - 'machine-tag'], - 'type': 'object'}, - 'StorageAttachmentId': {'additionalProperties': False, - 'properties': {'storage-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'unit-tag'], - 'type': 'object'}, - 'StorageAttachmentIds': {'additionalProperties': False, - 'properties': {'ids': {'items': {'$ref': '#/definitions/StorageAttachmentId'}, - 'type': 'array'}}, - 'required': ['ids'], - 'type': 'object'}, - 'StorageConstraints': {'additionalProperties': False, - 'properties': {'count': {'type': 'integer'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'type': 'object'}, - 'StorageDetails': {'additionalProperties': False, - 'properties': {'attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/StorageAttachmentDetails'}}, - 'type': 'object'}, - 'kind': {'type': 'integer'}, - 'life': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'persistent': {'type': 'boolean'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'storage-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'owner-tag', - 'kind', - 'status', - 'persistent'], - 'type': 'object'}, - 'StorageDetailsListResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'$ref': '#/definitions/StorageDetails'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageDetailsListResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StorageDetailsListResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageDetailsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/StorageDetails'}}, - 'type': 'object'}, - 'StorageDetailsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StorageDetailsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageFilter': {'additionalProperties': False, - 'type': 'object'}, - 'StorageFilters': {'additionalProperties': False, - 'properties': {'filters': {'items': {'$ref': '#/definitions/StorageFilter'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StoragePool': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'name': {'type': 'string'}, - 'provider': {'type': 'string'}}, - 'required': ['name', 'provider', 'attrs'], - 'type': 'object'}, - 'StoragePoolFilter': {'additionalProperties': False, - 'properties': {'names': {'items': {'type': 'string'}, - 'type': 'array'}, - 'providers': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StoragePoolFilters': {'additionalProperties': False, - 'properties': {'filters': {'items': {'$ref': '#/definitions/StoragePoolFilter'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StoragePoolsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'storage-pools': {'items': {'$ref': '#/definitions/StoragePool'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StoragePoolsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StoragePoolsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StoragesAddParams': {'additionalProperties': False, - 'properties': {'storages': {'items': {'$ref': '#/definitions/StorageAddParams'}, - 'type': 'array'}}, - 'required': ['storages'], - 'type': 'object'}, - 'VolumeAttachmentDetails': {'additionalProperties': False, - 'properties': {'VolumeAttachmentInfo': {'$ref': '#/definitions/VolumeAttachmentInfo'}, - 'life': {'type': 'string'}}, - 'required': ['VolumeAttachmentInfo'], - 'type': 'object'}, - 'VolumeAttachmentInfo': {'additionalProperties': False, - 'properties': {'bus-address': {'type': 'string'}, - 'device-link': {'type': 'string'}, - 'device-name': {'type': 'string'}, - 'plan-info': {'$ref': '#/definitions/VolumeAttachmentPlanInfo'}, - 'read-only': {'type': 'boolean'}}, - 'type': 'object'}, - 'VolumeAttachmentPlanInfo': {'additionalProperties': False, - 'properties': {'device-attributes': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'device-type': {'type': 'string'}}, - 'type': 'object'}, - 'VolumeDetails': {'additionalProperties': False, - 'properties': {'info': {'$ref': '#/definitions/VolumeInfo'}, - 'life': {'type': 'string'}, - 'machine-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/VolumeAttachmentDetails'}}, - 'type': 'object'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'storage': {'$ref': '#/definitions/StorageDetails'}, - 'unit-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/VolumeAttachmentDetails'}}, - 'type': 'object'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', 'info', 'status'], - 'type': 'object'}, - 'VolumeDetailsListResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'$ref': '#/definitions/VolumeDetails'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeDetailsListResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeDetailsListResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeFilter': {'additionalProperties': False, - 'properties': {'machines': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeFilters': {'additionalProperties': False, - 'properties': {'filters': {'items': {'$ref': '#/definitions/VolumeFilter'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeInfo': {'additionalProperties': False, - 'properties': {'hardware-id': {'type': 'string'}, - 'persistent': {'type': 'boolean'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'volume-id': {'type': 'string'}, - 'wwn': {'type': 'string'}}, - 'required': ['volume-id', 'size', 'persistent'], - 'type': 'object'}}, - 'properties': {'AddToUnit': {'properties': {'Params': {'$ref': '#/definitions/StoragesAddParams'}, - 'Result': {'$ref': '#/definitions/AddStorageResults'}}, - 'type': 'object'}, - 'Attach': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'CreatePool': {'properties': {'Params': {'$ref': '#/definitions/StoragePool'}}, - 'type': 'object'}, - 'Detach': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Import': {'properties': {'Params': {'$ref': '#/definitions/BulkImportStorageParams'}, - 'Result': {'$ref': '#/definitions/ImportStorageResults'}}, - 'type': 'object'}, - 'ListFilesystems': {'properties': {'Params': {'$ref': '#/definitions/FilesystemFilters'}, - 'Result': {'$ref': '#/definitions/FilesystemDetailsListResults'}}, - 'type': 'object'}, - 'ListPools': {'properties': {'Params': {'$ref': '#/definitions/StoragePoolFilters'}, - 'Result': {'$ref': '#/definitions/StoragePoolsResults'}}, - 'type': 'object'}, - 'ListStorageDetails': {'properties': {'Params': {'$ref': '#/definitions/StorageFilters'}, - 'Result': {'$ref': '#/definitions/StorageDetailsListResults'}}, - 'type': 'object'}, - 'ListVolumes': {'properties': {'Params': {'$ref': '#/definitions/VolumeFilters'}, - 'Result': {'$ref': '#/definitions/VolumeDetailsListResults'}}, - 'type': 'object'}, - 'Remove': {'properties': {'Params': {'$ref': '#/definitions/RemoveStorage'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'StorageDetails': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StorageDetailsResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddStorageResults) - async def AddToUnit(self, storages): - ''' - storages : typing.Sequence[~StorageAddParams] - Returns -> typing.Sequence[~AddStorageResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='AddToUnit', - version=4, - params=_params) - _params['storages'] = storages - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Attach(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='Attach', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def CreatePool(self, attrs, name, provider): - ''' - attrs : typing.Mapping[str, typing.Any] - name : str - provider : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='CreatePool', - version=4, - params=_params) - _params['attrs'] = attrs - _params['name'] = name - _params['provider'] = provider - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Detach(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='Detach', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ImportStorageResults) - async def Import(self, storage): - ''' - storage : typing.Sequence[~ImportStorageParams] - Returns -> typing.Sequence[~ImportStorageResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='Import', - version=4, - params=_params) - _params['storage'] = storage - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FilesystemDetailsListResults) - async def ListFilesystems(self, filters): - ''' - filters : typing.Sequence[~FilesystemFilter] - Returns -> typing.Sequence[~FilesystemDetailsListResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='ListFilesystems', - version=4, - params=_params) - _params['filters'] = filters - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StoragePoolsResults) - async def ListPools(self, filters): - ''' - filters : typing.Sequence[~StoragePoolFilter] - Returns -> typing.Sequence[~StoragePoolsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='ListPools', - version=4, - params=_params) - _params['filters'] = filters - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StorageDetailsListResults) - async def ListStorageDetails(self, filters): - ''' - filters : typing.Sequence[~StorageFilter] - Returns -> typing.Sequence[~StorageDetailsListResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='ListStorageDetails', - version=4, - params=_params) - _params['filters'] = filters - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(VolumeDetailsListResults) - async def ListVolumes(self, filters): - ''' - filters : typing.Sequence[~VolumeFilter] - Returns -> typing.Sequence[~VolumeDetailsListResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='ListVolumes', - version=4, - params=_params) - _params['filters'] = filters - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Remove(self, storage): - ''' - storage : typing.Sequence[~RemoveStorageInstance] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='Remove', - version=4, - params=_params) - _params['storage'] = storage - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StorageDetailsResults) - async def StorageDetails(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StorageDetailsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='StorageDetails', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class StorageProvisionerFacade(Type): - name = 'StorageProvisioner' - version = 4 - schema = {'definitions': {'BlockDevice': {'additionalProperties': False, - 'properties': {'BusAddress': {'type': 'string'}, - 'DeviceLinks': {'items': {'type': 'string'}, - 'type': 'array'}, - 'DeviceName': {'type': 'string'}, - 'FilesystemType': {'type': 'string'}, - 'HardwareId': {'type': 'string'}, - 'InUse': {'type': 'boolean'}, - 'Label': {'type': 'string'}, - 'MountPoint': {'type': 'string'}, - 'Size': {'type': 'integer'}, - 'UUID': {'type': 'string'}, - 'WWN': {'type': 'string'}}, - 'required': ['DeviceName', - 'DeviceLinks', - 'Label', - 'UUID', - 'HardwareId', - 'WWN', - 'BusAddress', - 'Size', - 'FilesystemType', - 'InUse', - 'MountPoint'], - 'type': 'object'}, - 'BlockDeviceResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/BlockDevice'}}, - 'required': ['result'], - 'type': 'object'}, - 'BlockDeviceResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/BlockDeviceResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Filesystem': {'additionalProperties': False, - 'properties': {'filesystem-tag': {'type': 'string'}, - 'info': {'$ref': '#/definitions/FilesystemInfo'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['filesystem-tag', 'info'], - 'type': 'object'}, - 'FilesystemAttachment': {'additionalProperties': False, - 'properties': {'filesystem-tag': {'type': 'string'}, - 'info': {'$ref': '#/definitions/FilesystemAttachmentInfo'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['filesystem-tag', - 'machine-tag', - 'info'], - 'type': 'object'}, - 'FilesystemAttachmentInfo': {'additionalProperties': False, - 'properties': {'mount-point': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'type': 'object'}, - 'FilesystemAttachmentParams': {'additionalProperties': False, - 'properties': {'filesystem-id': {'type': 'string'}, - 'filesystem-tag': {'type': 'string'}, - 'instance-id': {'type': 'string'}, - 'machine-tag': {'type': 'string'}, - 'mount-point': {'type': 'string'}, - 'provider': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'required': ['filesystem-tag', - 'machine-tag', - 'provider'], - 'type': 'object'}, - 'FilesystemAttachmentParamsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/FilesystemAttachmentParams'}}, - 'required': ['result'], - 'type': 'object'}, - 'FilesystemAttachmentParamsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemAttachmentParamsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemAttachmentResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/FilesystemAttachment'}}, - 'required': ['result'], - 'type': 'object'}, - 'FilesystemAttachmentResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemAttachmentResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemAttachments': {'additionalProperties': False, - 'properties': {'filesystem-attachments': {'items': {'$ref': '#/definitions/FilesystemAttachment'}, - 'type': 'array'}}, - 'required': ['filesystem-attachments'], - 'type': 'object'}, - 'FilesystemInfo': {'additionalProperties': False, - 'properties': {'filesystem-id': {'type': 'string'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'required': ['filesystem-id', - 'pool', - 'size'], - 'type': 'object'}, - 'FilesystemParams': {'additionalProperties': False, - 'properties': {'attachment': {'$ref': '#/definitions/FilesystemAttachmentParams'}, - 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'filesystem-tag': {'type': 'string'}, - 'provider': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['filesystem-tag', - 'size', - 'provider'], - 'type': 'object'}, - 'FilesystemParamsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/FilesystemParams'}}, - 'required': ['result'], - 'type': 'object'}, - 'FilesystemParamsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemParamsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/Filesystem'}}, - 'required': ['result'], - 'type': 'object'}, - 'FilesystemResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Filesystems': {'additionalProperties': False, - 'properties': {'filesystems': {'items': {'$ref': '#/definitions/Filesystem'}, - 'type': 'array'}}, - 'required': ['filesystems'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineStorageId': {'additionalProperties': False, - 'properties': {'attachment-tag': {'type': 'string'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['machine-tag', - 'attachment-tag'], - 'type': 'object'}, - 'MachineStorageIds': {'additionalProperties': False, - 'properties': {'ids': {'items': {'$ref': '#/definitions/MachineStorageId'}, - 'type': 'array'}}, - 'required': ['ids'], - 'type': 'object'}, - 'MachineStorageIdsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/MachineStorageId'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}, - 'MachineStorageIdsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MachineStorageIdsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RemoveFilesystemParams': {'additionalProperties': False, - 'properties': {'destroy': {'type': 'boolean'}, - 'filesystem-id': {'type': 'string'}, - 'provider': {'type': 'string'}}, - 'required': ['provider', - 'filesystem-id'], - 'type': 'object'}, - 'RemoveFilesystemParamsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/RemoveFilesystemParams'}}, - 'required': ['result'], - 'type': 'object'}, - 'RemoveFilesystemParamsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RemoveFilesystemParamsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'RemoveVolumeParams': {'additionalProperties': False, - 'properties': {'destroy': {'type': 'boolean'}, - 'provider': {'type': 'string'}, - 'volume-id': {'type': 'string'}}, - 'required': ['provider', 'volume-id'], - 'type': 'object'}, - 'RemoveVolumeParamsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/RemoveVolumeParams'}}, - 'required': ['result'], - 'type': 'object'}, - 'RemoveVolumeParamsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RemoveVolumeParamsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Volume': {'additionalProperties': False, - 'properties': {'info': {'$ref': '#/definitions/VolumeInfo'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', 'info'], - 'type': 'object'}, - 'VolumeAttachment': {'additionalProperties': False, - 'properties': {'info': {'$ref': '#/definitions/VolumeAttachmentInfo'}, - 'machine-tag': {'type': 'string'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', - 'machine-tag', - 'info'], - 'type': 'object'}, - 'VolumeAttachmentInfo': {'additionalProperties': False, - 'properties': {'bus-address': {'type': 'string'}, - 'device-link': {'type': 'string'}, - 'device-name': {'type': 'string'}, - 'plan-info': {'$ref': '#/definitions/VolumeAttachmentPlanInfo'}, - 'read-only': {'type': 'boolean'}}, - 'type': 'object'}, - 'VolumeAttachmentParams': {'additionalProperties': False, - 'properties': {'instance-id': {'type': 'string'}, - 'machine-tag': {'type': 'string'}, - 'provider': {'type': 'string'}, - 'read-only': {'type': 'boolean'}, - 'volume-id': {'type': 'string'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', - 'machine-tag', - 'provider'], - 'type': 'object'}, - 'VolumeAttachmentParamsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/VolumeAttachmentParams'}}, - 'required': ['result'], - 'type': 'object'}, - 'VolumeAttachmentParamsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeAttachmentParamsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeAttachmentPlan': {'additionalProperties': False, - 'properties': {'block-device': {'$ref': '#/definitions/BlockDevice'}, - 'life': {'type': 'string'}, - 'machine-tag': {'type': 'string'}, - 'plan-info': {'$ref': '#/definitions/VolumeAttachmentPlanInfo'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', - 'machine-tag', - 'plan-info'], - 'type': 'object'}, - 'VolumeAttachmentPlanInfo': {'additionalProperties': False, - 'properties': {'device-attributes': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'device-type': {'type': 'string'}}, - 'type': 'object'}, - 'VolumeAttachmentPlanResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/VolumeAttachmentPlan'}}, - 'required': ['result'], - 'type': 'object'}, - 'VolumeAttachmentPlanResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeAttachmentPlanResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeAttachmentPlans': {'additionalProperties': False, - 'properties': {'volume-plans': {'items': {'$ref': '#/definitions/VolumeAttachmentPlan'}, - 'type': 'array'}}, - 'required': ['volume-plans'], - 'type': 'object'}, - 'VolumeAttachmentResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/VolumeAttachment'}}, - 'required': ['result'], - 'type': 'object'}, - 'VolumeAttachmentResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeAttachmentResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeAttachments': {'additionalProperties': False, - 'properties': {'volume-attachments': {'items': {'$ref': '#/definitions/VolumeAttachment'}, - 'type': 'array'}}, - 'required': ['volume-attachments'], - 'type': 'object'}, - 'VolumeInfo': {'additionalProperties': False, - 'properties': {'hardware-id': {'type': 'string'}, - 'persistent': {'type': 'boolean'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'volume-id': {'type': 'string'}, - 'wwn': {'type': 'string'}}, - 'required': ['volume-id', 'size', 'persistent'], - 'type': 'object'}, - 'VolumeParams': {'additionalProperties': False, - 'properties': {'attachment': {'$ref': '#/definitions/VolumeAttachmentParams'}, - 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'provider': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', - 'size', - 'provider'], - 'type': 'object'}, - 'VolumeParamsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/VolumeParams'}}, - 'required': ['result'], - 'type': 'object'}, - 'VolumeParamsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeParamsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/Volume'}}, - 'required': ['result'], - 'type': 'object'}, - 'VolumeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Volumes': {'additionalProperties': False, - 'properties': {'volumes': {'items': {'$ref': '#/definitions/Volume'}, - 'type': 'array'}}, - 'required': ['volumes'], - 'type': 'object'}}, - 'properties': {'AttachmentLife': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'CreateVolumeAttachmentPlans': {'properties': {'Params': {'$ref': '#/definitions/VolumeAttachmentPlans'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'FilesystemAttachmentParams': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/FilesystemAttachmentParamsResults'}}, - 'type': 'object'}, - 'FilesystemAttachments': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/FilesystemAttachmentResults'}}, - 'type': 'object'}, - 'FilesystemParams': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/FilesystemParamsResults'}}, - 'type': 'object'}, - 'Filesystems': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/FilesystemResults'}}, - 'type': 'object'}, - 'InstanceId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'Remove': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RemoveAttachment': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RemoveFilesystemParams': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/RemoveFilesystemParamsResults'}}, - 'type': 'object'}, - 'RemoveVolumeAttachmentPlan': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RemoveVolumeParams': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/RemoveVolumeParamsResults'}}, - 'type': 'object'}, - 'SetFilesystemAttachmentInfo': {'properties': {'Params': {'$ref': '#/definitions/FilesystemAttachments'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetFilesystemInfo': {'properties': {'Params': {'$ref': '#/definitions/Filesystems'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetVolumeAttachmentInfo': {'properties': {'Params': {'$ref': '#/definitions/VolumeAttachments'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetVolumeAttachmentPlanBlockInfo': {'properties': {'Params': {'$ref': '#/definitions/VolumeAttachmentPlans'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetVolumeInfo': {'properties': {'Params': {'$ref': '#/definitions/Volumes'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'VolumeAttachmentParams': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/VolumeAttachmentParamsResults'}}, - 'type': 'object'}, - 'VolumeAttachmentPlans': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/VolumeAttachmentPlanResults'}}, - 'type': 'object'}, - 'VolumeAttachments': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/VolumeAttachmentResults'}}, - 'type': 'object'}, - 'VolumeBlockDevices': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/BlockDeviceResults'}}, - 'type': 'object'}, - 'VolumeParams': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/VolumeParamsResults'}}, - 'type': 'object'}, - 'Volumes': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/VolumeResults'}}, - 'type': 'object'}, - 'WatchApplications': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}, - 'WatchBlockDevices': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchFilesystemAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResults'}}, - 'type': 'object'}, - 'WatchFilesystems': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchMachines': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchVolumeAttachmentPlans': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResults'}}, - 'type': 'object'}, - 'WatchVolumeAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResults'}}, - 'type': 'object'}, - 'WatchVolumes': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(LifeResults) - async def AttachmentLife(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='AttachmentLife', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def CreateVolumeAttachmentPlans(self, volume_plans): - ''' - volume_plans : typing.Sequence[~VolumeAttachmentPlan] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='CreateVolumeAttachmentPlans', - version=4, - params=_params) - _params['volume-plans'] = volume_plans - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnsureDead(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='EnsureDead', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FilesystemAttachmentParamsResults) - async def FilesystemAttachmentParams(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~FilesystemAttachmentParamsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='FilesystemAttachmentParams', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FilesystemAttachmentResults) - async def FilesystemAttachments(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~FilesystemAttachmentResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='FilesystemAttachments', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FilesystemParamsResults) - async def FilesystemParams(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~FilesystemParamsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='FilesystemParams', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FilesystemResults) - async def Filesystems(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~FilesystemResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='Filesystems', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def InstanceId(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='InstanceId', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='Life', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Remove(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='Remove', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RemoveAttachment(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='RemoveAttachment', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RemoveFilesystemParamsResults) - async def RemoveFilesystemParams(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~RemoveFilesystemParamsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='RemoveFilesystemParams', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RemoveVolumeAttachmentPlan(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='RemoveVolumeAttachmentPlan', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RemoveVolumeParamsResults) - async def RemoveVolumeParams(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~RemoveVolumeParamsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='RemoveVolumeParams', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetFilesystemAttachmentInfo(self, filesystem_attachments): - ''' - filesystem_attachments : typing.Sequence[~FilesystemAttachment] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='SetFilesystemAttachmentInfo', - version=4, - params=_params) - _params['filesystem-attachments'] = filesystem_attachments - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetFilesystemInfo(self, filesystems): - ''' - filesystems : typing.Sequence[~Filesystem] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='SetFilesystemInfo', - version=4, - params=_params) - _params['filesystems'] = filesystems - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='SetStatus', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetVolumeAttachmentInfo(self, volume_attachments): - ''' - volume_attachments : typing.Sequence[~VolumeAttachment] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='SetVolumeAttachmentInfo', - version=4, - params=_params) - _params['volume-attachments'] = volume_attachments - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetVolumeAttachmentPlanBlockInfo(self, volume_plans): - ''' - volume_plans : typing.Sequence[~VolumeAttachmentPlan] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='SetVolumeAttachmentPlanBlockInfo', - version=4, - params=_params) - _params['volume-plans'] = volume_plans - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetVolumeInfo(self, volumes): - ''' - volumes : typing.Sequence[~Volume] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='SetVolumeInfo', - version=4, - params=_params) - _params['volumes'] = volumes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='UpdateStatus', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(VolumeAttachmentParamsResults) - async def VolumeAttachmentParams(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~VolumeAttachmentParamsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='VolumeAttachmentParams', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(VolumeAttachmentPlanResults) - async def VolumeAttachmentPlans(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~VolumeAttachmentPlanResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='VolumeAttachmentPlans', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(VolumeAttachmentResults) - async def VolumeAttachments(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~VolumeAttachmentResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='VolumeAttachments', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BlockDeviceResults) - async def VolumeBlockDevices(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~BlockDeviceResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='VolumeBlockDevices', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(VolumeParamsResults) - async def VolumeParams(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~VolumeParamsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='VolumeParams', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(VolumeResults) - async def Volumes(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~VolumeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='Volumes', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchApplications(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchApplications', - version=4, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchBlockDevices(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchBlockDevices', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachineStorageIdsWatchResults) - async def WatchFilesystemAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachineStorageIdsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchFilesystemAttachments', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchFilesystems(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchFilesystems', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchMachines(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchMachines', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachineStorageIdsWatchResults) - async def WatchVolumeAttachmentPlans(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachineStorageIdsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchVolumeAttachmentPlans', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachineStorageIdsWatchResults) - async def WatchVolumeAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachineStorageIdsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchVolumeAttachments', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchVolumes(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchVolumes', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class UniterFacade(Type): - name = 'Uniter' - version = 4 - schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, - 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, - 'type': 'array'}, - 'type': 'array'}}, - 'required': ['servers'], - 'type': 'object'}, - 'Action': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'parameters': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'receiver': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'receiver', 'name'], - 'type': 'object'}, - 'ActionExecutionResult': {'additionalProperties': False, - 'properties': {'action-tag': {'type': 'string'}, - 'message': {'type': 'string'}, - 'results': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'status': {'type': 'string'}}, - 'required': ['action-tag', 'status'], - 'type': 'object'}, - 'ActionExecutionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ActionExecutionResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ActionResult': {'additionalProperties': False, - 'properties': {'action': {'$ref': '#/definitions/Action'}, - 'completed': {'format': 'date-time', - 'type': 'string'}, - 'enqueued': {'format': 'date-time', - 'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'message': {'type': 'string'}, - 'output': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'started': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'type': 'object'}, - 'ActionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'ApplicationStatusResult': {'additionalProperties': False, - 'properties': {'application': {'$ref': '#/definitions/StatusResult'}, - 'error': {'$ref': '#/definitions/Error'}, - 'units': {'patternProperties': {'.*': {'$ref': '#/definitions/StatusResult'}}, - 'type': 'object'}}, - 'required': ['application', - 'units'], - 'type': 'object'}, - 'ApplicationStatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationStatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'BoolResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'boolean'}}, - 'required': ['result'], - 'type': 'object'}, - 'BoolResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'BytesResult': {'additionalProperties': False, - 'properties': {'result': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['result'], - 'type': 'object'}, - 'CharmRelation': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'optional': {'type': 'boolean'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'optional', - 'limit', - 'scope'], - 'type': 'object'}, - 'CharmURL': {'additionalProperties': False, - 'properties': {'url': {'type': 'string'}}, - 'required': ['url'], - 'type': 'object'}, - 'CharmURLs': {'additionalProperties': False, - 'properties': {'urls': {'items': {'$ref': '#/definitions/CharmURL'}, - 'type': 'array'}}, - 'required': ['urls'], - 'type': 'object'}, - 'ConfigSettingsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'settings': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['settings'], - 'type': 'object'}, - 'ConfigSettingsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ConfigSettingsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Endpoint': {'additionalProperties': False, - 'properties': {'application-name': {'type': 'string'}, - 'relation': {'$ref': '#/definitions/CharmRelation'}}, - 'required': ['application-name', 'relation'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesCharmURL': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityCharmURL'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesPortRanges': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityPortRange'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityCharmURL': {'additionalProperties': False, - 'properties': {'charm-url': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'charm-url'], - 'type': 'object'}, - 'EntityPortRange': {'additionalProperties': False, - 'properties': {'from-port': {'type': 'integer'}, - 'protocol': {'type': 'string'}, - 'tag': {'type': 'string'}, - 'to-port': {'type': 'integer'}}, - 'required': ['tag', - 'protocol', - 'from-port', - 'to-port'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'EntityWorkloadVersion': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}, - 'workload-version': {'type': 'string'}}, - 'required': ['tag', - 'workload-version'], - 'type': 'object'}, - 'EntityWorkloadVersions': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityWorkloadVersion'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GetLeadershipSettingsBulkResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/GetLeadershipSettingsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GetLeadershipSettingsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['settings'], - 'type': 'object'}, - 'HostPort': {'additionalProperties': False, - 'properties': {'Address': {'$ref': '#/definitions/Address'}, - 'port': {'type': 'integer'}}, - 'required': ['Address', 'port'], - 'type': 'object'}, - 'IntResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'integer'}}, - 'required': ['result'], - 'type': 'object'}, - 'IntResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/IntResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachinePortRange': {'additionalProperties': False, - 'properties': {'port-range': {'$ref': '#/definitions/PortRange'}, - 'relation-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['unit-tag', - 'relation-tag', - 'port-range'], - 'type': 'object'}, - 'MachinePortsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'ports': {'items': {'$ref': '#/definitions/MachinePortRange'}, - 'type': 'array'}}, - 'required': ['ports'], - 'type': 'object'}, - 'MachinePortsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MachinePortsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'MergeLeadershipSettingsBulkParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/MergeLeadershipSettingsParam'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'MergeLeadershipSettingsParam': {'additionalProperties': False, - 'properties': {'application-tag': {'type': 'string'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['application-tag', - 'settings'], - 'type': 'object'}, - 'MeterStatusResult': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'info': {'type': 'string'}}, - 'required': ['code', 'info'], - 'type': 'object'}, - 'MeterStatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MeterStatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Metric': {'additionalProperties': False, - 'properties': {'key': {'type': 'string'}, - 'time': {'format': 'date-time', - 'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['key', 'value', 'time'], - 'type': 'object'}, - 'MetricBatch': {'additionalProperties': False, - 'properties': {'charm-url': {'type': 'string'}, - 'created': {'format': 'date-time', - 'type': 'string'}, - 'metrics': {'items': {'$ref': '#/definitions/Metric'}, - 'type': 'array'}, - 'uuid': {'type': 'string'}}, - 'required': ['uuid', - 'charm-url', - 'created', - 'metrics'], - 'type': 'object'}, - 'MetricBatchParam': {'additionalProperties': False, - 'properties': {'batch': {'$ref': '#/definitions/MetricBatch'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'batch'], - 'type': 'object'}, - 'MetricBatchParams': {'additionalProperties': False, - 'properties': {'batches': {'items': {'$ref': '#/definitions/MetricBatchParam'}, - 'type': 'array'}}, - 'required': ['batches'], - 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', 'uuid'], - 'type': 'object'}, - 'NetworkConfig': {'additionalProperties': False, - 'properties': {'address': {'type': 'string'}, - 'cidr': {'type': 'string'}, - 'config-type': {'type': 'string'}, - 'device-index': {'type': 'integer'}, - 'disabled': {'type': 'boolean'}, - 'dns-search-domains': {'items': {'type': 'string'}, - 'type': 'array'}, - 'dns-servers': {'items': {'type': 'string'}, - 'type': 'array'}, - 'gateway-address': {'type': 'string'}, - 'interface-name': {'type': 'string'}, - 'interface-type': {'type': 'string'}, - 'mac-address': {'type': 'string'}, - 'mtu': {'type': 'integer'}, - 'no-auto-start': {'type': 'boolean'}, - 'parent-interface-name': {'type': 'string'}, - 'provider-address-id': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'provider-subnet-id': {'type': 'string'}, - 'provider-vlan-id': {'type': 'string'}, - 'routes': {'items': {'$ref': '#/definitions/NetworkRoute'}, - 'type': 'array'}, - 'vlan-tag': {'type': 'integer'}}, - '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'], - 'type': 'object'}, - 'NetworkRoute': {'additionalProperties': False, - 'properties': {'destination-cidr': {'type': 'string'}, - 'gateway-ip': {'type': 'string'}, - 'metric': {'type': 'integer'}}, - 'required': ['destination-cidr', - 'gateway-ip', - 'metric'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'PortRange': {'additionalProperties': False, - 'properties': {'from-port': {'type': 'integer'}, - 'protocol': {'type': 'string'}, - 'to-port': {'type': 'integer'}}, - 'required': ['from-port', 'to-port', 'protocol'], - 'type': 'object'}, - 'RelationIds': {'additionalProperties': False, - 'properties': {'relation-ids': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['relation-ids'], - 'type': 'object'}, - 'RelationResult': {'additionalProperties': False, - 'properties': {'endpoint': {'$ref': '#/definitions/Endpoint'}, - 'error': {'$ref': '#/definitions/Error'}, - 'id': {'type': 'integer'}, - 'key': {'type': 'string'}, - 'life': {'type': 'string'}}, - 'required': ['life', - 'id', - 'key', - 'endpoint'], - 'type': 'object'}, - 'RelationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RelationResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RelationUnit': {'additionalProperties': False, - 'properties': {'relation': {'type': 'string'}, - 'unit': {'type': 'string'}}, - 'required': ['relation', 'unit'], - 'type': 'object'}, - 'RelationUnitPair': {'additionalProperties': False, - 'properties': {'local-unit': {'type': 'string'}, - 'relation': {'type': 'string'}, - 'remote-unit': {'type': 'string'}}, - 'required': ['relation', - 'local-unit', - 'remote-unit'], - 'type': 'object'}, - 'RelationUnitPairs': {'additionalProperties': False, - 'properties': {'relation-unit-pairs': {'items': {'$ref': '#/definitions/RelationUnitPair'}, - 'type': 'array'}}, - 'required': ['relation-unit-pairs'], - 'type': 'object'}, - 'RelationUnitSettings': {'additionalProperties': False, - 'properties': {'relation': {'type': 'string'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'unit': {'type': 'string'}}, - 'required': ['relation', - 'unit', - 'settings'], - 'type': 'object'}, - 'RelationUnits': {'additionalProperties': False, - 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnit'}, - 'type': 'array'}}, - 'required': ['relation-units'], - 'type': 'object'}, - 'RelationUnitsChange': {'additionalProperties': False, - 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}}, - 'type': 'object'}, - 'departed': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['changed'], - 'type': 'object'}, - 'RelationUnitsSettings': {'additionalProperties': False, - 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnitSettings'}, - 'type': 'array'}}, - 'required': ['relation-units'], - 'type': 'object'}, - 'RelationUnitsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'$ref': '#/definitions/RelationUnitsChange'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}, - 'RelationUnitsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RelationUnitsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ResolvedModeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'mode': {'type': 'string'}}, - 'required': ['mode'], - 'type': 'object'}, - 'ResolvedModeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ResolvedModeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'SettingsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['settings'], - 'type': 'object'}, - 'SettingsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/SettingsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StatusResult': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'error': {'$ref': '#/definitions/Error'}, - 'id': {'type': 'string'}, - 'info': {'type': 'string'}, - 'life': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['id', - 'life', - 'status', - 'info', - 'data', - 'since'], - 'type': 'object'}, - 'StatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StorageAddParams': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'storage': {'$ref': '#/definitions/StorageConstraints'}, - 'unit': {'type': 'string'}}, - 'required': ['unit', 'name', 'storage'], - 'type': 'object'}, - 'StorageAttachment': {'additionalProperties': False, - 'properties': {'kind': {'type': 'integer'}, - 'life': {'type': 'string'}, - 'location': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'storage-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'owner-tag', - 'unit-tag', - 'kind', - 'location', - 'life'], - 'type': 'object'}, - 'StorageAttachmentId': {'additionalProperties': False, - 'properties': {'storage-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'unit-tag'], - 'type': 'object'}, - 'StorageAttachmentIds': {'additionalProperties': False, - 'properties': {'ids': {'items': {'$ref': '#/definitions/StorageAttachmentId'}, - 'type': 'array'}}, - 'required': ['ids'], - 'type': 'object'}, - 'StorageAttachmentIdsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/StorageAttachmentIds'}}, - 'required': ['result'], - 'type': 'object'}, - 'StorageAttachmentIdsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StorageAttachmentIdsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageAttachmentResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/StorageAttachment'}}, - 'required': ['result'], - 'type': 'object'}, - 'StorageAttachmentResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StorageAttachmentResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageConstraints': {'additionalProperties': False, - 'properties': {'count': {'type': 'integer'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'type': 'object'}, - 'StoragesAddParams': {'additionalProperties': False, - 'properties': {'storages': {'items': {'$ref': '#/definitions/StorageAddParams'}, - 'type': 'array'}}, - 'required': ['storages'], - 'type': 'object'}, - 'StringBoolResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'ok': {'type': 'boolean'}, - 'result': {'type': 'string'}}, - 'required': ['result', 'ok'], - 'type': 'object'}, - 'StringBoolResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringBoolResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UnitNetworkConfig': {'additionalProperties': False, - 'properties': {'binding-name': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['unit-tag', 'binding-name'], - 'type': 'object'}, - 'UnitNetworkConfigResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'items': {'$ref': '#/definitions/NetworkConfig'}, - 'type': 'array'}}, - 'required': ['info'], - 'type': 'object'}, - 'UnitNetworkConfigResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/UnitNetworkConfigResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UnitSettings': {'additionalProperties': False, - 'properties': {'version': {'type': 'integer'}}, - 'required': ['version'], - 'type': 'object'}, - 'UnitsNetworkConfig': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/UnitNetworkConfig'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}}, - 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, - 'type': 'object'}, - 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, - 'type': 'object'}, - 'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'AddMetricBatches': {'properties': {'Params': {'$ref': '#/definitions/MetricBatchParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'AddUnitStorage': {'properties': {'Params': {'$ref': '#/definitions/StoragesAddParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'AllMachinePorts': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachinePortsResults'}}, - 'type': 'object'}, - 'ApplicationStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ApplicationStatusResults'}}, - 'type': 'object'}, - 'AssignedMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'AvailabilityZone': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'BeginActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, - 'type': 'object'}, - 'CharmArchiveSha256': {'properties': {'Params': {'$ref': '#/definitions/CharmURLs'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'CharmModifiedVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/IntResults'}}, - 'type': 'object'}, - 'CharmURL': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringBoolResults'}}, - 'type': 'object'}, - 'ClearResolved': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ClosePorts': {'properties': {'Params': {'$ref': '#/definitions/EntitiesPortRanges'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ConfigSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ConfigSettingsResults'}}, - 'type': 'object'}, - 'CurrentModel': {'properties': {'Result': {'$ref': '#/definitions/ModelResult'}}, - 'type': 'object'}, - 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'DestroyAllSubordinates': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'DestroyUnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'EnterScope': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'FinishActions': {'properties': {'Params': {'$ref': '#/definitions/ActionExecutionResults'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'GetMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MeterStatusResults'}}, - 'type': 'object'}, - 'GetPrincipal': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringBoolResults'}}, - 'type': 'object'}, - 'HasSubordinates': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/BoolResults'}}, - 'type': 'object'}, - 'JoinedRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsResults'}}, - 'type': 'object'}, - 'LeaveScope': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'Merge': {'properties': {'Params': {'$ref': '#/definitions/MergeLeadershipSettingsBulkParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'NetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/UnitsNetworkConfig'}, - 'Result': {'$ref': '#/definitions/UnitNetworkConfigResults'}}, - 'type': 'object'}, - 'OpenPorts': {'properties': {'Params': {'$ref': '#/definitions/EntitiesPortRanges'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'ProviderType': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'Read': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/GetLeadershipSettingsBulkResults'}}, - 'type': 'object'}, - 'ReadRemoteSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnitPairs'}, - 'Result': {'$ref': '#/definitions/SettingsResults'}}, - 'type': 'object'}, - 'ReadSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/SettingsResults'}}, - 'type': 'object'}, - 'Relation': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/RelationResults'}}, - 'type': 'object'}, - 'RelationById': {'properties': {'Params': {'$ref': '#/definitions/RelationIds'}, - 'Result': {'$ref': '#/definitions/RelationResults'}}, - 'type': 'object'}, - 'RemoveStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RequestReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Resolved': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ResolvedModeResults'}}, - 'type': 'object'}, - 'SetAgentStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetApplicationStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/EntitiesCharmURL'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetUnitStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetWorkloadVersion': {'properties': {'Params': {'$ref': '#/definitions/EntityWorkloadVersions'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'StorageAttachmentLife': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'StorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/StorageAttachmentResults'}}, - 'type': 'object'}, - 'UnitStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StatusResults'}}, - 'type': 'object'}, - 'UnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StorageAttachmentIdsResults'}}, - 'type': 'object'}, - 'UpdateSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnitsSettings'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchActionNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchApplicationRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchConfigSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchLeadershipSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchRelationUnits': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/RelationUnitsWatchResults'}}, - 'type': 'object'}, - 'WatchStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchUnitAddresses': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchUnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WorkloadVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringsResult) - async def APIAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='APIAddresses', - version=4, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(APIHostPortsResult) - async def APIHostPorts(self): - ''' - - Returns -> typing.Sequence[~HostPort] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='APIHostPorts', - version=4, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionResults) - async def Actions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Actions', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def AddMetricBatches(self, batches): - ''' - batches : typing.Sequence[~MetricBatchParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AddMetricBatches', - version=4, - params=_params) - _params['batches'] = batches - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def AddUnitStorage(self, storages): - ''' - storages : typing.Sequence[~StorageAddParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AddUnitStorage', - version=4, - params=_params) - _params['storages'] = storages - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachinePortsResults) - async def AllMachinePorts(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachinePortsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AllMachinePorts', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationStatusResults) - async def ApplicationStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ApplicationStatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ApplicationStatus', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def AssignedMachine(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AssignedMachine', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def AvailabilityZone(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AvailabilityZone', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def BeginActions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='BeginActions', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BytesResult) - async def CACert(self): - ''' - - Returns -> typing.Sequence[int] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CACert', - version=4, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def CharmArchiveSha256(self, urls): - ''' - urls : typing.Sequence[~CharmURL] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CharmArchiveSha256', - version=4, - params=_params) - _params['urls'] = urls - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(IntResults) - async def CharmModifiedVersion(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~IntResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CharmModifiedVersion', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringBoolResults) - async def CharmURL(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringBoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CharmURL', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ClearResolved(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ClearResolved', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ClosePorts(self, entities): - ''' - entities : typing.Sequence[~EntityPortRange] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ClosePorts', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ConfigSettingsResults) - async def ConfigSettings(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ConfigSettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ConfigSettings', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelResult) - async def CurrentModel(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CurrentModel', - version=4, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Destroy(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Destroy', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DestroyAllSubordinates(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='DestroyAllSubordinates', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DestroyUnitStorageAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='DestroyUnitStorageAttachments', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnsureDead(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='EnsureDead', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnterScope(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='EnterScope', - version=4, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def FinishActions(self, results): - ''' - results : typing.Sequence[~ActionExecutionResult] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='FinishActions', - version=4, - params=_params) - _params['results'] = results - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MeterStatusResults) - async def GetMeterStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MeterStatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='GetMeterStatus', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringBoolResults) - async def GetPrincipal(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringBoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='GetPrincipal', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BoolResults) - async def HasSubordinates(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~BoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='HasSubordinates', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsResults) - async def JoinedRelations(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='JoinedRelations', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def LeaveScope(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='LeaveScope', - version=4, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Life', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Merge(self, params): - ''' - params : typing.Sequence[~MergeLeadershipSettingsParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Merge', - version=4, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ModelConfig', - version=4, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ModelUUID(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ModelUUID', - version=4, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UnitNetworkConfigResults) - async def NetworkConfig(self, args): - ''' - args : typing.Sequence[~UnitNetworkConfig] - Returns -> typing.Sequence[~UnitNetworkConfigResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='NetworkConfig', - version=4, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def OpenPorts(self, entities): - ''' - entities : typing.Sequence[~EntityPortRange] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='OpenPorts', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def PrivateAddress(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='PrivateAddress', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ProviderType(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ProviderType', - version=4, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def PublicAddress(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='PublicAddress', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(GetLeadershipSettingsBulkResults) - async def Read(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~GetLeadershipSettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Read', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SettingsResults) - async def ReadRemoteSettings(self, relation_unit_pairs): - ''' - relation_unit_pairs : typing.Sequence[~RelationUnitPair] - Returns -> typing.Sequence[~SettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ReadRemoteSettings', - version=4, - params=_params) - _params['relation-unit-pairs'] = relation_unit_pairs - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SettingsResults) - async def ReadSettings(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~SettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ReadSettings', - version=4, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationResults) - async def Relation(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~RelationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Relation', - version=4, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationResults) - async def RelationById(self, relation_ids): - ''' - relation_ids : typing.Sequence[int] - Returns -> typing.Sequence[~RelationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='RelationById', - version=4, - params=_params) - _params['relation-ids'] = relation_ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RemoveStorageAttachments(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='RemoveStorageAttachments', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RequestReboot(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='RequestReboot', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ResolvedModeResults) - async def Resolved(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ResolvedModeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Resolved', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetAgentStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetAgentStatus', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetApplicationStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetApplicationStatus', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetCharmURL(self, entities): - ''' - entities : typing.Sequence[~EntityCharmURL] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetCharmURL', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetStatus', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetUnitStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetUnitStatus', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetWorkloadVersion(self, entities): - ''' - entities : typing.Sequence[~EntityWorkloadVersion] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetWorkloadVersion', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def StorageAttachmentLife(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='StorageAttachmentLife', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StorageAttachmentResults) - async def StorageAttachments(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~StorageAttachmentResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='StorageAttachments', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusResults) - async def UnitStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='UnitStatus', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StorageAttachmentIdsResults) - async def UnitStorageAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StorageAttachmentIdsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='UnitStorageAttachments', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateSettings(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnitSettings] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='UpdateSettings', - version=4, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def Watch(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Watch', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchAPIHostPorts(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchAPIHostPorts', - version=4, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchActionNotifications(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchActionNotifications', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchApplicationRelations(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchApplicationRelations', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchConfigSettings(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchConfigSettings', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchForModelConfigChanges', - version=4, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchLeadershipSettings(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchLeadershipSettings', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchMeterStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchMeterStatus', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationUnitsWatchResults) - async def WatchRelationUnits(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~RelationUnitsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchRelationUnits', - version=4, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchStorageAttachments(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchStorageAttachments', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchUnitAddresses(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchUnitAddresses', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchUnitStorageAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchUnitStorageAttachments', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def WorkloadVersion(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WorkloadVersion', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply diff --git a/modules/libjuju/juju/client/_client5.py b/modules/libjuju/juju/client/_client5.py deleted file mode 100644 index 415aeae..0000000 --- a/modules/libjuju/juju/client/_client5.py +++ /dev/null @@ -1,5322 +0,0 @@ -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. - -from juju.client._definitions import * -from juju.client.facade import ReturnMapping, Type - - -class ApplicationFacade(Type): - name = 'Application' - version = 5 - schema = {'definitions': {'AddApplicationUnits': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'attach-storage': {'items': {'type': 'string'}, - 'type': 'array'}, - 'num-units': {'type': 'integer'}, - 'placement': {'items': {'$ref': '#/definitions/Placement'}, - 'type': 'array'}}, - 'required': ['application', - 'num-units', - 'placement'], - 'type': 'object'}, - 'AddApplicationUnitsResults': {'additionalProperties': False, - 'properties': {'units': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['units'], - 'type': 'object'}, - 'AddRelation': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'AddRelationResults': {'additionalProperties': False, - 'properties': {'endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, - 'type': 'object'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'ApplicationCharmRelations': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationCharmRelationsResults': {'additionalProperties': False, - 'properties': {'charm-relations': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['charm-relations'], - 'type': 'object'}, - 'ApplicationDeploy': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'attach-storage': {'items': {'type': 'string'}, - 'type': 'array'}, - 'channel': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'config-yaml': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'num-units': {'type': 'integer'}, - 'placement': {'items': {'$ref': '#/definitions/Placement'}, - 'type': 'array'}, - 'resources': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'series': {'type': 'string'}, - 'storage': {'patternProperties': {'.*': {'$ref': '#/definitions/Constraints'}}, - 'type': 'object'}}, - 'required': ['application', - 'series', - 'charm-url', - 'channel', - 'num-units', - 'config-yaml', - 'constraints'], - 'type': 'object'}, - 'ApplicationDestroy': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationExpose': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationGet': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationGetResults': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'charm': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'series': {'type': 'string'}}, - 'required': ['application', - 'charm', - 'config', - 'constraints', - 'series'], - 'type': 'object'}, - 'ApplicationMetricCredential': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'metrics-credentials': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['application', - 'metrics-credentials'], - 'type': 'object'}, - 'ApplicationMetricCredentials': {'additionalProperties': False, - 'properties': {'creds': {'items': {'$ref': '#/definitions/ApplicationMetricCredential'}, - 'type': 'array'}}, - 'required': ['creds'], - 'type': 'object'}, - 'ApplicationOffer': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'application-description': {'type': 'string'}, - 'bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'}, - 'type': 'array'}, - 'offer-name': {'type': 'string'}, - 'offer-url': {'type': 'string'}, - 'source-model-tag': {'type': 'string'}, - 'spaces': {'items': {'$ref': '#/definitions/RemoteSpace'}, - 'type': 'array'}}, - 'required': ['source-model-tag', - 'offer-url', - 'offer-name', - 'application-description', - 'endpoints', - 'spaces', - 'bindings', - 'access'], - 'type': 'object'}, - 'ApplicationSet': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'options': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['application', 'options'], - 'type': 'object'}, - 'ApplicationSetCharm': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'channel': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'config-settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'config-settings-yaml': {'type': 'string'}, - 'force-series': {'type': 'boolean'}, - 'force-units': {'type': 'boolean'}, - 'resource-ids': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'storage-constraints': {'patternProperties': {'.*': {'$ref': '#/definitions/StorageConstraints'}}, - 'type': 'object'}}, - 'required': ['application', - 'charm-url', - 'channel', - 'force-units', - 'force-series'], - 'type': 'object'}, - 'ApplicationUnexpose': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationUnset': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'options': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['application', 'options'], - 'type': 'object'}, - 'ApplicationUpdate': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'force-charm-url': {'type': 'boolean'}, - 'force-series': {'type': 'boolean'}, - 'min-units': {'type': 'integer'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'settings-yaml': {'type': 'string'}}, - 'required': ['application', - 'charm-url', - 'force-charm-url', - 'force-series', - 'settings-yaml'], - 'type': 'object'}, - 'ApplicationsDeploy': {'additionalProperties': False, - 'properties': {'applications': {'items': {'$ref': '#/definitions/ApplicationDeploy'}, - 'type': 'array'}}, - 'required': ['applications'], - 'type': 'object'}, - 'CharmRelation': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'optional': {'type': 'boolean'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'optional', - 'limit', - 'scope'], - 'type': 'object'}, - 'Constraints': {'additionalProperties': False, - 'properties': {'Count': {'type': 'integer'}, - 'Pool': {'type': 'string'}, - 'Size': {'type': 'integer'}}, - 'required': ['Pool', 'Size', 'Count'], - 'type': 'object'}, - 'ConsumeApplicationArg': {'additionalProperties': False, - 'properties': {'ApplicationOffer': {'$ref': '#/definitions/ApplicationOffer'}, - 'application-alias': {'type': 'string'}, - 'macaroon': {'$ref': '#/definitions/Macaroon'}}, - 'required': ['ApplicationOffer'], - 'type': 'object'}, - 'ConsumeApplicationArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/ConsumeApplicationArg'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyApplicationInfo': {'additionalProperties': False, - 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'destroyed-units': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyApplicationResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'$ref': '#/definitions/DestroyApplicationInfo'}}, - 'type': 'object'}, - 'DestroyApplicationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyApplicationResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyApplicationUnits': {'additionalProperties': False, - 'properties': {'unit-names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['unit-names'], - 'type': 'object'}, - 'DestroyRelation': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'DestroyUnitInfo': {'additionalProperties': False, - 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyUnitResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'$ref': '#/definitions/DestroyUnitInfo'}}, - 'type': 'object'}, - 'DestroyUnitResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyUnitResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GetApplicationConstraints': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'GetConstraintsResults': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Placement': {'additionalProperties': False, - 'properties': {'directive': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['scope', 'directive'], - 'type': 'object'}, - 'RemoteEndpoint': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'limit', - 'scope'], - 'type': 'object'}, - 'RemoteSpace': {'additionalProperties': False, - 'properties': {'cloud-type': {'type': 'string'}, - 'name': {'type': 'string'}, - 'provider-attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'provider-id': {'type': 'string'}, - 'subnets': {'items': {'$ref': '#/definitions/Subnet'}, - 'type': 'array'}}, - 'required': ['cloud-type', - 'name', - 'provider-id', - 'provider-attributes', - 'subnets'], - 'type': 'object'}, - 'SetConstraints': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['application', 'constraints'], - 'type': 'object'}, - 'StorageConstraints': {'additionalProperties': False, - 'properties': {'count': {'type': 'integer'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'Subnet': {'additionalProperties': False, - 'properties': {'cidr': {'type': 'string'}, - 'life': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-network-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'space-tag': {'type': 'string'}, - 'status': {'type': 'string'}, - 'vlan-tag': {'type': 'integer'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['cidr', - 'vlan-tag', - 'life', - 'space-tag', - 'zones'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}}, - 'type': 'object'}}, - 'properties': {'AddRelation': {'properties': {'Params': {'$ref': '#/definitions/AddRelation'}, - 'Result': {'$ref': '#/definitions/AddRelationResults'}}, - 'type': 'object'}, - 'AddUnits': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationUnits'}, - 'Result': {'$ref': '#/definitions/AddApplicationUnitsResults'}}, - 'type': 'object'}, - 'CharmRelations': {'properties': {'Params': {'$ref': '#/definitions/ApplicationCharmRelations'}, - 'Result': {'$ref': '#/definitions/ApplicationCharmRelationsResults'}}, - 'type': 'object'}, - 'Consume': {'properties': {'Params': {'$ref': '#/definitions/ConsumeApplicationArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Deploy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationsDeploy'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationDestroy'}}, - 'type': 'object'}, - 'DestroyApplication': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/DestroyApplicationResults'}}, - 'type': 'object'}, - 'DestroyRelation': {'properties': {'Params': {'$ref': '#/definitions/DestroyRelation'}}, - 'type': 'object'}, - 'DestroyUnit': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/DestroyUnitResults'}}, - 'type': 'object'}, - 'DestroyUnits': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationUnits'}}, - 'type': 'object'}, - 'Expose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationExpose'}}, - 'type': 'object'}, - 'Get': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, - 'Result': {'$ref': '#/definitions/ApplicationGetResults'}}, - 'type': 'object'}, - 'GetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, - 'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'GetConstraints': {'properties': {'Params': {'$ref': '#/definitions/GetApplicationConstraints'}, - 'Result': {'$ref': '#/definitions/GetConstraintsResults'}}, - 'type': 'object'}, - 'Set': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSet'}}, - 'type': 'object'}, - 'SetCharm': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSetCharm'}}, - 'type': 'object'}, - 'SetConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, - 'type': 'object'}, - 'SetMetricCredentials': {'properties': {'Params': {'$ref': '#/definitions/ApplicationMetricCredentials'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Unexpose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnexpose'}}, - 'type': 'object'}, - 'Unset': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnset'}}, - 'type': 'object'}, - 'Update': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUpdate'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddRelationResults) - async def AddRelation(self, endpoints): - ''' - endpoints : typing.Sequence[str] - Returns -> typing.Mapping[str, ~CharmRelation] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='AddRelation', - version=5, - params=_params) - _params['endpoints'] = endpoints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddApplicationUnitsResults) - async def AddUnits(self, application, num_units, placement): - ''' - application : str - num_units : int - placement : typing.Sequence[~Placement] - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='AddUnits', - version=5, - params=_params) - _params['application'] = application - _params['num-units'] = num_units - _params['placement'] = placement - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationCharmRelationsResults) - async def CharmRelations(self, application): - ''' - application : str - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='CharmRelations', - version=5, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Consume(self, args): - ''' - args : typing.Sequence[~ConsumeApplicationArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Consume', - version=5, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Deploy(self, applications): - ''' - applications : typing.Sequence[~ApplicationDeploy] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Deploy', - version=5, - params=_params) - _params['applications'] = applications - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Destroy(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Destroy', - version=5, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DestroyApplicationResults) - async def DestroyApplication(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~DestroyApplicationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyApplication', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyRelation(self, endpoints): - ''' - endpoints : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyRelation', - version=5, - params=_params) - _params['endpoints'] = endpoints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DestroyUnitResults) - async def DestroyUnit(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~DestroyUnitResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyUnit', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyUnits(self, unit_names): - ''' - unit_names : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyUnits', - version=5, - params=_params) - _params['unit-names'] = unit_names - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Expose(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Expose', - version=5, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationGetResults) - async def Get(self, application): - ''' - application : str - Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Get', - version=5, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def GetCharmURL(self, application): - ''' - application : str - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetCharmURL', - version=5, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(GetConstraintsResults) - async def GetConstraints(self, application): - ''' - application : str - Returns -> Value - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetConstraints', - version=5, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Set(self, application, options): - ''' - application : str - options : typing.Mapping[str, str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Set', - version=5, - params=_params) - _params['application'] = application - _params['options'] = options - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetCharm(self, application, channel, charm_url, config_settings, config_settings_yaml, force_series, force_units, resource_ids, storage_constraints): - ''' - application : str - channel : str - charm_url : str - config_settings : typing.Mapping[str, str] - config_settings_yaml : str - force_series : bool - force_units : bool - resource_ids : typing.Mapping[str, str] - storage_constraints : typing.Mapping[str, ~StorageConstraints] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetCharm', - version=5, - params=_params) - _params['application'] = application - _params['channel'] = channel - _params['charm-url'] = charm_url - _params['config-settings'] = config_settings - _params['config-settings-yaml'] = config_settings_yaml - _params['force-series'] = force_series - _params['force-units'] = force_units - _params['resource-ids'] = resource_ids - _params['storage-constraints'] = storage_constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetConstraints(self, application, constraints): - ''' - application : str - constraints : Value - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetConstraints', - version=5, - params=_params) - _params['application'] = application - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetMetricCredentials(self, creds): - ''' - creds : typing.Sequence[~ApplicationMetricCredential] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetMetricCredentials', - version=5, - params=_params) - _params['creds'] = creds - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Unexpose(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Unexpose', - version=5, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Unset(self, application, options): - ''' - application : str - options : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Unset', - version=5, - params=_params) - _params['application'] = application - _params['options'] = options - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Update(self, application, charm_url, constraints, force_charm_url, force_series, min_units, settings, settings_yaml): - ''' - application : str - charm_url : str - constraints : Value - force_charm_url : bool - force_series : bool - min_units : int - settings : typing.Mapping[str, str] - settings_yaml : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Update', - version=5, - params=_params) - _params['application'] = application - _params['charm-url'] = charm_url - _params['constraints'] = constraints - _params['force-charm-url'] = force_charm_url - _params['force-series'] = force_series - _params['min-units'] = min_units - _params['settings'] = settings - _params['settings-yaml'] = settings_yaml - reply = await self.rpc(msg) - return reply - - - -class ControllerFacade(Type): - name = 'Controller' - version = 5 - schema = {'definitions': {'AllWatcherId': {'additionalProperties': False, - 'properties': {'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'CloudCredential': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'auth-type': {'type': 'string'}, - 'redacted': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['auth-type'], - 'type': 'object'}, - 'CloudSpec': {'additionalProperties': False, - 'properties': {'cacertificates': {'items': {'type': 'string'}, - 'type': 'array'}, - 'credential': {'$ref': '#/definitions/CloudCredential'}, - 'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'name': {'type': 'string'}, - 'region': {'type': 'string'}, - 'storage-endpoint': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type', 'name'], - 'type': 'object'}, - 'CloudSpecResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/CloudSpec'}}, - 'type': 'object'}, - 'CloudSpecResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CloudSpecResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ConfigValue': {'additionalProperties': False, - 'properties': {'source': {'type': 'string'}, - 'value': {'additionalProperties': True, - 'type': 'object'}}, - 'required': ['value', 'source'], - 'type': 'object'}, - 'ControllerAPIInfoResult': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cacert': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['addresses', - 'cacert'], - 'type': 'object'}, - 'ControllerAPIInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ControllerAPIInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ControllerConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ControllerConfigSet': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'DestroyControllerArgs': {'additionalProperties': False, - 'properties': {'destroy-models': {'type': 'boolean'}, - 'destroy-storage': {'type': 'boolean'}}, - 'required': ['destroy-models'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'HostedModelConfig': {'additionalProperties': False, - 'properties': {'cloud-spec': {'$ref': '#/definitions/CloudSpec'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}, - 'owner': {'type': 'string'}}, - 'required': ['name', 'owner'], - 'type': 'object'}, - 'HostedModelConfigsResults': {'additionalProperties': False, - 'properties': {'models': {'items': {'$ref': '#/definitions/HostedModelConfig'}, - 'type': 'array'}}, - 'required': ['models'], - 'type': 'object'}, - 'InitiateMigrationArgs': {'additionalProperties': False, - 'properties': {'specs': {'items': {'$ref': '#/definitions/MigrationSpec'}, - 'type': 'array'}}, - 'required': ['specs'], - 'type': 'object'}, - 'InitiateMigrationResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'migration-id': {'type': 'string'}, - 'model-tag': {'type': 'string'}}, - 'required': ['model-tag', - 'migration-id'], - 'type': 'object'}, - 'InitiateMigrationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/InitiateMigrationResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineHardware': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'MigrationSpec': {'additionalProperties': False, - 'properties': {'model-tag': {'type': 'string'}, - 'target-info': {'$ref': '#/definitions/MigrationTargetInfo'}}, - 'required': ['model-tag', 'target-info'], - 'type': 'object'}, - 'MigrationTargetInfo': {'additionalProperties': False, - 'properties': {'addrs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'auth-tag': {'type': 'string'}, - 'ca-cert': {'type': 'string'}, - 'controller-tag': {'type': 'string'}, - 'macaroons': {'type': 'string'}, - 'password': {'type': 'string'}}, - 'required': ['controller-tag', - 'addrs', - 'ca-cert', - 'auth-tag'], - 'type': 'object'}, - 'Model': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'type': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', 'uuid', 'type', 'owner-tag'], - 'type': 'object'}, - 'ModelBlockInfo': {'additionalProperties': False, - 'properties': {'blocks': {'items': {'type': 'string'}, - 'type': 'array'}, - 'model-uuid': {'type': 'string'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}}, - 'required': ['name', - 'model-uuid', - 'owner-tag', - 'blocks'], - 'type': 'object'}, - 'ModelBlockInfoList': {'additionalProperties': False, - 'properties': {'models': {'items': {'$ref': '#/definitions/ModelBlockInfo'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ModelConfigResults': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelFilesystemInfo': {'additionalProperties': False, - 'properties': {'detachable': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'message': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['id'], - 'type': 'object'}, - 'ModelMachineInfo': {'additionalProperties': False, - 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'}, - 'has-vote': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'instance-id': {'type': 'string'}, - 'message': {'type': 'string'}, - 'status': {'type': 'string'}, - 'wants-vote': {'type': 'boolean'}}, - 'required': ['id'], - 'type': 'object'}, - 'ModelStatus': {'additionalProperties': False, - 'properties': {'application-count': {'type': 'integer'}, - 'error': {'$ref': '#/definitions/Error'}, - 'filesystems': {'items': {'$ref': '#/definitions/ModelFilesystemInfo'}, - 'type': 'array'}, - 'hosted-machine-count': {'type': 'integer'}, - 'life': {'type': 'string'}, - 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, - 'type': 'array'}, - 'model-tag': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'volumes': {'items': {'$ref': '#/definitions/ModelVolumeInfo'}, - 'type': 'array'}}, - 'required': ['model-tag', - 'life', - 'hosted-machine-count', - 'application-count', - 'owner-tag'], - 'type': 'object'}, - 'ModelStatusResults': {'additionalProperties': False, - 'properties': {'models': {'items': {'$ref': '#/definitions/ModelStatus'}, - 'type': 'array'}}, - 'required': ['models'], - 'type': 'object'}, - 'ModelTag': {'additionalProperties': False, 'type': 'object'}, - 'ModelVolumeInfo': {'additionalProperties': False, - 'properties': {'detachable': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'message': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['id'], - 'type': 'object'}, - 'ModifyControllerAccess': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'action': {'type': 'string'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag', - 'action', - 'access'], - 'type': 'object'}, - 'ModifyControllerAccessRequest': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyControllerAccess'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'RemoveBlocksArgs': {'additionalProperties': False, - 'properties': {'all': {'type': 'boolean'}}, - 'required': ['all'], - 'type': 'object'}, - 'UserAccess': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag', 'access'], - 'type': 'object'}, - 'UserAccessResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/UserAccess'}}, - 'type': 'object'}, - 'UserAccessResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/UserAccessResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'UserModel': {'additionalProperties': False, - 'properties': {'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'model': {'$ref': '#/definitions/Model'}}, - 'required': ['model', 'last-connection'], - 'type': 'object'}, - 'UserModelList': {'additionalProperties': False, - 'properties': {'user-models': {'items': {'$ref': '#/definitions/UserModel'}, - 'type': 'array'}}, - 'required': ['user-models'], - 'type': 'object'}}, - 'properties': {'AllModels': {'properties': {'Result': {'$ref': '#/definitions/UserModelList'}}, - 'type': 'object'}, - 'CloudSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/CloudSpecResults'}}, - 'type': 'object'}, - 'ConfigSet': {'properties': {'Params': {'$ref': '#/definitions/ControllerConfigSet'}}, - 'type': 'object'}, - 'ControllerAPIInfoForModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ControllerAPIInfoResults'}}, - 'type': 'object'}, - 'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}}, - 'type': 'object'}, - 'DestroyController': {'properties': {'Params': {'$ref': '#/definitions/DestroyControllerArgs'}}, - 'type': 'object'}, - 'GetCloudSpec': {'properties': {'Params': {'$ref': '#/definitions/ModelTag'}, - 'Result': {'$ref': '#/definitions/CloudSpecResult'}}, - 'type': 'object'}, - 'GetControllerAccess': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/UserAccessResults'}}, - 'type': 'object'}, - 'HostedModelConfigs': {'properties': {'Result': {'$ref': '#/definitions/HostedModelConfigsResults'}}, - 'type': 'object'}, - 'InitiateMigration': {'properties': {'Params': {'$ref': '#/definitions/InitiateMigrationArgs'}, - 'Result': {'$ref': '#/definitions/InitiateMigrationResults'}}, - 'type': 'object'}, - 'ListBlockedModels': {'properties': {'Result': {'$ref': '#/definitions/ModelBlockInfoList'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}}, - 'type': 'object'}, - 'ModelStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ModelStatusResults'}}, - 'type': 'object'}, - 'ModifyControllerAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyControllerAccessRequest'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RemoveBlocks': {'properties': {'Params': {'$ref': '#/definitions/RemoveBlocksArgs'}}, - 'type': 'object'}, - 'WatchAllModels': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherId'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(UserModelList) - async def AllModels(self): - ''' - - Returns -> typing.Sequence[~UserModel] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='AllModels', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudSpecResults) - async def CloudSpec(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~CloudSpecResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='CloudSpec', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ConfigSet(self, config): - ''' - config : typing.Mapping[str, typing.Any] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ConfigSet', - version=5, - params=_params) - _params['config'] = config - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerAPIInfoResults) - async def ControllerAPIInfoForModels(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ControllerAPIInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ControllerAPIInfoForModels', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerConfigResult) - async def ControllerConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ControllerConfig', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyController(self, destroy_models): - ''' - destroy_models : bool - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='DestroyController', - version=5, - params=_params) - _params['destroy-models'] = destroy_models - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudSpecResult) - async def GetCloudSpec(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='GetCloudSpec', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UserAccessResults) - async def GetControllerAccess(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~UserAccessResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='GetControllerAccess', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(HostedModelConfigsResults) - async def HostedModelConfigs(self): - ''' - - Returns -> typing.Sequence[~HostedModelConfig] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='HostedModelConfigs', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(InitiateMigrationResults) - async def InitiateMigration(self, specs): - ''' - specs : typing.Sequence[~MigrationSpec] - Returns -> typing.Sequence[~InitiateMigrationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='InitiateMigration', - version=5, - params=_params) - _params['specs'] = specs - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelBlockInfoList) - async def ListBlockedModels(self): - ''' - - Returns -> typing.Sequence[~ModelBlockInfo] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ListBlockedModels', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResults) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, ~ConfigValue] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ModelConfig', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelStatusResults) - async def ModelStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ModelStatus] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ModelStatus', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ModifyControllerAccess(self, changes): - ''' - changes : typing.Sequence[~ModifyControllerAccess] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ModifyControllerAccess', - version=5, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def RemoveBlocks(self, all_): - ''' - all_ : bool - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='RemoveBlocks', - version=5, - params=_params) - _params['all'] = all_ - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AllWatcherId) - async def WatchAllModels(self): - ''' - - Returns -> str - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='WatchAllModels', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class FirewallerFacade(Type): - name = 'Firewaller' - version = 5 - schema = {'definitions': {'BoolResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'boolean'}}, - 'required': ['result'], - 'type': 'object'}, - 'BoolResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'CloudCredential': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'auth-type': {'type': 'string'}, - 'redacted': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['auth-type'], - 'type': 'object'}, - 'CloudSpec': {'additionalProperties': False, - 'properties': {'cacertificates': {'items': {'type': 'string'}, - 'type': 'array'}, - 'credential': {'$ref': '#/definitions/CloudCredential'}, - 'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'name': {'type': 'string'}, - 'region': {'type': 'string'}, - 'storage-endpoint': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type', 'name'], - 'type': 'object'}, - 'CloudSpecResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/CloudSpec'}}, - 'type': 'object'}, - 'CloudSpecResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CloudSpecResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ControllerAPIInfoResult': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cacert': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['addresses', - 'cacert'], - 'type': 'object'}, - 'ControllerAPIInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ControllerAPIInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ControllerConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'FirewallRule': {'additionalProperties': False, - 'properties': {'known-service': {'type': 'string'}, - 'whitelist-cidrs': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['known-service'], - 'type': 'object'}, - 'KnownServiceArgs': {'additionalProperties': False, - 'properties': {'known-services': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['known-services'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ListFirewallRulesResults': {'additionalProperties': False, - 'properties': {'Rules': {'items': {'$ref': '#/definitions/FirewallRule'}, - 'type': 'array'}}, - 'required': ['Rules'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MacaroonResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/Macaroon'}}, - 'type': 'object'}, - 'MacaroonResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MacaroonResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'MachinePortRange': {'additionalProperties': False, - 'properties': {'port-range': {'$ref': '#/definitions/PortRange'}, - 'relation-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['unit-tag', - 'relation-tag', - 'port-range'], - 'type': 'object'}, - 'MachinePorts': {'additionalProperties': False, - 'properties': {'machine-tag': {'type': 'string'}, - 'subnet-tag': {'type': 'string'}}, - 'required': ['machine-tag', 'subnet-tag'], - 'type': 'object'}, - 'MachinePortsParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/MachinePorts'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'MachinePortsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'ports': {'items': {'$ref': '#/definitions/MachinePortRange'}, - 'type': 'array'}}, - 'required': ['ports'], - 'type': 'object'}, - 'MachinePortsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MachinePortsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelTag': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'PortRange': {'additionalProperties': False, - 'properties': {'from-port': {'type': 'integer'}, - 'protocol': {'type': 'string'}, - 'to-port': {'type': 'integer'}}, - 'required': ['from-port', 'to-port', 'protocol'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'AreManuallyProvisioned': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/BoolResults'}}, - 'type': 'object'}, - 'CloudSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/CloudSpecResults'}}, - 'type': 'object'}, - 'ControllerAPIInfoForModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ControllerAPIInfoResults'}}, - 'type': 'object'}, - 'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}}, - 'type': 'object'}, - 'FirewallRules': {'properties': {'Params': {'$ref': '#/definitions/KnownServiceArgs'}, - 'Result': {'$ref': '#/definitions/ListFirewallRulesResults'}}, - 'type': 'object'}, - 'GetAssignedMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'GetCloudSpec': {'properties': {'Params': {'$ref': '#/definitions/ModelTag'}, - 'Result': {'$ref': '#/definitions/CloudSpecResult'}}, - 'type': 'object'}, - 'GetExposed': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/BoolResults'}}, - 'type': 'object'}, - 'GetMachineActiveSubnets': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsResults'}}, - 'type': 'object'}, - 'GetMachinePorts': {'properties': {'Params': {'$ref': '#/definitions/MachinePortsParams'}, - 'Result': {'$ref': '#/definitions/MachinePortsResults'}}, - 'type': 'object'}, - 'InstanceId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'MacaroonForRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MacaroonResults'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'SetRelationsStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchEgressAddressesForRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchIngressAddressesForRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchModelMachines': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}, - 'WatchOpenedPorts': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(BoolResults) - async def AreManuallyProvisioned(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~BoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='AreManuallyProvisioned', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudSpecResults) - async def CloudSpec(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~CloudSpecResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='CloudSpec', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerAPIInfoResults) - async def ControllerAPIInfoForModels(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ControllerAPIInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='ControllerAPIInfoForModels', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerConfigResult) - async def ControllerConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='ControllerConfig', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ListFirewallRulesResults) - async def FirewallRules(self, known_services): - ''' - known_services : typing.Sequence[str] - Returns -> typing.Sequence[~FirewallRule] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='FirewallRules', - version=5, - params=_params) - _params['known-services'] = known_services - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def GetAssignedMachine(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='GetAssignedMachine', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudSpecResult) - async def GetCloudSpec(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='GetCloudSpec', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BoolResults) - async def GetExposed(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~BoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='GetExposed', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsResults) - async def GetMachineActiveSubnets(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='GetMachineActiveSubnets', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachinePortsResults) - async def GetMachinePorts(self, params): - ''' - params : typing.Sequence[~MachinePorts] - Returns -> typing.Sequence[~MachinePortsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='GetMachinePorts', - version=5, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def InstanceId(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='InstanceId', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='Life', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MacaroonResults) - async def MacaroonForRelations(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MacaroonResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='MacaroonForRelations', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='ModelConfig', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetRelationsStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='SetRelationsStatus', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def Watch(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='Watch', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchEgressAddressesForRelations(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='WatchEgressAddressesForRelations', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='WatchForModelConfigChanges', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchIngressAddressesForRelations(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='WatchIngressAddressesForRelations', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchModelMachines(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='WatchModelMachines', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchOpenedPorts(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='WatchOpenedPorts', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchUnits(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='WatchUnits', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class MachineManagerFacade(Type): - name = 'MachineManager' - version = 5 - schema = {'definitions': {'AddMachineParams': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, - 'type': 'array'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'container-type': {'type': 'string'}, - 'disks': {'items': {'$ref': '#/definitions/Constraints'}, - 'type': 'array'}, - 'hardware-characteristics': {'$ref': '#/definitions/HardwareCharacteristics'}, - 'instance-id': {'type': 'string'}, - 'jobs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'nonce': {'type': 'string'}, - 'parent-id': {'type': 'string'}, - 'placement': {'$ref': '#/definitions/Placement'}, - 'series': {'type': 'string'}}, - 'required': ['series', - 'constraints', - 'jobs', - 'parent-id', - 'container-type', - 'instance-id', - 'nonce', - 'hardware-characteristics', - 'addresses'], - 'type': 'object'}, - 'AddMachines': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/AddMachineParams'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'AddMachinesResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'machine': {'type': 'string'}}, - 'required': ['machine'], - 'type': 'object'}, - 'AddMachinesResults': {'additionalProperties': False, - 'properties': {'machines': {'items': {'$ref': '#/definitions/AddMachinesResult'}, - 'type': 'array'}}, - 'required': ['machines'], - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'Constraints': {'additionalProperties': False, - 'properties': {'Count': {'type': 'integer'}, - 'Pool': {'type': 'string'}, - 'Size': {'type': 'integer'}}, - 'required': ['Pool', 'Size', 'Count'], - 'type': 'object'}, - 'DestroyMachineInfo': {'additionalProperties': False, - 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'destroyed-units': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyMachineResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'$ref': '#/definitions/DestroyMachineInfo'}}, - 'type': 'object'}, - 'DestroyMachineResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyMachineResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyMachinesParams': {'additionalProperties': False, - 'properties': {'force': {'type': 'boolean'}, - 'keep': {'type': 'boolean'}, - 'machine-tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['machine-tags'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'HardwareCharacteristics': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cpu-cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'InstanceType': {'additionalProperties': False, - 'properties': {'arches': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cost': {'type': 'integer'}, - 'cpu-cores': {'type': 'integer'}, - 'deprecated': {'type': 'boolean'}, - 'memory': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'root-disk': {'type': 'integer'}, - 'virt-type': {'type': 'string'}}, - 'required': ['arches', 'cpu-cores', 'memory'], - 'type': 'object'}, - 'InstanceTypesResult': {'additionalProperties': False, - 'properties': {'cost-currency': {'type': 'string'}, - 'cost-divisor': {'type': 'integer'}, - 'cost-unit': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'instance-types': {'items': {'$ref': '#/definitions/InstanceType'}, - 'type': 'array'}}, - 'type': 'object'}, - 'InstanceTypesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/InstanceTypesResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelInstanceTypesConstraint': {'additionalProperties': False, - 'properties': {'value': {'$ref': '#/definitions/Value'}}, - 'type': 'object'}, - 'ModelInstanceTypesConstraints': {'additionalProperties': False, - 'properties': {'constraints': {'items': {'$ref': '#/definitions/ModelInstanceTypesConstraint'}, - 'type': 'array'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Placement': {'additionalProperties': False, - 'properties': {'directive': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['scope', 'directive'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UpdateSeriesArg': {'additionalProperties': False, - 'properties': {'force': {'type': 'boolean'}, - 'series': {'type': 'string'}, - 'tag': {'$ref': '#/definitions/Entity'}}, - 'required': ['tag', 'force', 'series'], - 'type': 'object'}, - 'UpdateSeriesArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/UpdateSeriesArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'UpgradeSeriesNotificationParam': {'additionalProperties': False, - 'properties': {'entity': {'$ref': '#/definitions/Entity'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['entity', - 'watcher-id'], - 'type': 'object'}, - 'UpgradeSeriesNotificationParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/UpgradeSeriesNotificationParam'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'UpgradeSeriesUnitsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'unit-names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['unit-names'], - 'type': 'object'}, - 'UpgradeSeriesUnitsResults': {'additionalProperties': False, - 'properties': {'Results': {'items': {'$ref': '#/definitions/UpgradeSeriesUnitsResult'}, - 'type': 'array'}}, - 'required': ['Results'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'AddMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, - 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, - 'type': 'object'}, - 'DestroyMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/DestroyMachineResults'}}, - 'type': 'object'}, - 'DestroyMachineWithParams': {'properties': {'Params': {'$ref': '#/definitions/DestroyMachinesParams'}, - 'Result': {'$ref': '#/definitions/DestroyMachineResults'}}, - 'type': 'object'}, - 'ForceDestroyMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/DestroyMachineResults'}}, - 'type': 'object'}, - 'GetUpgradeSeriesMessages': {'properties': {'Params': {'$ref': '#/definitions/UpgradeSeriesNotificationParams'}, - 'Result': {'$ref': '#/definitions/StringsResults'}}, - 'type': 'object'}, - 'InstanceTypes': {'properties': {'Params': {'$ref': '#/definitions/ModelInstanceTypesConstraints'}, - 'Result': {'$ref': '#/definitions/InstanceTypesResults'}}, - 'type': 'object'}, - 'UpgradeSeriesComplete': {'properties': {'Params': {'$ref': '#/definitions/UpdateSeriesArg'}, - 'Result': {'$ref': '#/definitions/ErrorResult'}}, - 'type': 'object'}, - 'UpgradeSeriesPrepare': {'properties': {'Params': {'$ref': '#/definitions/UpdateSeriesArg'}, - 'Result': {'$ref': '#/definitions/ErrorResult'}}, - 'type': 'object'}, - 'UpgradeSeriesValidate': {'properties': {'Params': {'$ref': '#/definitions/UpdateSeriesArgs'}, - 'Result': {'$ref': '#/definitions/UpgradeSeriesUnitsResults'}}, - 'type': 'object'}, - 'WatchUpgradeSeriesNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddMachinesResults) - async def AddMachines(self, params): - ''' - params : typing.Sequence[~AddMachineParams] - Returns -> typing.Sequence[~AddMachinesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='AddMachines', - version=5, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DestroyMachineResults) - async def DestroyMachine(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~DestroyMachineResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='DestroyMachine', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DestroyMachineResults) - async def DestroyMachineWithParams(self, force, keep, machine_tags): - ''' - force : bool - keep : bool - machine_tags : typing.Sequence[str] - Returns -> typing.Sequence[~DestroyMachineResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='DestroyMachineWithParams', - version=5, - params=_params) - _params['force'] = force - _params['keep'] = keep - _params['machine-tags'] = machine_tags - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DestroyMachineResults) - async def ForceDestroyMachine(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~DestroyMachineResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='ForceDestroyMachine', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsResults) - async def GetUpgradeSeriesMessages(self, params): - ''' - params : typing.Sequence[~UpgradeSeriesNotificationParam] - Returns -> typing.Sequence[~StringsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='GetUpgradeSeriesMessages', - version=5, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(InstanceTypesResults) - async def InstanceTypes(self, constraints): - ''' - constraints : typing.Sequence[~ModelInstanceTypesConstraint] - Returns -> typing.Sequence[~InstanceTypesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='InstanceTypes', - version=5, - params=_params) - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResult) - async def UpgradeSeriesComplete(self, force, series, tag): - ''' - force : bool - series : str - tag : Entity - Returns -> Error - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='UpgradeSeriesComplete', - version=5, - params=_params) - _params['force'] = force - _params['series'] = series - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResult) - async def UpgradeSeriesPrepare(self, force, series, tag): - ''' - force : bool - series : str - tag : Entity - Returns -> Error - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='UpgradeSeriesPrepare', - version=5, - params=_params) - _params['force'] = force - _params['series'] = series - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UpgradeSeriesUnitsResults) - async def UpgradeSeriesValidate(self, args): - ''' - args : typing.Sequence[~UpdateSeriesArg] - Returns -> typing.Sequence[~UpgradeSeriesUnitsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='UpgradeSeriesValidate', - version=5, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchUpgradeSeriesNotifications(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='WatchUpgradeSeriesNotifications', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class ModelManagerFacade(Type): - name = 'ModelManager' - version = 5 - schema = {'definitions': {'ChangeModelCredentialParams': {'additionalProperties': False, - 'properties': {'credential-tag': {'type': 'string'}, - 'model-tag': {'type': 'string'}}, - 'required': ['model-tag', - 'credential-tag'], - 'type': 'object'}, - 'ChangeModelCredentialsParams': {'additionalProperties': False, - 'properties': {'model-credentials': {'items': {'$ref': '#/definitions/ChangeModelCredentialParams'}, - 'type': 'array'}}, - 'required': ['model-credentials'], - 'type': 'object'}, - 'DestroyModelParams': {'additionalProperties': False, - 'properties': {'destroy-storage': {'type': 'boolean'}, - 'model-tag': {'type': 'string'}}, - 'required': ['model-tag'], - 'type': 'object'}, - 'DestroyModelsParams': {'additionalProperties': False, - 'properties': {'models': {'items': {'$ref': '#/definitions/DestroyModelParams'}, - 'type': 'array'}}, - 'required': ['models'], - 'type': 'object'}, - 'DumpModelRequest': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'simplified': {'type': 'boolean'}}, - 'required': ['entities', 'simplified'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'info', 'since'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineHardware': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'MapResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['result'], - 'type': 'object'}, - 'MapResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MapResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Model': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'type': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', 'uuid', 'type', 'owner-tag'], - 'type': 'object'}, - 'ModelCreateArgs': {'additionalProperties': False, - 'properties': {'cloud-tag': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'credential': {'type': 'string'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'region': {'type': 'string'}}, - 'required': ['name', 'owner-tag'], - 'type': 'object'}, - 'ModelDefaultValues': {'additionalProperties': False, - 'properties': {'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelDefaults': {'additionalProperties': False, - 'properties': {'controller': {'additionalProperties': True, - 'type': 'object'}, - 'default': {'additionalProperties': True, - 'type': 'object'}, - 'regions': {'items': {'$ref': '#/definitions/RegionDefaults'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ModelDefaultsResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ModelDefaults'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelEntityCount': {'additionalProperties': False, - 'properties': {'count': {'type': 'integer'}, - 'entity': {'type': 'string'}}, - 'required': ['entity', 'count'], - 'type': 'object'}, - 'ModelFilesystemInfo': {'additionalProperties': False, - 'properties': {'detachable': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'message': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['id'], - 'type': 'object'}, - 'ModelInfo': {'additionalProperties': False, - 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, - 'cloud-credential-tag': {'type': 'string'}, - 'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'controller-uuid': {'type': 'string'}, - 'default-series': {'type': 'string'}, - 'life': {'type': 'string'}, - 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, - 'type': 'array'}, - 'migration': {'$ref': '#/definitions/ModelMigrationStatus'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'provider-type': {'type': 'string'}, - 'sla': {'$ref': '#/definitions/ModelSLAInfo'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'type': {'type': 'string'}, - 'users': {'items': {'$ref': '#/definitions/ModelUserInfo'}, - 'type': 'array'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', - 'type', - 'uuid', - 'controller-uuid', - 'cloud-tag', - 'owner-tag', - 'life', - 'users', - 'machines', - 'sla', - 'agent-version'], - 'type': 'object'}, - 'ModelInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ModelInfo'}}, - 'type': 'object'}, - 'ModelInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ModelInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ModelMachineInfo': {'additionalProperties': False, - 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'}, - 'has-vote': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'instance-id': {'type': 'string'}, - 'message': {'type': 'string'}, - 'status': {'type': 'string'}, - 'wants-vote': {'type': 'boolean'}}, - 'required': ['id'], - 'type': 'object'}, - 'ModelMigrationStatus': {'additionalProperties': False, - 'properties': {'end': {'format': 'date-time', - 'type': 'string'}, - 'start': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'start'], - 'type': 'object'}, - 'ModelSLAInfo': {'additionalProperties': False, - 'properties': {'level': {'type': 'string'}, - 'owner': {'type': 'string'}}, - 'required': ['level', 'owner'], - 'type': 'object'}, - 'ModelStatus': {'additionalProperties': False, - 'properties': {'application-count': {'type': 'integer'}, - 'error': {'$ref': '#/definitions/Error'}, - 'filesystems': {'items': {'$ref': '#/definitions/ModelFilesystemInfo'}, - 'type': 'array'}, - 'hosted-machine-count': {'type': 'integer'}, - 'life': {'type': 'string'}, - 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, - 'type': 'array'}, - 'model-tag': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'volumes': {'items': {'$ref': '#/definitions/ModelVolumeInfo'}, - 'type': 'array'}}, - 'required': ['model-tag', - 'life', - 'hosted-machine-count', - 'application-count', - 'owner-tag'], - 'type': 'object'}, - 'ModelStatusResults': {'additionalProperties': False, - 'properties': {'models': {'items': {'$ref': '#/definitions/ModelStatus'}, - 'type': 'array'}}, - 'required': ['models'], - 'type': 'object'}, - 'ModelSummariesRequest': {'additionalProperties': False, - 'properties': {'all': {'type': 'boolean'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag'], - 'type': 'object'}, - 'ModelSummary': {'additionalProperties': False, - 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, - 'cloud-credential-tag': {'type': 'string'}, - 'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'controller-uuid': {'type': 'string'}, - 'counts': {'items': {'$ref': '#/definitions/ModelEntityCount'}, - 'type': 'array'}, - 'default-series': {'type': 'string'}, - 'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'life': {'type': 'string'}, - 'migration': {'$ref': '#/definitions/ModelMigrationStatus'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'provider-type': {'type': 'string'}, - 'sla': {'$ref': '#/definitions/ModelSLAInfo'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'type': {'type': 'string'}, - 'user-access': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', - 'uuid', - 'type', - 'controller-uuid', - 'cloud-tag', - 'owner-tag', - 'life', - 'user-access', - 'last-connection', - 'counts', - 'sla', - 'agent-version'], - 'type': 'object'}, - 'ModelSummaryResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ModelSummary'}}, - 'type': 'object'}, - 'ModelSummaryResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ModelSummaryResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ModelUnsetKeys': {'additionalProperties': False, - 'properties': {'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'keys': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['keys'], - 'type': 'object'}, - 'ModelUserInfo': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'display-name': {'type': 'string'}, - 'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'user': {'type': 'string'}}, - 'required': ['user', - 'display-name', - 'last-connection', - 'access'], - 'type': 'object'}, - 'ModelVolumeInfo': {'additionalProperties': False, - 'properties': {'detachable': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'message': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['id'], - 'type': 'object'}, - 'ModifyModelAccess': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'action': {'type': 'string'}, - 'model-tag': {'type': 'string'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag', - 'action', - 'access', - 'model-tag'], - 'type': 'object'}, - 'ModifyModelAccessRequest': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyModelAccess'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'RegionDefaults': {'additionalProperties': False, - 'properties': {'region-name': {'type': 'string'}, - 'value': {'additionalProperties': True, - 'type': 'object'}}, - 'required': ['region-name', 'value'], - 'type': 'object'}, - 'SetModelDefaults': {'additionalProperties': False, - 'properties': {'config': {'items': {'$ref': '#/definitions/ModelDefaultValues'}, - 'type': 'array'}}, - 'required': ['config'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UnsetModelDefaults': {'additionalProperties': False, - 'properties': {'keys': {'items': {'$ref': '#/definitions/ModelUnsetKeys'}, - 'type': 'array'}}, - 'required': ['keys'], - 'type': 'object'}, - 'UserModel': {'additionalProperties': False, - 'properties': {'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'model': {'$ref': '#/definitions/Model'}}, - 'required': ['model', 'last-connection'], - 'type': 'object'}, - 'UserModelList': {'additionalProperties': False, - 'properties': {'user-models': {'items': {'$ref': '#/definitions/UserModel'}, - 'type': 'array'}}, - 'required': ['user-models'], - 'type': 'object'}}, - 'properties': {'ChangeModelCredential': {'properties': {'Params': {'$ref': '#/definitions/ChangeModelCredentialsParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'CreateModel': {'properties': {'Params': {'$ref': '#/definitions/ModelCreateArgs'}, - 'Result': {'$ref': '#/definitions/ModelInfo'}}, - 'type': 'object'}, - 'DestroyModels': {'properties': {'Params': {'$ref': '#/definitions/DestroyModelsParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'DumpModels': {'properties': {'Params': {'$ref': '#/definitions/DumpModelRequest'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'DumpModelsDB': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MapResults'}}, - 'type': 'object'}, - 'ListModelSummaries': {'properties': {'Params': {'$ref': '#/definitions/ModelSummariesRequest'}, - 'Result': {'$ref': '#/definitions/ModelSummaryResults'}}, - 'type': 'object'}, - 'ListModels': {'properties': {'Params': {'$ref': '#/definitions/Entity'}, - 'Result': {'$ref': '#/definitions/UserModelList'}}, - 'type': 'object'}, - 'ModelDefaults': {'properties': {'Result': {'$ref': '#/definitions/ModelDefaultsResult'}}, - 'type': 'object'}, - 'ModelInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ModelInfoResults'}}, - 'type': 'object'}, - 'ModelStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ModelStatusResults'}}, - 'type': 'object'}, - 'ModifyModelAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyModelAccessRequest'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetModelDefaults': {'properties': {'Params': {'$ref': '#/definitions/SetModelDefaults'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UnsetModelDefaults': {'properties': {'Params': {'$ref': '#/definitions/UnsetModelDefaults'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def ChangeModelCredential(self, model_credentials): - ''' - model_credentials : typing.Sequence[~ChangeModelCredentialParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ChangeModelCredential', - version=5, - params=_params) - _params['model-credentials'] = model_credentials - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelInfo) - async def CreateModel(self, cloud_tag, config, credential, name, owner_tag, region): - ''' - cloud_tag : str - config : typing.Mapping[str, typing.Any] - credential : str - name : str - owner_tag : str - region : str - Returns -> typing.Union[_ForwardRef('Number'), str, typing.Sequence[~ModelMachineInfo], _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence[~ModelUserInfo]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='CreateModel', - version=5, - params=_params) - _params['cloud-tag'] = cloud_tag - _params['config'] = config - _params['credential'] = credential - _params['name'] = name - _params['owner-tag'] = owner_tag - _params['region'] = region - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DestroyModels(self, models): - ''' - models : typing.Sequence[~DestroyModelParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='DestroyModels', - version=5, - params=_params) - _params['models'] = models - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def DumpModels(self, entities, simplified): - ''' - entities : typing.Sequence[~Entity] - simplified : bool - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='DumpModels', - version=5, - params=_params) - _params['entities'] = entities - _params['simplified'] = simplified - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MapResults) - async def DumpModelsDB(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MapResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='DumpModelsDB', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelSummaryResults) - async def ListModelSummaries(self, all_, user_tag): - ''' - all_ : bool - user_tag : str - Returns -> typing.Sequence[~ModelSummaryResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ListModelSummaries', - version=5, - params=_params) - _params['all'] = all_ - _params['user-tag'] = user_tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UserModelList) - async def ListModels(self, tag): - ''' - tag : str - Returns -> typing.Sequence[~UserModel] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ListModels', - version=5, - params=_params) - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelDefaultsResult) - async def ModelDefaults(self): - ''' - - Returns -> typing.Mapping[str, ~ModelDefaults] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModelDefaults', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelInfoResults) - async def ModelInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ModelInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModelInfo', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelStatusResults) - async def ModelStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ModelStatus] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModelStatus', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ModifyModelAccess(self, changes): - ''' - changes : typing.Sequence[~ModifyModelAccess] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModifyModelAccess', - version=5, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetModelDefaults(self, config): - ''' - config : typing.Sequence[~ModelDefaultValues] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='SetModelDefaults', - version=5, - params=_params) - _params['config'] = config - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UnsetModelDefaults(self, keys): - ''' - keys : typing.Sequence[~ModelUnsetKeys] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='UnsetModelDefaults', - version=5, - params=_params) - _params['keys'] = keys - reply = await self.rpc(msg) - return reply - - - -class UniterFacade(Type): - name = 'Uniter' - version = 5 - schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, - 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, - 'type': 'array'}, - 'type': 'array'}}, - 'required': ['servers'], - 'type': 'object'}, - 'Action': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'parameters': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'receiver': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'receiver', 'name'], - 'type': 'object'}, - 'ActionExecutionResult': {'additionalProperties': False, - 'properties': {'action-tag': {'type': 'string'}, - 'message': {'type': 'string'}, - 'results': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'status': {'type': 'string'}}, - 'required': ['action-tag', 'status'], - 'type': 'object'}, - 'ActionExecutionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ActionExecutionResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ActionResult': {'additionalProperties': False, - 'properties': {'action': {'$ref': '#/definitions/Action'}, - 'completed': {'format': 'date-time', - 'type': 'string'}, - 'enqueued': {'format': 'date-time', - 'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'message': {'type': 'string'}, - 'output': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'started': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'type': 'object'}, - 'ActionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'ApplicationStatusResult': {'additionalProperties': False, - 'properties': {'application': {'$ref': '#/definitions/StatusResult'}, - 'error': {'$ref': '#/definitions/Error'}, - 'units': {'patternProperties': {'.*': {'$ref': '#/definitions/StatusResult'}}, - 'type': 'object'}}, - 'required': ['application', - 'units'], - 'type': 'object'}, - 'ApplicationStatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationStatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'BoolResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'boolean'}}, - 'required': ['result'], - 'type': 'object'}, - 'BoolResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'BytesResult': {'additionalProperties': False, - 'properties': {'result': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['result'], - 'type': 'object'}, - 'CharmRelation': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'optional': {'type': 'boolean'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'optional', - 'limit', - 'scope'], - 'type': 'object'}, - 'CharmURL': {'additionalProperties': False, - 'properties': {'url': {'type': 'string'}}, - 'required': ['url'], - 'type': 'object'}, - 'CharmURLs': {'additionalProperties': False, - 'properties': {'urls': {'items': {'$ref': '#/definitions/CharmURL'}, - 'type': 'array'}}, - 'required': ['urls'], - 'type': 'object'}, - 'ConfigSettingsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'settings': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['settings'], - 'type': 'object'}, - 'ConfigSettingsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ConfigSettingsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Endpoint': {'additionalProperties': False, - 'properties': {'application-name': {'type': 'string'}, - 'relation': {'$ref': '#/definitions/CharmRelation'}}, - 'required': ['application-name', 'relation'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesCharmURL': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityCharmURL'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesPortRanges': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityPortRange'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityCharmURL': {'additionalProperties': False, - 'properties': {'charm-url': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'charm-url'], - 'type': 'object'}, - 'EntityPortRange': {'additionalProperties': False, - 'properties': {'from-port': {'type': 'integer'}, - 'protocol': {'type': 'string'}, - 'tag': {'type': 'string'}, - 'to-port': {'type': 'integer'}}, - 'required': ['tag', - 'protocol', - 'from-port', - 'to-port'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'EntityWorkloadVersion': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}, - 'workload-version': {'type': 'string'}}, - 'required': ['tag', - 'workload-version'], - 'type': 'object'}, - 'EntityWorkloadVersions': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityWorkloadVersion'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GetLeadershipSettingsBulkResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/GetLeadershipSettingsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GetLeadershipSettingsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['settings'], - 'type': 'object'}, - 'HostPort': {'additionalProperties': False, - 'properties': {'Address': {'$ref': '#/definitions/Address'}, - 'port': {'type': 'integer'}}, - 'required': ['Address', 'port'], - 'type': 'object'}, - 'IntResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'integer'}}, - 'required': ['result'], - 'type': 'object'}, - 'IntResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/IntResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'InterfaceAddress': {'additionalProperties': False, - 'properties': {'cidr': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'cidr'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachinePortRange': {'additionalProperties': False, - 'properties': {'port-range': {'$ref': '#/definitions/PortRange'}, - 'relation-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['unit-tag', - 'relation-tag', - 'port-range'], - 'type': 'object'}, - 'MachinePortsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'ports': {'items': {'$ref': '#/definitions/MachinePortRange'}, - 'type': 'array'}}, - 'required': ['ports'], - 'type': 'object'}, - 'MachinePortsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MachinePortsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'MergeLeadershipSettingsBulkParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/MergeLeadershipSettingsParam'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'MergeLeadershipSettingsParam': {'additionalProperties': False, - 'properties': {'application-tag': {'type': 'string'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['application-tag', - 'settings'], - 'type': 'object'}, - 'MeterStatusResult': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'info': {'type': 'string'}}, - 'required': ['code', 'info'], - 'type': 'object'}, - 'MeterStatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MeterStatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Metric': {'additionalProperties': False, - 'properties': {'key': {'type': 'string'}, - 'time': {'format': 'date-time', - 'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['key', 'value', 'time'], - 'type': 'object'}, - 'MetricBatch': {'additionalProperties': False, - 'properties': {'charm-url': {'type': 'string'}, - 'created': {'format': 'date-time', - 'type': 'string'}, - 'metrics': {'items': {'$ref': '#/definitions/Metric'}, - 'type': 'array'}, - 'uuid': {'type': 'string'}}, - 'required': ['uuid', - 'charm-url', - 'created', - 'metrics'], - 'type': 'object'}, - 'MetricBatchParam': {'additionalProperties': False, - 'properties': {'batch': {'$ref': '#/definitions/MetricBatch'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'batch'], - 'type': 'object'}, - 'MetricBatchParams': {'additionalProperties': False, - 'properties': {'batches': {'items': {'$ref': '#/definitions/MetricBatchParam'}, - 'type': 'array'}}, - 'required': ['batches'], - 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', 'uuid'], - 'type': 'object'}, - 'NetworkInfo': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'$ref': '#/definitions/InterfaceAddress'}, - 'type': 'array'}, - 'interface-name': {'type': 'string'}, - 'mac-address': {'type': 'string'}}, - 'required': ['mac-address', - 'interface-name', - 'addresses'], - 'type': 'object'}, - 'NetworkInfoParams': {'additionalProperties': False, - 'properties': {'bindings': {'items': {'type': 'string'}, - 'type': 'array'}, - 'unit': {'type': 'string'}}, - 'required': ['unit', 'bindings'], - 'type': 'object'}, - 'NetworkInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'network-info': {'items': {'$ref': '#/definitions/NetworkInfo'}, - 'type': 'array'}}, - 'required': ['network-info'], - 'type': 'object'}, - 'NetworkInfoResults': {'additionalProperties': False, - 'properties': {'results': {'patternProperties': {'.*': {'$ref': '#/definitions/NetworkInfoResult'}}, - 'type': 'object'}}, - 'required': ['results'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'PortRange': {'additionalProperties': False, - 'properties': {'from-port': {'type': 'integer'}, - 'protocol': {'type': 'string'}, - 'to-port': {'type': 'integer'}}, - 'required': ['from-port', 'to-port', 'protocol'], - 'type': 'object'}, - 'RelationIds': {'additionalProperties': False, - 'properties': {'relation-ids': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['relation-ids'], - 'type': 'object'}, - 'RelationResult': {'additionalProperties': False, - 'properties': {'endpoint': {'$ref': '#/definitions/Endpoint'}, - 'error': {'$ref': '#/definitions/Error'}, - 'id': {'type': 'integer'}, - 'key': {'type': 'string'}, - 'life': {'type': 'string'}}, - 'required': ['life', - 'id', - 'key', - 'endpoint'], - 'type': 'object'}, - 'RelationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RelationResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RelationUnit': {'additionalProperties': False, - 'properties': {'relation': {'type': 'string'}, - 'unit': {'type': 'string'}}, - 'required': ['relation', 'unit'], - 'type': 'object'}, - 'RelationUnitPair': {'additionalProperties': False, - 'properties': {'local-unit': {'type': 'string'}, - 'relation': {'type': 'string'}, - 'remote-unit': {'type': 'string'}}, - 'required': ['relation', - 'local-unit', - 'remote-unit'], - 'type': 'object'}, - 'RelationUnitPairs': {'additionalProperties': False, - 'properties': {'relation-unit-pairs': {'items': {'$ref': '#/definitions/RelationUnitPair'}, - 'type': 'array'}}, - 'required': ['relation-unit-pairs'], - 'type': 'object'}, - 'RelationUnitSettings': {'additionalProperties': False, - 'properties': {'relation': {'type': 'string'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'unit': {'type': 'string'}}, - 'required': ['relation', - 'unit', - 'settings'], - 'type': 'object'}, - 'RelationUnits': {'additionalProperties': False, - 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnit'}, - 'type': 'array'}}, - 'required': ['relation-units'], - 'type': 'object'}, - 'RelationUnitsChange': {'additionalProperties': False, - 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}}, - 'type': 'object'}, - 'departed': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['changed'], - 'type': 'object'}, - 'RelationUnitsSettings': {'additionalProperties': False, - 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnitSettings'}, - 'type': 'array'}}, - 'required': ['relation-units'], - 'type': 'object'}, - 'RelationUnitsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'$ref': '#/definitions/RelationUnitsChange'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}, - 'RelationUnitsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RelationUnitsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ResolvedModeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'mode': {'type': 'string'}}, - 'required': ['mode'], - 'type': 'object'}, - 'ResolvedModeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ResolvedModeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'SettingsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['settings'], - 'type': 'object'}, - 'SettingsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/SettingsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StatusResult': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'error': {'$ref': '#/definitions/Error'}, - 'id': {'type': 'string'}, - 'info': {'type': 'string'}, - 'life': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['id', - 'life', - 'status', - 'info', - 'data', - 'since'], - 'type': 'object'}, - 'StatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StorageAddParams': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'storage': {'$ref': '#/definitions/StorageConstraints'}, - 'unit': {'type': 'string'}}, - 'required': ['unit', 'name', 'storage'], - 'type': 'object'}, - 'StorageAttachment': {'additionalProperties': False, - 'properties': {'kind': {'type': 'integer'}, - 'life': {'type': 'string'}, - 'location': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'storage-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'owner-tag', - 'unit-tag', - 'kind', - 'location', - 'life'], - 'type': 'object'}, - 'StorageAttachmentId': {'additionalProperties': False, - 'properties': {'storage-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'unit-tag'], - 'type': 'object'}, - 'StorageAttachmentIds': {'additionalProperties': False, - 'properties': {'ids': {'items': {'$ref': '#/definitions/StorageAttachmentId'}, - 'type': 'array'}}, - 'required': ['ids'], - 'type': 'object'}, - 'StorageAttachmentIdsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/StorageAttachmentIds'}}, - 'required': ['result'], - 'type': 'object'}, - 'StorageAttachmentIdsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StorageAttachmentIdsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageAttachmentResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/StorageAttachment'}}, - 'required': ['result'], - 'type': 'object'}, - 'StorageAttachmentResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StorageAttachmentResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageConstraints': {'additionalProperties': False, - 'properties': {'count': {'type': 'integer'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'type': 'object'}, - 'StoragesAddParams': {'additionalProperties': False, - 'properties': {'storages': {'items': {'$ref': '#/definitions/StorageAddParams'}, - 'type': 'array'}}, - 'required': ['storages'], - 'type': 'object'}, - 'StringBoolResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'ok': {'type': 'boolean'}, - 'result': {'type': 'string'}}, - 'required': ['result', 'ok'], - 'type': 'object'}, - 'StringBoolResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringBoolResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UnitSettings': {'additionalProperties': False, - 'properties': {'version': {'type': 'integer'}}, - 'required': ['version'], - 'type': 'object'}}, - 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, - 'type': 'object'}, - 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, - 'type': 'object'}, - 'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'AddMetricBatches': {'properties': {'Params': {'$ref': '#/definitions/MetricBatchParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'AddUnitStorage': {'properties': {'Params': {'$ref': '#/definitions/StoragesAddParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'AllMachinePorts': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachinePortsResults'}}, - 'type': 'object'}, - 'ApplicationStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ApplicationStatusResults'}}, - 'type': 'object'}, - 'AssignedMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'AvailabilityZone': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'BeginActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, - 'type': 'object'}, - 'CharmArchiveSha256': {'properties': {'Params': {'$ref': '#/definitions/CharmURLs'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'CharmModifiedVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/IntResults'}}, - 'type': 'object'}, - 'CharmURL': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringBoolResults'}}, - 'type': 'object'}, - 'ClearResolved': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ClosePorts': {'properties': {'Params': {'$ref': '#/definitions/EntitiesPortRanges'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ConfigSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ConfigSettingsResults'}}, - 'type': 'object'}, - 'CurrentModel': {'properties': {'Result': {'$ref': '#/definitions/ModelResult'}}, - 'type': 'object'}, - 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'DestroyAllSubordinates': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'DestroyUnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'EnterScope': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'FinishActions': {'properties': {'Params': {'$ref': '#/definitions/ActionExecutionResults'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'GetMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MeterStatusResults'}}, - 'type': 'object'}, - 'GetPrincipal': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringBoolResults'}}, - 'type': 'object'}, - 'HasSubordinates': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/BoolResults'}}, - 'type': 'object'}, - 'JoinedRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsResults'}}, - 'type': 'object'}, - 'LeaveScope': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'Merge': {'properties': {'Params': {'$ref': '#/definitions/MergeLeadershipSettingsBulkParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'NetworkInfo': {'properties': {'Params': {'$ref': '#/definitions/NetworkInfoParams'}, - 'Result': {'$ref': '#/definitions/NetworkInfoResults'}}, - 'type': 'object'}, - 'OpenPorts': {'properties': {'Params': {'$ref': '#/definitions/EntitiesPortRanges'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'ProviderType': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'Read': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/GetLeadershipSettingsBulkResults'}}, - 'type': 'object'}, - 'ReadRemoteSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnitPairs'}, - 'Result': {'$ref': '#/definitions/SettingsResults'}}, - 'type': 'object'}, - 'ReadSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/SettingsResults'}}, - 'type': 'object'}, - 'Relation': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/RelationResults'}}, - 'type': 'object'}, - 'RelationById': {'properties': {'Params': {'$ref': '#/definitions/RelationIds'}, - 'Result': {'$ref': '#/definitions/RelationResults'}}, - 'type': 'object'}, - 'RemoveStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RequestReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Resolved': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ResolvedModeResults'}}, - 'type': 'object'}, - 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'SetAgentStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetApplicationStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/EntitiesCharmURL'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetUnitStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetWorkloadVersion': {'properties': {'Params': {'$ref': '#/definitions/EntityWorkloadVersions'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'StorageAttachmentLife': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'StorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/StorageAttachmentResults'}}, - 'type': 'object'}, - 'UnitStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StatusResults'}}, - 'type': 'object'}, - 'UnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StorageAttachmentIdsResults'}}, - 'type': 'object'}, - 'UpdateSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnitsSettings'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchActionNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchConfigSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchLeadershipSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchRelationUnits': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/RelationUnitsWatchResults'}}, - 'type': 'object'}, - 'WatchStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchUnitAddresses': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchUnitRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchUnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WorkloadVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringsResult) - async def APIAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='APIAddresses', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(APIHostPortsResult) - async def APIHostPorts(self): - ''' - - Returns -> typing.Sequence[~HostPort] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='APIHostPorts', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionResults) - async def Actions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Actions', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def AddMetricBatches(self, batches): - ''' - batches : typing.Sequence[~MetricBatchParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AddMetricBatches', - version=5, - params=_params) - _params['batches'] = batches - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def AddUnitStorage(self, storages): - ''' - storages : typing.Sequence[~StorageAddParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AddUnitStorage', - version=5, - params=_params) - _params['storages'] = storages - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachinePortsResults) - async def AllMachinePorts(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachinePortsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AllMachinePorts', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationStatusResults) - async def ApplicationStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ApplicationStatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ApplicationStatus', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def AssignedMachine(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AssignedMachine', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def AvailabilityZone(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AvailabilityZone', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def BeginActions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='BeginActions', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BytesResult) - async def CACert(self): - ''' - - Returns -> typing.Sequence[int] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CACert', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def CharmArchiveSha256(self, urls): - ''' - urls : typing.Sequence[~CharmURL] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CharmArchiveSha256', - version=5, - params=_params) - _params['urls'] = urls - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(IntResults) - async def CharmModifiedVersion(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~IntResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CharmModifiedVersion', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringBoolResults) - async def CharmURL(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringBoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CharmURL', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ClearResolved(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ClearResolved', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ClosePorts(self, entities): - ''' - entities : typing.Sequence[~EntityPortRange] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ClosePorts', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ConfigSettingsResults) - async def ConfigSettings(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ConfigSettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ConfigSettings', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelResult) - async def CurrentModel(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CurrentModel', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Destroy(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Destroy', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DestroyAllSubordinates(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='DestroyAllSubordinates', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DestroyUnitStorageAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='DestroyUnitStorageAttachments', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnsureDead(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='EnsureDead', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnterScope(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='EnterScope', - version=5, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def FinishActions(self, results): - ''' - results : typing.Sequence[~ActionExecutionResult] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='FinishActions', - version=5, - params=_params) - _params['results'] = results - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MeterStatusResults) - async def GetMeterStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MeterStatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='GetMeterStatus', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringBoolResults) - async def GetPrincipal(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringBoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='GetPrincipal', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BoolResults) - async def HasSubordinates(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~BoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='HasSubordinates', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsResults) - async def JoinedRelations(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='JoinedRelations', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def LeaveScope(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='LeaveScope', - version=5, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Life', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Merge(self, params): - ''' - params : typing.Sequence[~MergeLeadershipSettingsParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Merge', - version=5, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ModelConfig', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ModelUUID(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ModelUUID', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NetworkInfoResults) - async def NetworkInfo(self, bindings, unit): - ''' - bindings : typing.Sequence[str] - unit : str - Returns -> typing.Mapping[str, ~NetworkInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='NetworkInfo', - version=5, - params=_params) - _params['bindings'] = bindings - _params['unit'] = unit - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def OpenPorts(self, entities): - ''' - entities : typing.Sequence[~EntityPortRange] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='OpenPorts', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def PrivateAddress(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='PrivateAddress', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ProviderType(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ProviderType', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def PublicAddress(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='PublicAddress', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(GetLeadershipSettingsBulkResults) - async def Read(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~GetLeadershipSettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Read', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SettingsResults) - async def ReadRemoteSettings(self, relation_unit_pairs): - ''' - relation_unit_pairs : typing.Sequence[~RelationUnitPair] - Returns -> typing.Sequence[~SettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ReadRemoteSettings', - version=5, - params=_params) - _params['relation-unit-pairs'] = relation_unit_pairs - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SettingsResults) - async def ReadSettings(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~SettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ReadSettings', - version=5, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationResults) - async def Relation(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~RelationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Relation', - version=5, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationResults) - async def RelationById(self, relation_ids): - ''' - relation_ids : typing.Sequence[int] - Returns -> typing.Sequence[~RelationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='RelationById', - version=5, - params=_params) - _params['relation-ids'] = relation_ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RemoveStorageAttachments(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='RemoveStorageAttachments', - version=5, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RequestReboot(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='RequestReboot', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ResolvedModeResults) - async def Resolved(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ResolvedModeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Resolved', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def SLALevel(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SLALevel', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetAgentStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetAgentStatus', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetApplicationStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetApplicationStatus', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetCharmURL(self, entities): - ''' - entities : typing.Sequence[~EntityCharmURL] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetCharmURL', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetStatus', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetUnitStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetUnitStatus', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetWorkloadVersion(self, entities): - ''' - entities : typing.Sequence[~EntityWorkloadVersion] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetWorkloadVersion', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def StorageAttachmentLife(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='StorageAttachmentLife', - version=5, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StorageAttachmentResults) - async def StorageAttachments(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~StorageAttachmentResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='StorageAttachments', - version=5, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusResults) - async def UnitStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='UnitStatus', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StorageAttachmentIdsResults) - async def UnitStorageAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StorageAttachmentIdsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='UnitStorageAttachments', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateSettings(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnitSettings] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='UpdateSettings', - version=5, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def Watch(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Watch', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchAPIHostPorts(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchAPIHostPorts', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchActionNotifications(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchActionNotifications', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchConfigSettings(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchConfigSettings', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchForModelConfigChanges', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchLeadershipSettings(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchLeadershipSettings', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchMeterStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchMeterStatus', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationUnitsWatchResults) - async def WatchRelationUnits(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~RelationUnitsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchRelationUnits', - version=5, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchStorageAttachments(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchStorageAttachments', - version=5, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchUnitAddresses(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchUnitAddresses', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchUnitRelations(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchUnitRelations', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchUnitStorageAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchUnitStorageAttachments', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def WorkloadVersion(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WorkloadVersion', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply diff --git a/modules/libjuju/juju/client/_client7.py b/modules/libjuju/juju/client/_client7.py deleted file mode 100644 index 1d6cd48..0000000 --- a/modules/libjuju/juju/client/_client7.py +++ /dev/null @@ -1,1770 +0,0 @@ -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. - -from juju.client.facade import Type, ReturnMapping -from juju.client._definitions import * - - -class ProvisionerFacade(Type): - name = 'Provisioner' - version = 7 - schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, - 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, - 'type': 'array'}, - 'type': 'array'}}, - 'required': ['servers'], - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'Binary': {'additionalProperties': False, - 'properties': {'Arch': {'type': 'string'}, - 'Number': {'$ref': '#/definitions/Number'}, - 'Series': {'type': 'string'}}, - 'required': ['Number', 'Series', 'Arch'], - 'type': 'object'}, - 'BoolResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'boolean'}}, - 'required': ['result'], - 'type': 'object'}, - 'BoolResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'BytesResult': {'additionalProperties': False, - 'properties': {'result': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['result'], - 'type': 'object'}, - 'CharmLXDProfile': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'description': {'type': 'string'}, - 'devices': {'patternProperties': {'.*': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config', - 'description', - 'devices'], - 'type': 'object'}, - 'CloudImageMetadata': {'additionalProperties': False, - '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'}}, - 'required': ['image-id', - 'region', - 'version', - 'series', - 'arch', - 'source', - 'priority'], - 'type': 'object'}, - 'ConstraintsResult': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'ConstraintsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ConstraintsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ContainerConfig': {'additionalProperties': False, - 'properties': {'UpdateBehavior': {'$ref': '#/definitions/UpdateBehavior'}, - 'apt-mirror': {'type': 'string'}, - 'apt-proxy': {'$ref': '#/definitions/Settings'}, - 'authorized-keys': {'type': 'string'}, - 'cloudinit-userdata': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'container-inherit-properties': {'type': 'string'}, - 'juju-proxy': {'$ref': '#/definitions/Settings'}, - 'legacy-proxy': {'$ref': '#/definitions/Settings'}, - 'provider-type': {'type': 'string'}, - 'snap-proxy': {'$ref': '#/definitions/Settings'}, - 'ssl-hostname-verification': {'type': 'boolean'}}, - 'required': ['provider-type', - 'authorized-keys', - 'ssl-hostname-verification', - 'legacy-proxy', - 'juju-proxy', - 'apt-proxy', - 'snap-proxy', - 'apt-mirror', - 'UpdateBehavior'], - 'type': 'object'}, - 'ContainerLXDProfile': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'profile': {'$ref': '#/definitions/CharmLXDProfile'}}, - 'required': ['profile', 'name'], - 'type': 'object'}, - 'ContainerManagerConfig': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ContainerManagerConfigParams': {'additionalProperties': False, - 'properties': {'type': {'type': 'string'}}, - 'required': ['type'], - 'type': 'object'}, - 'ContainerProfileResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'lxd-profiles': {'items': {'$ref': '#/definitions/ContainerLXDProfile'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ContainerProfileResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ContainerProfileResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ControllerAPIInfoResult': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cacert': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['addresses', - 'cacert'], - 'type': 'object'}, - 'ControllerAPIInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ControllerAPIInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ControllerConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'DeviceBridgeInfo': {'additionalProperties': False, - 'properties': {'bridge-name': {'type': 'string'}, - 'host-device-name': {'type': 'string'}, - 'mac-address': {'type': 'string'}}, - 'required': ['host-device-name', - 'bridge-name', - 'mac-address'], - 'type': 'object'}, - 'DistributionGroupResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['result'], - 'type': 'object'}, - 'DistributionGroupResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/DistributionGroupResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityPassword': {'additionalProperties': False, - 'properties': {'password': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'password'], - 'type': 'object'}, - 'EntityPasswords': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'FindToolsParams': {'additionalProperties': False, - 'properties': {'agentstream': {'type': 'string'}, - 'arch': {'type': 'string'}, - 'major': {'type': 'integer'}, - 'minor': {'type': 'integer'}, - 'number': {'$ref': '#/definitions/Number'}, - 'series': {'type': 'string'}}, - 'required': ['number', - 'major', - 'minor', - 'arch', - 'series', - 'agentstream'], - 'type': 'object'}, - 'FindToolsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'list': {'items': {'$ref': '#/definitions/Tools'}, - 'type': 'array'}}, - 'required': ['list'], - 'type': 'object'}, - 'HardwareCharacteristics': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cpu-cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'HostNetworkChange': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'new-bridges': {'items': {'$ref': '#/definitions/DeviceBridgeInfo'}, - 'type': 'array'}, - 'reconfigure-delay': {'type': 'integer'}}, - 'required': ['new-bridges', - 'reconfigure-delay'], - 'type': 'object'}, - 'HostNetworkChangeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/HostNetworkChange'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'HostPort': {'additionalProperties': False, - 'properties': {'Address': {'$ref': '#/definitions/Address'}, - 'port': {'type': 'integer'}}, - 'required': ['Address', 'port'], - 'type': 'object'}, - 'InstanceInfo': {'additionalProperties': False, - 'properties': {'characteristics': {'$ref': '#/definitions/HardwareCharacteristics'}, - 'charm-profiles': {'items': {'type': 'string'}, - 'type': 'array'}, - 'instance-id': {'type': 'string'}, - 'network-config': {'items': {'$ref': '#/definitions/NetworkConfig'}, - 'type': 'array'}, - 'nonce': {'type': 'string'}, - 'tag': {'type': 'string'}, - 'volume-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/VolumeAttachmentInfo'}}, - 'type': 'object'}, - 'volumes': {'items': {'$ref': '#/definitions/Volume'}, - 'type': 'array'}}, - 'required': ['tag', - 'instance-id', - 'nonce', - 'characteristics', - 'volumes', - 'volume-attachments', - 'network-config', - 'charm-profiles'], - 'type': 'object'}, - 'InstancesInfo': {'additionalProperties': False, - 'properties': {'machines': {'items': {'$ref': '#/definitions/InstanceInfo'}, - 'type': 'array'}}, - 'required': ['machines'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineContainers': {'additionalProperties': False, - 'properties': {'container-types': {'items': {'type': 'string'}, - 'type': 'array'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['machine-tag', - 'container-types'], - 'type': 'object'}, - 'MachineContainersParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/MachineContainers'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'MachineNetworkConfigResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'items': {'$ref': '#/definitions/NetworkConfig'}, - 'type': 'array'}}, - 'required': ['info'], - 'type': 'object'}, - 'MachineNetworkConfigResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MachineNetworkConfigResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'NetworkConfig': {'additionalProperties': False, - 'properties': {'address': {'type': 'string'}, - 'cidr': {'type': 'string'}, - 'config-type': {'type': 'string'}, - 'device-index': {'type': 'integer'}, - 'disabled': {'type': 'boolean'}, - 'dns-search-domains': {'items': {'type': 'string'}, - 'type': 'array'}, - 'dns-servers': {'items': {'type': 'string'}, - 'type': 'array'}, - 'gateway-address': {'type': 'string'}, - 'interface-name': {'type': 'string'}, - 'interface-type': {'type': 'string'}, - 'is-default-gateway': {'type': 'boolean'}, - 'mac-address': {'type': 'string'}, - 'mtu': {'type': 'integer'}, - 'no-auto-start': {'type': 'boolean'}, - 'parent-interface-name': {'type': 'string'}, - 'provider-address-id': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'provider-subnet-id': {'type': 'string'}, - 'provider-vlan-id': {'type': 'string'}, - 'routes': {'items': {'$ref': '#/definitions/NetworkRoute'}, - 'type': 'array'}, - 'vlan-tag': {'type': 'integer'}}, - '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'], - 'type': 'object'}, - 'NetworkRoute': {'additionalProperties': False, - 'properties': {'destination-cidr': {'type': 'string'}, - 'gateway-ip': {'type': 'string'}, - 'metric': {'type': 'integer'}}, - 'required': ['destination-cidr', - 'gateway-ip', - 'metric'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'ProfileChangeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'new-profile-name': {'type': 'string'}, - 'old-profile-name': {'type': 'string'}, - 'profile': {'$ref': '#/definitions/CharmLXDProfile'}, - 'subordinate': {'type': 'boolean'}}, - 'type': 'object'}, - 'ProfileChangeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ProfileChangeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ProvisioningInfo': {'additionalProperties': False, - 'properties': {'charm-lxd-profiles': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cloudinit-userdata': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'controller-config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'image-metadata': {'items': {'$ref': '#/definitions/CloudImageMetadata'}, - 'type': 'array'}, - 'jobs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'placement': {'type': 'string'}, - 'series': {'type': 'string'}, - 'subnets-to-zones': {'patternProperties': {'.*': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'volume-attachments': {'items': {'$ref': '#/definitions/VolumeAttachmentParams'}, - 'type': 'array'}, - 'volumes': {'items': {'$ref': '#/definitions/VolumeParams'}, - 'type': 'array'}}, - 'required': ['constraints', - 'series', - 'placement', - 'jobs'], - 'type': 'object'}, - 'ProvisioningInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ProvisioningInfo'}}, - 'required': ['result'], - 'type': 'object'}, - 'ProvisioningInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ProvisioningInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SetMachineNetworkConfig': {'additionalProperties': False, - 'properties': {'config': {'items': {'$ref': '#/definitions/NetworkConfig'}, - 'type': 'array'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'config'], - 'type': 'object'}, - 'SetProfileArg': {'additionalProperties': False, - 'properties': {'entity': {'$ref': '#/definitions/Entity'}, - 'profiles': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['entity', 'profiles'], - 'type': 'object'}, - 'SetProfileArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/SetProfileArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'SetProfileUpgradeCompleteArg': {'additionalProperties': False, - 'properties': {'entity': {'$ref': '#/definitions/Entity'}, - 'message': {'type': 'string'}}, - 'required': ['entity', - 'message'], - 'type': 'object'}, - 'SetProfileUpgradeCompleteArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/SetProfileUpgradeCompleteArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Settings': {'additionalProperties': False, - 'properties': {'AutoNoProxy': {'type': 'string'}, - 'Ftp': {'type': 'string'}, - 'Http': {'type': 'string'}, - 'Https': {'type': 'string'}, - 'NoProxy': {'type': 'string'}}, - 'required': ['Http', - 'Https', - 'Ftp', - 'NoProxy', - 'AutoNoProxy'], - 'type': 'object'}, - 'StatusResult': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'error': {'$ref': '#/definitions/Error'}, - 'id': {'type': 'string'}, - 'info': {'type': 'string'}, - 'life': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['id', - 'life', - 'status', - 'info', - 'data', - 'since'], - 'type': 'object'}, - 'StatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Tools': {'additionalProperties': False, - 'properties': {'sha256': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'url': {'type': 'string'}, - 'version': {'$ref': '#/definitions/Binary'}}, - 'required': ['version', 'url', 'size'], - 'type': 'object'}, - 'ToolsResult': {'additionalProperties': False, - 'properties': {'disable-ssl-hostname-verification': {'type': 'boolean'}, - 'error': {'$ref': '#/definitions/Error'}, - 'tools': {'items': {'$ref': '#/definitions/Tools'}, - 'type': 'array'}}, - 'required': ['tools', - 'disable-ssl-hostname-verification'], - 'type': 'object'}, - 'ToolsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ToolsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UpdateBehavior': {'additionalProperties': False, - 'properties': {'enable-os-refresh-update': {'type': 'boolean'}, - 'enable-os-upgrade': {'type': 'boolean'}}, - 'required': ['enable-os-refresh-update', - 'enable-os-upgrade'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Volume': {'additionalProperties': False, - 'properties': {'info': {'$ref': '#/definitions/VolumeInfo'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', 'info'], - 'type': 'object'}, - 'VolumeAttachmentInfo': {'additionalProperties': False, - 'properties': {'bus-address': {'type': 'string'}, - 'device-link': {'type': 'string'}, - 'device-name': {'type': 'string'}, - 'plan-info': {'$ref': '#/definitions/VolumeAttachmentPlanInfo'}, - 'read-only': {'type': 'boolean'}}, - 'type': 'object'}, - 'VolumeAttachmentParams': {'additionalProperties': False, - 'properties': {'instance-id': {'type': 'string'}, - 'machine-tag': {'type': 'string'}, - 'provider': {'type': 'string'}, - 'read-only': {'type': 'boolean'}, - 'volume-id': {'type': 'string'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', - 'machine-tag', - 'provider'], - 'type': 'object'}, - 'VolumeAttachmentPlanInfo': {'additionalProperties': False, - 'properties': {'device-attributes': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'device-type': {'type': 'string'}}, - 'type': 'object'}, - 'VolumeInfo': {'additionalProperties': False, - 'properties': {'hardware-id': {'type': 'string'}, - 'persistent': {'type': 'boolean'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'volume-id': {'type': 'string'}, - 'wwn': {'type': 'string'}}, - 'required': ['volume-id', 'size', 'persistent'], - 'type': 'object'}, - 'VolumeParams': {'additionalProperties': False, - 'properties': {'attachment': {'$ref': '#/definitions/VolumeAttachmentParams'}, - 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'provider': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', - 'size', - 'provider'], - 'type': 'object'}, - 'WatchContainer': {'additionalProperties': False, - 'properties': {'container-type': {'type': 'string'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['machine-tag', - 'container-type'], - 'type': 'object'}, - 'WatchContainers': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/WatchContainer'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}}, - 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, - 'type': 'object'}, - 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, - 'type': 'object'}, - 'AvailabilityZone': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, - 'type': 'object'}, - 'CharmProfileChangeInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ProfileChangeResults'}}, - 'type': 'object'}, - 'Constraints': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ConstraintsResults'}}, - 'type': 'object'}, - 'ContainerConfig': {'properties': {'Result': {'$ref': '#/definitions/ContainerConfig'}}, - 'type': 'object'}, - 'ContainerManagerConfig': {'properties': {'Params': {'$ref': '#/definitions/ContainerManagerConfigParams'}, - 'Result': {'$ref': '#/definitions/ContainerManagerConfig'}}, - 'type': 'object'}, - 'ControllerAPIInfoForModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ControllerAPIInfoResults'}}, - 'type': 'object'}, - 'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}}, - 'type': 'object'}, - 'DistributionGroup': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/DistributionGroupResults'}}, - 'type': 'object'}, - 'DistributionGroupByMachineId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsResults'}}, - 'type': 'object'}, - 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'FindTools': {'properties': {'Params': {'$ref': '#/definitions/FindToolsParams'}, - 'Result': {'$ref': '#/definitions/FindToolsResult'}}, - 'type': 'object'}, - 'GetContainerInterfaceInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachineNetworkConfigResults'}}, - 'type': 'object'}, - 'GetContainerProfileInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ContainerProfileResults'}}, - 'type': 'object'}, - 'HostChangesForContainers': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/HostNetworkChangeResults'}}, - 'type': 'object'}, - 'InstanceId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'InstanceStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StatusResults'}}, - 'type': 'object'}, - 'KeepInstance': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/BoolResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'MachinesWithTransientErrors': {'properties': {'Result': {'$ref': '#/definitions/StatusResults'}}, - 'type': 'object'}, - 'MarkMachinesForRemoval': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'PrepareContainerInterfaceInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachineNetworkConfigResults'}}, - 'type': 'object'}, - 'ProvisioningInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ProvisioningInfoResults'}}, - 'type': 'object'}, - 'ReleaseContainerAddresses': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Remove': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RemoveUpgradeCharmProfileData': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Series': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'SetCharmProfiles': {'properties': {'Params': {'$ref': '#/definitions/SetProfileArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetHostMachineNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/SetMachineNetworkConfig'}}, - 'type': 'object'}, - 'SetInstanceInfo': {'properties': {'Params': {'$ref': '#/definitions/InstancesInfo'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetInstanceStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetObservedNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/SetMachineNetworkConfig'}}, - 'type': 'object'}, - 'SetPasswords': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetProviderNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetSupportedContainers': {'properties': {'Params': {'$ref': '#/definitions/MachineContainersParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetUpgradeCharmProfileComplete': {'properties': {'Params': {'$ref': '#/definitions/SetProfileUpgradeCompleteArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'StateAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, - 'type': 'object'}, - 'Status': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StatusResults'}}, - 'type': 'object'}, - 'Tools': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ToolsResults'}}, - 'type': 'object'}, - 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchAllContainers': {'properties': {'Params': {'$ref': '#/definitions/WatchContainers'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchContainers': {'properties': {'Params': {'$ref': '#/definitions/WatchContainers'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchContainersCharmProfiles': {'properties': {'Params': {'$ref': '#/definitions/WatchContainers'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchMachineErrorRetry': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchModelMachines': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}, - 'WatchModelMachinesCharmProfiles': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringsResult) - async def APIAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='APIAddresses', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(APIHostPortsResult) - async def APIHostPorts(self): - ''' - - Returns -> typing.Sequence[~HostPort] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='APIHostPorts', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def AvailabilityZone(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='AvailabilityZone', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BytesResult) - async def CACert(self): - ''' - - Returns -> typing.Sequence[int] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='CACert', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ProfileChangeResults) - async def CharmProfileChangeInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ProfileChangeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='CharmProfileChangeInfo', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ConstraintsResults) - async def Constraints(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ConstraintsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Constraints', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ContainerConfig) - async def ContainerConfig(self): - ''' - - Returns -> typing.Union[_ForwardRef('UpdateBehavior'), str, _ForwardRef('Settings'), bool] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ContainerConfig', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ContainerManagerConfig) - async def ContainerManagerConfig(self, type_): - ''' - type_ : str - Returns -> typing.Mapping[str, str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ContainerManagerConfig', - version=7, - params=_params) - _params['type'] = type_ - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerAPIInfoResults) - async def ControllerAPIInfoForModels(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ControllerAPIInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ControllerAPIInfoForModels', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerConfigResult) - async def ControllerConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ControllerConfig', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DistributionGroupResults) - async def DistributionGroup(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~DistributionGroupResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='DistributionGroup', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsResults) - async def DistributionGroupByMachineId(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='DistributionGroupByMachineId', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnsureDead(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='EnsureDead', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FindToolsResult) - async def FindTools(self, arch, major, minor, number, series): - ''' - arch : str - major : int - minor : int - number : Number - series : str - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[~Tools]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='FindTools', - version=7, - params=_params) - _params['arch'] = arch - _params['major'] = major - _params['minor'] = minor - _params['number'] = number - _params['series'] = series - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachineNetworkConfigResults) - async def GetContainerInterfaceInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachineNetworkConfigResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='GetContainerInterfaceInfo', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ContainerProfileResults) - async def GetContainerProfileInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ContainerProfileResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='GetContainerProfileInfo', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(HostNetworkChangeResults) - async def HostChangesForContainers(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~HostNetworkChange] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='HostChangesForContainers', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def InstanceId(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='InstanceId', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusResults) - async def InstanceStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='InstanceStatus', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BoolResults) - async def KeepInstance(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~BoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='KeepInstance', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Life', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusResults) - async def MachinesWithTransientErrors(self): - ''' - - Returns -> typing.Sequence[~StatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='MachinesWithTransientErrors', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def MarkMachinesForRemoval(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='MarkMachinesForRemoval', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ModelConfig', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ModelUUID(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ModelUUID', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachineNetworkConfigResults) - async def PrepareContainerInterfaceInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachineNetworkConfigResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='PrepareContainerInterfaceInfo', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ProvisioningInfoResults) - async def ProvisioningInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ProvisioningInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ProvisioningInfo', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ReleaseContainerAddresses(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ReleaseContainerAddresses', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Remove(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Remove', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RemoveUpgradeCharmProfileData(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='RemoveUpgradeCharmProfileData', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def Series(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Series', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetCharmProfiles(self, args): - ''' - args : typing.Sequence[~SetProfileArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetCharmProfiles', - version=7, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetHostMachineNetworkConfig(self, config, tag): - ''' - config : typing.Sequence[~NetworkConfig] - tag : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetHostMachineNetworkConfig', - version=7, - params=_params) - _params['config'] = config - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetInstanceInfo(self, machines): - ''' - machines : typing.Sequence[~InstanceInfo] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetInstanceInfo', - version=7, - params=_params) - _params['machines'] = machines - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetInstanceStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetInstanceStatus', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetObservedNetworkConfig(self, config, tag): - ''' - config : typing.Sequence[~NetworkConfig] - tag : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetObservedNetworkConfig', - version=7, - params=_params) - _params['config'] = config - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetPasswords(self, changes): - ''' - changes : typing.Sequence[~EntityPassword] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetPasswords', - version=7, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetProviderNetworkConfig(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetProviderNetworkConfig', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetStatus', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetSupportedContainers(self, params): - ''' - params : typing.Sequence[~MachineContainers] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetSupportedContainers', - version=7, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetUpgradeCharmProfileComplete(self, args): - ''' - args : typing.Sequence[~SetProfileUpgradeCompleteArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetUpgradeCharmProfileComplete', - version=7, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsResult) - async def StateAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='StateAddresses', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusResults) - async def Status(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Status', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ToolsResults) - async def Tools(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ToolsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Tools', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='UpdateStatus', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchAPIHostPorts(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchAPIHostPorts', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchAllContainers(self, params): - ''' - params : typing.Sequence[~WatchContainer] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchAllContainers', - version=7, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchContainers(self, params): - ''' - params : typing.Sequence[~WatchContainer] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchContainers', - version=7, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchContainersCharmProfiles(self, params): - ''' - params : typing.Sequence[~WatchContainer] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchContainersCharmProfiles', - version=7, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchForModelConfigChanges', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchMachineErrorRetry(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchMachineErrorRetry', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchModelMachines(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchModelMachines', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchModelMachinesCharmProfiles(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchModelMachinesCharmProfiles', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - diff --git a/modules/libjuju/juju/client/_client8.py b/modules/libjuju/juju/client/_client8.py deleted file mode 100644 index 35d3caf..0000000 --- a/modules/libjuju/juju/client/_client8.py +++ /dev/null @@ -1,1278 +0,0 @@ -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. - -from juju.client.facade import Type, ReturnMapping -from juju.client._definitions import * - - -class ApplicationFacade(Type): - name = 'Application' - version = 8 - schema = {'definitions': {'AddApplicationUnits': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'attach-storage': {'items': {'type': 'string'}, - 'type': 'array'}, - 'num-units': {'type': 'integer'}, - 'placement': {'items': {'$ref': '#/definitions/Placement'}, - 'type': 'array'}, - 'policy': {'type': 'string'}}, - 'required': ['application', - 'num-units', - 'placement'], - 'type': 'object'}, - 'AddApplicationUnitsResults': {'additionalProperties': False, - 'properties': {'units': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['units'], - 'type': 'object'}, - 'AddRelation': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'type': 'string'}, - 'type': 'array'}, - 'via-cidrs': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'AddRelationResults': {'additionalProperties': False, - 'properties': {'endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, - 'type': 'object'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'ApplicationCharmRelations': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationCharmRelationsResults': {'additionalProperties': False, - 'properties': {'charm-relations': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['charm-relations'], - 'type': 'object'}, - 'ApplicationConfigSet': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['application', 'config'], - 'type': 'object'}, - 'ApplicationConfigSetArgs': {'additionalProperties': False, - 'properties': {'Args': {'items': {'$ref': '#/definitions/ApplicationConfigSet'}, - 'type': 'array'}}, - 'required': ['Args'], - 'type': 'object'}, - 'ApplicationConfigUnsetArgs': {'additionalProperties': False, - 'properties': {'Args': {'items': {'$ref': '#/definitions/ApplicationUnset'}, - 'type': 'array'}}, - 'required': ['Args'], - 'type': 'object'}, - 'ApplicationConstraint': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'ApplicationDeploy': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'attach-storage': {'items': {'type': 'string'}, - 'type': 'array'}, - 'channel': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'config-yaml': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'devices': {'patternProperties': {'.*': {'$ref': '#/definitions/Constraints'}}, - 'type': 'object'}, - 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'num-units': {'type': 'integer'}, - 'placement': {'items': {'$ref': '#/definitions/Placement'}, - 'type': 'array'}, - 'policy': {'type': 'string'}, - 'resources': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'series': {'type': 'string'}, - 'storage': {'patternProperties': {'.*': {'$ref': '#/definitions/Constraints'}}, - 'type': 'object'}}, - 'required': ['application', - 'series', - 'charm-url', - 'channel', - 'num-units', - 'config-yaml', - 'constraints'], - 'type': 'object'}, - 'ApplicationDestroy': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationExpose': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationGet': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationGetConfigResults': {'additionalProperties': False, - 'properties': {'Results': {'items': {'$ref': '#/definitions/ConfigResult'}, - 'type': 'array'}}, - 'required': ['Results'], - 'type': 'object'}, - 'ApplicationGetConstraintsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationConstraint'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ApplicationGetResults': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'application-config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'charm': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'series': {'type': 'string'}}, - 'required': ['application', - 'charm', - 'config', - 'constraints', - 'series'], - 'type': 'object'}, - 'ApplicationMetricCredential': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'metrics-credentials': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['application', - 'metrics-credentials'], - 'type': 'object'}, - 'ApplicationMetricCredentials': {'additionalProperties': False, - 'properties': {'creds': {'items': {'$ref': '#/definitions/ApplicationMetricCredential'}, - 'type': 'array'}}, - 'required': ['creds'], - 'type': 'object'}, - 'ApplicationOfferDetails': {'additionalProperties': False, - 'properties': {'application-description': {'type': 'string'}, - 'bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'}, - 'type': 'array'}, - 'offer-name': {'type': 'string'}, - 'offer-url': {'type': 'string'}, - 'offer-uuid': {'type': 'string'}, - 'source-model-tag': {'type': 'string'}, - 'spaces': {'items': {'$ref': '#/definitions/RemoteSpace'}, - 'type': 'array'}, - 'users': {'items': {'$ref': '#/definitions/OfferUserDetails'}, - 'type': 'array'}}, - 'required': ['source-model-tag', - 'offer-uuid', - 'offer-url', - 'offer-name', - 'application-description'], - 'type': 'object'}, - 'ApplicationSet': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'options': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['application', 'options'], - 'type': 'object'}, - 'ApplicationSetCharm': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'channel': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'config-settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'config-settings-yaml': {'type': 'string'}, - 'force': {'type': 'boolean'}, - 'force-series': {'type': 'boolean'}, - 'force-units': {'type': 'boolean'}, - 'resource-ids': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'storage-constraints': {'patternProperties': {'.*': {'$ref': '#/definitions/StorageConstraints'}}, - 'type': 'object'}}, - 'required': ['application', - 'charm-url', - 'channel', - 'force', - 'force-units', - 'force-series'], - 'type': 'object'}, - 'ApplicationSetCharmProfile': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'charm-url': {'type': 'string'}}, - 'required': ['application', - 'charm-url'], - 'type': 'object'}, - 'ApplicationUnexpose': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationUnset': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'options': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['application', 'options'], - 'type': 'object'}, - 'ApplicationUpdate': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'force': {'type': 'boolean'}, - 'force-charm-url': {'type': 'boolean'}, - 'force-series': {'type': 'boolean'}, - 'min-units': {'type': 'integer'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'settings-yaml': {'type': 'string'}}, - 'required': ['application', - 'charm-url', - 'force-charm-url', - 'force-series', - 'force', - 'settings-yaml'], - 'type': 'object'}, - 'ApplicationsDeploy': {'additionalProperties': False, - 'properties': {'applications': {'items': {'$ref': '#/definitions/ApplicationDeploy'}, - 'type': 'array'}}, - 'required': ['applications'], - 'type': 'object'}, - 'CharmRelation': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'optional': {'type': 'boolean'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'optional', - 'limit', - 'scope'], - 'type': 'object'}, - 'ConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['config'], - 'type': 'object'}, - 'Constraints': {'additionalProperties': False, - 'properties': {'Count': {'type': 'integer'}, - 'Pool': {'type': 'string'}, - 'Size': {'type': 'integer'}}, - 'required': ['Pool', 'Size', 'Count'], - 'type': 'object'}, - 'ConsumeApplicationArg': {'additionalProperties': False, - 'properties': {'ApplicationOfferDetails': {'$ref': '#/definitions/ApplicationOfferDetails'}, - 'application-alias': {'type': 'string'}, - 'external-controller': {'$ref': '#/definitions/ExternalControllerInfo'}, - 'macaroon': {'$ref': '#/definitions/Macaroon'}}, - 'required': ['ApplicationOfferDetails'], - 'type': 'object'}, - 'ConsumeApplicationArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/ConsumeApplicationArg'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyApplicationInfo': {'additionalProperties': False, - 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'destroyed-units': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyApplicationParams': {'additionalProperties': False, - 'properties': {'application-tag': {'type': 'string'}, - 'destroy-storage': {'type': 'boolean'}}, - 'required': ['application-tag'], - 'type': 'object'}, - 'DestroyApplicationResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'$ref': '#/definitions/DestroyApplicationInfo'}}, - 'type': 'object'}, - 'DestroyApplicationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyApplicationResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyApplicationUnits': {'additionalProperties': False, - 'properties': {'unit-names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['unit-names'], - 'type': 'object'}, - 'DestroyApplicationsParams': {'additionalProperties': False, - 'properties': {'applications': {'items': {'$ref': '#/definitions/DestroyApplicationParams'}, - 'type': 'array'}}, - 'required': ['applications'], - 'type': 'object'}, - 'DestroyConsumedApplicationParams': {'additionalProperties': False, - 'properties': {'application-tag': {'type': 'string'}}, - 'required': ['application-tag'], - 'type': 'object'}, - 'DestroyConsumedApplicationsParams': {'additionalProperties': False, - 'properties': {'applications': {'items': {'$ref': '#/definitions/DestroyConsumedApplicationParams'}, - 'type': 'array'}}, - 'required': ['applications'], - 'type': 'object'}, - 'DestroyRelation': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'type': 'string'}, - 'type': 'array'}, - 'relation-id': {'type': 'integer'}}, - 'required': ['relation-id'], - 'type': 'object'}, - 'DestroyUnitInfo': {'additionalProperties': False, - 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyUnitParams': {'additionalProperties': False, - 'properties': {'destroy-storage': {'type': 'boolean'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['unit-tag'], - 'type': 'object'}, - 'DestroyUnitResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'$ref': '#/definitions/DestroyUnitInfo'}}, - 'type': 'object'}, - 'DestroyUnitResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyUnitResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyUnitsParams': {'additionalProperties': False, - 'properties': {'units': {'items': {'$ref': '#/definitions/DestroyUnitParams'}, - 'type': 'array'}}, - 'required': ['units'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ExternalControllerInfo': {'additionalProperties': False, - 'properties': {'addrs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'ca-cert': {'type': 'string'}, - 'controller-alias': {'type': 'string'}, - 'controller-tag': {'type': 'string'}}, - 'required': ['controller-tag', - 'controller-alias', - 'addrs', - 'ca-cert'], - 'type': 'object'}, - 'LXDProfileUpgradeMessages': {'additionalProperties': False, - 'properties': {'application': {'$ref': '#/definitions/Entity'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['application', - 'watcher-id'], - 'type': 'object'}, - 'LXDProfileUpgradeMessagesResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'message': {'type': 'string'}, - 'unit-name': {'type': 'string'}}, - 'required': ['unit-name', - 'message'], - 'type': 'object'}, - 'LXDProfileUpgradeMessagesResults': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/LXDProfileUpgradeMessagesResult'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'OfferUserDetails': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'display-name': {'type': 'string'}, - 'user': {'type': 'string'}}, - 'required': ['user', - 'display-name', - 'access'], - 'type': 'object'}, - 'Placement': {'additionalProperties': False, - 'properties': {'directive': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['scope', 'directive'], - 'type': 'object'}, - 'RelationSuspendedArg': {'additionalProperties': False, - 'properties': {'message': {'type': 'string'}, - 'relation-id': {'type': 'integer'}, - 'suspended': {'type': 'boolean'}}, - 'required': ['relation-id', - 'message', - 'suspended'], - 'type': 'object'}, - 'RelationSuspendedArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/RelationSuspendedArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'RemoteEndpoint': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'role': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'limit'], - 'type': 'object'}, - 'RemoteSpace': {'additionalProperties': False, - 'properties': {'cloud-type': {'type': 'string'}, - 'name': {'type': 'string'}, - 'provider-attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'provider-id': {'type': 'string'}, - 'subnets': {'items': {'$ref': '#/definitions/Subnet'}, - 'type': 'array'}}, - 'required': ['cloud-type', - 'name', - 'provider-id', - 'provider-attributes', - 'subnets'], - 'type': 'object'}, - 'ScaleApplicationInfo': {'additionalProperties': False, - 'properties': {'num-units': {'type': 'integer'}}, - 'required': ['num-units'], - 'type': 'object'}, - 'ScaleApplicationParams': {'additionalProperties': False, - 'properties': {'application-tag': {'type': 'string'}, - 'scale': {'type': 'integer'}, - 'scale-change': {'type': 'integer'}}, - 'required': ['application-tag', - 'scale'], - 'type': 'object'}, - 'ScaleApplicationResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'$ref': '#/definitions/ScaleApplicationInfo'}}, - 'type': 'object'}, - 'ScaleApplicationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ScaleApplicationResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ScaleApplicationsParams': {'additionalProperties': False, - 'properties': {'applications': {'items': {'$ref': '#/definitions/ScaleApplicationParams'}, - 'type': 'array'}}, - 'required': ['applications'], - 'type': 'object'}, - 'SetConstraints': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['application', 'constraints'], - 'type': 'object'}, - 'StorageConstraints': {'additionalProperties': False, - 'properties': {'count': {'type': 'integer'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'Subnet': {'additionalProperties': False, - 'properties': {'cidr': {'type': 'string'}, - 'life': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-network-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'space-tag': {'type': 'string'}, - 'status': {'type': 'string'}, - 'vlan-tag': {'type': 'integer'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['cidr', - 'vlan-tag', - 'life', - 'space-tag', - 'zones'], - 'type': 'object'}, - 'UnitsResolved': {'additionalProperties': False, - 'properties': {'all': {'type': 'boolean'}, - 'retry': {'type': 'boolean'}, - 'tags': {'$ref': '#/definitions/Entities'}}, - 'type': 'object'}, - 'UpdateSeriesArg': {'additionalProperties': False, - 'properties': {'force': {'type': 'boolean'}, - 'series': {'type': 'string'}, - 'tag': {'$ref': '#/definitions/Entity'}}, - 'required': ['tag', 'force', 'series'], - 'type': 'object'}, - 'UpdateSeriesArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/UpdateSeriesArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'AddRelation': {'properties': {'Params': {'$ref': '#/definitions/AddRelation'}, - 'Result': {'$ref': '#/definitions/AddRelationResults'}}, - 'type': 'object'}, - 'AddUnits': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationUnits'}, - 'Result': {'$ref': '#/definitions/AddApplicationUnitsResults'}}, - 'type': 'object'}, - 'CharmConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ApplicationGetConfigResults'}}, - 'type': 'object'}, - 'CharmRelations': {'properties': {'Params': {'$ref': '#/definitions/ApplicationCharmRelations'}, - 'Result': {'$ref': '#/definitions/ApplicationCharmRelationsResults'}}, - 'type': 'object'}, - 'Consume': {'properties': {'Params': {'$ref': '#/definitions/ConsumeApplicationArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Deploy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationsDeploy'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationDestroy'}}, - 'type': 'object'}, - 'DestroyApplication': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationsParams'}, - 'Result': {'$ref': '#/definitions/DestroyApplicationResults'}}, - 'type': 'object'}, - 'DestroyConsumedApplications': {'properties': {'Params': {'$ref': '#/definitions/DestroyConsumedApplicationsParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'DestroyRelation': {'properties': {'Params': {'$ref': '#/definitions/DestroyRelation'}}, - 'type': 'object'}, - 'DestroyUnit': {'properties': {'Params': {'$ref': '#/definitions/DestroyUnitsParams'}, - 'Result': {'$ref': '#/definitions/DestroyUnitResults'}}, - 'type': 'object'}, - 'DestroyUnits': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationUnits'}}, - 'type': 'object'}, - 'Expose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationExpose'}}, - 'type': 'object'}, - 'Get': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, - 'Result': {'$ref': '#/definitions/ApplicationGetResults'}}, - 'type': 'object'}, - 'GetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, - 'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'GetConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ApplicationGetConfigResults'}}, - 'type': 'object'}, - 'GetConstraints': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ApplicationGetConstraintsResults'}}, - 'type': 'object'}, - 'GetLXDProfileUpgradeMessages': {'properties': {'Params': {'$ref': '#/definitions/LXDProfileUpgradeMessages'}, - 'Result': {'$ref': '#/definitions/LXDProfileUpgradeMessagesResults'}}, - 'type': 'object'}, - 'ResolveUnitErrors': {'properties': {'Params': {'$ref': '#/definitions/UnitsResolved'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ScaleApplications': {'properties': {'Params': {'$ref': '#/definitions/ScaleApplicationsParams'}, - 'Result': {'$ref': '#/definitions/ScaleApplicationResults'}}, - 'type': 'object'}, - 'Set': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSet'}}, - 'type': 'object'}, - 'SetApplicationsConfig': {'properties': {'Params': {'$ref': '#/definitions/ApplicationConfigSetArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetCharm': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSetCharm'}}, - 'type': 'object'}, - 'SetCharmProfile': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSetCharmProfile'}}, - 'type': 'object'}, - 'SetConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, - 'type': 'object'}, - 'SetMetricCredentials': {'properties': {'Params': {'$ref': '#/definitions/ApplicationMetricCredentials'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetRelationsSuspended': {'properties': {'Params': {'$ref': '#/definitions/RelationSuspendedArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Unexpose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnexpose'}}, - 'type': 'object'}, - 'Unset': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnset'}}, - 'type': 'object'}, - 'UnsetApplicationsConfig': {'properties': {'Params': {'$ref': '#/definitions/ApplicationConfigUnsetArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Update': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUpdate'}}, - 'type': 'object'}, - 'UpdateApplicationSeries': {'properties': {'Params': {'$ref': '#/definitions/UpdateSeriesArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchLXDProfileUpgradeNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entity'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddRelationResults) - async def AddRelation(self, endpoints): - ''' - endpoints : typing.Sequence[str] - Returns -> typing.Mapping[str, ~CharmRelation] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='AddRelation', - version=8, - params=_params) - _params['endpoints'] = endpoints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddApplicationUnitsResults) - async def AddUnits(self, application, num_units, placement): - ''' - application : str - num_units : int - placement : typing.Sequence[~Placement] - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='AddUnits', - version=8, - params=_params) - _params['application'] = application - _params['num-units'] = num_units - _params['placement'] = placement - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationGetConfigResults) - async def CharmConfig(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ConfigResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='CharmConfig', - version=8, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationCharmRelationsResults) - async def CharmRelations(self, application): - ''' - application : str - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='CharmRelations', - version=8, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Consume(self, args): - ''' - args : typing.Sequence[~ConsumeApplicationArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Consume', - version=8, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Deploy(self, applications): - ''' - applications : typing.Sequence[~ApplicationDeploy] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Deploy', - version=8, - params=_params) - _params['applications'] = applications - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Destroy(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Destroy', - version=8, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DestroyApplicationResults) - async def DestroyApplication(self, applications): - ''' - applications : typing.Sequence[~DestroyApplicationParams] - Returns -> typing.Sequence[~DestroyApplicationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyApplication', - version=8, - params=_params) - _params['applications'] = applications - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DestroyConsumedApplications(self, applications): - ''' - applications : typing.Sequence[~DestroyConsumedApplicationParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyConsumedApplications', - version=8, - params=_params) - _params['applications'] = applications - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyRelation(self, endpoints): - ''' - endpoints : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyRelation', - version=8, - params=_params) - _params['endpoints'] = endpoints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DestroyUnitResults) - async def DestroyUnit(self, units): - ''' - units : typing.Sequence[~DestroyUnitParams] - Returns -> typing.Sequence[~DestroyUnitResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyUnit', - version=8, - params=_params) - _params['units'] = units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyUnits(self, unit_names): - ''' - unit_names : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyUnits', - version=8, - params=_params) - _params['unit-names'] = unit_names - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Expose(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Expose', - version=8, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationGetResults) - async def Get(self, application): - ''' - application : str - Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Get', - version=8, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def GetCharmURL(self, application): - ''' - application : str - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetCharmURL', - version=8, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationGetConfigResults) - async def GetConfig(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ConfigResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetConfig', - version=8, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationGetConstraintsResults) - async def GetConstraints(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ApplicationConstraint] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetConstraints', - version=8, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LXDProfileUpgradeMessagesResults) - async def GetLXDProfileUpgradeMessages(self, application, watcher_id): - ''' - application : Entity - watcher_id : str - Returns -> typing.Sequence[~LXDProfileUpgradeMessagesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetLXDProfileUpgradeMessages', - version=8, - params=_params) - _params['application'] = application - _params['watcher-id'] = watcher_id - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ResolveUnitErrors(self, all_, retry, tags): - ''' - all_ : bool - retry : bool - tags : Entities - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='ResolveUnitErrors', - version=8, - params=_params) - _params['all'] = all_ - _params['retry'] = retry - _params['tags'] = tags - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ScaleApplicationResults) - async def ScaleApplications(self, applications): - ''' - applications : typing.Sequence[~ScaleApplicationParams] - Returns -> typing.Sequence[~ScaleApplicationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='ScaleApplications', - version=8, - params=_params) - _params['applications'] = applications - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Set(self, application, options): - ''' - application : str - options : typing.Mapping[str, str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Set', - version=8, - params=_params) - _params['application'] = application - _params['options'] = options - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetApplicationsConfig(self, args): - ''' - args : typing.Sequence[~ApplicationConfigSet] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetApplicationsConfig', - version=8, - params=_params) - _params['Args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetCharm(self, application, channel, charm_url, config_settings, config_settings_yaml, force_series, force_units, resource_ids, storage_constraints): - ''' - application : str - channel : str - charm_url : str - config_settings : typing.Mapping[str, str] - config_settings_yaml : str - force_series : bool - force_units : bool - resource_ids : typing.Mapping[str, str] - storage_constraints : typing.Mapping[str, ~StorageConstraints] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetCharm', - version=8, - params=_params) - _params['application'] = application - _params['channel'] = channel - _params['charm-url'] = charm_url - _params['config-settings'] = config_settings - _params['config-settings-yaml'] = config_settings_yaml - _params['force-series'] = force_series - _params['force-units'] = force_units - _params['resource-ids'] = resource_ids - _params['storage-constraints'] = storage_constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetCharmProfile(self, application, charm_url): - ''' - application : str - charm_url : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetCharmProfile', - version=8, - params=_params) - _params['application'] = application - _params['charm-url'] = charm_url - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetConstraints(self, application, constraints): - ''' - application : str - constraints : Value - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetConstraints', - version=8, - params=_params) - _params['application'] = application - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetMetricCredentials(self, creds): - ''' - creds : typing.Sequence[~ApplicationMetricCredential] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetMetricCredentials', - version=8, - params=_params) - _params['creds'] = creds - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetRelationsSuspended(self, args): - ''' - args : typing.Sequence[~RelationSuspendedArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetRelationsSuspended', - version=8, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Unexpose(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Unexpose', - version=8, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Unset(self, application, options): - ''' - application : str - options : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Unset', - version=8, - params=_params) - _params['application'] = application - _params['options'] = options - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UnsetApplicationsConfig(self, args): - ''' - args : typing.Sequence[~ApplicationUnset] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='UnsetApplicationsConfig', - version=8, - params=_params) - _params['Args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Update(self, application, charm_url, constraints, force_charm_url, force_series, min_units, settings, settings_yaml): - ''' - application : str - charm_url : str - constraints : Value - force_charm_url : bool - force_series : bool - min_units : int - settings : typing.Mapping[str, str] - settings_yaml : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Update', - version=8, - params=_params) - _params['application'] = application - _params['charm-url'] = charm_url - _params['constraints'] = constraints - _params['force-charm-url'] = force_charm_url - _params['force-series'] = force_series - _params['min-units'] = min_units - _params['settings'] = settings - _params['settings-yaml'] = settings_yaml - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateApplicationSeries(self, args): - ''' - args : typing.Sequence[~UpdateSeriesArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='UpdateApplicationSeries', - version=8, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchLXDProfileUpgradeNotifications(self, tag): - ''' - tag : str - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='WatchLXDProfileUpgradeNotifications', - version=8, - params=_params) - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - diff --git a/modules/libjuju/juju/client/_client9.py b/modules/libjuju/juju/client/_client9.py deleted file mode 100644 index d87dd8f..0000000 --- a/modules/libjuju/juju/client/_client9.py +++ /dev/null @@ -1,2385 +0,0 @@ -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. - -from juju.client.facade import Type, ReturnMapping -from juju.client._definitions import * - - -class UniterFacade(Type): - name = 'Uniter' - version = 9 - schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, - 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, - 'type': 'array'}, - 'type': 'array'}}, - 'required': ['servers'], - 'type': 'object'}, - 'Action': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'parameters': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'receiver': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'receiver', 'name'], - 'type': 'object'}, - 'ActionExecutionResult': {'additionalProperties': False, - 'properties': {'action-tag': {'type': 'string'}, - 'message': {'type': 'string'}, - 'results': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'status': {'type': 'string'}}, - 'required': ['action-tag', 'status'], - 'type': 'object'}, - 'ActionExecutionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ActionExecutionResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ActionResult': {'additionalProperties': False, - 'properties': {'action': {'$ref': '#/definitions/Action'}, - 'completed': {'format': 'date-time', - 'type': 'string'}, - 'enqueued': {'format': 'date-time', - 'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'message': {'type': 'string'}, - 'output': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'started': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'type': 'object'}, - 'ActionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'ApplicationStatusResult': {'additionalProperties': False, - 'properties': {'application': {'$ref': '#/definitions/StatusResult'}, - 'error': {'$ref': '#/definitions/Error'}, - 'units': {'patternProperties': {'.*': {'$ref': '#/definitions/StatusResult'}}, - 'type': 'object'}}, - 'required': ['application', - 'units'], - 'type': 'object'}, - 'ApplicationStatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationStatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'BoolResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'boolean'}}, - 'required': ['result'], - 'type': 'object'}, - 'BoolResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'CharmRelation': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'optional': {'type': 'boolean'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'optional', - 'limit', - 'scope'], - 'type': 'object'}, - 'CharmURL': {'additionalProperties': False, - 'properties': {'url': {'type': 'string'}}, - 'required': ['url'], - 'type': 'object'}, - 'CharmURLs': {'additionalProperties': False, - 'properties': {'urls': {'items': {'$ref': '#/definitions/CharmURL'}, - 'type': 'array'}}, - 'required': ['urls'], - 'type': 'object'}, - 'CloudCredential': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'auth-type': {'type': 'string'}, - 'redacted': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['auth-type'], - 'type': 'object'}, - 'CloudSpec': {'additionalProperties': False, - 'properties': {'cacertificates': {'items': {'type': 'string'}, - 'type': 'array'}, - 'credential': {'$ref': '#/definitions/CloudCredential'}, - 'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'name': {'type': 'string'}, - 'region': {'type': 'string'}, - 'storage-endpoint': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type', 'name'], - 'type': 'object'}, - 'CloudSpecResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/CloudSpec'}}, - 'type': 'object'}, - 'ConfigSettingsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'settings': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['settings'], - 'type': 'object'}, - 'ConfigSettingsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ConfigSettingsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Endpoint': {'additionalProperties': False, - 'properties': {'application-name': {'type': 'string'}, - 'relation': {'$ref': '#/definitions/CharmRelation'}}, - 'required': ['application-name', 'relation'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesCharmURL': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityCharmURL'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesPortRanges': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityPortRange'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityCharmURL': {'additionalProperties': False, - 'properties': {'charm-url': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'charm-url'], - 'type': 'object'}, - 'EntityPortRange': {'additionalProperties': False, - 'properties': {'from-port': {'type': 'integer'}, - 'protocol': {'type': 'string'}, - 'tag': {'type': 'string'}, - 'to-port': {'type': 'integer'}}, - 'required': ['tag', - 'protocol', - 'from-port', - 'to-port'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'EntityString': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['tag', 'value'], - 'type': 'object'}, - 'EntityWorkloadVersion': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}, - 'workload-version': {'type': 'string'}}, - 'required': ['tag', - 'workload-version'], - 'type': 'object'}, - 'EntityWorkloadVersions': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityWorkloadVersion'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GetLeadershipSettingsBulkResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/GetLeadershipSettingsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GetLeadershipSettingsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['settings'], - 'type': 'object'}, - 'GoalState': {'additionalProperties': False, - 'properties': {'relations': {'patternProperties': {'.*': {'patternProperties': {'.*': {'$ref': '#/definitions/GoalStateStatus'}}, - 'type': 'object'}}, - 'type': 'object'}, - 'units': {'patternProperties': {'.*': {'$ref': '#/definitions/GoalStateStatus'}}, - 'type': 'object'}}, - 'required': ['units', 'relations'], - 'type': 'object'}, - 'GoalStateResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/GoalState'}}, - 'required': ['result', 'error'], - 'type': 'object'}, - 'GoalStateResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/GoalStateResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GoalStateStatus': {'additionalProperties': False, - 'properties': {'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'since'], - 'type': 'object'}, - 'HostPort': {'additionalProperties': False, - 'properties': {'Address': {'$ref': '#/definitions/Address'}, - 'port': {'type': 'integer'}}, - 'required': ['Address', 'port'], - 'type': 'object'}, - 'IntResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'integer'}}, - 'required': ['result'], - 'type': 'object'}, - 'IntResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/IntResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'InterfaceAddress': {'additionalProperties': False, - 'properties': {'cidr': {'type': 'string'}, - 'hostname': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['hostname', 'value', 'cidr'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachinePortRange': {'additionalProperties': False, - 'properties': {'port-range': {'$ref': '#/definitions/PortRange'}, - 'relation-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['unit-tag', - 'relation-tag', - 'port-range'], - 'type': 'object'}, - 'MachinePortsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'ports': {'items': {'$ref': '#/definitions/MachinePortRange'}, - 'type': 'array'}}, - 'required': ['ports'], - 'type': 'object'}, - 'MachinePortsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MachinePortsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'MergeLeadershipSettingsBulkParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/MergeLeadershipSettingsParam'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'MergeLeadershipSettingsParam': {'additionalProperties': False, - 'properties': {'application-tag': {'type': 'string'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['settings'], - 'type': 'object'}, - 'MeterStatusResult': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'info': {'type': 'string'}}, - 'required': ['code', 'info'], - 'type': 'object'}, - 'MeterStatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MeterStatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Metric': {'additionalProperties': False, - 'properties': {'key': {'type': 'string'}, - 'labels': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'time': {'format': 'date-time', - 'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['key', 'value', 'time'], - 'type': 'object'}, - 'MetricBatch': {'additionalProperties': False, - 'properties': {'charm-url': {'type': 'string'}, - 'created': {'format': 'date-time', - 'type': 'string'}, - 'metrics': {'items': {'$ref': '#/definitions/Metric'}, - 'type': 'array'}, - 'uuid': {'type': 'string'}}, - 'required': ['uuid', - 'charm-url', - 'created', - 'metrics'], - 'type': 'object'}, - 'MetricBatchParam': {'additionalProperties': False, - 'properties': {'batch': {'$ref': '#/definitions/MetricBatch'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'batch'], - 'type': 'object'}, - 'MetricBatchParams': {'additionalProperties': False, - 'properties': {'batches': {'items': {'$ref': '#/definitions/MetricBatchParam'}, - 'type': 'array'}}, - 'required': ['batches'], - 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', 'uuid', 'type'], - 'type': 'object'}, - 'NetworkInfo': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'$ref': '#/definitions/InterfaceAddress'}, - 'type': 'array'}, - 'interface-name': {'type': 'string'}, - 'mac-address': {'type': 'string'}}, - 'required': ['mac-address', - 'interface-name', - 'addresses'], - 'type': 'object'}, - 'NetworkInfoParams': {'additionalProperties': False, - 'properties': {'bindings': {'items': {'type': 'string'}, - 'type': 'array'}, - 'relation-id': {'type': 'integer'}, - 'unit': {'type': 'string'}}, - 'required': ['unit', 'bindings'], - 'type': 'object'}, - 'NetworkInfoResult': {'additionalProperties': False, - 'properties': {'bind-addresses': {'items': {'$ref': '#/definitions/NetworkInfo'}, - 'type': 'array'}, - 'egress-subnets': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'ingress-addresses': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'NetworkInfoResults': {'additionalProperties': False, - 'properties': {'results': {'patternProperties': {'.*': {'$ref': '#/definitions/NetworkInfoResult'}}, - 'type': 'object'}}, - 'required': ['results'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'PortRange': {'additionalProperties': False, - 'properties': {'from-port': {'type': 'integer'}, - 'protocol': {'type': 'string'}, - 'to-port': {'type': 'integer'}}, - 'required': ['from-port', 'to-port', 'protocol'], - 'type': 'object'}, - 'RelationIds': {'additionalProperties': False, - 'properties': {'relation-ids': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['relation-ids'], - 'type': 'object'}, - 'RelationResult': {'additionalProperties': False, - 'properties': {'bool': {'type': 'boolean'}, - 'endpoint': {'$ref': '#/definitions/Endpoint'}, - 'error': {'$ref': '#/definitions/Error'}, - 'id': {'type': 'integer'}, - 'key': {'type': 'string'}, - 'life': {'type': 'string'}, - 'other-application': {'type': 'string'}}, - 'required': ['life', - 'id', - 'key', - 'endpoint'], - 'type': 'object'}, - 'RelationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RelationResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RelationStatusArg': {'additionalProperties': False, - 'properties': {'message': {'type': 'string'}, - 'relation-id': {'type': 'integer'}, - 'status': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['unit-tag', - 'relation-id', - 'status', - 'message'], - 'type': 'object'}, - 'RelationStatusArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/RelationStatusArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'RelationUnit': {'additionalProperties': False, - 'properties': {'relation': {'type': 'string'}, - 'unit': {'type': 'string'}}, - 'required': ['relation', 'unit'], - 'type': 'object'}, - 'RelationUnitPair': {'additionalProperties': False, - 'properties': {'local-unit': {'type': 'string'}, - 'relation': {'type': 'string'}, - 'remote-unit': {'type': 'string'}}, - 'required': ['relation', - 'local-unit', - 'remote-unit'], - 'type': 'object'}, - 'RelationUnitPairs': {'additionalProperties': False, - 'properties': {'relation-unit-pairs': {'items': {'$ref': '#/definitions/RelationUnitPair'}, - 'type': 'array'}}, - 'required': ['relation-unit-pairs'], - 'type': 'object'}, - 'RelationUnitSettings': {'additionalProperties': False, - 'properties': {'relation': {'type': 'string'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'unit': {'type': 'string'}}, - 'required': ['relation', - 'unit', - 'settings'], - 'type': 'object'}, - 'RelationUnitStatus': {'additionalProperties': False, - 'properties': {'in-scope': {'type': 'boolean'}, - 'relation-tag': {'type': 'string'}, - 'suspended': {'type': 'boolean'}}, - 'required': ['relation-tag', - 'in-scope', - 'suspended'], - 'type': 'object'}, - 'RelationUnitStatusResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'results': {'items': {'$ref': '#/definitions/RelationUnitStatus'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RelationUnitStatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RelationUnitStatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RelationUnits': {'additionalProperties': False, - 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnit'}, - 'type': 'array'}}, - 'required': ['relation-units'], - 'type': 'object'}, - 'RelationUnitsChange': {'additionalProperties': False, - 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}}, - 'type': 'object'}, - 'departed': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['changed'], - 'type': 'object'}, - 'RelationUnitsSettings': {'additionalProperties': False, - 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnitSettings'}, - 'type': 'array'}}, - 'required': ['relation-units'], - 'type': 'object'}, - 'RelationUnitsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'$ref': '#/definitions/RelationUnitsChange'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}, - 'RelationUnitsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RelationUnitsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ResolvedModeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'mode': {'type': 'string'}}, - 'required': ['mode'], - 'type': 'object'}, - 'ResolvedModeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ResolvedModeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SetPodSpecParams': {'additionalProperties': False, - 'properties': {'specs': {'items': {'$ref': '#/definitions/EntityString'}, - 'type': 'array'}}, - 'required': ['specs'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'SettingsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['settings'], - 'type': 'object'}, - 'SettingsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/SettingsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StatusResult': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'error': {'$ref': '#/definitions/Error'}, - 'id': {'type': 'string'}, - 'info': {'type': 'string'}, - 'life': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['id', - 'life', - 'status', - 'info', - 'data', - 'since'], - 'type': 'object'}, - 'StatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StorageAddParams': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'storage': {'$ref': '#/definitions/StorageConstraints'}, - 'unit': {'type': 'string'}}, - 'required': ['unit', 'name', 'storage'], - 'type': 'object'}, - 'StorageAttachment': {'additionalProperties': False, - 'properties': {'kind': {'type': 'integer'}, - 'life': {'type': 'string'}, - 'location': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'storage-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'owner-tag', - 'unit-tag', - 'kind', - 'location', - 'life'], - 'type': 'object'}, - 'StorageAttachmentId': {'additionalProperties': False, - 'properties': {'storage-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'unit-tag'], - 'type': 'object'}, - 'StorageAttachmentIds': {'additionalProperties': False, - 'properties': {'ids': {'items': {'$ref': '#/definitions/StorageAttachmentId'}, - 'type': 'array'}}, - 'required': ['ids'], - 'type': 'object'}, - 'StorageAttachmentIdsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/StorageAttachmentIds'}}, - 'required': ['result'], - 'type': 'object'}, - 'StorageAttachmentIdsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StorageAttachmentIdsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageAttachmentResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/StorageAttachment'}}, - 'required': ['result'], - 'type': 'object'}, - 'StorageAttachmentResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StorageAttachmentResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageConstraints': {'additionalProperties': False, - 'properties': {'count': {'type': 'integer'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'type': 'object'}, - 'StoragesAddParams': {'additionalProperties': False, - 'properties': {'storages': {'items': {'$ref': '#/definitions/StorageAddParams'}, - 'type': 'array'}}, - 'required': ['storages'], - 'type': 'object'}, - 'StringBoolResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'ok': {'type': 'boolean'}, - 'result': {'type': 'string'}}, - 'required': ['result', 'ok'], - 'type': 'object'}, - 'StringBoolResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringBoolResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UnitRefreshResult': {'additionalProperties': False, - 'properties': {'Error': {'$ref': '#/definitions/Error'}, - 'Life': {'type': 'string'}, - 'Resolved': {'type': 'string'}}, - 'required': ['Life', - 'Resolved', - 'Error'], - 'type': 'object'}, - 'UnitRefreshResults': {'additionalProperties': False, - 'properties': {'Results': {'items': {'$ref': '#/definitions/UnitRefreshResult'}, - 'type': 'array'}}, - 'required': ['Results'], - 'type': 'object'}, - 'UnitSettings': {'additionalProperties': False, - 'properties': {'version': {'type': 'integer'}}, - 'required': ['version'], - 'type': 'object'}, - 'UpgradeSeriesStatusParam': {'additionalProperties': False, - 'properties': {'entity': {'$ref': '#/definitions/Entity'}, - 'message': {'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['entity', - 'status', - 'message'], - 'type': 'object'}, - 'UpgradeSeriesStatusParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/UpgradeSeriesStatusParam'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'UpgradeSeriesStatusResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'status': {'type': 'string'}}, - 'type': 'object'}, - 'UpgradeSeriesStatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/UpgradeSeriesStatusResult'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, - 'type': 'object'}, - 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, - 'type': 'object'}, - 'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'AddMetricBatches': {'properties': {'Params': {'$ref': '#/definitions/MetricBatchParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'AddUnitStorage': {'properties': {'Params': {'$ref': '#/definitions/StoragesAddParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'AllMachinePorts': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachinePortsResults'}}, - 'type': 'object'}, - 'ApplicationStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ApplicationStatusResults'}}, - 'type': 'object'}, - 'AssignedMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'AvailabilityZone': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'BeginActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'CharmArchiveSha256': {'properties': {'Params': {'$ref': '#/definitions/CharmURLs'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'CharmModifiedVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/IntResults'}}, - 'type': 'object'}, - 'CharmURL': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringBoolResults'}}, - 'type': 'object'}, - 'ClearResolved': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ClosePorts': {'properties': {'Params': {'$ref': '#/definitions/EntitiesPortRanges'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'CloudSpec': {'properties': {'Result': {'$ref': '#/definitions/CloudSpecResult'}}, - 'type': 'object'}, - 'ConfigSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ConfigSettingsResults'}}, - 'type': 'object'}, - 'CurrentModel': {'properties': {'Result': {'$ref': '#/definitions/ModelResult'}}, - 'type': 'object'}, - 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'DestroyAllSubordinates': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'DestroyUnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'EnterScope': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'FinishActions': {'properties': {'Params': {'$ref': '#/definitions/ActionExecutionResults'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'GetMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MeterStatusResults'}}, - 'type': 'object'}, - 'GetPrincipal': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringBoolResults'}}, - 'type': 'object'}, - 'GoalStates': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/GoalStateResults'}}, - 'type': 'object'}, - 'HasSubordinates': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/BoolResults'}}, - 'type': 'object'}, - 'LeaveScope': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'Merge': {'properties': {'Params': {'$ref': '#/definitions/MergeLeadershipSettingsBulkParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'NetworkInfo': {'properties': {'Params': {'$ref': '#/definitions/NetworkInfoParams'}, - 'Result': {'$ref': '#/definitions/NetworkInfoResults'}}, - 'type': 'object'}, - 'OpenPorts': {'properties': {'Params': {'$ref': '#/definitions/EntitiesPortRanges'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'ProviderType': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'Read': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/GetLeadershipSettingsBulkResults'}}, - 'type': 'object'}, - 'ReadRemoteSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnitPairs'}, - 'Result': {'$ref': '#/definitions/SettingsResults'}}, - 'type': 'object'}, - 'ReadSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/SettingsResults'}}, - 'type': 'object'}, - 'Refresh': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/UnitRefreshResults'}}, - 'type': 'object'}, - 'Relation': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/RelationResults'}}, - 'type': 'object'}, - 'RelationById': {'properties': {'Params': {'$ref': '#/definitions/RelationIds'}, - 'Result': {'$ref': '#/definitions/RelationResults'}}, - 'type': 'object'}, - 'RelationsStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/RelationUnitStatusResults'}}, - 'type': 'object'}, - 'RemoveStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RequestReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Resolved': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ResolvedModeResults'}}, - 'type': 'object'}, - 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'SetAgentStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetApplicationStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/EntitiesCharmURL'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetPodSpec': {'properties': {'Params': {'$ref': '#/definitions/SetPodSpecParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetRelationStatus': {'properties': {'Params': {'$ref': '#/definitions/RelationStatusArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetUnitStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetUpgradeSeriesUnitStatus': {'properties': {'Params': {'$ref': '#/definitions/UpgradeSeriesStatusParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetWorkloadVersion': {'properties': {'Params': {'$ref': '#/definitions/EntityWorkloadVersions'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'StorageAttachmentLife': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'StorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/StorageAttachmentResults'}}, - 'type': 'object'}, - 'UnitStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StatusResults'}}, - 'type': 'object'}, - 'UnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StorageAttachmentIdsResults'}}, - 'type': 'object'}, - 'UpdateSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnitsSettings'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UpgradeSeriesUnitStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/UpgradeSeriesStatusResults'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchActionNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchConfigSettingsHash': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchLeadershipSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchRelationUnits': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/RelationUnitsWatchResults'}}, - 'type': 'object'}, - 'WatchStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchTrustConfigSettingsHash': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchUnitAddressesHash': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchUnitRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchUnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchUpgradeSeriesNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WorkloadVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringsResult) - async def APIAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='APIAddresses', - version=9, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(APIHostPortsResult) - async def APIHostPorts(self): - ''' - - Returns -> typing.Sequence[~HostPort] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='APIHostPorts', - version=9, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionResults) - async def Actions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Actions', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def AddMetricBatches(self, batches): - ''' - batches : typing.Sequence[~MetricBatchParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AddMetricBatches', - version=9, - params=_params) - _params['batches'] = batches - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def AddUnitStorage(self, storages): - ''' - storages : typing.Sequence[~StorageAddParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AddUnitStorage', - version=9, - params=_params) - _params['storages'] = storages - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachinePortsResults) - async def AllMachinePorts(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachinePortsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AllMachinePorts', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationStatusResults) - async def ApplicationStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ApplicationStatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ApplicationStatus', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def AssignedMachine(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AssignedMachine', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def AvailabilityZone(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AvailabilityZone', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def BeginActions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='BeginActions', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def CharmArchiveSha256(self, urls): - ''' - urls : typing.Sequence[~CharmURL] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CharmArchiveSha256', - version=9, - params=_params) - _params['urls'] = urls - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(IntResults) - async def CharmModifiedVersion(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~IntResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CharmModifiedVersion', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringBoolResults) - async def CharmURL(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringBoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CharmURL', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ClearResolved(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ClearResolved', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ClosePorts(self, entities): - ''' - entities : typing.Sequence[~EntityPortRange] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ClosePorts', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudSpecResult) - async def CloudSpec(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CloudSpec', - version=9, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ConfigSettingsResults) - async def ConfigSettings(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ConfigSettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ConfigSettings', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelResult) - async def CurrentModel(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CurrentModel', - version=9, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Destroy(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Destroy', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DestroyAllSubordinates(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='DestroyAllSubordinates', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DestroyUnitStorageAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='DestroyUnitStorageAttachments', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnsureDead(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='EnsureDead', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnterScope(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='EnterScope', - version=9, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def FinishActions(self, results): - ''' - results : typing.Sequence[~ActionExecutionResult] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='FinishActions', - version=9, - params=_params) - _params['results'] = results - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MeterStatusResults) - async def GetMeterStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MeterStatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='GetMeterStatus', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringBoolResults) - async def GetPrincipal(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringBoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='GetPrincipal', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(GoalStateResults) - async def GoalStates(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~GoalStateResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='GoalStates', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BoolResults) - async def HasSubordinates(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~BoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='HasSubordinates', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def LeaveScope(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='LeaveScope', - version=9, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Life', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Merge(self, params): - ''' - params : typing.Sequence[~MergeLeadershipSettingsParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Merge', - version=9, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ModelConfig', - version=9, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ModelUUID(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ModelUUID', - version=9, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NetworkInfoResults) - async def NetworkInfo(self, bindings, unit): - ''' - bindings : typing.Sequence[str] - unit : str - Returns -> typing.Mapping[str, ~NetworkInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='NetworkInfo', - version=9, - params=_params) - _params['bindings'] = bindings - _params['unit'] = unit - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def OpenPorts(self, entities): - ''' - entities : typing.Sequence[~EntityPortRange] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='OpenPorts', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def PrivateAddress(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='PrivateAddress', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ProviderType(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ProviderType', - version=9, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def PublicAddress(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='PublicAddress', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(GetLeadershipSettingsBulkResults) - async def Read(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~GetLeadershipSettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Read', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SettingsResults) - async def ReadRemoteSettings(self, relation_unit_pairs): - ''' - relation_unit_pairs : typing.Sequence[~RelationUnitPair] - Returns -> typing.Sequence[~SettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ReadRemoteSettings', - version=9, - params=_params) - _params['relation-unit-pairs'] = relation_unit_pairs - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SettingsResults) - async def ReadSettings(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~SettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ReadSettings', - version=9, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UnitRefreshResults) - async def Refresh(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~UnitRefreshResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Refresh', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationResults) - async def Relation(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~RelationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Relation', - version=9, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationResults) - async def RelationById(self, relation_ids): - ''' - relation_ids : typing.Sequence[int] - Returns -> typing.Sequence[~RelationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='RelationById', - version=9, - params=_params) - _params['relation-ids'] = relation_ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationUnitStatusResults) - async def RelationsStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~RelationUnitStatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='RelationsStatus', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RemoveStorageAttachments(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='RemoveStorageAttachments', - version=9, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RequestReboot(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='RequestReboot', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ResolvedModeResults) - async def Resolved(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ResolvedModeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Resolved', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def SLALevel(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SLALevel', - version=9, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetAgentStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetAgentStatus', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetApplicationStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetApplicationStatus', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetCharmURL(self, entities): - ''' - entities : typing.Sequence[~EntityCharmURL] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetCharmURL', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetPodSpec(self, specs): - ''' - specs : typing.Sequence[~EntityString] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetPodSpec', - version=9, - params=_params) - _params['specs'] = specs - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetRelationStatus(self, args): - ''' - args : typing.Sequence[~RelationStatusArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetRelationStatus', - version=9, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetStatus', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetUnitStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetUnitStatus', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetUpgradeSeriesUnitStatus(self, params): - ''' - params : typing.Sequence[~UpgradeSeriesStatusParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetUpgradeSeriesUnitStatus', - version=9, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetWorkloadVersion(self, entities): - ''' - entities : typing.Sequence[~EntityWorkloadVersion] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetWorkloadVersion', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def StorageAttachmentLife(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='StorageAttachmentLife', - version=9, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StorageAttachmentResults) - async def StorageAttachments(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~StorageAttachmentResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='StorageAttachments', - version=9, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusResults) - async def UnitStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='UnitStatus', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StorageAttachmentIdsResults) - async def UnitStorageAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StorageAttachmentIdsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='UnitStorageAttachments', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateSettings(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnitSettings] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='UpdateSettings', - version=9, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UpgradeSeriesStatusResults) - async def UpgradeSeriesUnitStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~UpgradeSeriesStatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='UpgradeSeriesUnitStatus', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def Watch(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Watch', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchAPIHostPorts(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchAPIHostPorts', - version=9, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchActionNotifications(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchActionNotifications', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchConfigSettingsHash(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchConfigSettingsHash', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchForModelConfigChanges', - version=9, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchLeadershipSettings(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchLeadershipSettings', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchMeterStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchMeterStatus', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationUnitsWatchResults) - async def WatchRelationUnits(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~RelationUnitsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchRelationUnits', - version=9, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchStorageAttachments(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchStorageAttachments', - version=9, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchTrustConfigSettingsHash(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchTrustConfigSettingsHash', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchUnitAddressesHash(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchUnitAddressesHash', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchUnitRelations(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchUnitRelations', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchUnitStorageAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchUnitStorageAttachments', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchUpgradeSeriesNotifications(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchUpgradeSeriesNotifications', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def WorkloadVersion(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WorkloadVersion', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - diff --git a/modules/libjuju/juju/client/_definitions.py b/modules/libjuju/juju/client/_definitions.py deleted file mode 100644 index 2d25e39..0000000 --- a/modules/libjuju/juju/client/_definitions.py +++ /dev/null @@ -1,11058 +0,0 @@ -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. - -from juju.client.facade import ReturnMapping, Type - - -class APIHostPortsResult(Type): - _toSchema = {'servers': 'servers'} - _toPy = {'servers': 'servers'} - def __init__(self, servers=None, **unknown_fields): - ''' - servers : typing.Sequence[~HostPort] - ''' - self.servers = [HostPort.from_json(o) for o in servers or []] - - - -class Action(Type): - _toSchema = {'name': 'name', 'parameters': 'parameters', 'receiver': 'receiver', 'tag': 'tag'} - _toPy = {'name': 'name', 'parameters': 'parameters', 'receiver': 'receiver', 'tag': 'tag'} - def __init__(self, name=None, parameters=None, receiver=None, tag=None, **unknown_fields): - ''' - name : str - parameters : typing.Mapping[str, typing.Any] - receiver : str - tag : str - ''' - self.name = name - self.parameters = parameters - self.receiver = receiver - self.tag = tag - - - -class ActionExecutionResult(Type): - _toSchema = {'action_tag': 'action-tag', 'message': 'message', 'results': 'results', 'status': 'status'} - _toPy = {'action-tag': 'action_tag', 'message': 'message', 'results': 'results', 'status': 'status'} - def __init__(self, action_tag=None, message=None, results=None, status=None, **unknown_fields): - ''' - action_tag : str - message : str - results : typing.Mapping[str, typing.Any] - status : str - ''' - self.action_tag = action_tag - self.message = message - self.results = results - self.status = status - - - -class ActionExecutionResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ActionExecutionResult] - ''' - self.results = [ActionExecutionResult.from_json(o) for o in results or []] - - - -class ActionPruneArgs(Type): - _toSchema = {'max_history_mb': 'max-history-mb', 'max_history_time': 'max-history-time'} - _toPy = {'max-history-mb': 'max_history_mb', 'max-history-time': 'max_history_time'} - def __init__(self, max_history_mb=None, max_history_time=None, **unknown_fields): - ''' - max_history_mb : int - max_history_time : int - ''' - self.max_history_mb = max_history_mb - self.max_history_time = max_history_time - - - -class ActionResult(Type): - _toSchema = {'action': 'action', 'completed': 'completed', 'enqueued': 'enqueued', 'error': 'error', 'message': 'message', 'output': 'output', 'started': 'started', 'status': 'status'} - _toPy = {'action': 'action', 'completed': 'completed', 'enqueued': 'enqueued', 'error': 'error', 'message': 'message', 'output': 'output', 'started': 'started', 'status': 'status'} - def __init__(self, action=None, completed=None, enqueued=None, error=None, message=None, output=None, started=None, status=None, **unknown_fields): - ''' - action : Action - completed : str - enqueued : str - error : Error - message : str - output : typing.Mapping[str, typing.Any] - started : str - status : str - ''' - self.action = Action.from_json(action) if action else None - self.completed = completed - self.enqueued = enqueued - self.error = Error.from_json(error) if error else None - self.message = message - self.output = output - self.started = started - self.status = status - - - -class ActionResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ActionResult] - ''' - self.results = [ActionResult.from_json(o) for o in results or []] - - - -class ActionSpec(Type): - _toSchema = {'description': 'description', 'params': 'params'} - _toPy = {'description': 'description', 'params': 'params'} - def __init__(self, description=None, params=None, **unknown_fields): - ''' - description : str - params : typing.Mapping[str, typing.Any] - ''' - self.description = description - self.params = params - - - -class Actions(Type): - _toSchema = {'actions': 'actions'} - _toPy = {'actions': 'actions'} - def __init__(self, actions=None, **unknown_fields): - ''' - actions : typing.Sequence[~Action] - ''' - self.actions = [Action.from_json(o) for o in actions or []] - - - -class ActionsByName(Type): - _toSchema = {'actions': 'actions', 'error': 'error', 'name': 'name'} - _toPy = {'actions': 'actions', 'error': 'error', 'name': 'name'} - def __init__(self, actions=None, error=None, name=None, **unknown_fields): - ''' - actions : typing.Sequence[~ActionResult] - error : Error - name : str - ''' - self.actions = [ActionResult.from_json(o) for o in actions or []] - self.error = Error.from_json(error) if error else None - self.name = name - - - -class ActionsByNames(Type): - _toSchema = {'actions': 'actions'} - _toPy = {'actions': 'actions'} - def __init__(self, actions=None, **unknown_fields): - ''' - actions : typing.Sequence[~ActionsByName] - ''' - self.actions = [ActionsByName.from_json(o) for o in actions or []] - - - -class ActionsByReceiver(Type): - _toSchema = {'actions': 'actions', 'error': 'error', 'receiver': 'receiver'} - _toPy = {'actions': 'actions', 'error': 'error', 'receiver': 'receiver'} - def __init__(self, actions=None, error=None, receiver=None, **unknown_fields): - ''' - actions : typing.Sequence[~ActionResult] - error : Error - receiver : str - ''' - self.actions = [ActionResult.from_json(o) for o in actions or []] - self.error = Error.from_json(error) if error else None - self.receiver = receiver - - - -class ActionsByReceivers(Type): - _toSchema = {'actions': 'actions'} - _toPy = {'actions': 'actions'} - def __init__(self, actions=None, **unknown_fields): - ''' - actions : typing.Sequence[~ActionsByReceiver] - ''' - self.actions = [ActionsByReceiver.from_json(o) for o in actions or []] - - - -class AddApplicationOffer(Type): - _toSchema = {'application_description': 'application-description', 'application_name': 'application-name', 'endpoints': 'endpoints', 'model_tag': 'model-tag', 'offer_name': 'offer-name'} - _toPy = {'application-description': 'application_description', 'application-name': 'application_name', 'endpoints': 'endpoints', 'model-tag': 'model_tag', 'offer-name': 'offer_name'} - def __init__(self, application_description=None, application_name=None, endpoints=None, model_tag=None, offer_name=None, **unknown_fields): - ''' - application_description : str - application_name : str - endpoints : typing.Mapping[str, str] - model_tag : str - offer_name : str - ''' - self.application_description = application_description - self.application_name = application_name - self.endpoints = endpoints - self.model_tag = model_tag - self.offer_name = offer_name - - - -class AddApplicationOffers(Type): - _toSchema = {'offers': 'Offers'} - _toPy = {'Offers': 'offers'} - def __init__(self, offers=None, **unknown_fields): - ''' - offers : typing.Sequence[~AddApplicationOffer] - ''' - self.offers = [AddApplicationOffer.from_json(o) for o in offers or []] - - - -class AddApplicationUnits(Type): - _toSchema = {'application': 'application', 'num_units': 'num-units', 'placement': 'placement'} - _toPy = {'application': 'application', 'num-units': 'num_units', 'placement': 'placement'} - def __init__(self, application=None, num_units=None, placement=None, **unknown_fields): - ''' - application : str - num_units : int - placement : typing.Sequence[~Placement] - ''' - self.application = application - self.num_units = num_units - self.placement = [Placement.from_json(o) for o in placement or []] - - - -class AddApplicationUnitsResults(Type): - _toSchema = {'units': 'units'} - _toPy = {'units': 'units'} - def __init__(self, units=None, **unknown_fields): - ''' - units : typing.Sequence[str] - ''' - self.units = units - - - -class AddCharm(Type): - _toSchema = {'channel': 'channel', 'url': 'url'} - _toPy = {'channel': 'channel', 'url': 'url'} - def __init__(self, channel=None, url=None, **unknown_fields): - ''' - channel : str - url : str - ''' - self.channel = channel - self.url = url - - - -class AddCharmWithAuthorization(Type): - _toSchema = {'channel': 'channel', 'macaroon': 'macaroon', 'url': 'url'} - _toPy = {'channel': 'channel', 'macaroon': 'macaroon', 'url': 'url'} - def __init__(self, channel=None, macaroon=None, url=None, **unknown_fields): - ''' - channel : str - macaroon : Macaroon - url : str - ''' - self.channel = channel - self.macaroon = Macaroon.from_json(macaroon) if macaroon else None - self.url = url - - - -class AddCloudArgs(Type): - _toSchema = {'cloud': 'cloud', 'name': 'name'} - _toPy = {'cloud': 'cloud', 'name': 'name'} - def __init__(self, cloud=None, name=None, **unknown_fields): - ''' - cloud : Cloud - name : str - ''' - self.cloud = Cloud.from_json(cloud) if cloud else None - self.name = name - - - -class AddMachineParams(Type): - _toSchema = {'addresses': 'addresses', 'constraints': 'constraints', 'container_type': 'container-type', 'disks': 'disks', 'hardware_characteristics': 'hardware-characteristics', 'instance_id': 'instance-id', 'jobs': 'jobs', 'nonce': 'nonce', 'parent_id': 'parent-id', 'placement': 'placement', 'series': 'series'} - _toPy = {'addresses': 'addresses', 'constraints': 'constraints', 'container-type': 'container_type', 'disks': 'disks', 'hardware-characteristics': 'hardware_characteristics', 'instance-id': 'instance_id', 'jobs': 'jobs', 'nonce': 'nonce', 'parent-id': 'parent_id', 'placement': 'placement', 'series': 'series'} - def __init__(self, addresses=None, constraints=None, container_type=None, disks=None, hardware_characteristics=None, instance_id=None, jobs=None, nonce=None, parent_id=None, placement=None, series=None, **unknown_fields): - ''' - addresses : typing.Sequence[~Address] - constraints : Value - container_type : str - disks : typing.Sequence[~Constraints] - hardware_characteristics : HardwareCharacteristics - instance_id : str - jobs : typing.Sequence[str] - nonce : str - parent_id : str - placement : Placement - series : str - ''' - self.addresses = [Address.from_json(o) for o in addresses or []] - self.constraints = Value.from_json(constraints) if constraints else None - self.container_type = container_type - self.disks = [Constraints.from_json(o) for o in disks or []] - self.hardware_characteristics = HardwareCharacteristics.from_json(hardware_characteristics) if hardware_characteristics else None - self.instance_id = instance_id - self.jobs = jobs - self.nonce = nonce - self.parent_id = parent_id - self.placement = Placement.from_json(placement) if placement else None - self.series = series - - - -class AddMachines(Type): - _toSchema = {'params': 'params'} - _toPy = {'params': 'params'} - def __init__(self, params=None, **unknown_fields): - ''' - params : typing.Sequence[~AddMachineParams] - ''' - self.params = [AddMachineParams.from_json(o) for o in params or []] - - - -class AddMachinesResult(Type): - _toSchema = {'error': 'error', 'machine': 'machine'} - _toPy = {'error': 'error', 'machine': 'machine'} - def __init__(self, error=None, machine=None, **unknown_fields): - ''' - error : Error - machine : str - ''' - self.error = Error.from_json(error) if error else None - self.machine = machine - - - -class AddMachinesResults(Type): - _toSchema = {'machines': 'machines'} - _toPy = {'machines': 'machines'} - def __init__(self, machines=None, **unknown_fields): - ''' - machines : typing.Sequence[~AddMachinesResult] - ''' - self.machines = [AddMachinesResult.from_json(o) for o in machines or []] - - - -class AddPendingResourcesArgs(Type): - _toSchema = {'addcharmwithauthorization': 'AddCharmWithAuthorization', 'entity': 'Entity', 'resources': 'Resources'} - _toPy = {'AddCharmWithAuthorization': 'addcharmwithauthorization', 'Entity': 'entity', 'Resources': 'resources'} - def __init__(self, addcharmwithauthorization=None, entity=None, resources=None, **unknown_fields): - ''' - addcharmwithauthorization : AddCharmWithAuthorization - entity : Entity - resources : typing.Sequence[~CharmResource] - ''' - self.addcharmwithauthorization = AddCharmWithAuthorization.from_json(addcharmwithauthorization) if addcharmwithauthorization else None - self.entity = Entity.from_json(entity) if entity else None - self.resources = [CharmResource.from_json(o) for o in resources or []] - - - -class AddPendingResourcesResult(Type): - _toSchema = {'errorresult': 'ErrorResult', 'pending_ids': 'pending-ids'} - _toPy = {'ErrorResult': 'errorresult', 'pending-ids': 'pending_ids'} - def __init__(self, errorresult=None, pending_ids=None, **unknown_fields): - ''' - errorresult : ErrorResult - pending_ids : typing.Sequence[str] - ''' - self.errorresult = ErrorResult.from_json(errorresult) if errorresult else None - self.pending_ids = pending_ids - - - -class AddRelation(Type): - _toSchema = {'endpoints': 'endpoints'} - _toPy = {'endpoints': 'endpoints'} - def __init__(self, endpoints=None, **unknown_fields): - ''' - endpoints : typing.Sequence[str] - ''' - self.endpoints = endpoints - - - -class AddRelationResults(Type): - _toSchema = {'endpoints': 'endpoints'} - _toPy = {'endpoints': 'endpoints'} - def __init__(self, endpoints=None, **unknown_fields): - ''' - endpoints : typing.Mapping[str, ~CharmRelation] - ''' - self.endpoints = endpoints - - - -class AddStorageDetails(Type): - _toSchema = {'storage_tags': 'storage-tags'} - _toPy = {'storage-tags': 'storage_tags'} - def __init__(self, storage_tags=None, **unknown_fields): - ''' - storage_tags : typing.Sequence[str] - ''' - self.storage_tags = storage_tags - - - -class AddStorageResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : AddStorageDetails - ''' - self.error = Error.from_json(error) if error else None - self.result = AddStorageDetails.from_json(result) if result else None - - - -class AddStorageResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~AddStorageResult] - ''' - self.results = [AddStorageResult.from_json(o) for o in results or []] - - - -class AddSubnetParams(Type): - _toSchema = {'space_tag': 'space-tag', 'subnet_provider_id': 'subnet-provider-id', 'subnet_tag': 'subnet-tag', 'zones': 'zones'} - _toPy = {'space-tag': 'space_tag', 'subnet-provider-id': 'subnet_provider_id', 'subnet-tag': 'subnet_tag', 'zones': 'zones'} - def __init__(self, space_tag=None, subnet_provider_id=None, subnet_tag=None, zones=None, **unknown_fields): - ''' - space_tag : str - subnet_provider_id : str - subnet_tag : str - zones : typing.Sequence[str] - ''' - self.space_tag = space_tag - self.subnet_provider_id = subnet_provider_id - self.subnet_tag = subnet_tag - self.zones = zones - - - -class AddSubnetsParams(Type): - _toSchema = {'subnets': 'subnets'} - _toPy = {'subnets': 'subnets'} - def __init__(self, subnets=None, **unknown_fields): - ''' - subnets : typing.Sequence[~AddSubnetParams] - ''' - self.subnets = [AddSubnetParams.from_json(o) for o in subnets or []] - - - -class AddUser(Type): - _toSchema = {'display_name': 'display-name', 'password': 'password', 'username': 'username'} - _toPy = {'display-name': 'display_name', 'password': 'password', 'username': 'username'} - def __init__(self, display_name=None, password=None, username=None, **unknown_fields): - ''' - display_name : str - password : str - username : str - ''' - self.display_name = display_name - self.password = password - self.username = username - - - -class AddUserResult(Type): - _toSchema = {'error': 'error', 'secret_key': 'secret-key', 'tag': 'tag'} - _toPy = {'error': 'error', 'secret-key': 'secret_key', 'tag': 'tag'} - def __init__(self, error=None, secret_key=None, tag=None, **unknown_fields): - ''' - error : Error - secret_key : typing.Sequence[int] - tag : str - ''' - self.error = Error.from_json(error) if error else None - self.secret_key = secret_key - self.tag = tag - - - -class AddUserResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~AddUserResult] - ''' - self.results = [AddUserResult.from_json(o) for o in results or []] - - - -class AddUsers(Type): - _toSchema = {'users': 'users'} - _toPy = {'users': 'users'} - def __init__(self, users=None, **unknown_fields): - ''' - users : typing.Sequence[~AddUser] - ''' - self.users = [AddUser.from_json(o) for o in users or []] - - - -class Address(Type): - _toSchema = {'scope': 'scope', 'space_name': 'space-name', 'type_': 'type', 'value': 'value'} - _toPy = {'scope': 'scope', 'space-name': 'space_name', 'type': 'type_', 'value': 'value'} - def __init__(self, scope=None, space_name=None, type_=None, value=None, **unknown_fields): - ''' - scope : str - space_name : str - type_ : str - value : str - ''' - self.scope = scope - self.space_name = space_name - self.type_ = type_ - self.value = value - - - -class AdoptResourcesArgs(Type): - _toSchema = {'model_tag': 'model-tag', 'source_controller_version': 'source-controller-version'} - _toPy = {'model-tag': 'model_tag', 'source-controller-version': 'source_controller_version'} - def __init__(self, model_tag=None, source_controller_version=None, **unknown_fields): - ''' - model_tag : str - source_controller_version : Number - ''' - self.model_tag = model_tag - self.source_controller_version = Number.from_json(source_controller_version) if source_controller_version else None - - - -class AgentGetEntitiesResult(Type): - _toSchema = {'container_type': 'container-type', 'error': 'error', 'jobs': 'jobs', 'life': 'life'} - _toPy = {'container-type': 'container_type', 'error': 'error', 'jobs': 'jobs', 'life': 'life'} - def __init__(self, container_type=None, error=None, jobs=None, life=None, **unknown_fields): - ''' - container_type : str - error : Error - jobs : typing.Sequence[str] - life : str - ''' - self.container_type = container_type - self.error = Error.from_json(error) if error else None - self.jobs = jobs - self.life = life - - - -class AgentGetEntitiesResults(Type): - _toSchema = {'entities': 'entities'} - _toPy = {'entities': 'entities'} - def __init__(self, entities=None, **unknown_fields): - ''' - entities : typing.Sequence[~AgentGetEntitiesResult] - ''' - self.entities = [AgentGetEntitiesResult.from_json(o) for o in entities or []] - - - -class AgentVersionResult(Type): - _toSchema = {'version': 'version'} - _toPy = {'version': 'version'} - def __init__(self, version=None, **unknown_fields): - ''' - version : Number - ''' - self.version = Number.from_json(version) if version else None - - - -class AllWatcherId(Type): - _toSchema = {'watcher_id': 'watcher-id'} - _toPy = {'watcher-id': 'watcher_id'} - def __init__(self, watcher_id=None, **unknown_fields): - ''' - watcher_id : str - ''' - self.watcher_id = watcher_id - - - -class AllWatcherNextResults(Type): - _toSchema = {'deltas': 'deltas'} - _toPy = {'deltas': 'deltas'} - def __init__(self, deltas=None, **unknown_fields): - ''' - deltas : typing.Sequence[~Delta] - ''' - self.deltas = [Delta.from_json(o) for o in deltas or []] - - - -class AnnotationsGetResult(Type): - _toSchema = {'annotations': 'annotations', 'entity': 'entity', 'error': 'error'} - _toPy = {'annotations': 'annotations', 'entity': 'entity', 'error': 'error'} - def __init__(self, annotations=None, entity=None, error=None, **unknown_fields): - ''' - annotations : typing.Mapping[str, str] - entity : str - error : ErrorResult - ''' - self.annotations = annotations - self.entity = entity - self.error = ErrorResult.from_json(error) if error else None - - - -class AnnotationsGetResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~AnnotationsGetResult] - ''' - self.results = [AnnotationsGetResult.from_json(o) for o in results or []] - - - -class AnnotationsSet(Type): - _toSchema = {'annotations': 'annotations'} - _toPy = {'annotations': 'annotations'} - def __init__(self, annotations=None, **unknown_fields): - ''' - annotations : typing.Sequence[~EntityAnnotations] - ''' - self.annotations = [EntityAnnotations.from_json(o) for o in annotations or []] - - - -class ApplicationCharm(Type): - _toSchema = {'charm_modified_version': 'charm-modified-version', 'force_upgrade': 'force-upgrade', 'sha256': 'sha256', 'url': 'url'} - _toPy = {'charm-modified-version': 'charm_modified_version', 'force-upgrade': 'force_upgrade', 'sha256': 'sha256', 'url': 'url'} - def __init__(self, charm_modified_version=None, force_upgrade=None, sha256=None, url=None, **unknown_fields): - ''' - charm_modified_version : int - force_upgrade : bool - sha256 : str - url : str - ''' - self.charm_modified_version = charm_modified_version - self.force_upgrade = force_upgrade - self.sha256 = sha256 - self.url = url - - - -class ApplicationCharmActionsResult(Type): - _toSchema = {'actions': 'actions', 'application_tag': 'application-tag', 'error': 'error'} - _toPy = {'actions': 'actions', 'application-tag': 'application_tag', 'error': 'error'} - def __init__(self, actions=None, application_tag=None, error=None, **unknown_fields): - ''' - actions : typing.Mapping[str, ~ActionSpec] - application_tag : str - error : Error - ''' - self.actions = actions - self.application_tag = application_tag - self.error = Error.from_json(error) if error else None - - - -class ApplicationCharmRelations(Type): - _toSchema = {'application': 'application'} - _toPy = {'application': 'application'} - def __init__(self, application=None, **unknown_fields): - ''' - application : str - ''' - self.application = application - - - -class ApplicationCharmRelationsResults(Type): - _toSchema = {'charm_relations': 'charm-relations'} - _toPy = {'charm-relations': 'charm_relations'} - def __init__(self, charm_relations=None, **unknown_fields): - ''' - charm_relations : typing.Sequence[str] - ''' - self.charm_relations = charm_relations - - - -class ApplicationCharmResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : ApplicationCharm - ''' - self.error = Error.from_json(error) if error else None - self.result = ApplicationCharm.from_json(result) if result else None - - - -class ApplicationCharmResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ApplicationCharmResult] - ''' - self.results = [ApplicationCharmResult.from_json(o) for o in results or []] - - - -class ApplicationConfigSet(Type): - _toSchema = {'application': 'application', 'config': 'config'} - _toPy = {'application': 'application', 'config': 'config'} - def __init__(self, application=None, config=None, **unknown_fields): - ''' - application : str - config : typing.Mapping[str, str] - ''' - self.application = application - self.config = config - - - -class ApplicationConfigSetArgs(Type): - _toSchema = {'args': 'Args'} - _toPy = {'Args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~ApplicationConfigSet] - ''' - self.args = [ApplicationConfigSet.from_json(o) for o in args or []] - - - -class ApplicationConfigUnsetArgs(Type): - _toSchema = {'args': 'Args'} - _toPy = {'Args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~ApplicationUnset] - ''' - self.args = [ApplicationUnset.from_json(o) for o in args or []] - - - -class ApplicationConstraint(Type): - _toSchema = {'constraints': 'constraints', 'error': 'error'} - _toPy = {'constraints': 'constraints', 'error': 'error'} - def __init__(self, constraints=None, error=None, **unknown_fields): - ''' - constraints : Value - error : Error - ''' - self.constraints = Value.from_json(constraints) if constraints else None - self.error = Error.from_json(error) if error else None - - - -class ApplicationDeploy(Type): - _toSchema = {'application': 'application', 'attach_storage': 'attach-storage', 'channel': 'channel', 'charm_url': 'charm-url', 'config': 'config', 'config_yaml': 'config-yaml', 'constraints': 'constraints', 'devices': 'devices', 'endpoint_bindings': 'endpoint-bindings', 'num_units': 'num-units', 'placement': 'placement', 'policy': 'policy', 'resources': 'resources', 'series': 'series', 'storage': 'storage'} - _toPy = {'application': 'application', 'attach-storage': 'attach_storage', 'channel': 'channel', 'charm-url': 'charm_url', 'config': 'config', 'config-yaml': 'config_yaml', 'constraints': 'constraints', 'devices': 'devices', 'endpoint-bindings': 'endpoint_bindings', 'num-units': 'num_units', 'placement': 'placement', 'policy': 'policy', 'resources': 'resources', 'series': 'series', 'storage': 'storage'} - def __init__(self, application=None, attach_storage=None, channel=None, charm_url=None, config=None, config_yaml=None, constraints=None, devices=None, endpoint_bindings=None, num_units=None, placement=None, policy=None, resources=None, series=None, storage=None, **unknown_fields): - ''' - application : str - attach_storage : typing.Sequence[str] - channel : str - charm_url : str - config : typing.Mapping[str, str] - config_yaml : str - constraints : Value - devices : typing.Mapping[str, ~Constraints] - endpoint_bindings : typing.Mapping[str, str] - num_units : int - placement : typing.Sequence[~Placement] - policy : str - resources : typing.Mapping[str, str] - series : str - storage : typing.Mapping[str, ~Constraints] - ''' - self.application = application - self.attach_storage = attach_storage - self.channel = channel - self.charm_url = charm_url - self.config = config - self.config_yaml = config_yaml - self.constraints = Value.from_json(constraints) if constraints else None - self.devices = devices - self.endpoint_bindings = endpoint_bindings - self.num_units = num_units - self.placement = [Placement.from_json(o) for o in placement or []] - self.policy = policy - self.resources = resources - self.series = series - self.storage = storage - - - -class ApplicationDestroy(Type): - _toSchema = {'application': 'application'} - _toPy = {'application': 'application'} - def __init__(self, application=None, **unknown_fields): - ''' - application : str - ''' - self.application = application - - - -class ApplicationExpose(Type): - _toSchema = {'application': 'application'} - _toPy = {'application': 'application'} - def __init__(self, application=None, **unknown_fields): - ''' - application : str - ''' - self.application = application - - - -class ApplicationGet(Type): - _toSchema = {'application': 'application'} - _toPy = {'application': 'application'} - def __init__(self, application=None, **unknown_fields): - ''' - application : str - ''' - self.application = application - - - -class ApplicationGetConfigResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ConfigResult] - ''' - self.results = [ConfigResult.from_json(o) for o in results or []] - - - -class ApplicationGetConstraintsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ApplicationConstraint] - ''' - self.results = [ApplicationConstraint.from_json(o) for o in results or []] - - - -class ApplicationGetResults(Type): - _toSchema = {'application': 'application', 'charm': 'charm', 'config': 'config', 'constraints': 'constraints', 'series': 'series'} - _toPy = {'application': 'application', 'charm': 'charm', 'config': 'config', 'constraints': 'constraints', 'series': 'series'} - def __init__(self, application=None, charm=None, config=None, constraints=None, series=None, **unknown_fields): - ''' - application : str - charm : str - config : typing.Mapping[str, typing.Any] - constraints : Value - series : str - ''' - self.application = application - self.charm = charm - self.config = config - self.constraints = Value.from_json(constraints) if constraints else None - self.series = series - - - -class ApplicationMetricCredential(Type): - _toSchema = {'application': 'application', 'metrics_credentials': 'metrics-credentials'} - _toPy = {'application': 'application', 'metrics-credentials': 'metrics_credentials'} - def __init__(self, application=None, metrics_credentials=None, **unknown_fields): - ''' - application : str - metrics_credentials : typing.Sequence[int] - ''' - self.application = application - self.metrics_credentials = metrics_credentials - - - -class ApplicationMetricCredentials(Type): - _toSchema = {'creds': 'creds'} - _toPy = {'creds': 'creds'} - def __init__(self, creds=None, **unknown_fields): - ''' - creds : typing.Sequence[~ApplicationMetricCredential] - ''' - self.creds = [ApplicationMetricCredential.from_json(o) for o in creds or []] - - - -class ApplicationOffer(Type): - _toSchema = {'access': 'access', 'application_description': 'application-description', 'bindings': 'bindings', 'endpoints': 'endpoints', 'offer_name': 'offer-name', 'offer_url': 'offer-url', 'source_model_tag': 'source-model-tag', 'spaces': 'spaces'} - _toPy = {'access': 'access', 'application-description': 'application_description', 'bindings': 'bindings', 'endpoints': 'endpoints', 'offer-name': 'offer_name', 'offer-url': 'offer_url', 'source-model-tag': 'source_model_tag', 'spaces': 'spaces'} - def __init__(self, access=None, application_description=None, bindings=None, endpoints=None, offer_name=None, offer_url=None, source_model_tag=None, spaces=None, **unknown_fields): - ''' - access : str - application_description : str - bindings : typing.Mapping[str, str] - endpoints : typing.Sequence[~RemoteEndpoint] - offer_name : str - offer_url : str - source_model_tag : str - spaces : typing.Sequence[~RemoteSpace] - ''' - self.access = access - self.application_description = application_description - self.bindings = bindings - self.endpoints = [RemoteEndpoint.from_json(o) for o in endpoints or []] - self.offer_name = offer_name - self.offer_url = offer_url - self.source_model_tag = source_model_tag - self.spaces = [RemoteSpace.from_json(o) for o in spaces or []] - - - -class ApplicationOfferAdminDetails(Type): - _toSchema = {'application_name': 'application-name', 'applicationofferdetails': 'ApplicationOfferDetails', 'charm_url': 'charm-url', 'connections': 'connections'} - _toPy = {'ApplicationOfferDetails': 'applicationofferdetails', 'application-name': 'application_name', 'charm-url': 'charm_url', 'connections': 'connections'} - def __init__(self, applicationofferdetails=None, application_name=None, charm_url=None, connections=None, **unknown_fields): - ''' - applicationofferdetails : ApplicationOfferDetails - application_name : str - charm_url : str - connections : typing.Sequence[~OfferConnection] - ''' - self.applicationofferdetails = ApplicationOfferDetails.from_json(applicationofferdetails) if applicationofferdetails else None - self.application_name = application_name - self.charm_url = charm_url - self.connections = [OfferConnection.from_json(o) for o in connections or []] - - - -class ApplicationOfferDetails(Type): - _toSchema = {'application_description': 'application-description', 'bindings': 'bindings', 'endpoints': 'endpoints', 'offer_name': 'offer-name', 'offer_url': 'offer-url', 'offer_uuid': 'offer-uuid', 'source_model_tag': 'source-model-tag', 'spaces': 'spaces', 'users': 'users'} - _toPy = {'application-description': 'application_description', 'bindings': 'bindings', 'endpoints': 'endpoints', 'offer-name': 'offer_name', 'offer-url': 'offer_url', 'offer-uuid': 'offer_uuid', 'source-model-tag': 'source_model_tag', 'spaces': 'spaces', 'users': 'users'} - def __init__(self, application_description=None, bindings=None, endpoints=None, offer_name=None, offer_url=None, offer_uuid=None, source_model_tag=None, spaces=None, users=None, **unknown_fields): - ''' - application_description : str - bindings : typing.Mapping[str, str] - endpoints : typing.Sequence[~RemoteEndpoint] - offer_name : str - offer_url : str - offer_uuid : str - source_model_tag : str - spaces : typing.Sequence[~RemoteSpace] - users : typing.Sequence[~OfferUserDetails] - ''' - self.application_description = application_description - self.bindings = bindings - self.endpoints = [RemoteEndpoint.from_json(o) for o in endpoints or []] - self.offer_name = offer_name - self.offer_url = offer_url - self.offer_uuid = offer_uuid - self.source_model_tag = source_model_tag - self.spaces = [RemoteSpace.from_json(o) for o in spaces or []] - self.users = [OfferUserDetails.from_json(o) for o in users or []] - - - -class ApplicationOfferResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : ApplicationOfferAdminDetails - ''' - self.error = Error.from_json(error) if error else None - self.result = ApplicationOfferAdminDetails.from_json(result) if result else None - - - -class ApplicationOfferStatus(Type): - _toSchema = {'active_connected_count': 'active-connected-count', 'application_name': 'application-name', 'charm': 'charm', 'endpoints': 'endpoints', 'err': 'err', 'offer_name': 'offer-name', 'total_connected_count': 'total-connected-count'} - _toPy = {'active-connected-count': 'active_connected_count', 'application-name': 'application_name', 'charm': 'charm', 'endpoints': 'endpoints', 'err': 'err', 'offer-name': 'offer_name', 'total-connected-count': 'total_connected_count'} - def __init__(self, active_connected_count=None, application_name=None, charm=None, endpoints=None, err=None, offer_name=None, total_connected_count=None, **unknown_fields): - ''' - active_connected_count : int - application_name : str - charm : str - endpoints : typing.Mapping[str, ~RemoteEndpoint] - err : typing.Mapping[str, typing.Any] - offer_name : str - total_connected_count : int - ''' - self.active_connected_count = active_connected_count - self.application_name = application_name - self.charm = charm - self.endpoints = endpoints - self.err = err - self.offer_name = offer_name - self.total_connected_count = total_connected_count - - - -class ApplicationOffersResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ApplicationOfferResult] - ''' - self.results = [ApplicationOfferResult.from_json(o) for o in results or []] - - - -class ApplicationRelationsChange(Type): - _toSchema = {'changed': 'changed', 'removed': 'removed'} - _toPy = {'changed': 'changed', 'removed': 'removed'} - def __init__(self, changed=None, removed=None, **unknown_fields): - ''' - changed : typing.Sequence[~RelationChange] - removed : typing.Sequence[int] - ''' - self.changed = [RelationChange.from_json(o) for o in changed or []] - self.removed = removed - - - -class ApplicationRelationsWatchResult(Type): - _toSchema = {'applicationrelationswatcherid': 'ApplicationRelationsWatcherId', 'changes': 'changes', 'error': 'error'} - _toPy = {'ApplicationRelationsWatcherId': 'applicationrelationswatcherid', 'changes': 'changes', 'error': 'error'} - def __init__(self, applicationrelationswatcherid=None, changes=None, error=None, **unknown_fields): - ''' - applicationrelationswatcherid : str - changes : ApplicationRelationsChange - error : Error - ''' - self.applicationrelationswatcherid = applicationrelationswatcherid - self.changes = ApplicationRelationsChange.from_json(changes) if changes else None - self.error = Error.from_json(error) if error else None - - - -class ApplicationSet(Type): - _toSchema = {'application': 'application', 'options': 'options'} - _toPy = {'application': 'application', 'options': 'options'} - def __init__(self, application=None, options=None, **unknown_fields): - ''' - application : str - options : typing.Mapping[str, str] - ''' - self.application = application - self.options = options - - - -class ApplicationSetCharm(Type): - _toSchema = {'application': 'application', 'channel': 'channel', 'charm_url': 'charm-url', 'config_settings': 'config-settings', 'config_settings_yaml': 'config-settings-yaml', 'force_series': 'force-series', 'force_units': 'force-units', 'resource_ids': 'resource-ids', 'storage_constraints': 'storage-constraints'} - _toPy = {'application': 'application', 'channel': 'channel', 'charm-url': 'charm_url', 'config-settings': 'config_settings', 'config-settings-yaml': 'config_settings_yaml', 'force-series': 'force_series', 'force-units': 'force_units', 'resource-ids': 'resource_ids', 'storage-constraints': 'storage_constraints'} - def __init__(self, application=None, channel=None, charm_url=None, config_settings=None, config_settings_yaml=None, force_series=None, force_units=None, resource_ids=None, storage_constraints=None, **unknown_fields): - ''' - application : str - channel : str - charm_url : str - config_settings : typing.Mapping[str, str] - config_settings_yaml : str - force_series : bool - force_units : bool - resource_ids : typing.Mapping[str, str] - storage_constraints : typing.Mapping[str, ~StorageConstraints] - ''' - self.application = application - self.channel = channel - self.charm_url = charm_url - self.config_settings = config_settings - self.config_settings_yaml = config_settings_yaml - self.force_series = force_series - self.force_units = force_units - self.resource_ids = resource_ids - self.storage_constraints = storage_constraints - - - -class ApplicationSetCharmProfile(Type): - _toSchema = {'application': 'application', 'charm_url': 'charm-url'} - _toPy = {'application': 'application', 'charm-url': 'charm_url'} - def __init__(self, application=None, charm_url=None, **unknown_fields): - ''' - application : str - charm_url : str - ''' - self.application = application - self.charm_url = charm_url - - - -class ApplicationStatus(Type): - _toSchema = {'can_upgrade_to': 'can-upgrade-to', 'charm': 'charm', 'err': 'err', 'exposed': 'exposed', 'life': 'life', 'meter_statuses': 'meter-statuses', 'relations': 'relations', 'series': 'series', 'status': 'status', 'subordinate_to': 'subordinate-to', 'units': 'units', 'workload_version': 'workload-version'} - _toPy = {'can-upgrade-to': 'can_upgrade_to', 'charm': 'charm', 'err': 'err', 'exposed': 'exposed', 'life': 'life', 'meter-statuses': 'meter_statuses', 'relations': 'relations', 'series': 'series', 'status': 'status', 'subordinate-to': 'subordinate_to', 'units': 'units', 'workload-version': 'workload_version'} - def __init__(self, can_upgrade_to=None, charm=None, err=None, exposed=None, life=None, meter_statuses=None, relations=None, series=None, status=None, subordinate_to=None, units=None, workload_version=None, **unknown_fields): - ''' - can_upgrade_to : str - charm : str - err : typing.Mapping[str, typing.Any] - exposed : bool - life : str - meter_statuses : typing.Mapping[str, ~MeterStatus] - relations : typing.Sequence[str] - series : str - status : DetailedStatus - subordinate_to : typing.Sequence[str] - units : typing.Mapping[str, ~UnitStatus] - workload_version : str - ''' - self.can_upgrade_to = can_upgrade_to - self.charm = charm - self.err = err - self.exposed = exposed - self.life = life - self.meter_statuses = meter_statuses - self.relations = relations - self.series = series - self.status = DetailedStatus.from_json(status) if status else None - self.subordinate_to = subordinate_to - self.units = units - self.workload_version = workload_version - - - -class ApplicationStatusResult(Type): - _toSchema = {'application': 'application', 'error': 'error', 'units': 'units'} - _toPy = {'application': 'application', 'error': 'error', 'units': 'units'} - def __init__(self, application=None, error=None, units=None, **unknown_fields): - ''' - application : StatusResult - error : Error - units : typing.Mapping[str, ~StatusResult] - ''' - self.application = StatusResult.from_json(application) if application else None - self.error = Error.from_json(error) if error else None - self.units = units - - - -class ApplicationStatusResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ApplicationStatusResult] - ''' - self.results = [ApplicationStatusResult.from_json(o) for o in results or []] - - - -class ApplicationTag(Type): - _toSchema = {'name': 'Name'} - _toPy = {'Name': 'name'} - def __init__(self, name=None, **unknown_fields): - ''' - name : str - ''' - self.name = name - - - -class ApplicationURLs(Type): - _toSchema = {'application_urls': 'application-urls'} - _toPy = {'application-urls': 'application_urls'} - def __init__(self, application_urls=None, **unknown_fields): - ''' - application_urls : typing.Sequence[str] - ''' - self.application_urls = application_urls - - - -class ApplicationUnexpose(Type): - _toSchema = {'application': 'application'} - _toPy = {'application': 'application'} - def __init__(self, application=None, **unknown_fields): - ''' - application : str - ''' - self.application = application - - - -class ApplicationUnitParams(Type): - _toSchema = {'address': 'address', 'data': 'data', 'filesystem_info': 'filesystem-info', 'info': 'info', 'ports': 'ports', 'provider_id': 'provider-id', 'status': 'status', 'unit_tag': 'unit-tag'} - _toPy = {'address': 'address', 'data': 'data', 'filesystem-info': 'filesystem_info', 'info': 'info', 'ports': 'ports', 'provider-id': 'provider_id', 'status': 'status', 'unit-tag': 'unit_tag'} - def __init__(self, address=None, data=None, filesystem_info=None, info=None, ports=None, provider_id=None, status=None, unit_tag=None, **unknown_fields): - ''' - address : str - data : typing.Mapping[str, typing.Any] - filesystem_info : typing.Sequence[~KubernetesFilesystemInfo] - info : str - ports : typing.Sequence[str] - provider_id : str - status : str - unit_tag : str - ''' - self.address = address - self.data = data - self.filesystem_info = [KubernetesFilesystemInfo.from_json(o) for o in filesystem_info or []] - self.info = info - self.ports = ports - self.provider_id = provider_id - self.status = status - self.unit_tag = unit_tag - - - -class ApplicationUnset(Type): - _toSchema = {'application': 'application', 'options': 'options'} - _toPy = {'application': 'application', 'options': 'options'} - def __init__(self, application=None, options=None, **unknown_fields): - ''' - application : str - options : typing.Sequence[str] - ''' - self.application = application - self.options = options - - - -class ApplicationUpdate(Type): - _toSchema = {'application': 'application', 'charm_url': 'charm-url', 'constraints': 'constraints', 'force_charm_url': 'force-charm-url', 'force_series': 'force-series', 'min_units': 'min-units', 'settings': 'settings', 'settings_yaml': 'settings-yaml'} - _toPy = {'application': 'application', 'charm-url': 'charm_url', 'constraints': 'constraints', 'force-charm-url': 'force_charm_url', 'force-series': 'force_series', 'min-units': 'min_units', 'settings': 'settings', 'settings-yaml': 'settings_yaml'} - def __init__(self, application=None, charm_url=None, constraints=None, force_charm_url=None, force_series=None, min_units=None, settings=None, settings_yaml=None, **unknown_fields): - ''' - application : str - charm_url : str - constraints : Value - force_charm_url : bool - force_series : bool - min_units : int - settings : typing.Mapping[str, str] - settings_yaml : str - ''' - self.application = application - self.charm_url = charm_url - self.constraints = Value.from_json(constraints) if constraints else None - self.force_charm_url = force_charm_url - self.force_series = force_series - self.min_units = min_units - self.settings = settings - self.settings_yaml = settings_yaml - - - -class ApplicationsCharmActionsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ApplicationCharmActionsResult] - ''' - self.results = [ApplicationCharmActionsResult.from_json(o) for o in results or []] - - - -class ApplicationsDeploy(Type): - _toSchema = {'applications': 'applications'} - _toPy = {'applications': 'applications'} - def __init__(self, applications=None, **unknown_fields): - ''' - applications : typing.Sequence[~ApplicationDeploy] - ''' - self.applications = [ApplicationDeploy.from_json(o) for o in applications or []] - - - -class BackupsCreateArgs(Type): - _toSchema = {'notes': 'notes'} - _toPy = {'notes': 'notes'} - def __init__(self, notes=None, **unknown_fields): - ''' - notes : str - ''' - self.notes = notes - - - -class BackupsInfoArgs(Type): - _toSchema = {'id_': 'id'} - _toPy = {'id': 'id_'} - def __init__(self, id_=None, **unknown_fields): - ''' - id_ : str - ''' - self.id_ = id_ - - - -class BackupsListArgs(Type): - _toSchema = {} - _toPy = {} - def __init__(self, **unknown_fields): - ''' - - ''' - pass - - - -class BackupsListResult(Type): - _toSchema = {'list_': 'list'} - _toPy = {'list': 'list_'} - def __init__(self, list_=None, **unknown_fields): - ''' - list_ : typing.Sequence[~BackupsMetadataResult] - ''' - self.list_ = [BackupsMetadataResult.from_json(o) for o in list_ or []] - - - -class BackupsMetadataResult(Type): - _toSchema = {'ca_cert': 'ca-cert', 'ca_private_key': 'ca-private-key', 'checksum': 'checksum', 'checksum_format': 'checksum-format', 'finished': 'finished', 'hostname': 'hostname', 'id_': 'id', 'machine': 'machine', 'model': 'model', 'notes': 'notes', 'series': 'series', 'size': 'size', 'started': 'started', 'stored': 'stored', 'version': 'version'} - _toPy = {'ca-cert': 'ca_cert', 'ca-private-key': 'ca_private_key', 'checksum': 'checksum', 'checksum-format': 'checksum_format', 'finished': 'finished', 'hostname': 'hostname', 'id': 'id_', 'machine': 'machine', 'model': 'model', 'notes': 'notes', 'series': 'series', 'size': 'size', 'started': 'started', 'stored': 'stored', 'version': 'version'} - def __init__(self, ca_cert=None, ca_private_key=None, checksum=None, checksum_format=None, finished=None, hostname=None, id_=None, machine=None, model=None, notes=None, series=None, size=None, started=None, stored=None, version=None, **unknown_fields): - ''' - ca_cert : str - ca_private_key : str - checksum : str - checksum_format : str - finished : str - hostname : str - id_ : str - machine : str - model : str - notes : str - series : str - size : int - started : str - stored : str - version : Number - ''' - self.ca_cert = ca_cert - self.ca_private_key = ca_private_key - self.checksum = checksum - self.checksum_format = checksum_format - self.finished = finished - self.hostname = hostname - self.id_ = id_ - self.machine = machine - self.model = model - self.notes = notes - self.series = series - self.size = size - self.started = started - self.stored = stored - self.version = Number.from_json(version) if version else None - - - -class BackupsRemoveArgs(Type): - _toSchema = {'id_': 'id'} - _toPy = {'id': 'id_'} - def __init__(self, id_=None, **unknown_fields): - ''' - id_ : str - ''' - self.id_ = id_ - - - -class Binary(Type): - _toSchema = {'arch': 'Arch', 'number': 'Number', 'series': 'Series'} - _toPy = {'Arch': 'arch', 'Number': 'number', 'Series': 'series'} - def __init__(self, arch=None, number=None, series=None, **unknown_fields): - ''' - arch : str - number : Number - series : str - ''' - self.arch = arch - self.number = Number.from_json(number) if number else None - self.series = series - - - -class Block(Type): - _toSchema = {'id_': 'id', 'message': 'message', 'tag': 'tag', 'type_': 'type'} - _toPy = {'id': 'id_', 'message': 'message', 'tag': 'tag', 'type': 'type_'} - def __init__(self, id_=None, message=None, tag=None, type_=None, **unknown_fields): - ''' - id_ : str - message : str - tag : str - type_ : str - ''' - self.id_ = id_ - self.message = message - self.tag = tag - self.type_ = type_ - - - -class BlockDevice(Type): - _toSchema = {'busaddress': 'BusAddress', 'devicelinks': 'DeviceLinks', 'devicename': 'DeviceName', 'filesystemtype': 'FilesystemType', 'hardwareid': 'HardwareId', 'inuse': 'InUse', 'label': 'Label', 'mountpoint': 'MountPoint', 'size': 'Size', 'uuid': 'UUID'} - _toPy = {'BusAddress': 'busaddress', 'DeviceLinks': 'devicelinks', 'DeviceName': 'devicename', 'FilesystemType': 'filesystemtype', 'HardwareId': 'hardwareid', 'InUse': 'inuse', 'Label': 'label', 'MountPoint': 'mountpoint', 'Size': 'size', 'UUID': 'uuid'} - def __init__(self, busaddress=None, devicelinks=None, devicename=None, filesystemtype=None, hardwareid=None, inuse=None, label=None, mountpoint=None, size=None, uuid=None, **unknown_fields): - ''' - busaddress : str - devicelinks : typing.Sequence[str] - devicename : str - filesystemtype : str - hardwareid : str - inuse : bool - label : str - mountpoint : str - size : int - uuid : str - ''' - self.busaddress = busaddress - self.devicelinks = devicelinks - self.devicename = devicename - self.filesystemtype = filesystemtype - self.hardwareid = hardwareid - self.inuse = inuse - self.label = label - self.mountpoint = mountpoint - self.size = size - self.uuid = uuid - - - -class BlockDeviceResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : BlockDevice - ''' - self.error = Error.from_json(error) if error else None - self.result = BlockDevice.from_json(result) if result else None - - - -class BlockDeviceResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~BlockDeviceResult] - ''' - self.results = [BlockDeviceResult.from_json(o) for o in results or []] - - - -class BlockResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : Block - ''' - self.error = Error.from_json(error) if error else None - self.result = Block.from_json(result) if result else None - - - -class BlockResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~BlockResult] - ''' - self.results = [BlockResult.from_json(o) for o in results or []] - - - -class BlockSwitchParams(Type): - _toSchema = {'message': 'message', 'type_': 'type'} - _toPy = {'message': 'message', 'type': 'type_'} - def __init__(self, message=None, type_=None, **unknown_fields): - ''' - message : str - type_ : str - ''' - self.message = message - self.type_ = type_ - - - -class BoolResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : bool - ''' - self.error = Error.from_json(error) if error else None - self.result = result - - - -class BoolResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~BoolResult] - ''' - self.results = [BoolResult.from_json(o) for o in results or []] - - - -class BulkImportStorageParams(Type): - _toSchema = {'storage': 'storage'} - _toPy = {'storage': 'storage'} - def __init__(self, storage=None, **unknown_fields): - ''' - storage : typing.Sequence[~ImportStorageParams] - ''' - self.storage = [ImportStorageParams.from_json(o) for o in storage or []] - - - -class BundleChange(Type): - _toSchema = {'args': 'args', 'id_': 'id', 'method': 'method', 'requires': 'requires'} - _toPy = {'args': 'args', 'id': 'id_', 'method': 'method', 'requires': 'requires'} - def __init__(self, args=None, id_=None, method=None, requires=None, **unknown_fields): - ''' - args : typing.Sequence[typing.Any] - id_ : str - method : str - requires : typing.Sequence[str] - ''' - self.args = args - self.id_ = id_ - self.method = method - self.requires = requires - - - -class BundleChangesParams(Type): - _toSchema = {'yaml': 'yaml'} - _toPy = {'yaml': 'yaml'} - def __init__(self, yaml=None, **unknown_fields): - ''' - yaml : str - ''' - self.yaml = yaml - - - -class BundleChangesResults(Type): - _toSchema = {'changes': 'changes', 'errors': 'errors'} - _toPy = {'changes': 'changes', 'errors': 'errors'} - def __init__(self, changes=None, errors=None, **unknown_fields): - ''' - changes : typing.Sequence[~BundleChange] - errors : typing.Sequence[str] - ''' - self.changes = [BundleChange.from_json(o) for o in changes or []] - self.errors = errors - - - -class BytesResult(Type): - _toSchema = {'result': 'result'} - _toPy = {'result': 'result'} - def __init__(self, result=None, **unknown_fields): - ''' - result : typing.Sequence[int] - ''' - self.result = result - - - -class ChangeModelCredentialParams(Type): - _toSchema = {'credential_tag': 'credential-tag', 'model_tag': 'model-tag'} - _toPy = {'credential-tag': 'credential_tag', 'model-tag': 'model_tag'} - def __init__(self, credential_tag=None, model_tag=None, **unknown_fields): - ''' - credential_tag : str - model_tag : str - ''' - self.credential_tag = credential_tag - self.model_tag = model_tag - - - -class ChangeModelCredentialsParams(Type): - _toSchema = {'model_credentials': 'model-credentials'} - _toPy = {'model-credentials': 'model_credentials'} - def __init__(self, model_credentials=None, **unknown_fields): - ''' - model_credentials : typing.Sequence[~ChangeModelCredentialParams] - ''' - self.model_credentials = [ChangeModelCredentialParams.from_json(o) for o in model_credentials or []] - - - -class CharmActionSpec(Type): - _toSchema = {'description': 'description', 'params': 'params'} - _toPy = {'description': 'description', 'params': 'params'} - def __init__(self, description=None, params=None, **unknown_fields): - ''' - description : str - params : typing.Mapping[str, typing.Any] - ''' - self.description = description - self.params = params - - - -class CharmActions(Type): - _toSchema = {'specs': 'specs'} - _toPy = {'specs': 'specs'} - def __init__(self, specs=None, **unknown_fields): - ''' - specs : typing.Mapping[str, ~CharmActionSpec] - ''' - self.specs = specs - - - -class CharmDevice(Type): - _toSchema = {'countmax': 'CountMax', 'countmin': 'CountMin', 'description': 'Description', 'name': 'Name', 'type_': 'Type'} - _toPy = {'CountMax': 'countmax', 'CountMin': 'countmin', 'Description': 'description', 'Name': 'name', 'Type': 'type_'} - def __init__(self, countmax=None, countmin=None, description=None, name=None, type_=None, **unknown_fields): - ''' - countmax : int - countmin : int - description : str - name : str - type_ : str - ''' - self.countmax = countmax - self.countmin = countmin - self.description = description - self.name = name - self.type_ = type_ - - - -class CharmInfo(Type): - _toSchema = {'actions': 'actions', 'config': 'config', 'meta': 'meta', 'metrics': 'metrics', 'revision': 'revision', 'url': 'url'} - _toPy = {'actions': 'actions', 'config': 'config', 'meta': 'meta', 'metrics': 'metrics', 'revision': 'revision', 'url': 'url'} - def __init__(self, actions=None, config=None, meta=None, metrics=None, revision=None, url=None, **unknown_fields): - ''' - actions : CharmActions - config : typing.Mapping[str, ~CharmOption] - meta : CharmMeta - metrics : CharmMetrics - revision : int - url : str - ''' - self.actions = CharmActions.from_json(actions) if actions else None - self.config = config - self.meta = CharmMeta.from_json(meta) if meta else None - self.metrics = CharmMetrics.from_json(metrics) if metrics else None - self.revision = revision - self.url = url - - - -class CharmLXDProfile(Type): - _toSchema = {'config': 'config', 'description': 'description', 'devices': 'devices'} - _toPy = {'config': 'config', 'description': 'description', 'devices': 'devices'} - def __init__(self, config=None, description=None, devices=None, **unknown_fields): - ''' - config : typing.Mapping[str, str] - description : str - devices : typing.Mapping[str, typing.Any] - ''' - self.config = config - self.description = description - self.devices = devices - - - -class CharmMeta(Type): - _toSchema = {'categories': 'categories', 'description': 'description', 'extra_bindings': 'extra-bindings', 'min_juju_version': 'min-juju-version', 'name': 'name', 'payload_classes': 'payload-classes', 'peers': 'peers', 'provides': 'provides', 'requires': 'requires', 'resources': 'resources', 'series': 'series', 'storage': 'storage', 'subordinate': 'subordinate', 'summary': 'summary', 'tags': 'tags', 'terms': 'terms'} - _toPy = {'categories': 'categories', 'description': 'description', 'extra-bindings': 'extra_bindings', 'min-juju-version': 'min_juju_version', 'name': 'name', 'payload-classes': 'payload_classes', 'peers': 'peers', 'provides': 'provides', 'requires': 'requires', 'resources': 'resources', 'series': 'series', 'storage': 'storage', 'subordinate': 'subordinate', 'summary': 'summary', 'tags': 'tags', 'terms': 'terms'} - def __init__(self, categories=None, description=None, extra_bindings=None, min_juju_version=None, name=None, payload_classes=None, peers=None, provides=None, requires=None, resources=None, series=None, storage=None, subordinate=None, summary=None, tags=None, terms=None, **unknown_fields): - ''' - categories : typing.Sequence[str] - description : str - extra_bindings : typing.Mapping[str, str] - min_juju_version : str - name : str - payload_classes : typing.Mapping[str, ~CharmPayloadClass] - peers : typing.Mapping[str, ~CharmRelation] - provides : typing.Mapping[str, ~CharmRelation] - requires : typing.Mapping[str, ~CharmRelation] - resources : typing.Mapping[str, ~CharmResourceMeta] - series : typing.Sequence[str] - storage : typing.Mapping[str, ~CharmStorage] - subordinate : bool - summary : str - tags : typing.Sequence[str] - terms : typing.Sequence[str] - ''' - self.categories = categories - self.description = description - self.extra_bindings = extra_bindings - self.min_juju_version = min_juju_version - self.name = name - self.payload_classes = payload_classes - self.peers = peers - self.provides = provides - self.requires = requires - self.resources = resources - self.series = series - self.storage = storage - self.subordinate = subordinate - self.summary = summary - self.tags = tags - self.terms = terms - - - -class CharmMetric(Type): - _toSchema = {'description': 'description', 'type_': 'type'} - _toPy = {'description': 'description', 'type': 'type_'} - def __init__(self, description=None, type_=None, **unknown_fields): - ''' - description : str - type_ : str - ''' - self.description = description - self.type_ = type_ - - - -class CharmMetrics(Type): - _toSchema = {'metrics': 'metrics', 'plan': 'plan'} - _toPy = {'metrics': 'metrics', 'plan': 'plan'} - def __init__(self, metrics=None, plan=None, **unknown_fields): - ''' - metrics : typing.Mapping[str, ~CharmMetric] - plan : CharmPlan - ''' - self.metrics = metrics - self.plan = CharmPlan.from_json(plan) if plan else None - - - -class CharmOption(Type): - _toSchema = {'default': 'default', 'description': 'description', 'type_': 'type'} - _toPy = {'default': 'default', 'description': 'description', 'type': 'type_'} - def __init__(self, default=None, description=None, type_=None, **unknown_fields): - ''' - default : typing.Mapping[str, typing.Any] - description : str - type_ : str - ''' - self.default = default - self.description = description - self.type_ = type_ - - - -class CharmPayloadClass(Type): - _toSchema = {'name': 'name', 'type_': 'type'} - _toPy = {'name': 'name', 'type': 'type_'} - def __init__(self, name=None, type_=None, **unknown_fields): - ''' - name : str - type_ : str - ''' - self.name = name - self.type_ = type_ - - - -class CharmPlan(Type): - _toSchema = {'required': 'required'} - _toPy = {'required': 'required'} - def __init__(self, required=None, **unknown_fields): - ''' - required : bool - ''' - self.required = required - - - -class CharmRelation(Type): - _toSchema = {'interface': 'interface', 'limit': 'limit', 'name': 'name', 'optional': 'optional', 'role': 'role', 'scope': 'scope'} - _toPy = {'interface': 'interface', 'limit': 'limit', 'name': 'name', 'optional': 'optional', 'role': 'role', 'scope': 'scope'} - def __init__(self, interface=None, limit=None, name=None, optional=None, role=None, scope=None, **unknown_fields): - ''' - interface : str - limit : int - name : str - optional : bool - role : str - scope : str - ''' - self.interface = interface - self.limit = limit - self.name = name - self.optional = optional - self.role = role - self.scope = scope - - - -class CharmResource(Type): - _toSchema = {'description': 'description', 'fingerprint': 'fingerprint', 'name': 'name', 'origin': 'origin', 'path': 'path', 'revision': 'revision', 'size': 'size', 'type_': 'type'} - _toPy = {'description': 'description', 'fingerprint': 'fingerprint', 'name': 'name', 'origin': 'origin', 'path': 'path', 'revision': 'revision', 'size': 'size', 'type': 'type_'} - def __init__(self, description=None, fingerprint=None, name=None, origin=None, path=None, revision=None, size=None, type_=None, **unknown_fields): - ''' - description : str - fingerprint : typing.Sequence[int] - name : str - origin : str - path : str - revision : int - size : int - type_ : str - ''' - self.description = description - self.fingerprint = fingerprint - self.name = name - self.origin = origin - self.path = path - self.revision = revision - self.size = size - self.type_ = type_ - - - -class CharmResourceMeta(Type): - _toSchema = {'description': 'description', 'name': 'name', 'path': 'path', 'type_': 'type'} - _toPy = {'description': 'description', 'name': 'name', 'path': 'path', 'type': 'type_'} - def __init__(self, description=None, name=None, path=None, type_=None, **unknown_fields): - ''' - description : str - name : str - path : str - type_ : str - ''' - self.description = description - self.name = name - self.path = path - self.type_ = type_ - - - -class CharmStorage(Type): - _toSchema = {'count_max': 'count-max', 'count_min': 'count-min', 'description': 'description', 'location': 'location', 'minimum_size': 'minimum-size', 'name': 'name', 'properties': 'properties', 'read_only': 'read-only', 'shared': 'shared', 'type_': 'type'} - _toPy = {'count-max': 'count_max', 'count-min': 'count_min', 'description': 'description', 'location': 'location', 'minimum-size': 'minimum_size', 'name': 'name', 'properties': 'properties', 'read-only': 'read_only', 'shared': 'shared', 'type': 'type_'} - def __init__(self, count_max=None, count_min=None, description=None, location=None, minimum_size=None, name=None, properties=None, read_only=None, shared=None, type_=None, **unknown_fields): - ''' - count_max : int - count_min : int - description : str - location : str - minimum_size : int - name : str - properties : typing.Sequence[str] - read_only : bool - shared : bool - type_ : str - ''' - self.count_max = count_max - self.count_min = count_min - self.description = description - self.location = location - self.minimum_size = minimum_size - self.name = name - self.properties = properties - self.read_only = read_only - self.shared = shared - self.type_ = type_ - - - -class CharmURL(Type): - _toSchema = {'url': 'url'} - _toPy = {'url': 'url'} - def __init__(self, url=None, **unknown_fields): - ''' - url : str - ''' - self.url = url - - - -class CharmURLs(Type): - _toSchema = {'urls': 'urls'} - _toPy = {'urls': 'urls'} - def __init__(self, urls=None, **unknown_fields): - ''' - urls : typing.Sequence[~CharmURL] - ''' - self.urls = [CharmURL.from_json(o) for o in urls or []] - - - -class CharmsList(Type): - _toSchema = {'names': 'names'} - _toPy = {'names': 'names'} - def __init__(self, names=None, **unknown_fields): - ''' - names : typing.Sequence[str] - ''' - self.names = names - - - -class CharmsListResult(Type): - _toSchema = {'charm_urls': 'charm-urls'} - _toPy = {'charm-urls': 'charm_urls'} - def __init__(self, charm_urls=None, **unknown_fields): - ''' - charm_urls : typing.Sequence[str] - ''' - self.charm_urls = charm_urls - - - -class ClaimLeadershipBulkParams(Type): - _toSchema = {'params': 'params'} - _toPy = {'params': 'params'} - def __init__(self, params=None, **unknown_fields): - ''' - params : typing.Sequence[~ClaimLeadershipParams] - ''' - self.params = [ClaimLeadershipParams.from_json(o) for o in params or []] - - - -class ClaimLeadershipBulkResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ErrorResult] - ''' - self.results = [ErrorResult.from_json(o) for o in results or []] - - - -class ClaimLeadershipParams(Type): - _toSchema = {'application_tag': 'application-tag', 'duration': 'duration', 'unit_tag': 'unit-tag'} - _toPy = {'application-tag': 'application_tag', 'duration': 'duration', 'unit-tag': 'unit_tag'} - def __init__(self, application_tag=None, duration=None, unit_tag=None, **unknown_fields): - ''' - application_tag : str - duration : float - unit_tag : str - ''' - self.application_tag = application_tag - self.duration = duration - self.unit_tag = unit_tag - - - -class Cloud(Type): - _toSchema = {'auth_types': 'auth-types', 'endpoint': 'endpoint', 'identity_endpoint': 'identity-endpoint', 'regions': 'regions', 'storage_endpoint': 'storage-endpoint', 'type_': 'type'} - _toPy = {'auth-types': 'auth_types', 'endpoint': 'endpoint', 'identity-endpoint': 'identity_endpoint', 'regions': 'regions', 'storage-endpoint': 'storage_endpoint', 'type': 'type_'} - def __init__(self, auth_types=None, endpoint=None, identity_endpoint=None, regions=None, storage_endpoint=None, type_=None, **unknown_fields): - ''' - auth_types : typing.Sequence[str] - endpoint : str - identity_endpoint : str - regions : typing.Sequence[~CloudRegion] - storage_endpoint : str - type_ : str - ''' - self.auth_types = auth_types - self.endpoint = endpoint - self.identity_endpoint = identity_endpoint - self.regions = [CloudRegion.from_json(o) for o in regions or []] - self.storage_endpoint = storage_endpoint - self.type_ = type_ - - - -class CloudCredential(Type): - _toSchema = {'attrs': 'attrs', 'auth_type': 'auth-type', 'redacted': 'redacted'} - _toPy = {'attrs': 'attrs', 'auth-type': 'auth_type', 'redacted': 'redacted'} - def __init__(self, attrs=None, auth_type=None, redacted=None, **unknown_fields): - ''' - attrs : typing.Mapping[str, str] - auth_type : str - redacted : typing.Sequence[str] - ''' - self.attrs = attrs - self.auth_type = auth_type - self.redacted = redacted - - - -class CloudCredentialArg(Type): - _toSchema = {'cloud_name': 'cloud-name', 'credential_name': 'credential-name'} - _toPy = {'cloud-name': 'cloud_name', 'credential-name': 'credential_name'} - def __init__(self, cloud_name=None, credential_name=None, **unknown_fields): - ''' - cloud_name : str - credential_name : str - ''' - self.cloud_name = cloud_name - self.credential_name = credential_name - - - -class CloudCredentialArgs(Type): - _toSchema = {'credentials': 'credentials', 'include_secrets': 'include-secrets'} - _toPy = {'credentials': 'credentials', 'include-secrets': 'include_secrets'} - def __init__(self, credentials=None, include_secrets=None, **unknown_fields): - ''' - credentials : typing.Sequence[~CloudCredentialArg] - include_secrets : bool - ''' - self.credentials = [CloudCredentialArg.from_json(o) for o in credentials or []] - self.include_secrets = include_secrets - - - -class CloudCredentialResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : CloudCredential - ''' - self.error = Error.from_json(error) if error else None - self.result = CloudCredential.from_json(result) if result else None - - - -class CloudCredentialResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~CloudCredentialResult] - ''' - self.results = [CloudCredentialResult.from_json(o) for o in results or []] - - - -class CloudDetails(Type): - _toSchema = {'auth_types': 'auth-types', 'endpoint': 'endpoint', 'identity_endpoint': 'identity-endpoint', 'regions': 'regions', 'storage_endpoint': 'storage-endpoint', 'type_': 'type'} - _toPy = {'auth-types': 'auth_types', 'endpoint': 'endpoint', 'identity-endpoint': 'identity_endpoint', 'regions': 'regions', 'storage-endpoint': 'storage_endpoint', 'type': 'type_'} - def __init__(self, auth_types=None, endpoint=None, identity_endpoint=None, regions=None, storage_endpoint=None, type_=None, **unknown_fields): - ''' - auth_types : typing.Sequence[str] - endpoint : str - identity_endpoint : str - regions : typing.Sequence[~CloudRegion] - storage_endpoint : str - type_ : str - ''' - self.auth_types = auth_types - self.endpoint = endpoint - self.identity_endpoint = identity_endpoint - self.regions = [CloudRegion.from_json(o) for o in regions or []] - self.storage_endpoint = storage_endpoint - self.type_ = type_ - - - -class CloudImageMetadata(Type): - _toSchema = {'arch': 'arch', 'image_id': 'image-id', 'priority': 'priority', 'region': 'region', 'root_storage_size': 'root-storage-size', 'root_storage_type': 'root-storage-type', 'series': 'series', 'source': 'source', 'stream': 'stream', 'version': 'version', 'virt_type': 'virt-type'} - _toPy = {'arch': 'arch', 'image-id': 'image_id', 'priority': 'priority', 'region': 'region', 'root-storage-size': 'root_storage_size', 'root-storage-type': 'root_storage_type', 'series': 'series', 'source': 'source', 'stream': 'stream', 'version': 'version', 'virt-type': 'virt_type'} - def __init__(self, arch=None, image_id=None, priority=None, region=None, root_storage_size=None, root_storage_type=None, series=None, source=None, stream=None, version=None, virt_type=None, **unknown_fields): - ''' - arch : str - image_id : str - priority : int - region : str - root_storage_size : int - root_storage_type : str - series : str - source : str - stream : str - version : str - virt_type : str - ''' - self.arch = arch - self.image_id = image_id - self.priority = priority - self.region = region - self.root_storage_size = root_storage_size - self.root_storage_type = root_storage_type - self.series = series - self.source = source - self.stream = stream - self.version = version - self.virt_type = virt_type - - - -class CloudImageMetadataList(Type): - _toSchema = {'metadata': 'metadata'} - _toPy = {'metadata': 'metadata'} - def __init__(self, metadata=None, **unknown_fields): - ''' - metadata : typing.Sequence[~CloudImageMetadata] - ''' - self.metadata = [CloudImageMetadata.from_json(o) for o in metadata or []] - - - -class CloudInfo(Type): - _toSchema = {'clouddetails': 'CloudDetails', 'users': 'users'} - _toPy = {'CloudDetails': 'clouddetails', 'users': 'users'} - def __init__(self, clouddetails=None, users=None, **unknown_fields): - ''' - clouddetails : CloudDetails - users : typing.Sequence[~CloudUserInfo] - ''' - self.clouddetails = CloudDetails.from_json(clouddetails) if clouddetails else None - self.users = [CloudUserInfo.from_json(o) for o in users or []] - - - -class CloudInfoResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : CloudInfo - ''' - self.error = Error.from_json(error) if error else None - self.result = CloudInfo.from_json(result) if result else None - - - -class CloudInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~CloudInfoResult] - ''' - self.results = [CloudInfoResult.from_json(o) for o in results or []] - - - -class CloudInstanceTypesConstraint(Type): - _toSchema = {'cloud_tag': 'cloud-tag', 'constraints': 'constraints', 'region': 'region'} - _toPy = {'cloud-tag': 'cloud_tag', 'constraints': 'constraints', 'region': 'region'} - def __init__(self, cloud_tag=None, constraints=None, region=None, **unknown_fields): - ''' - cloud_tag : str - constraints : Value - region : str - ''' - self.cloud_tag = cloud_tag - self.constraints = Value.from_json(constraints) if constraints else None - self.region = region - - - -class CloudInstanceTypesConstraints(Type): - _toSchema = {'constraints': 'constraints'} - _toPy = {'constraints': 'constraints'} - def __init__(self, constraints=None, **unknown_fields): - ''' - constraints : typing.Sequence[~CloudInstanceTypesConstraint] - ''' - self.constraints = [CloudInstanceTypesConstraint.from_json(o) for o in constraints or []] - - - -class CloudRegion(Type): - _toSchema = {'endpoint': 'endpoint', 'identity_endpoint': 'identity-endpoint', 'name': 'name', 'storage_endpoint': 'storage-endpoint'} - _toPy = {'endpoint': 'endpoint', 'identity-endpoint': 'identity_endpoint', 'name': 'name', 'storage-endpoint': 'storage_endpoint'} - def __init__(self, endpoint=None, identity_endpoint=None, name=None, storage_endpoint=None, **unknown_fields): - ''' - endpoint : str - identity_endpoint : str - name : str - storage_endpoint : str - ''' - self.endpoint = endpoint - self.identity_endpoint = identity_endpoint - self.name = name - self.storage_endpoint = storage_endpoint - - - -class CloudResult(Type): - _toSchema = {'cloud': 'cloud', 'error': 'error'} - _toPy = {'cloud': 'cloud', 'error': 'error'} - def __init__(self, cloud=None, error=None, **unknown_fields): - ''' - cloud : Cloud - error : Error - ''' - self.cloud = Cloud.from_json(cloud) if cloud else None - self.error = Error.from_json(error) if error else None - - - -class CloudResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~CloudResult] - ''' - self.results = [CloudResult.from_json(o) for o in results or []] - - - -class CloudSpec(Type): - _toSchema = {'credential': 'credential', 'endpoint': 'endpoint', 'identity_endpoint': 'identity-endpoint', 'name': 'name', 'region': 'region', 'storage_endpoint': 'storage-endpoint', 'type_': 'type'} - _toPy = {'credential': 'credential', 'endpoint': 'endpoint', 'identity-endpoint': 'identity_endpoint', 'name': 'name', 'region': 'region', 'storage-endpoint': 'storage_endpoint', 'type': 'type_'} - def __init__(self, credential=None, endpoint=None, identity_endpoint=None, name=None, region=None, storage_endpoint=None, type_=None, **unknown_fields): - ''' - credential : CloudCredential - endpoint : str - identity_endpoint : str - name : str - region : str - storage_endpoint : str - type_ : str - ''' - self.credential = CloudCredential.from_json(credential) if credential else None - self.endpoint = endpoint - self.identity_endpoint = identity_endpoint - self.name = name - self.region = region - self.storage_endpoint = storage_endpoint - self.type_ = type_ - - - -class CloudSpecResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : CloudSpec - ''' - self.error = Error.from_json(error) if error else None - self.result = CloudSpec.from_json(result) if result else None - - - -class CloudSpecResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~CloudSpecResult] - ''' - self.results = [CloudSpecResult.from_json(o) for o in results or []] - - - -class CloudUserInfo(Type): - _toSchema = {'access': 'access', 'display_name': 'display-name', 'user': 'user'} - _toPy = {'access': 'access', 'display-name': 'display_name', 'user': 'user'} - def __init__(self, access=None, display_name=None, user=None, **unknown_fields): - ''' - access : str - display_name : str - user : str - ''' - self.access = access - self.display_name = display_name - self.user = user - - - -class CloudsResult(Type): - _toSchema = {'clouds': 'clouds'} - _toPy = {'clouds': 'clouds'} - def __init__(self, clouds=None, **unknown_fields): - ''' - clouds : typing.Mapping[str, ~Cloud] - ''' - self.clouds = clouds - - - -class ConfigResult(Type): - _toSchema = {'config': 'config', 'error': 'error'} - _toPy = {'config': 'config', 'error': 'error'} - def __init__(self, config=None, error=None, **unknown_fields): - ''' - config : typing.Mapping[str, typing.Any] - error : Error - ''' - self.config = config - self.error = Error.from_json(error) if error else None - - - -class ConfigSettingsResult(Type): - _toSchema = {'error': 'error', 'settings': 'settings'} - _toPy = {'error': 'error', 'settings': 'settings'} - def __init__(self, error=None, settings=None, **unknown_fields): - ''' - error : Error - settings : typing.Mapping[str, typing.Any] - ''' - self.error = Error.from_json(error) if error else None - self.settings = settings - - - -class ConfigSettingsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ConfigSettingsResult] - ''' - self.results = [ConfigSettingsResult.from_json(o) for o in results or []] - - - -class ConfigValue(Type): - _toSchema = {'source': 'source', 'value': 'value'} - _toPy = {'source': 'source', 'value': 'value'} - def __init__(self, source=None, value=None, **unknown_fields): - ''' - source : str - value : typing.Mapping[str, typing.Any] - ''' - self.source = source - self.value = value - - - -class Constraints(Type): - _toSchema = {'count': 'Count', 'pool': 'Pool', 'size': 'Size'} - _toPy = {'Count': 'count', 'Pool': 'pool', 'Size': 'size'} - def __init__(self, count=None, pool=None, size=None, **unknown_fields): - ''' - count : int - pool : str - size : int - ''' - self.count = count - self.pool = pool - self.size = size - - - -class ConstraintsResult(Type): - _toSchema = {'constraints': 'constraints', 'error': 'error'} - _toPy = {'constraints': 'constraints', 'error': 'error'} - def __init__(self, constraints=None, error=None, **unknown_fields): - ''' - constraints : Value - error : Error - ''' - self.constraints = Value.from_json(constraints) if constraints else None - self.error = Error.from_json(error) if error else None - - - -class ConstraintsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ConstraintsResult] - ''' - self.results = [ConstraintsResult.from_json(o) for o in results or []] - - - -class ConsumeApplicationArg(Type): - _toSchema = {'application_alias': 'application-alias', 'application_url': 'application-url'} - _toPy = {'application-alias': 'application_alias', 'application-url': 'application_url'} - def __init__(self, application_alias=None, application_url=None, **unknown_fields): - ''' - application_alias : str - application_url : str - ''' - self.application_alias = application_alias - self.application_url = application_url - - - -class ConsumeApplicationArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~ConsumeApplicationArg] - ''' - self.args = [ConsumeApplicationArg.from_json(o) for o in args or []] - - - -class ConsumeApplicationResult(Type): - _toSchema = {'error': 'error', 'local_name': 'local-name'} - _toPy = {'error': 'error', 'local-name': 'local_name'} - def __init__(self, error=None, local_name=None, **unknown_fields): - ''' - error : Error - local_name : str - ''' - self.error = Error.from_json(error) if error else None - self.local_name = local_name - - - -class ConsumeApplicationResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ConsumeApplicationResult] - ''' - self.results = [ConsumeApplicationResult.from_json(o) for o in results or []] - - - -class ConsumeOfferDetails(Type): - _toSchema = {'external_controller': 'external-controller', 'macaroon': 'macaroon', 'offer': 'offer'} - _toPy = {'external-controller': 'external_controller', 'macaroon': 'macaroon', 'offer': 'offer'} - def __init__(self, external_controller=None, macaroon=None, offer=None, **unknown_fields): - ''' - external_controller : ExternalControllerInfo - macaroon : Macaroon - offer : ApplicationOfferDetails - ''' - self.external_controller = ExternalControllerInfo.from_json(external_controller) if external_controller else None - self.macaroon = Macaroon.from_json(macaroon) if macaroon else None - self.offer = ApplicationOfferDetails.from_json(offer) if offer else None - - - -class ConsumeOfferDetailsResult(Type): - _toSchema = {'consumeofferdetails': 'ConsumeOfferDetails', 'error': 'error'} - _toPy = {'ConsumeOfferDetails': 'consumeofferdetails', 'error': 'error'} - def __init__(self, consumeofferdetails=None, error=None, **unknown_fields): - ''' - consumeofferdetails : ConsumeOfferDetails - error : Error - ''' - self.consumeofferdetails = ConsumeOfferDetails.from_json(consumeofferdetails) if consumeofferdetails else None - self.error = Error.from_json(error) if error else None - - - -class ConsumeOfferDetailsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ConsumeOfferDetailsResult] - ''' - self.results = [ConsumeOfferDetailsResult.from_json(o) for o in results or []] - - - -class ContainerConfig(Type): - _toSchema = {'apt_mirror': 'apt-mirror', 'apt_proxy': 'apt-proxy', 'authorized_keys': 'authorized-keys', 'provider_type': 'provider-type', 'proxy': 'proxy', 'ssl_hostname_verification': 'ssl-hostname-verification', 'updatebehavior': 'UpdateBehavior'} - _toPy = {'UpdateBehavior': 'updatebehavior', 'apt-mirror': 'apt_mirror', 'apt-proxy': 'apt_proxy', 'authorized-keys': 'authorized_keys', 'provider-type': 'provider_type', 'proxy': 'proxy', 'ssl-hostname-verification': 'ssl_hostname_verification'} - def __init__(self, updatebehavior=None, apt_mirror=None, apt_proxy=None, authorized_keys=None, provider_type=None, proxy=None, ssl_hostname_verification=None, **unknown_fields): - ''' - updatebehavior : UpdateBehavior - apt_mirror : str - apt_proxy : Settings - authorized_keys : str - provider_type : str - proxy : Settings - ssl_hostname_verification : bool - ''' - self.updatebehavior = UpdateBehavior.from_json(updatebehavior) if updatebehavior else None - self.apt_mirror = apt_mirror - self.apt_proxy = Settings.from_json(apt_proxy) if apt_proxy else None - self.authorized_keys = authorized_keys - self.provider_type = provider_type - self.proxy = Settings.from_json(proxy) if proxy else None - self.ssl_hostname_verification = ssl_hostname_verification - - - -class ContainerLXDProfile(Type): - _toSchema = {'name': 'name', 'profile': 'profile'} - _toPy = {'name': 'name', 'profile': 'profile'} - def __init__(self, name=None, profile=None, **unknown_fields): - ''' - name : str - profile : CharmLXDProfile - ''' - self.name = name - self.profile = CharmLXDProfile.from_json(profile) if profile else None - - - -class ContainerManagerConfig(Type): - _toSchema = {'config': 'config'} - _toPy = {'config': 'config'} - def __init__(self, config=None, **unknown_fields): - ''' - config : typing.Mapping[str, str] - ''' - self.config = config - - - -class ContainerManagerConfigParams(Type): - _toSchema = {'type_': 'type'} - _toPy = {'type': 'type_'} - def __init__(self, type_=None, **unknown_fields): - ''' - type_ : str - ''' - self.type_ = type_ - - - -class ContainerProfileResult(Type): - _toSchema = {'error': 'error', 'lxd_profiles': 'lxd-profiles'} - _toPy = {'error': 'error', 'lxd-profiles': 'lxd_profiles'} - def __init__(self, error=None, lxd_profiles=None, **unknown_fields): - ''' - error : Error - lxd_profiles : typing.Sequence[~ContainerLXDProfile] - ''' - self.error = Error.from_json(error) if error else None - self.lxd_profiles = [ContainerLXDProfile.from_json(o) for o in lxd_profiles or []] - - - -class ContainerProfileResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ContainerProfileResult] - ''' - self.results = [ContainerProfileResult.from_json(o) for o in results or []] - - - -class ControllerAPIInfoResult(Type): - _toSchema = {'addresses': 'addresses', 'cacert': 'cacert', 'error': 'error'} - _toPy = {'addresses': 'addresses', 'cacert': 'cacert', 'error': 'error'} - def __init__(self, addresses=None, cacert=None, error=None, **unknown_fields): - ''' - addresses : typing.Sequence[str] - cacert : str - error : Error - ''' - self.addresses = addresses - self.cacert = cacert - self.error = Error.from_json(error) if error else None - - - -class ControllerAPIInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ControllerAPIInfoResult] - ''' - self.results = [ControllerAPIInfoResult.from_json(o) for o in results or []] - - - -class ControllerConfigResult(Type): - _toSchema = {'config': 'config'} - _toPy = {'config': 'config'} - def __init__(self, config=None, **unknown_fields): - ''' - config : typing.Mapping[str, typing.Any] - ''' - self.config = config - - - -class ControllerConfigSet(Type): - _toSchema = {'config': 'config'} - _toPy = {'config': 'config'} - def __init__(self, config=None, **unknown_fields): - ''' - config : typing.Mapping[str, typing.Any] - ''' - self.config = config - - - -class ControllerCredentialInfo(Type): - _toSchema = {'content': 'content', 'models': 'models'} - _toPy = {'content': 'content', 'models': 'models'} - def __init__(self, content=None, models=None, **unknown_fields): - ''' - content : CredentialContent - models : typing.Sequence[~ModelAccess] - ''' - self.content = CredentialContent.from_json(content) if content else None - self.models = [ModelAccess.from_json(o) for o in models or []] - - - -class ControllersChangeResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : ControllersChanges - ''' - self.error = Error.from_json(error) if error else None - self.result = ControllersChanges.from_json(result) if result else None - - - -class ControllersChangeResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ControllersChangeResult] - ''' - self.results = [ControllersChangeResult.from_json(o) for o in results or []] - - - -class ControllersChanges(Type): - _toSchema = {'added': 'added', 'converted': 'converted', 'demoted': 'demoted', 'maintained': 'maintained', 'promoted': 'promoted', 'removed': 'removed'} - _toPy = {'added': 'added', 'converted': 'converted', 'demoted': 'demoted', 'maintained': 'maintained', 'promoted': 'promoted', 'removed': 'removed'} - def __init__(self, added=None, converted=None, demoted=None, maintained=None, promoted=None, removed=None, **unknown_fields): - ''' - added : typing.Sequence[str] - converted : typing.Sequence[str] - demoted : typing.Sequence[str] - maintained : typing.Sequence[str] - promoted : typing.Sequence[str] - removed : typing.Sequence[str] - ''' - self.added = added - self.converted = converted - self.demoted = demoted - self.maintained = maintained - self.promoted = promoted - self.removed = removed - - - -class ControllersSpec(Type): - _toSchema = {'constraints': 'constraints', 'num_controllers': 'num-controllers', 'placement': 'placement', 'series': 'series'} - _toPy = {'constraints': 'constraints', 'num-controllers': 'num_controllers', 'placement': 'placement', 'series': 'series'} - def __init__(self, constraints=None, num_controllers=None, placement=None, series=None, **unknown_fields): - ''' - constraints : Value - num_controllers : int - placement : typing.Sequence[str] - series : str - ''' - self.constraints = Value.from_json(constraints) if constraints else None - self.num_controllers = num_controllers - self.placement = placement - self.series = series - - - -class ControllersSpecs(Type): - _toSchema = {'specs': 'specs'} - _toPy = {'specs': 'specs'} - def __init__(self, specs=None, **unknown_fields): - ''' - specs : typing.Sequence[~ControllersSpec] - ''' - self.specs = [ControllersSpec.from_json(o) for o in specs or []] - - - -class CreateSpaceParams(Type): - _toSchema = {'provider_id': 'provider-id', 'public': 'public', 'space_tag': 'space-tag', 'subnet_tags': 'subnet-tags'} - _toPy = {'provider-id': 'provider_id', 'public': 'public', 'space-tag': 'space_tag', 'subnet-tags': 'subnet_tags'} - def __init__(self, provider_id=None, public=None, space_tag=None, subnet_tags=None, **unknown_fields): - ''' - provider_id : str - public : bool - space_tag : str - subnet_tags : typing.Sequence[str] - ''' - self.provider_id = provider_id - self.public = public - self.space_tag = space_tag - self.subnet_tags = subnet_tags - - - -class CreateSpacesParams(Type): - _toSchema = {'spaces': 'spaces'} - _toPy = {'spaces': 'spaces'} - def __init__(self, spaces=None, **unknown_fields): - ''' - spaces : typing.Sequence[~CreateSpaceParams] - ''' - self.spaces = [CreateSpaceParams.from_json(o) for o in spaces or []] - - - -class CredentialContent(Type): - _toSchema = {'attrs': 'attrs', 'auth_type': 'auth-type', 'cloud': 'cloud', 'name': 'name'} - _toPy = {'attrs': 'attrs', 'auth-type': 'auth_type', 'cloud': 'cloud', 'name': 'name'} - def __init__(self, attrs=None, auth_type=None, cloud=None, name=None, **unknown_fields): - ''' - attrs : typing.Mapping[str, str] - auth_type : str - cloud : str - name : str - ''' - self.attrs = attrs - self.auth_type = auth_type - self.cloud = cloud - self.name = name - - - -class CredentialContentResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : ControllerCredentialInfo - ''' - self.error = Error.from_json(error) if error else None - self.result = ControllerCredentialInfo.from_json(result) if result else None - - - -class CredentialContentResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~CredentialContentResult] - ''' - self.results = [CredentialContentResult.from_json(o) for o in results or []] - - - -class Delta(Type): - _toSchema = {'entity': 'entity', 'removed': 'removed'} - _toPy = {'entity': 'entity', 'removed': 'removed'} - def __init__(self, entity=None, removed=None, **unknown_fields): - ''' - entity : typing.Mapping[str, typing.Any] - removed : bool - ''' - self.entity = entity - self.removed = removed - - - -class DeployerConnectionValues(Type): - _toSchema = {'api_addresses': 'api-addresses', 'state_addresses': 'state-addresses'} - _toPy = {'api-addresses': 'api_addresses', 'state-addresses': 'state_addresses'} - def __init__(self, api_addresses=None, state_addresses=None, **unknown_fields): - ''' - api_addresses : typing.Sequence[str] - state_addresses : typing.Sequence[str] - ''' - self.api_addresses = api_addresses - self.state_addresses = state_addresses - - - -class DestroyApplicationInfo(Type): - _toSchema = {'destroyed_storage': 'destroyed-storage', 'destroyed_units': 'destroyed-units', 'detached_storage': 'detached-storage'} - _toPy = {'destroyed-storage': 'destroyed_storage', 'destroyed-units': 'destroyed_units', 'detached-storage': 'detached_storage'} - def __init__(self, destroyed_storage=None, destroyed_units=None, detached_storage=None, **unknown_fields): - ''' - destroyed_storage : typing.Sequence[~Entity] - destroyed_units : typing.Sequence[~Entity] - detached_storage : typing.Sequence[~Entity] - ''' - self.destroyed_storage = [Entity.from_json(o) for o in destroyed_storage or []] - self.destroyed_units = [Entity.from_json(o) for o in destroyed_units or []] - self.detached_storage = [Entity.from_json(o) for o in detached_storage or []] - - - -class DestroyApplicationOffers(Type): - _toSchema = {'force': 'force', 'offer_urls': 'offer-urls'} - _toPy = {'force': 'force', 'offer-urls': 'offer_urls'} - def __init__(self, force=None, offer_urls=None, **unknown_fields): - ''' - force : bool - offer_urls : typing.Sequence[str] - ''' - self.force = force - self.offer_urls = offer_urls - - - -class DestroyApplicationParams(Type): - _toSchema = {'application_tag': 'application-tag', 'destroy_storage': 'destroy-storage'} - _toPy = {'application-tag': 'application_tag', 'destroy-storage': 'destroy_storage'} - def __init__(self, application_tag=None, destroy_storage=None, **unknown_fields): - ''' - application_tag : str - destroy_storage : bool - ''' - self.application_tag = application_tag - self.destroy_storage = destroy_storage - - - -class DestroyApplicationResult(Type): - _toSchema = {'error': 'error', 'info': 'info'} - _toPy = {'error': 'error', 'info': 'info'} - def __init__(self, error=None, info=None, **unknown_fields): - ''' - error : Error - info : DestroyApplicationInfo - ''' - self.error = Error.from_json(error) if error else None - self.info = DestroyApplicationInfo.from_json(info) if info else None - - - -class DestroyApplicationResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~DestroyApplicationResult] - ''' - self.results = [DestroyApplicationResult.from_json(o) for o in results or []] - - - -class DestroyApplicationUnits(Type): - _toSchema = {'unit_names': 'unit-names'} - _toPy = {'unit-names': 'unit_names'} - def __init__(self, unit_names=None, **unknown_fields): - ''' - unit_names : typing.Sequence[str] - ''' - self.unit_names = unit_names - - - -class DestroyApplicationsParams(Type): - _toSchema = {'applications': 'applications'} - _toPy = {'applications': 'applications'} - def __init__(self, applications=None, **unknown_fields): - ''' - applications : typing.Sequence[~DestroyApplicationParams] - ''' - self.applications = [DestroyApplicationParams.from_json(o) for o in applications or []] - - - -class DestroyConsumedApplicationParams(Type): - _toSchema = {'application_tag': 'application-tag'} - _toPy = {'application-tag': 'application_tag'} - def __init__(self, application_tag=None, **unknown_fields): - ''' - application_tag : str - ''' - self.application_tag = application_tag - - - -class DestroyConsumedApplicationsParams(Type): - _toSchema = {'applications': 'applications'} - _toPy = {'applications': 'applications'} - def __init__(self, applications=None, **unknown_fields): - ''' - applications : typing.Sequence[~DestroyConsumedApplicationParams] - ''' - self.applications = [DestroyConsumedApplicationParams.from_json(o) for o in applications or []] - - - -class DestroyControllerArgs(Type): - _toSchema = {'destroy_models': 'destroy-models'} - _toPy = {'destroy-models': 'destroy_models'} - def __init__(self, destroy_models=None, **unknown_fields): - ''' - destroy_models : bool - ''' - self.destroy_models = destroy_models - - - -class DestroyMachineInfo(Type): - _toSchema = {'destroyed_storage': 'destroyed-storage', 'destroyed_units': 'destroyed-units', 'detached_storage': 'detached-storage'} - _toPy = {'destroyed-storage': 'destroyed_storage', 'destroyed-units': 'destroyed_units', 'detached-storage': 'detached_storage'} - def __init__(self, destroyed_storage=None, destroyed_units=None, detached_storage=None, **unknown_fields): - ''' - destroyed_storage : typing.Sequence[~Entity] - destroyed_units : typing.Sequence[~Entity] - detached_storage : typing.Sequence[~Entity] - ''' - self.destroyed_storage = [Entity.from_json(o) for o in destroyed_storage or []] - self.destroyed_units = [Entity.from_json(o) for o in destroyed_units or []] - self.detached_storage = [Entity.from_json(o) for o in detached_storage or []] - - - -class DestroyMachineResult(Type): - _toSchema = {'error': 'error', 'info': 'info'} - _toPy = {'error': 'error', 'info': 'info'} - def __init__(self, error=None, info=None, **unknown_fields): - ''' - error : Error - info : DestroyMachineInfo - ''' - self.error = Error.from_json(error) if error else None - self.info = DestroyMachineInfo.from_json(info) if info else None - - - -class DestroyMachineResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~DestroyMachineResult] - ''' - self.results = [DestroyMachineResult.from_json(o) for o in results or []] - - - -class DestroyMachines(Type): - _toSchema = {'force': 'force', 'machine_names': 'machine-names'} - _toPy = {'force': 'force', 'machine-names': 'machine_names'} - def __init__(self, force=None, machine_names=None, **unknown_fields): - ''' - force : bool - machine_names : typing.Sequence[str] - ''' - self.force = force - self.machine_names = machine_names - - - -class DestroyMachinesParams(Type): - _toSchema = {'force': 'force', 'keep': 'keep', 'machine_tags': 'machine-tags'} - _toPy = {'force': 'force', 'keep': 'keep', 'machine-tags': 'machine_tags'} - def __init__(self, force=None, keep=None, machine_tags=None, **unknown_fields): - ''' - force : bool - keep : bool - machine_tags : typing.Sequence[str] - ''' - self.force = force - self.keep = keep - self.machine_tags = machine_tags - - - -class DestroyModelParams(Type): - _toSchema = {'destroy_storage': 'destroy-storage', 'model_tag': 'model-tag'} - _toPy = {'destroy-storage': 'destroy_storage', 'model-tag': 'model_tag'} - def __init__(self, destroy_storage=None, model_tag=None, **unknown_fields): - ''' - destroy_storage : bool - model_tag : str - ''' - self.destroy_storage = destroy_storage - self.model_tag = model_tag - - - -class DestroyModelsParams(Type): - _toSchema = {'models': 'models'} - _toPy = {'models': 'models'} - def __init__(self, models=None, **unknown_fields): - ''' - models : typing.Sequence[~DestroyModelParams] - ''' - self.models = [DestroyModelParams.from_json(o) for o in models or []] - - - -class DestroyRelation(Type): - _toSchema = {'endpoints': 'endpoints'} - _toPy = {'endpoints': 'endpoints'} - def __init__(self, endpoints=None, **unknown_fields): - ''' - endpoints : typing.Sequence[str] - ''' - self.endpoints = endpoints - - - -class DestroyUnitInfo(Type): - _toSchema = {'destroyed_storage': 'destroyed-storage', 'detached_storage': 'detached-storage'} - _toPy = {'destroyed-storage': 'destroyed_storage', 'detached-storage': 'detached_storage'} - def __init__(self, destroyed_storage=None, detached_storage=None, **unknown_fields): - ''' - destroyed_storage : typing.Sequence[~Entity] - detached_storage : typing.Sequence[~Entity] - ''' - self.destroyed_storage = [Entity.from_json(o) for o in destroyed_storage or []] - self.detached_storage = [Entity.from_json(o) for o in detached_storage or []] - - - -class DestroyUnitParams(Type): - _toSchema = {'destroy_storage': 'destroy-storage', 'unit_tag': 'unit-tag'} - _toPy = {'destroy-storage': 'destroy_storage', 'unit-tag': 'unit_tag'} - def __init__(self, destroy_storage=None, unit_tag=None, **unknown_fields): - ''' - destroy_storage : bool - unit_tag : str - ''' - self.destroy_storage = destroy_storage - self.unit_tag = unit_tag - - - -class DestroyUnitResult(Type): - _toSchema = {'error': 'error', 'info': 'info'} - _toPy = {'error': 'error', 'info': 'info'} - def __init__(self, error=None, info=None, **unknown_fields): - ''' - error : Error - info : DestroyUnitInfo - ''' - self.error = Error.from_json(error) if error else None - self.info = DestroyUnitInfo.from_json(info) if info else None - - - -class DestroyUnitResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~DestroyUnitResult] - ''' - self.results = [DestroyUnitResult.from_json(o) for o in results or []] - - - -class DestroyUnitsParams(Type): - _toSchema = {'units': 'units'} - _toPy = {'units': 'units'} - def __init__(self, units=None, **unknown_fields): - ''' - units : typing.Sequence[~DestroyUnitParams] - ''' - self.units = [DestroyUnitParams.from_json(o) for o in units or []] - - - -class DetailedStatus(Type): - _toSchema = {'data': 'data', 'err': 'err', 'info': 'info', 'kind': 'kind', 'life': 'life', 'since': 'since', 'status': 'status', 'version': 'version'} - _toPy = {'data': 'data', 'err': 'err', 'info': 'info', 'kind': 'kind', 'life': 'life', 'since': 'since', 'status': 'status', 'version': 'version'} - def __init__(self, data=None, err=None, info=None, kind=None, life=None, since=None, status=None, version=None, **unknown_fields): - ''' - data : typing.Mapping[str, typing.Any] - err : typing.Mapping[str, typing.Any] - info : str - kind : str - life : str - since : str - status : str - version : str - ''' - self.data = data - self.err = err - self.info = info - self.kind = kind - self.life = life - self.since = since - self.status = status - self.version = version - - - -class DeviceBridgeInfo(Type): - _toSchema = {'bridge_name': 'bridge-name', 'host_device_name': 'host-device-name'} - _toPy = {'bridge-name': 'bridge_name', 'host-device-name': 'host_device_name'} - def __init__(self, bridge_name=None, host_device_name=None, **unknown_fields): - ''' - bridge_name : str - host_device_name : str - ''' - self.bridge_name = bridge_name - self.host_device_name = host_device_name - - - -class DiscoverSpacesResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ProviderSpace] - ''' - self.results = [ProviderSpace.from_json(o) for o in results or []] - - - -class DistributionGroupResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : typing.Sequence[str] - ''' - self.error = Error.from_json(error) if error else None - self.result = result - - - -class DistributionGroupResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~DistributionGroupResult] - ''' - self.results = [DistributionGroupResult.from_json(o) for o in results or []] - - - -class DumpModelRequest(Type): - _toSchema = {'entities': 'entities', 'simplified': 'simplified'} - _toPy = {'entities': 'entities', 'simplified': 'simplified'} - def __init__(self, entities=None, simplified=None, **unknown_fields): - ''' - entities : typing.Sequence[~Entity] - simplified : bool - ''' - self.entities = [Entity.from_json(o) for o in entities or []] - self.simplified = simplified - - - -class Endpoint(Type): - _toSchema = {'application_name': 'application-name', 'relation': 'relation'} - _toPy = {'application-name': 'application_name', 'relation': 'relation'} - def __init__(self, application_name=None, relation=None, **unknown_fields): - ''' - application_name : str - relation : CharmRelation - ''' - self.application_name = application_name - self.relation = CharmRelation.from_json(relation) if relation else None - - - -class EndpointFilterAttributes(Type): - _toSchema = {'interface': 'interface', 'name': 'name', 'role': 'role'} - _toPy = {'interface': 'interface', 'name': 'name', 'role': 'role'} - def __init__(self, interface=None, name=None, role=None, **unknown_fields): - ''' - interface : str - name : str - role : str - ''' - self.interface = interface - self.name = name - self.role = role - - - -class EndpointStatus(Type): - _toSchema = {'application': 'application', 'name': 'name', 'role': 'role', 'subordinate': 'subordinate'} - _toPy = {'application': 'application', 'name': 'name', 'role': 'role', 'subordinate': 'subordinate'} - def __init__(self, application=None, name=None, role=None, subordinate=None, **unknown_fields): - ''' - application : str - name : str - role : str - subordinate : bool - ''' - self.application = application - self.name = name - self.role = role - self.subordinate = subordinate - - - -class Entities(Type): - _toSchema = {'entities': 'entities'} - _toPy = {'entities': 'entities'} - def __init__(self, entities=None, **unknown_fields): - ''' - entities : typing.Sequence[~Entity] - ''' - self.entities = [Entity.from_json(o) for o in entities or []] - - - -class EntitiesCharmURL(Type): - _toSchema = {'entities': 'entities'} - _toPy = {'entities': 'entities'} - def __init__(self, entities=None, **unknown_fields): - ''' - entities : typing.Sequence[~EntityCharmURL] - ''' - self.entities = [EntityCharmURL.from_json(o) for o in entities or []] - - - -class EntitiesPortRanges(Type): - _toSchema = {'entities': 'entities'} - _toPy = {'entities': 'entities'} - def __init__(self, entities=None, **unknown_fields): - ''' - entities : typing.Sequence[~EntityPortRange] - ''' - self.entities = [EntityPortRange.from_json(o) for o in entities or []] - - - -class EntitiesResult(Type): - _toSchema = {'entities': 'entities', 'error': 'error'} - _toPy = {'entities': 'entities', 'error': 'error'} - def __init__(self, entities=None, error=None, **unknown_fields): - ''' - entities : typing.Sequence[~Entity] - error : Error - ''' - self.entities = [Entity.from_json(o) for o in entities or []] - self.error = Error.from_json(error) if error else None - - - -class EntitiesResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~EntitiesResult] - ''' - self.results = [EntitiesResult.from_json(o) for o in results or []] - - - -class EntitiesVersion(Type): - _toSchema = {'agent_tools': 'agent-tools'} - _toPy = {'agent-tools': 'agent_tools'} - def __init__(self, agent_tools=None, **unknown_fields): - ''' - agent_tools : typing.Sequence[~EntityVersion] - ''' - self.agent_tools = [EntityVersion.from_json(o) for o in agent_tools or []] - - - -class EntitiesWatchResult(Type): - _toSchema = {'changes': 'changes', 'error': 'error', 'watcher_id': 'watcher-id'} - _toPy = {'changes': 'changes', 'error': 'error', 'watcher-id': 'watcher_id'} - def __init__(self, changes=None, error=None, watcher_id=None, **unknown_fields): - ''' - changes : typing.Sequence[str] - error : Error - watcher_id : str - ''' - self.changes = changes - self.error = Error.from_json(error) if error else None - self.watcher_id = watcher_id - - - -class Entity(Type): - _toSchema = {'tag': 'tag'} - _toPy = {'tag': 'tag'} - def __init__(self, tag=None, **unknown_fields): - ''' - tag : str - ''' - self.tag = tag - - - -class EntityAnnotations(Type): - _toSchema = {'annotations': 'annotations', 'entity': 'entity'} - _toPy = {'annotations': 'annotations', 'entity': 'entity'} - def __init__(self, annotations=None, entity=None, **unknown_fields): - ''' - annotations : typing.Mapping[str, str] - entity : str - ''' - self.annotations = annotations - self.entity = entity - - - -class EntityCharmURL(Type): - _toSchema = {'charm_url': 'charm-url', 'tag': 'tag'} - _toPy = {'charm-url': 'charm_url', 'tag': 'tag'} - def __init__(self, charm_url=None, tag=None, **unknown_fields): - ''' - charm_url : str - tag : str - ''' - self.charm_url = charm_url - self.tag = tag - - - -class EntityMacaroonArg(Type): - _toSchema = {'macaroon': 'macaroon', 'tag': 'tag'} - _toPy = {'macaroon': 'macaroon', 'tag': 'tag'} - def __init__(self, macaroon=None, tag=None, **unknown_fields): - ''' - macaroon : Macaroon - tag : str - ''' - self.macaroon = Macaroon.from_json(macaroon) if macaroon else None - self.tag = tag - - - -class EntityMacaroonArgs(Type): - _toSchema = {'args': 'Args'} - _toPy = {'Args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~EntityMacaroonArg] - ''' - self.args = [EntityMacaroonArg.from_json(o) for o in args or []] - - - -class EntityMetrics(Type): - _toSchema = {'error': 'error', 'metrics': 'metrics'} - _toPy = {'error': 'error', 'metrics': 'metrics'} - def __init__(self, error=None, metrics=None, **unknown_fields): - ''' - error : Error - metrics : typing.Sequence[~MetricResult] - ''' - self.error = Error.from_json(error) if error else None - self.metrics = [MetricResult.from_json(o) for o in metrics or []] - - - -class EntityPassword(Type): - _toSchema = {'password': 'password', 'tag': 'tag'} - _toPy = {'password': 'password', 'tag': 'tag'} - def __init__(self, password=None, tag=None, **unknown_fields): - ''' - password : str - tag : str - ''' - self.password = password - self.tag = tag - - - -class EntityPasswords(Type): - _toSchema = {'changes': 'changes'} - _toPy = {'changes': 'changes'} - def __init__(self, changes=None, **unknown_fields): - ''' - changes : typing.Sequence[~EntityPassword] - ''' - self.changes = [EntityPassword.from_json(o) for o in changes or []] - - - -class EntityPortRange(Type): - _toSchema = {'from_port': 'from-port', 'protocol': 'protocol', 'tag': 'tag', 'to_port': 'to-port'} - _toPy = {'from-port': 'from_port', 'protocol': 'protocol', 'tag': 'tag', 'to-port': 'to_port'} - def __init__(self, from_port=None, protocol=None, tag=None, to_port=None, **unknown_fields): - ''' - from_port : int - protocol : str - tag : str - to_port : int - ''' - self.from_port = from_port - self.protocol = protocol - self.tag = tag - self.to_port = to_port - - - -class EntityStatus(Type): - _toSchema = {'data': 'data', 'info': 'info', 'since': 'since', 'status': 'status'} - _toPy = {'data': 'data', 'info': 'info', 'since': 'since', 'status': 'status'} - def __init__(self, data=None, info=None, since=None, status=None, **unknown_fields): - ''' - data : typing.Mapping[str, typing.Any] - info : str - since : str - status : str - ''' - self.data = data - self.info = info - self.since = since - self.status = status - - - -class EntityStatusArgs(Type): - _toSchema = {'data': 'data', 'info': 'info', 'status': 'status', 'tag': 'tag'} - _toPy = {'data': 'data', 'info': 'info', 'status': 'status', 'tag': 'tag'} - def __init__(self, data=None, info=None, status=None, tag=None, **unknown_fields): - ''' - data : typing.Mapping[str, typing.Any] - info : str - status : str - tag : str - ''' - self.data = data - self.info = info - self.status = status - self.tag = tag - - - -class EntityString(Type): - _toSchema = {'tag': 'tag', 'value': 'value'} - _toPy = {'tag': 'tag', 'value': 'value'} - def __init__(self, tag=None, value=None, **unknown_fields): - ''' - tag : str - value : str - ''' - self.tag = tag - self.value = value - - - -class EntityVersion(Type): - _toSchema = {'tag': 'tag', 'tools': 'tools'} - _toPy = {'tag': 'tag', 'tools': 'tools'} - def __init__(self, tag=None, tools=None, **unknown_fields): - ''' - tag : str - tools : Version - ''' - self.tag = tag - self.tools = Version.from_json(tools) if tools else None - - - -class EntityWorkloadVersion(Type): - _toSchema = {'tag': 'tag', 'workload_version': 'workload-version'} - _toPy = {'tag': 'tag', 'workload-version': 'workload_version'} - def __init__(self, tag=None, workload_version=None, **unknown_fields): - ''' - tag : str - workload_version : str - ''' - self.tag = tag - self.workload_version = workload_version - - - -class EntityWorkloadVersions(Type): - _toSchema = {'entities': 'entities'} - _toPy = {'entities': 'entities'} - def __init__(self, entities=None, **unknown_fields): - ''' - entities : typing.Sequence[~EntityWorkloadVersion] - ''' - self.entities = [EntityWorkloadVersion.from_json(o) for o in entities or []] - - - -class EnvListArgs(Type): - _toSchema = {'patterns': 'patterns'} - _toPy = {'patterns': 'patterns'} - def __init__(self, patterns=None, **unknown_fields): - ''' - patterns : typing.Sequence[str] - ''' - self.patterns = patterns - - - -class EnvListResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~Payload] - ''' - self.results = [Payload.from_json(o) for o in results or []] - - - -class Error(Type): - _toSchema = {'code': 'code', 'info': 'info', 'message': 'message'} - _toPy = {'code': 'code', 'info': 'info', 'message': 'message'} - def __init__(self, code=None, info=None, message=None, **unknown_fields): - ''' - code : str - info : ErrorInfo - message : str - ''' - self.code = code - self.info = ErrorInfo.from_json(info) if info else None - self.message = message - - - -class ErrorInfo(Type): - _toSchema = {'macaroon': 'macaroon', 'macaroon_path': 'macaroon-path'} - _toPy = {'macaroon': 'macaroon', 'macaroon-path': 'macaroon_path'} - def __init__(self, macaroon=None, macaroon_path=None, **unknown_fields): - ''' - macaroon : Macaroon - macaroon_path : str - ''' - self.macaroon = Macaroon.from_json(macaroon) if macaroon else None - self.macaroon_path = macaroon_path - - - -class ErrorResult(Type): - _toSchema = {'error': 'error'} - _toPy = {'error': 'error'} - def __init__(self, error=None, **unknown_fields): - ''' - error : Error - ''' - self.error = Error.from_json(error) if error else None - - - -class ErrorResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ErrorResult] - ''' - self.results = [ErrorResult.from_json(o) for o in results or []] - - - -class ExternalControllerInfo(Type): - _toSchema = {'addrs': 'addrs', 'ca_cert': 'ca-cert', 'controller_alias': 'controller-alias', 'controller_tag': 'controller-tag'} - _toPy = {'addrs': 'addrs', 'ca-cert': 'ca_cert', 'controller-alias': 'controller_alias', 'controller-tag': 'controller_tag'} - def __init__(self, addrs=None, ca_cert=None, controller_alias=None, controller_tag=None, **unknown_fields): - ''' - addrs : typing.Sequence[str] - ca_cert : str - controller_alias : str - controller_tag : str - ''' - self.addrs = addrs - self.ca_cert = ca_cert - self.controller_alias = controller_alias - self.controller_tag = controller_tag - - - -class ExternalControllerInfoResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : ExternalControllerInfo - ''' - self.error = Error.from_json(error) if error else None - self.result = ExternalControllerInfo.from_json(result) if result else None - - - -class ExternalControllerInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ExternalControllerInfoResult] - ''' - self.results = [ExternalControllerInfoResult.from_json(o) for o in results or []] - - - -class FanConfigEntry(Type): - _toSchema = {'overlay': 'overlay', 'underlay': 'underlay'} - _toPy = {'overlay': 'overlay', 'underlay': 'underlay'} - def __init__(self, overlay=None, underlay=None, **unknown_fields): - ''' - overlay : str - underlay : str - ''' - self.overlay = overlay - self.underlay = underlay - - - -class FanConfigResult(Type): - _toSchema = {'fans': 'fans'} - _toPy = {'fans': 'fans'} - def __init__(self, fans=None, **unknown_fields): - ''' - fans : typing.Sequence[~FanConfigEntry] - ''' - self.fans = [FanConfigEntry.from_json(o) for o in fans or []] - - - -class Filesystem(Type): - _toSchema = {'filesystem_tag': 'filesystem-tag', 'info': 'info', 'volume_tag': 'volume-tag'} - _toPy = {'filesystem-tag': 'filesystem_tag', 'info': 'info', 'volume-tag': 'volume_tag'} - def __init__(self, filesystem_tag=None, info=None, volume_tag=None, **unknown_fields): - ''' - filesystem_tag : str - info : FilesystemInfo - volume_tag : str - ''' - self.filesystem_tag = filesystem_tag - self.info = FilesystemInfo.from_json(info) if info else None - self.volume_tag = volume_tag - - - -class FilesystemAttachment(Type): - _toSchema = {'filesystem_tag': 'filesystem-tag', 'info': 'info', 'machine_tag': 'machine-tag'} - _toPy = {'filesystem-tag': 'filesystem_tag', 'info': 'info', 'machine-tag': 'machine_tag'} - def __init__(self, filesystem_tag=None, info=None, machine_tag=None, **unknown_fields): - ''' - filesystem_tag : str - info : FilesystemAttachmentInfo - machine_tag : str - ''' - self.filesystem_tag = filesystem_tag - self.info = FilesystemAttachmentInfo.from_json(info) if info else None - self.machine_tag = machine_tag - - - -class FilesystemAttachmentDetails(Type): - _toSchema = {'filesystemattachmentinfo': 'FilesystemAttachmentInfo', 'life': 'life'} - _toPy = {'FilesystemAttachmentInfo': 'filesystemattachmentinfo', 'life': 'life'} - def __init__(self, filesystemattachmentinfo=None, life=None, **unknown_fields): - ''' - filesystemattachmentinfo : FilesystemAttachmentInfo - life : str - ''' - self.filesystemattachmentinfo = FilesystemAttachmentInfo.from_json(filesystemattachmentinfo) if filesystemattachmentinfo else None - self.life = life - - - -class FilesystemAttachmentInfo(Type): - _toSchema = {'mount_point': 'mount-point', 'read_only': 'read-only'} - _toPy = {'mount-point': 'mount_point', 'read-only': 'read_only'} - def __init__(self, mount_point=None, read_only=None, **unknown_fields): - ''' - mount_point : str - read_only : bool - ''' - self.mount_point = mount_point - self.read_only = read_only - - - -class FilesystemAttachmentParams(Type): - _toSchema = {'filesystem_id': 'filesystem-id', 'filesystem_tag': 'filesystem-tag', 'instance_id': 'instance-id', 'machine_tag': 'machine-tag', 'mount_point': 'mount-point', 'provider': 'provider', 'read_only': 'read-only'} - _toPy = {'filesystem-id': 'filesystem_id', 'filesystem-tag': 'filesystem_tag', 'instance-id': 'instance_id', 'machine-tag': 'machine_tag', 'mount-point': 'mount_point', 'provider': 'provider', 'read-only': 'read_only'} - def __init__(self, filesystem_id=None, filesystem_tag=None, instance_id=None, machine_tag=None, mount_point=None, provider=None, read_only=None, **unknown_fields): - ''' - filesystem_id : str - filesystem_tag : str - instance_id : str - machine_tag : str - mount_point : str - provider : str - read_only : bool - ''' - self.filesystem_id = filesystem_id - self.filesystem_tag = filesystem_tag - self.instance_id = instance_id - self.machine_tag = machine_tag - self.mount_point = mount_point - self.provider = provider - self.read_only = read_only - - - -class FilesystemAttachmentParamsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : FilesystemAttachmentParams - ''' - self.error = Error.from_json(error) if error else None - self.result = FilesystemAttachmentParams.from_json(result) if result else None - - - -class FilesystemAttachmentParamsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~FilesystemAttachmentParamsResult] - ''' - self.results = [FilesystemAttachmentParamsResult.from_json(o) for o in results or []] - - - -class FilesystemAttachmentResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : FilesystemAttachment - ''' - self.error = Error.from_json(error) if error else None - self.result = FilesystemAttachment.from_json(result) if result else None - - - -class FilesystemAttachmentResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~FilesystemAttachmentResult] - ''' - self.results = [FilesystemAttachmentResult.from_json(o) for o in results or []] - - - -class FilesystemAttachments(Type): - _toSchema = {'filesystem_attachments': 'filesystem-attachments'} - _toPy = {'filesystem-attachments': 'filesystem_attachments'} - def __init__(self, filesystem_attachments=None, **unknown_fields): - ''' - filesystem_attachments : typing.Sequence[~FilesystemAttachment] - ''' - self.filesystem_attachments = [FilesystemAttachment.from_json(o) for o in filesystem_attachments or []] - - - -class FilesystemDetails(Type): - _toSchema = {'filesystem_tag': 'filesystem-tag', 'info': 'info', 'machine_attachments': 'machine-attachments', 'status': 'status', 'storage': 'storage', 'volume_tag': 'volume-tag'} - _toPy = {'filesystem-tag': 'filesystem_tag', 'info': 'info', 'machine-attachments': 'machine_attachments', 'status': 'status', 'storage': 'storage', 'volume-tag': 'volume_tag'} - def __init__(self, filesystem_tag=None, info=None, machine_attachments=None, status=None, storage=None, volume_tag=None, **unknown_fields): - ''' - filesystem_tag : str - info : FilesystemInfo - machine_attachments : typing.Mapping[str, ~FilesystemAttachmentInfo] - status : EntityStatus - storage : StorageDetails - volume_tag : str - ''' - self.filesystem_tag = filesystem_tag - self.info = FilesystemInfo.from_json(info) if info else None - self.machine_attachments = machine_attachments - self.status = EntityStatus.from_json(status) if status else None - self.storage = StorageDetails.from_json(storage) if storage else None - self.volume_tag = volume_tag - - - -class FilesystemDetailsListResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : typing.Sequence[~FilesystemDetails] - ''' - self.error = Error.from_json(error) if error else None - self.result = [FilesystemDetails.from_json(o) for o in result or []] - - - -class FilesystemDetailsListResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~FilesystemDetailsListResult] - ''' - self.results = [FilesystemDetailsListResult.from_json(o) for o in results or []] - - - -class FilesystemFilter(Type): - _toSchema = {'machines': 'machines'} - _toPy = {'machines': 'machines'} - def __init__(self, machines=None, **unknown_fields): - ''' - machines : typing.Sequence[str] - ''' - self.machines = machines - - - -class FilesystemFilters(Type): - _toSchema = {'filters': 'filters'} - _toPy = {'filters': 'filters'} - def __init__(self, filters=None, **unknown_fields): - ''' - filters : typing.Sequence[~FilesystemFilter] - ''' - self.filters = [FilesystemFilter.from_json(o) for o in filters or []] - - - -class FilesystemInfo(Type): - _toSchema = {'filesystem_id': 'filesystem-id', 'size': 'size'} - _toPy = {'filesystem-id': 'filesystem_id', 'size': 'size'} - def __init__(self, filesystem_id=None, size=None, **unknown_fields): - ''' - filesystem_id : str - size : int - ''' - self.filesystem_id = filesystem_id - self.size = size - - - -class FilesystemParams(Type): - _toSchema = {'attachment': 'attachment', 'attributes': 'attributes', 'filesystem_tag': 'filesystem-tag', 'provider': 'provider', 'size': 'size', 'tags': 'tags', 'volume_tag': 'volume-tag'} - _toPy = {'attachment': 'attachment', 'attributes': 'attributes', 'filesystem-tag': 'filesystem_tag', 'provider': 'provider', 'size': 'size', 'tags': 'tags', 'volume-tag': 'volume_tag'} - def __init__(self, attachment=None, attributes=None, filesystem_tag=None, provider=None, size=None, tags=None, volume_tag=None, **unknown_fields): - ''' - attachment : FilesystemAttachmentParams - attributes : typing.Mapping[str, typing.Any] - filesystem_tag : str - provider : str - size : int - tags : typing.Mapping[str, str] - volume_tag : str - ''' - self.attachment = FilesystemAttachmentParams.from_json(attachment) if attachment else None - self.attributes = attributes - self.filesystem_tag = filesystem_tag - self.provider = provider - self.size = size - self.tags = tags - self.volume_tag = volume_tag - - - -class FilesystemParamsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : FilesystemParams - ''' - self.error = Error.from_json(error) if error else None - self.result = FilesystemParams.from_json(result) if result else None - - - -class FilesystemParamsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~FilesystemParamsResult] - ''' - self.results = [FilesystemParamsResult.from_json(o) for o in results or []] - - - -class FilesystemResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : Filesystem - ''' - self.error = Error.from_json(error) if error else None - self.result = Filesystem.from_json(result) if result else None - - - -class FilesystemResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~FilesystemResult] - ''' - self.results = [FilesystemResult.from_json(o) for o in results or []] - - - -class Filesystems(Type): - _toSchema = {'filesystems': 'filesystems'} - _toPy = {'filesystems': 'filesystems'} - def __init__(self, filesystems=None, **unknown_fields): - ''' - filesystems : typing.Sequence[~Filesystem] - ''' - self.filesystems = [Filesystem.from_json(o) for o in filesystems or []] - - - -class FindActionsByNames(Type): - _toSchema = {'names': 'names'} - _toPy = {'names': 'names'} - def __init__(self, names=None, **unknown_fields): - ''' - names : typing.Sequence[str] - ''' - self.names = names - - - -class FindTags(Type): - _toSchema = {'prefixes': 'prefixes'} - _toPy = {'prefixes': 'prefixes'} - def __init__(self, prefixes=None, **unknown_fields): - ''' - prefixes : typing.Sequence[str] - ''' - self.prefixes = prefixes - - - -class FindTagsResults(Type): - _toSchema = {'matches': 'matches'} - _toPy = {'matches': 'matches'} - def __init__(self, matches=None, **unknown_fields): - ''' - matches : typing.Sequence[~Entity] - ''' - self.matches = [Entity.from_json(o) for o in matches or []] - - - -class FindToolsParams(Type): - _toSchema = {'arch': 'arch', 'major': 'major', 'minor': 'minor', 'number': 'number', 'series': 'series'} - _toPy = {'arch': 'arch', 'major': 'major', 'minor': 'minor', 'number': 'number', 'series': 'series'} - def __init__(self, arch=None, major=None, minor=None, number=None, series=None, **unknown_fields): - ''' - arch : str - major : int - minor : int - number : Number - series : str - ''' - self.arch = arch - self.major = major - self.minor = minor - self.number = Number.from_json(number) if number else None - self.series = series - - - -class FindToolsResult(Type): - _toSchema = {'error': 'error', 'list_': 'list'} - _toPy = {'error': 'error', 'list': 'list_'} - def __init__(self, error=None, list_=None, **unknown_fields): - ''' - error : Error - list_ : typing.Sequence[~Tools] - ''' - self.error = Error.from_json(error) if error else None - self.list_ = [Tools.from_json(o) for o in list_ or []] - - - -class FirewallRule(Type): - _toSchema = {'known_service': 'known-service', 'whitelist_cidrs': 'whitelist-cidrs'} - _toPy = {'known-service': 'known_service', 'whitelist-cidrs': 'whitelist_cidrs'} - def __init__(self, known_service=None, whitelist_cidrs=None, **unknown_fields): - ''' - known_service : str - whitelist_cidrs : typing.Sequence[str] - ''' - self.known_service = known_service - self.whitelist_cidrs = whitelist_cidrs - - - -class FirewallRuleArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~FirewallRule] - ''' - self.args = [FirewallRule.from_json(o) for o in args or []] - - - -class FullStatus(Type): - _toSchema = {'applications': 'applications', 'controller_timestamp': 'controller-timestamp', 'machines': 'machines', 'model': 'model', 'offers': 'offers', 'relations': 'relations', 'remote_applications': 'remote-applications'} - _toPy = {'applications': 'applications', 'controller-timestamp': 'controller_timestamp', 'machines': 'machines', 'model': 'model', 'offers': 'offers', 'relations': 'relations', 'remote-applications': 'remote_applications'} - def __init__(self, applications=None, controller_timestamp=None, machines=None, model=None, offers=None, relations=None, remote_applications=None, **unknown_fields): - ''' - applications : typing.Mapping[str, ~ApplicationStatus] - controller_timestamp : str - machines : typing.Mapping[str, ~MachineStatus] - model : ModelStatusInfo - offers : typing.Mapping[str, ~ApplicationOfferStatus] - relations : typing.Sequence[~RelationStatus] - remote_applications : typing.Mapping[str, ~RemoteApplicationStatus] - ''' - self.applications = applications - self.controller_timestamp = controller_timestamp - self.machines = machines - self.model = ModelStatusInfo.from_json(model) if model else None - self.offers = offers - self.relations = [RelationStatus.from_json(o) for o in relations or []] - self.remote_applications = remote_applications - - - -class GetApplicationConstraints(Type): - _toSchema = {'application': 'application'} - _toPy = {'application': 'application'} - def __init__(self, application=None, **unknown_fields): - ''' - application : str - ''' - self.application = application - - - -class GetConstraintsResults(Type): - _toSchema = {'constraints': 'constraints'} - _toPy = {'constraints': 'constraints'} - def __init__(self, constraints=None, **unknown_fields): - ''' - constraints : Value - ''' - self.constraints = Value.from_json(constraints) if constraints else None - - - -class GetLeadershipSettingsBulkResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~GetLeadershipSettingsResult] - ''' - self.results = [GetLeadershipSettingsResult.from_json(o) for o in results or []] - - - -class GetLeadershipSettingsResult(Type): - _toSchema = {'error': 'error', 'settings': 'settings'} - _toPy = {'error': 'error', 'settings': 'settings'} - def __init__(self, error=None, settings=None, **unknown_fields): - ''' - error : Error - settings : typing.Mapping[str, str] - ''' - self.error = Error.from_json(error) if error else None - self.settings = settings - - - -class GetTokenArg(Type): - _toSchema = {'tag': 'tag'} - _toPy = {'tag': 'tag'} - def __init__(self, tag=None, **unknown_fields): - ''' - tag : str - ''' - self.tag = tag - - - -class GetTokenArgs(Type): - _toSchema = {'args': 'Args'} - _toPy = {'Args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~GetTokenArg] - ''' - self.args = [GetTokenArg.from_json(o) for o in args or []] - - - -class GoalState(Type): - _toSchema = {'relations': 'relations', 'units': 'units'} - _toPy = {'relations': 'relations', 'units': 'units'} - def __init__(self, relations=None, units=None, **unknown_fields): - ''' - relations : typing.Mapping[str, typing.Any] - units : typing.Mapping[str, ~GoalStateStatus] - ''' - self.relations = relations - self.units = units - - - -class GoalStateResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : GoalState - ''' - self.error = Error.from_json(error) if error else None - self.result = GoalState.from_json(result) if result else None - - - -class GoalStateResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~GoalStateResult] - ''' - self.results = [GoalStateResult.from_json(o) for o in results or []] - - - -class GoalStateStatus(Type): - _toSchema = {'since': 'since', 'status': 'status'} - _toPy = {'since': 'since', 'status': 'status'} - def __init__(self, since=None, status=None, **unknown_fields): - ''' - since : str - status : str - ''' - self.since = since - self.status = status - - - -class HAMember(Type): - _toSchema = {'public_address': 'public-address', 'series': 'series', 'tag': 'tag'} - _toPy = {'public-address': 'public_address', 'series': 'series', 'tag': 'tag'} - def __init__(self, public_address=None, series=None, tag=None, **unknown_fields): - ''' - public_address : Address - series : str - tag : str - ''' - self.public_address = Address.from_json(public_address) if public_address else None - self.series = series - self.tag = tag - - - -class HardwareCharacteristics(Type): - _toSchema = {'arch': 'arch', 'availability_zone': 'availability-zone', 'cpu_cores': 'cpu-cores', 'cpu_power': 'cpu-power', 'mem': 'mem', 'root_disk': 'root-disk', 'tags': 'tags'} - _toPy = {'arch': 'arch', 'availability-zone': 'availability_zone', 'cpu-cores': 'cpu_cores', 'cpu-power': 'cpu_power', 'mem': 'mem', 'root-disk': 'root_disk', 'tags': 'tags'} - def __init__(self, arch=None, availability_zone=None, cpu_cores=None, cpu_power=None, mem=None, root_disk=None, tags=None, **unknown_fields): - ''' - arch : str - availability_zone : str - cpu_cores : int - cpu_power : int - mem : int - root_disk : int - tags : typing.Sequence[str] - ''' - self.arch = arch - self.availability_zone = availability_zone - self.cpu_cores = cpu_cores - self.cpu_power = cpu_power - self.mem = mem - self.root_disk = root_disk - self.tags = tags - - - -class History(Type): - _toSchema = {'error': 'error', 'statuses': 'statuses'} - _toPy = {'error': 'error', 'statuses': 'statuses'} - def __init__(self, error=None, statuses=None, **unknown_fields): - ''' - error : Error - statuses : typing.Sequence[~DetailedStatus] - ''' - self.error = Error.from_json(error) if error else None - self.statuses = [DetailedStatus.from_json(o) for o in statuses or []] - - - -class HostNetworkChange(Type): - _toSchema = {'error': 'error', 'new_bridges': 'new-bridges', 'reconfigure_delay': 'reconfigure-delay'} - _toPy = {'error': 'error', 'new-bridges': 'new_bridges', 'reconfigure-delay': 'reconfigure_delay'} - def __init__(self, error=None, new_bridges=None, reconfigure_delay=None, **unknown_fields): - ''' - error : Error - new_bridges : typing.Sequence[~DeviceBridgeInfo] - reconfigure_delay : int - ''' - self.error = Error.from_json(error) if error else None - self.new_bridges = [DeviceBridgeInfo.from_json(o) for o in new_bridges or []] - self.reconfigure_delay = reconfigure_delay - - - -class HostNetworkChangeResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~HostNetworkChange] - ''' - self.results = [HostNetworkChange.from_json(o) for o in results or []] - - - -class HostPort(Type): - _toSchema = {'address': 'Address', 'port': 'port'} - _toPy = {'Address': 'address', 'port': 'port'} - def __init__(self, address=None, port=None, **unknown_fields): - ''' - address : Address - port : int - ''' - self.address = Address.from_json(address) if address else None - self.port = port - - - -class HostedModelConfig(Type): - _toSchema = {'cloud_spec': 'cloud-spec', 'config': 'config', 'error': 'error', 'name': 'name', 'owner': 'owner'} - _toPy = {'cloud-spec': 'cloud_spec', 'config': 'config', 'error': 'error', 'name': 'name', 'owner': 'owner'} - def __init__(self, cloud_spec=None, config=None, error=None, name=None, owner=None, **unknown_fields): - ''' - cloud_spec : CloudSpec - config : typing.Mapping[str, typing.Any] - error : Error - name : str - owner : str - ''' - self.cloud_spec = CloudSpec.from_json(cloud_spec) if cloud_spec else None - self.config = config - self.error = Error.from_json(error) if error else None - self.name = name - self.owner = owner - - - -class HostedModelConfigsResults(Type): - _toSchema = {'models': 'models'} - _toPy = {'models': 'models'} - def __init__(self, models=None, **unknown_fields): - ''' - models : typing.Sequence[~HostedModelConfig] - ''' - self.models = [HostedModelConfig.from_json(o) for o in models or []] - - - -class ImageFilterParams(Type): - _toSchema = {'images': 'images'} - _toPy = {'images': 'images'} - def __init__(self, images=None, **unknown_fields): - ''' - images : typing.Sequence[~ImageSpec] - ''' - self.images = [ImageSpec.from_json(o) for o in images or []] - - - -class ImageMetadata(Type): - _toSchema = {'arch': 'arch', 'created': 'created', 'kind': 'kind', 'series': 'series', 'url': 'url'} - _toPy = {'arch': 'arch', 'created': 'created', 'kind': 'kind', 'series': 'series', 'url': 'url'} - def __init__(self, arch=None, created=None, kind=None, series=None, url=None, **unknown_fields): - ''' - arch : str - created : str - kind : str - series : str - url : str - ''' - self.arch = arch - self.created = created - self.kind = kind - self.series = series - self.url = url - - - -class ImageMetadataFilter(Type): - _toSchema = {'arches': 'arches', 'region': 'region', 'root_storage_type': 'root-storage-type', 'series': 'series', 'stream': 'stream', 'virt_type': 'virt-type'} - _toPy = {'arches': 'arches', 'region': 'region', 'root-storage-type': 'root_storage_type', 'series': 'series', 'stream': 'stream', 'virt-type': 'virt_type'} - def __init__(self, arches=None, region=None, root_storage_type=None, series=None, stream=None, virt_type=None, **unknown_fields): - ''' - arches : typing.Sequence[str] - region : str - root_storage_type : str - series : typing.Sequence[str] - stream : str - virt_type : str - ''' - self.arches = arches - self.region = region - self.root_storage_type = root_storage_type - self.series = series - self.stream = stream - self.virt_type = virt_type - - - -class ImageSpec(Type): - _toSchema = {'arch': 'arch', 'kind': 'kind', 'series': 'series'} - _toPy = {'arch': 'arch', 'kind': 'kind', 'series': 'series'} - def __init__(self, arch=None, kind=None, series=None, **unknown_fields): - ''' - arch : str - kind : str - series : str - ''' - self.arch = arch - self.kind = kind - self.series = series - - - -class ImportStorageDetails(Type): - _toSchema = {'storage_tag': 'storage-tag'} - _toPy = {'storage-tag': 'storage_tag'} - def __init__(self, storage_tag=None, **unknown_fields): - ''' - storage_tag : str - ''' - self.storage_tag = storage_tag - - - -class ImportStorageParams(Type): - _toSchema = {'kind': 'kind', 'pool': 'pool', 'provider_id': 'provider-id', 'storage_name': 'storage-name'} - _toPy = {'kind': 'kind', 'pool': 'pool', 'provider-id': 'provider_id', 'storage-name': 'storage_name'} - def __init__(self, kind=None, pool=None, provider_id=None, storage_name=None, **unknown_fields): - ''' - kind : int - pool : str - provider_id : str - storage_name : str - ''' - self.kind = kind - self.pool = pool - self.provider_id = provider_id - self.storage_name = storage_name - - - -class ImportStorageResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : ImportStorageDetails - ''' - self.error = Error.from_json(error) if error else None - self.result = ImportStorageDetails.from_json(result) if result else None - - - -class ImportStorageResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ImportStorageResult] - ''' - self.results = [ImportStorageResult.from_json(o) for o in results or []] - - - -class IngressNetworksChangeEvent(Type): - _toSchema = {'application_token': 'application-token', 'ingress_required': 'ingress-required', 'macaroons': 'macaroons', 'networks': 'networks', 'relation_token': 'relation-token'} - _toPy = {'application-token': 'application_token', 'ingress-required': 'ingress_required', 'macaroons': 'macaroons', 'networks': 'networks', 'relation-token': 'relation_token'} - def __init__(self, application_token=None, ingress_required=None, macaroons=None, networks=None, relation_token=None, **unknown_fields): - ''' - application_token : str - ingress_required : bool - macaroons : typing.Sequence[~Macaroon] - networks : typing.Sequence[str] - relation_token : str - ''' - self.application_token = application_token - self.ingress_required = ingress_required - self.macaroons = [Macaroon.from_json(o) for o in macaroons or []] - self.networks = networks - self.relation_token = relation_token - - - -class IngressNetworksChanges(Type): - _toSchema = {'changes': 'changes'} - _toPy = {'changes': 'changes'} - def __init__(self, changes=None, **unknown_fields): - ''' - changes : typing.Sequence[~IngressNetworksChangeEvent] - ''' - self.changes = [IngressNetworksChangeEvent.from_json(o) for o in changes or []] - - - -class InitiateMigrationArgs(Type): - _toSchema = {'specs': 'specs'} - _toPy = {'specs': 'specs'} - def __init__(self, specs=None, **unknown_fields): - ''' - specs : typing.Sequence[~MigrationSpec] - ''' - self.specs = [MigrationSpec.from_json(o) for o in specs or []] - - - -class InitiateMigrationResult(Type): - _toSchema = {'error': 'error', 'migration_id': 'migration-id', 'model_tag': 'model-tag'} - _toPy = {'error': 'error', 'migration-id': 'migration_id', 'model-tag': 'model_tag'} - def __init__(self, error=None, migration_id=None, model_tag=None, **unknown_fields): - ''' - error : Error - migration_id : str - model_tag : str - ''' - self.error = Error.from_json(error) if error else None - self.migration_id = migration_id - self.model_tag = model_tag - - - -class InitiateMigrationResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~InitiateMigrationResult] - ''' - self.results = [InitiateMigrationResult.from_json(o) for o in results or []] - - - -class InstanceInfo(Type): - _toSchema = {'characteristics': 'characteristics', 'instance_id': 'instance-id', 'network_config': 'network-config', 'nonce': 'nonce', 'tag': 'tag', 'volume_attachments': 'volume-attachments', 'volumes': 'volumes'} - _toPy = {'characteristics': 'characteristics', 'instance-id': 'instance_id', 'network-config': 'network_config', 'nonce': 'nonce', 'tag': 'tag', 'volume-attachments': 'volume_attachments', 'volumes': 'volumes'} - def __init__(self, characteristics=None, instance_id=None, network_config=None, nonce=None, tag=None, volume_attachments=None, volumes=None, **unknown_fields): - ''' - characteristics : HardwareCharacteristics - instance_id : str - network_config : typing.Sequence[~NetworkConfig] - nonce : str - tag : str - volume_attachments : typing.Mapping[str, ~VolumeAttachmentInfo] - volumes : typing.Sequence[~Volume] - ''' - self.characteristics = HardwareCharacteristics.from_json(characteristics) if characteristics else None - self.instance_id = instance_id - self.network_config = [NetworkConfig.from_json(o) for o in network_config or []] - self.nonce = nonce - self.tag = tag - self.volume_attachments = volume_attachments - self.volumes = [Volume.from_json(o) for o in volumes or []] - - - -class InstanceType(Type): - _toSchema = {'arches': 'arches', 'cost': 'cost', 'cpu_cores': 'cpu-cores', 'deprecated': 'deprecated', 'memory': 'memory', 'name': 'name', 'root_disk': 'root-disk', 'virt_type': 'virt-type'} - _toPy = {'arches': 'arches', 'cost': 'cost', 'cpu-cores': 'cpu_cores', 'deprecated': 'deprecated', 'memory': 'memory', 'name': 'name', 'root-disk': 'root_disk', 'virt-type': 'virt_type'} - def __init__(self, arches=None, cost=None, cpu_cores=None, deprecated=None, memory=None, name=None, root_disk=None, virt_type=None, **unknown_fields): - ''' - arches : typing.Sequence[str] - cost : int - cpu_cores : int - deprecated : bool - memory : int - name : str - root_disk : int - virt_type : str - ''' - self.arches = arches - self.cost = cost - self.cpu_cores = cpu_cores - self.deprecated = deprecated - self.memory = memory - self.name = name - self.root_disk = root_disk - self.virt_type = virt_type - - - -class InstanceTypesResult(Type): - _toSchema = {'cost_currency': 'cost-currency', 'cost_divisor': 'cost-divisor', 'cost_unit': 'cost-unit', 'error': 'error', 'instance_types': 'instance-types'} - _toPy = {'cost-currency': 'cost_currency', 'cost-divisor': 'cost_divisor', 'cost-unit': 'cost_unit', 'error': 'error', 'instance-types': 'instance_types'} - def __init__(self, cost_currency=None, cost_divisor=None, cost_unit=None, error=None, instance_types=None, **unknown_fields): - ''' - cost_currency : str - cost_divisor : int - cost_unit : str - error : Error - instance_types : typing.Sequence[~InstanceType] - ''' - self.cost_currency = cost_currency - self.cost_divisor = cost_divisor - self.cost_unit = cost_unit - self.error = Error.from_json(error) if error else None - self.instance_types = [InstanceType.from_json(o) for o in instance_types or []] - - - -class InstanceTypesResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~InstanceTypesResult] - ''' - self.results = [InstanceTypesResult.from_json(o) for o in results or []] - - - -class InstancesInfo(Type): - _toSchema = {'machines': 'machines'} - _toPy = {'machines': 'machines'} - def __init__(self, machines=None, **unknown_fields): - ''' - machines : typing.Sequence[~InstanceInfo] - ''' - self.machines = [InstanceInfo.from_json(o) for o in machines or []] - - - -class IntResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : int - ''' - self.error = Error.from_json(error) if error else None - self.result = result - - - -class IntResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~IntResult] - ''' - self.results = [IntResult.from_json(o) for o in results or []] - - - -class InterfaceAddress(Type): - _toSchema = {'cidr': 'cidr', 'value': 'value'} - _toPy = {'cidr': 'cidr', 'value': 'value'} - def __init__(self, cidr=None, value=None, **unknown_fields): - ''' - cidr : str - value : str - ''' - self.cidr = cidr - self.value = value - - - -class InvalidateCredentialArg(Type): - _toSchema = {'reason': 'reason'} - _toPy = {'reason': 'reason'} - def __init__(self, reason=None, **unknown_fields): - ''' - reason : str - ''' - self.reason = reason - - - -class IsMasterResult(Type): - _toSchema = {'master': 'master'} - _toPy = {'master': 'master'} - def __init__(self, master=None, **unknown_fields): - ''' - master : bool - ''' - self.master = master - - - -class IsMeteredResult(Type): - _toSchema = {'metered': 'metered'} - _toPy = {'metered': 'metered'} - def __init__(self, metered=None, **unknown_fields): - ''' - metered : bool - ''' - self.metered = metered - - - -class JobsResult(Type): - _toSchema = {'error': 'error', 'jobs': 'jobs'} - _toPy = {'error': 'error', 'jobs': 'jobs'} - def __init__(self, error=None, jobs=None, **unknown_fields): - ''' - error : Error - jobs : typing.Sequence[str] - ''' - self.error = Error.from_json(error) if error else None - self.jobs = jobs - - - -class JobsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~JobsResult] - ''' - self.results = [JobsResult.from_json(o) for o in results or []] - - - -class KnownServiceArgs(Type): - _toSchema = {'known_services': 'known-services'} - _toPy = {'known-services': 'known_services'} - def __init__(self, known_services=None, **unknown_fields): - ''' - known_services : typing.Sequence[str] - ''' - self.known_services = known_services - - - -class KubernetesDeviceParams(Type): - _toSchema = {'attributes': 'Attributes', 'count': 'Count', 'type_': 'Type'} - _toPy = {'Attributes': 'attributes', 'Count': 'count', 'Type': 'type_'} - def __init__(self, attributes=None, count=None, type_=None, **unknown_fields): - ''' - attributes : typing.Mapping[str, str] - count : int - type_ : str - ''' - self.attributes = attributes - self.count = count - self.type_ = type_ - - - -class KubernetesFilesystemAttachmentParams(Type): - _toSchema = {'mount_point': 'mount-point', 'provider': 'provider', 'read_only': 'read-only'} - _toPy = {'mount-point': 'mount_point', 'provider': 'provider', 'read-only': 'read_only'} - def __init__(self, mount_point=None, provider=None, read_only=None, **unknown_fields): - ''' - mount_point : str - provider : str - read_only : bool - ''' - self.mount_point = mount_point - self.provider = provider - self.read_only = read_only - - - -class KubernetesFilesystemInfo(Type): - _toSchema = {'data': 'data', 'filesystem_id': 'filesystem-id', 'info': 'info', 'mount_point': 'mount-point', 'pool': 'pool', 'read_only': 'read-only', 'size': 'size', 'status': 'status', 'storagename': 'storagename', 'volume': 'volume'} - _toPy = {'data': 'data', 'filesystem-id': 'filesystem_id', 'info': 'info', 'mount-point': 'mount_point', 'pool': 'pool', 'read-only': 'read_only', 'size': 'size', 'status': 'status', 'storagename': 'storagename', 'volume': 'volume'} - def __init__(self, data=None, filesystem_id=None, info=None, mount_point=None, pool=None, read_only=None, size=None, status=None, storagename=None, volume=None, **unknown_fields): - ''' - data : typing.Mapping[str, typing.Any] - filesystem_id : str - info : str - mount_point : str - pool : str - read_only : bool - size : int - status : str - storagename : str - volume : KubernetesVolumeInfo - ''' - self.data = data - self.filesystem_id = filesystem_id - self.info = info - self.mount_point = mount_point - self.pool = pool - self.read_only = read_only - self.size = size - self.status = status - self.storagename = storagename - self.volume = KubernetesVolumeInfo.from_json(volume) if volume else None - - - -class KubernetesFilesystemParams(Type): - _toSchema = {'attachment': 'attachment', 'attributes': 'attributes', 'provider': 'provider', 'size': 'size', 'storagename': 'storagename', 'tags': 'tags'} - _toPy = {'attachment': 'attachment', 'attributes': 'attributes', 'provider': 'provider', 'size': 'size', 'storagename': 'storagename', 'tags': 'tags'} - def __init__(self, attachment=None, attributes=None, provider=None, size=None, storagename=None, tags=None, **unknown_fields): - ''' - attachment : KubernetesFilesystemAttachmentParams - attributes : typing.Mapping[str, typing.Any] - provider : str - size : int - storagename : str - tags : typing.Mapping[str, str] - ''' - self.attachment = KubernetesFilesystemAttachmentParams.from_json(attachment) if attachment else None - self.attributes = attributes - self.provider = provider - self.size = size - self.storagename = storagename - self.tags = tags - - - -class KubernetesProvisioningInfo(Type): - _toSchema = {'constraints': 'constraints', 'devices': 'devices', 'filesystems': 'filesystems', 'placement': 'placement', 'pod_spec': 'pod-spec', 'tags': 'tags', 'volumes': 'volumes'} - _toPy = {'constraints': 'constraints', 'devices': 'devices', 'filesystems': 'filesystems', 'placement': 'placement', 'pod-spec': 'pod_spec', 'tags': 'tags', 'volumes': 'volumes'} - def __init__(self, constraints=None, devices=None, filesystems=None, placement=None, pod_spec=None, tags=None, volumes=None, **unknown_fields): - ''' - constraints : Value - devices : typing.Sequence[~KubernetesDeviceParams] - filesystems : typing.Sequence[~KubernetesFilesystemParams] - placement : str - pod_spec : str - tags : typing.Mapping[str, str] - volumes : typing.Sequence[~KubernetesVolumeParams] - ''' - self.constraints = Value.from_json(constraints) if constraints else None - self.devices = [KubernetesDeviceParams.from_json(o) for o in devices or []] - self.filesystems = [KubernetesFilesystemParams.from_json(o) for o in filesystems or []] - self.placement = placement - self.pod_spec = pod_spec - self.tags = tags - self.volumes = [KubernetesVolumeParams.from_json(o) for o in volumes or []] - - - -class KubernetesProvisioningInfoResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : KubernetesProvisioningInfo - ''' - self.error = Error.from_json(error) if error else None - self.result = KubernetesProvisioningInfo.from_json(result) if result else None - - - -class KubernetesProvisioningInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~KubernetesProvisioningInfoResult] - ''' - self.results = [KubernetesProvisioningInfoResult.from_json(o) for o in results or []] - - - -class KubernetesVolumeAttachmentParams(Type): - _toSchema = {'provider': 'provider', 'read_only': 'read-only'} - _toPy = {'provider': 'provider', 'read-only': 'read_only'} - def __init__(self, provider=None, read_only=None, **unknown_fields): - ''' - provider : str - read_only : bool - ''' - self.provider = provider - self.read_only = read_only - - - -class KubernetesVolumeInfo(Type): - _toSchema = {'data': 'data', 'info': 'info', 'persistent': 'persistent', 'pool': 'pool', 'size': 'size', 'status': 'status', 'volume_id': 'volume-id'} - _toPy = {'data': 'data', 'info': 'info', 'persistent': 'persistent', 'pool': 'pool', 'size': 'size', 'status': 'status', 'volume-id': 'volume_id'} - def __init__(self, data=None, info=None, persistent=None, pool=None, size=None, status=None, volume_id=None, **unknown_fields): - ''' - data : typing.Mapping[str, typing.Any] - info : str - persistent : bool - pool : str - size : int - status : str - volume_id : str - ''' - self.data = data - self.info = info - self.persistent = persistent - self.pool = pool - self.size = size - self.status = status - self.volume_id = volume_id - - - -class KubernetesVolumeParams(Type): - _toSchema = {'attachment': 'attachment', 'attributes': 'attributes', 'provider': 'provider', 'size': 'size', 'storagename': 'storagename', 'tags': 'tags'} - _toPy = {'attachment': 'attachment', 'attributes': 'attributes', 'provider': 'provider', 'size': 'size', 'storagename': 'storagename', 'tags': 'tags'} - def __init__(self, attachment=None, attributes=None, provider=None, size=None, storagename=None, tags=None, **unknown_fields): - ''' - attachment : KubernetesVolumeAttachmentParams - attributes : typing.Mapping[str, typing.Any] - provider : str - size : int - storagename : str - tags : typing.Mapping[str, str] - ''' - self.attachment = KubernetesVolumeAttachmentParams.from_json(attachment) if attachment else None - self.attributes = attributes - self.provider = provider - self.size = size - self.storagename = storagename - self.tags = tags - - - -class LXDProfile(Type): - _toSchema = {'config': 'config', 'description': 'description', 'devices': 'devices'} - _toPy = {'config': 'config', 'description': 'description', 'devices': 'devices'} - def __init__(self, config=None, description=None, devices=None, **unknown_fields): - ''' - config : typing.Mapping[str, str] - description : str - devices : typing.Mapping[str, typing.Any] - ''' - self.config = config - self.description = description - self.devices = devices - - - -class LXDProfileUpgradeMessages(Type): - _toSchema = {'application': 'application', 'watcher_id': 'watcher-id'} - _toPy = {'application': 'application', 'watcher-id': 'watcher_id'} - def __init__(self, application=None, watcher_id=None, **unknown_fields): - ''' - application : Entity - watcher_id : str - ''' - self.application = Entity.from_json(application) if application else None - self.watcher_id = watcher_id - - - -class LXDProfileUpgradeMessagesResult(Type): - _toSchema = {'error': 'error', 'message': 'message', 'unit_name': 'unit-name'} - _toPy = {'error': 'error', 'message': 'message', 'unit-name': 'unit_name'} - def __init__(self, error=None, message=None, unit_name=None, **unknown_fields): - ''' - error : Error - message : str - unit_name : str - ''' - self.error = Error.from_json(error) if error else None - self.message = message - self.unit_name = unit_name - - - -class LXDProfileUpgradeMessagesResults(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~LXDProfileUpgradeMessagesResult] - ''' - self.args = [LXDProfileUpgradeMessagesResult.from_json(o) for o in args or []] - - - -class LifeResult(Type): - _toSchema = {'error': 'error', 'life': 'life'} - _toPy = {'error': 'error', 'life': 'life'} - def __init__(self, error=None, life=None, **unknown_fields): - ''' - error : Error - life : str - ''' - self.error = Error.from_json(error) if error else None - self.life = life - - - -class LifeResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~LifeResult] - ''' - self.results = [LifeResult.from_json(o) for o in results or []] - - - -class ListCloudImageMetadataResult(Type): - _toSchema = {'result': 'result'} - _toPy = {'result': 'result'} - def __init__(self, result=None, **unknown_fields): - ''' - result : typing.Sequence[~CloudImageMetadata] - ''' - self.result = [CloudImageMetadata.from_json(o) for o in result or []] - - - -class ListCloudInfo(Type): - _toSchema = {'clouddetails': 'CloudDetails', 'user_access': 'user-access'} - _toPy = {'CloudDetails': 'clouddetails', 'user-access': 'user_access'} - def __init__(self, clouddetails=None, user_access=None, **unknown_fields): - ''' - clouddetails : CloudDetails - user_access : str - ''' - self.clouddetails = CloudDetails.from_json(clouddetails) if clouddetails else None - self.user_access = user_access - - - -class ListCloudInfoResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : ListCloudInfo - ''' - self.error = Error.from_json(error) if error else None - self.result = ListCloudInfo.from_json(result) if result else None - - - -class ListCloudInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ListCloudInfoResult] - ''' - self.results = [ListCloudInfoResult.from_json(o) for o in results or []] - - - -class ListCloudsRequest(Type): - _toSchema = {'all_': 'all', 'user_tag': 'user-tag'} - _toPy = {'all': 'all_', 'user-tag': 'user_tag'} - def __init__(self, all_=None, user_tag=None, **unknown_fields): - ''' - all_ : bool - user_tag : str - ''' - self.all_ = all_ - self.user_tag = user_tag - - - -class ListFirewallRulesResults(Type): - _toSchema = {'rules': 'Rules'} - _toPy = {'Rules': 'rules'} - def __init__(self, rules=None, **unknown_fields): - ''' - rules : typing.Sequence[~FirewallRule] - ''' - self.rules = [FirewallRule.from_json(o) for o in rules or []] - - - -class ListImageResult(Type): - _toSchema = {'result': 'result'} - _toPy = {'result': 'result'} - def __init__(self, result=None, **unknown_fields): - ''' - result : typing.Sequence[~ImageMetadata] - ''' - self.result = [ImageMetadata.from_json(o) for o in result or []] - - - -class ListResourcesArgs(Type): - _toSchema = {'entities': 'entities'} - _toPy = {'entities': 'entities'} - def __init__(self, entities=None, **unknown_fields): - ''' - entities : typing.Sequence[~Entity] - ''' - self.entities = [Entity.from_json(o) for o in entities or []] - - - -class ListSSHKeys(Type): - _toSchema = {'entities': 'entities', 'mode': 'mode'} - _toPy = {'entities': 'entities', 'mode': 'mode'} - def __init__(self, entities=None, mode=None, **unknown_fields): - ''' - entities : Entities - mode : bool - ''' - self.entities = Entities.from_json(entities) if entities else None - self.mode = mode - - - -class ListSpacesResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~Space] - ''' - self.results = [Space.from_json(o) for o in results or []] - - - -class ListSubnetsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~Subnet] - ''' - self.results = [Subnet.from_json(o) for o in results or []] - - - -class ListUnitResourcesArgs(Type): - _toSchema = {'resource_names': 'resource-names'} - _toPy = {'resource-names': 'resource_names'} - def __init__(self, resource_names=None, **unknown_fields): - ''' - resource_names : typing.Sequence[str] - ''' - self.resource_names = resource_names - - - -class LogForwardingGetLastSentParams(Type): - _toSchema = {'ids': 'ids'} - _toPy = {'ids': 'ids'} - def __init__(self, ids=None, **unknown_fields): - ''' - ids : typing.Sequence[~LogForwardingID] - ''' - self.ids = [LogForwardingID.from_json(o) for o in ids or []] - - - -class LogForwardingGetLastSentResult(Type): - _toSchema = {'err': 'err', 'record_id': 'record-id', 'record_timestamp': 'record-timestamp'} - _toPy = {'err': 'err', 'record-id': 'record_id', 'record-timestamp': 'record_timestamp'} - def __init__(self, err=None, record_id=None, record_timestamp=None, **unknown_fields): - ''' - err : Error - record_id : int - record_timestamp : int - ''' - self.err = Error.from_json(err) if err else None - self.record_id = record_id - self.record_timestamp = record_timestamp - - - -class LogForwardingGetLastSentResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~LogForwardingGetLastSentResult] - ''' - self.results = [LogForwardingGetLastSentResult.from_json(o) for o in results or []] - - - -class LogForwardingID(Type): - _toSchema = {'model': 'model', 'sink': 'sink'} - _toPy = {'model': 'model', 'sink': 'sink'} - def __init__(self, model=None, sink=None, **unknown_fields): - ''' - model : str - sink : str - ''' - self.model = model - self.sink = sink - - - -class LogForwardingSetLastSentParam(Type): - _toSchema = {'logforwardingid': 'LogForwardingID', 'record_id': 'record-id', 'record_timestamp': 'record-timestamp'} - _toPy = {'LogForwardingID': 'logforwardingid', 'record-id': 'record_id', 'record-timestamp': 'record_timestamp'} - def __init__(self, logforwardingid=None, record_id=None, record_timestamp=None, **unknown_fields): - ''' - logforwardingid : LogForwardingID - record_id : int - record_timestamp : int - ''' - self.logforwardingid = LogForwardingID.from_json(logforwardingid) if logforwardingid else None - self.record_id = record_id - self.record_timestamp = record_timestamp - - - -class LogForwardingSetLastSentParams(Type): - _toSchema = {'params': 'params'} - _toPy = {'params': 'params'} - def __init__(self, params=None, **unknown_fields): - ''' - params : typing.Sequence[~LogForwardingSetLastSentParam] - ''' - self.params = [LogForwardingSetLastSentParam.from_json(o) for o in params or []] - - - -class LookUpArg(Type): - _toSchema = {'id_': 'id', 'name': 'name'} - _toPy = {'id': 'id_', 'name': 'name'} - def __init__(self, id_=None, name=None, **unknown_fields): - ''' - id_ : str - name : str - ''' - self.id_ = id_ - self.name = name - - - -class LookUpArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~LookUpArg] - ''' - self.args = [LookUpArg.from_json(o) for o in args or []] - - - -class LookUpPayloadArg(Type): - _toSchema = {'id_': 'id', 'name': 'name'} - _toPy = {'id': 'id_', 'name': 'name'} - def __init__(self, id_=None, name=None, **unknown_fields): - ''' - id_ : str - name : str - ''' - self.id_ = id_ - self.name = name - - - -class LookUpPayloadArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~LookUpPayloadArg] - ''' - self.args = [LookUpPayloadArg.from_json(o) for o in args or []] - - - -class Macaroon(Type): - _toSchema = {} - _toPy = {} - def __init__(self, **unknown_fields): - ''' - - ''' - pass - - - -class MacaroonResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : Macaroon - ''' - self.error = Error.from_json(error) if error else None - self.result = Macaroon.from_json(result) if result else None - - - -class MacaroonResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~MacaroonResult] - ''' - self.results = [MacaroonResult.from_json(o) for o in results or []] - - - -class MachineAddresses(Type): - _toSchema = {'addresses': 'addresses', 'tag': 'tag'} - _toPy = {'addresses': 'addresses', 'tag': 'tag'} - def __init__(self, addresses=None, tag=None, **unknown_fields): - ''' - addresses : typing.Sequence[~Address] - tag : str - ''' - self.addresses = [Address.from_json(o) for o in addresses or []] - self.tag = tag - - - -class MachineAddressesResult(Type): - _toSchema = {'addresses': 'addresses', 'error': 'error'} - _toPy = {'addresses': 'addresses', 'error': 'error'} - def __init__(self, addresses=None, error=None, **unknown_fields): - ''' - addresses : typing.Sequence[~Address] - error : Error - ''' - self.addresses = [Address.from_json(o) for o in addresses or []] - self.error = Error.from_json(error) if error else None - - - -class MachineAddressesResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~MachineAddressesResult] - ''' - self.results = [MachineAddressesResult.from_json(o) for o in results or []] - - - -class MachineBlockDevices(Type): - _toSchema = {'block_devices': 'block-devices', 'machine': 'machine'} - _toPy = {'block-devices': 'block_devices', 'machine': 'machine'} - def __init__(self, block_devices=None, machine=None, **unknown_fields): - ''' - block_devices : typing.Sequence[~BlockDevice] - machine : str - ''' - self.block_devices = [BlockDevice.from_json(o) for o in block_devices or []] - self.machine = machine - - - -class MachineContainers(Type): - _toSchema = {'container_types': 'container-types', 'machine_tag': 'machine-tag'} - _toPy = {'container-types': 'container_types', 'machine-tag': 'machine_tag'} - def __init__(self, container_types=None, machine_tag=None, **unknown_fields): - ''' - container_types : typing.Sequence[str] - machine_tag : str - ''' - self.container_types = container_types - self.machine_tag = machine_tag - - - -class MachineContainersParams(Type): - _toSchema = {'params': 'params'} - _toPy = {'params': 'params'} - def __init__(self, params=None, **unknown_fields): - ''' - params : typing.Sequence[~MachineContainers] - ''' - self.params = [MachineContainers.from_json(o) for o in params or []] - - - -class MachineHardware(Type): - _toSchema = {'arch': 'arch', 'availability_zone': 'availability-zone', 'cores': 'cores', 'cpu_power': 'cpu-power', 'mem': 'mem', 'root_disk': 'root-disk', 'tags': 'tags'} - _toPy = {'arch': 'arch', 'availability-zone': 'availability_zone', 'cores': 'cores', 'cpu-power': 'cpu_power', 'mem': 'mem', 'root-disk': 'root_disk', 'tags': 'tags'} - def __init__(self, arch=None, availability_zone=None, cores=None, cpu_power=None, mem=None, root_disk=None, tags=None, **unknown_fields): - ''' - arch : str - availability_zone : str - cores : int - cpu_power : int - mem : int - root_disk : int - tags : typing.Sequence[str] - ''' - self.arch = arch - self.availability_zone = availability_zone - self.cores = cores - self.cpu_power = cpu_power - self.mem = mem - self.root_disk = root_disk - self.tags = tags - - - -class MachineNetworkConfigResult(Type): - _toSchema = {'error': 'error', 'info': 'info'} - _toPy = {'error': 'error', 'info': 'info'} - def __init__(self, error=None, info=None, **unknown_fields): - ''' - error : Error - info : typing.Sequence[~NetworkConfig] - ''' - self.error = Error.from_json(error) if error else None - self.info = [NetworkConfig.from_json(o) for o in info or []] - - - -class MachineNetworkConfigResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~MachineNetworkConfigResult] - ''' - self.results = [MachineNetworkConfigResult.from_json(o) for o in results or []] - - - -class MachinePortRange(Type): - _toSchema = {'port_range': 'port-range', 'relation_tag': 'relation-tag', 'unit_tag': 'unit-tag'} - _toPy = {'port-range': 'port_range', 'relation-tag': 'relation_tag', 'unit-tag': 'unit_tag'} - def __init__(self, port_range=None, relation_tag=None, unit_tag=None, **unknown_fields): - ''' - port_range : PortRange - relation_tag : str - unit_tag : str - ''' - self.port_range = PortRange.from_json(port_range) if port_range else None - self.relation_tag = relation_tag - self.unit_tag = unit_tag - - - -class MachinePorts(Type): - _toSchema = {'machine_tag': 'machine-tag', 'subnet_tag': 'subnet-tag'} - _toPy = {'machine-tag': 'machine_tag', 'subnet-tag': 'subnet_tag'} - def __init__(self, machine_tag=None, subnet_tag=None, **unknown_fields): - ''' - machine_tag : str - subnet_tag : str - ''' - self.machine_tag = machine_tag - self.subnet_tag = subnet_tag - - - -class MachinePortsParams(Type): - _toSchema = {'params': 'params'} - _toPy = {'params': 'params'} - def __init__(self, params=None, **unknown_fields): - ''' - params : typing.Sequence[~MachinePorts] - ''' - self.params = [MachinePorts.from_json(o) for o in params or []] - - - -class MachinePortsResult(Type): - _toSchema = {'error': 'error', 'ports': 'ports'} - _toPy = {'error': 'error', 'ports': 'ports'} - def __init__(self, error=None, ports=None, **unknown_fields): - ''' - error : Error - ports : typing.Sequence[~MachinePortRange] - ''' - self.error = Error.from_json(error) if error else None - self.ports = [MachinePortRange.from_json(o) for o in ports or []] - - - -class MachinePortsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~MachinePortsResult] - ''' - self.results = [MachinePortsResult.from_json(o) for o in results or []] - - - -class MachineStatus(Type): - _toSchema = {'agent_status': 'agent-status', 'containers': 'containers', 'dns_name': 'dns-name', 'hardware': 'hardware', 'has_vote': 'has-vote', 'id_': 'id', 'instance_id': 'instance-id', 'instance_status': 'instance-status', 'ip_addresses': 'ip-addresses', 'jobs': 'jobs', 'series': 'series', 'wants_vote': 'wants-vote'} - _toPy = {'agent-status': 'agent_status', 'containers': 'containers', 'dns-name': 'dns_name', 'hardware': 'hardware', 'has-vote': 'has_vote', 'id': 'id_', 'instance-id': 'instance_id', 'instance-status': 'instance_status', 'ip-addresses': 'ip_addresses', 'jobs': 'jobs', 'series': 'series', 'wants-vote': 'wants_vote'} - def __init__(self, agent_status=None, containers=None, dns_name=None, hardware=None, has_vote=None, id_=None, instance_id=None, instance_status=None, ip_addresses=None, jobs=None, series=None, wants_vote=None, **unknown_fields): - ''' - agent_status : DetailedStatus - containers : typing.Mapping[str, ~MachineStatus] - dns_name : str - hardware : str - has_vote : bool - id_ : str - instance_id : str - instance_status : DetailedStatus - ip_addresses : typing.Sequence[str] - jobs : typing.Sequence[str] - series : str - wants_vote : bool - ''' - self.agent_status = DetailedStatus.from_json(agent_status) if agent_status else None - self.containers = containers - self.dns_name = dns_name - self.hardware = hardware - self.has_vote = has_vote - self.id_ = id_ - self.instance_id = instance_id - self.instance_status = DetailedStatus.from_json(instance_status) if instance_status else None - self.ip_addresses = ip_addresses - self.jobs = jobs - self.series = series - self.wants_vote = wants_vote - - - -class MachineStorageId(Type): - _toSchema = {'attachment_tag': 'attachment-tag', 'machine_tag': 'machine-tag'} - _toPy = {'attachment-tag': 'attachment_tag', 'machine-tag': 'machine_tag'} - def __init__(self, attachment_tag=None, machine_tag=None, **unknown_fields): - ''' - attachment_tag : str - machine_tag : str - ''' - self.attachment_tag = attachment_tag - self.machine_tag = machine_tag - - - -class MachineStorageIds(Type): - _toSchema = {'ids': 'ids'} - _toPy = {'ids': 'ids'} - def __init__(self, ids=None, **unknown_fields): - ''' - ids : typing.Sequence[~MachineStorageId] - ''' - self.ids = [MachineStorageId.from_json(o) for o in ids or []] - - - -class MachineStorageIdsWatchResult(Type): - _toSchema = {'changes': 'changes', 'error': 'error', 'watcher_id': 'watcher-id'} - _toPy = {'changes': 'changes', 'error': 'error', 'watcher-id': 'watcher_id'} - def __init__(self, changes=None, error=None, watcher_id=None, **unknown_fields): - ''' - changes : typing.Sequence[~MachineStorageId] - error : Error - watcher_id : str - ''' - self.changes = [MachineStorageId.from_json(o) for o in changes or []] - self.error = Error.from_json(error) if error else None - self.watcher_id = watcher_id - - - -class MachineStorageIdsWatchResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~MachineStorageIdsWatchResult] - ''' - self.results = [MachineStorageIdsWatchResult.from_json(o) for o in results or []] - - - -class MapResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : typing.Mapping[str, typing.Any] - ''' - self.error = Error.from_json(error) if error else None - self.result = result - - - -class MapResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~MapResult] - ''' - self.results = [MapResult.from_json(o) for o in results or []] - - - -class MasterMigrationStatus(Type): - _toSchema = {'migration_id': 'migration-id', 'phase': 'phase', 'phase_changed_time': 'phase-changed-time', 'spec': 'spec'} - _toPy = {'migration-id': 'migration_id', 'phase': 'phase', 'phase-changed-time': 'phase_changed_time', 'spec': 'spec'} - def __init__(self, migration_id=None, phase=None, phase_changed_time=None, spec=None, **unknown_fields): - ''' - migration_id : str - phase : str - phase_changed_time : str - spec : MigrationSpec - ''' - self.migration_id = migration_id - self.phase = phase - self.phase_changed_time = phase_changed_time - self.spec = MigrationSpec.from_json(spec) if spec else None - - - -class Member(Type): - _toSchema = {'address': 'Address', 'arbiter': 'Arbiter', 'buildindexes': 'BuildIndexes', 'hidden': 'Hidden', 'id_': 'Id', 'priority': 'Priority', 'slavedelay': 'SlaveDelay', 'tags': 'Tags', 'votes': 'Votes'} - _toPy = {'Address': 'address', 'Arbiter': 'arbiter', 'BuildIndexes': 'buildindexes', 'Hidden': 'hidden', 'Id': 'id_', 'Priority': 'priority', 'SlaveDelay': 'slavedelay', 'Tags': 'tags', 'Votes': 'votes'} - def __init__(self, address=None, arbiter=None, buildindexes=None, hidden=None, id_=None, priority=None, slavedelay=None, tags=None, votes=None, **unknown_fields): - ''' - address : str - arbiter : bool - buildindexes : bool - hidden : bool - id_ : int - priority : float - slavedelay : int - tags : typing.Mapping[str, str] - votes : int - ''' - self.address = address - self.arbiter = arbiter - self.buildindexes = buildindexes - self.hidden = hidden - self.id_ = id_ - self.priority = priority - self.slavedelay = slavedelay - self.tags = tags - self.votes = votes - - - -class MergeLeadershipSettingsBulkParams(Type): - _toSchema = {'params': 'params'} - _toPy = {'params': 'params'} - def __init__(self, params=None, **unknown_fields): - ''' - params : typing.Sequence[~MergeLeadershipSettingsParam] - ''' - self.params = [MergeLeadershipSettingsParam.from_json(o) for o in params or []] - - - -class MergeLeadershipSettingsParam(Type): - _toSchema = {'application_tag': 'application-tag', 'settings': 'settings'} - _toPy = {'application-tag': 'application_tag', 'settings': 'settings'} - def __init__(self, application_tag=None, settings=None, **unknown_fields): - ''' - application_tag : str - settings : typing.Mapping[str, str] - ''' - self.application_tag = application_tag - self.settings = settings - - - -class MetadataImageIds(Type): - _toSchema = {'image_ids': 'image-ids'} - _toPy = {'image-ids': 'image_ids'} - def __init__(self, image_ids=None, **unknown_fields): - ''' - image_ids : typing.Sequence[str] - ''' - self.image_ids = image_ids - - - -class MetadataSaveParams(Type): - _toSchema = {'metadata': 'metadata'} - _toPy = {'metadata': 'metadata'} - def __init__(self, metadata=None, **unknown_fields): - ''' - metadata : typing.Sequence[~CloudImageMetadataList] - ''' - self.metadata = [CloudImageMetadataList.from_json(o) for o in metadata or []] - - - -class MeterStatus(Type): - _toSchema = {'color': 'color', 'message': 'message'} - _toPy = {'color': 'color', 'message': 'message'} - def __init__(self, color=None, message=None, **unknown_fields): - ''' - color : str - message : str - ''' - self.color = color - self.message = message - - - -class MeterStatusParam(Type): - _toSchema = {'code': 'code', 'info': 'info', 'tag': 'tag'} - _toPy = {'code': 'code', 'info': 'info', 'tag': 'tag'} - def __init__(self, code=None, info=None, tag=None, **unknown_fields): - ''' - code : str - info : str - tag : str - ''' - self.code = code - self.info = info - self.tag = tag - - - -class MeterStatusParams(Type): - _toSchema = {'statues': 'statues'} - _toPy = {'statues': 'statues'} - def __init__(self, statues=None, **unknown_fields): - ''' - statues : typing.Sequence[~MeterStatusParam] - ''' - self.statues = [MeterStatusParam.from_json(o) for o in statues or []] - - - -class MeterStatusResult(Type): - _toSchema = {'code': 'code', 'error': 'error', 'info': 'info'} - _toPy = {'code': 'code', 'error': 'error', 'info': 'info'} - def __init__(self, code=None, error=None, info=None, **unknown_fields): - ''' - code : str - error : Error - info : str - ''' - self.code = code - self.error = Error.from_json(error) if error else None - self.info = info - - - -class MeterStatusResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~MeterStatusResult] - ''' - self.results = [MeterStatusResult.from_json(o) for o in results or []] - - - -class Metric(Type): - _toSchema = {'key': 'key', 'time': 'time', 'value': 'value'} - _toPy = {'key': 'key', 'time': 'time', 'value': 'value'} - def __init__(self, key=None, time=None, value=None, **unknown_fields): - ''' - key : str - time : str - value : str - ''' - self.key = key - self.time = time - self.value = value - - - -class MetricBatch(Type): - _toSchema = {'charm_url': 'charm-url', 'created': 'created', 'metrics': 'metrics', 'uuid': 'uuid'} - _toPy = {'charm-url': 'charm_url', 'created': 'created', 'metrics': 'metrics', 'uuid': 'uuid'} - def __init__(self, charm_url=None, created=None, metrics=None, uuid=None, **unknown_fields): - ''' - charm_url : str - created : str - metrics : typing.Sequence[~Metric] - uuid : str - ''' - self.charm_url = charm_url - self.created = created - self.metrics = [Metric.from_json(o) for o in metrics or []] - self.uuid = uuid - - - -class MetricBatchParam(Type): - _toSchema = {'batch': 'batch', 'tag': 'tag'} - _toPy = {'batch': 'batch', 'tag': 'tag'} - def __init__(self, batch=None, tag=None, **unknown_fields): - ''' - batch : MetricBatch - tag : str - ''' - self.batch = MetricBatch.from_json(batch) if batch else None - self.tag = tag - - - -class MetricBatchParams(Type): - _toSchema = {'batches': 'batches'} - _toPy = {'batches': 'batches'} - def __init__(self, batches=None, **unknown_fields): - ''' - batches : typing.Sequence[~MetricBatchParam] - ''' - self.batches = [MetricBatchParam.from_json(o) for o in batches or []] - - - -class MetricResult(Type): - _toSchema = {'key': 'key', 'time': 'time', 'unit': 'unit', 'value': 'value'} - _toPy = {'key': 'key', 'time': 'time', 'unit': 'unit', 'value': 'value'} - def __init__(self, key=None, time=None, unit=None, value=None, **unknown_fields): - ''' - key : str - time : str - unit : str - value : str - ''' - self.key = key - self.time = time - self.unit = unit - self.value = value - - - -class MetricResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~EntityMetrics] - ''' - self.results = [EntityMetrics.from_json(o) for o in results or []] - - - -class MigrationModelInfo(Type): - _toSchema = {'agent_version': 'agent-version', 'name': 'name', 'owner_tag': 'owner-tag', 'uuid': 'uuid'} - _toPy = {'agent-version': 'agent_version', 'name': 'name', 'owner-tag': 'owner_tag', 'uuid': 'uuid'} - def __init__(self, agent_version=None, name=None, owner_tag=None, uuid=None, **unknown_fields): - ''' - agent_version : Number - name : str - owner_tag : str - uuid : str - ''' - self.agent_version = Number.from_json(agent_version) if agent_version else None - self.name = name - self.owner_tag = owner_tag - self.uuid = uuid - - - -class MigrationSpec(Type): - _toSchema = {'external_control': 'external-control', 'model_tag': 'model-tag', 'skip_initial_prechecks': 'skip-initial-prechecks', 'target_info': 'target-info'} - _toPy = {'external-control': 'external_control', 'model-tag': 'model_tag', 'skip-initial-prechecks': 'skip_initial_prechecks', 'target-info': 'target_info'} - def __init__(self, external_control=None, model_tag=None, skip_initial_prechecks=None, target_info=None, **unknown_fields): - ''' - external_control : bool - model_tag : str - skip_initial_prechecks : bool - target_info : MigrationTargetInfo - ''' - self.external_control = external_control - self.model_tag = model_tag - self.skip_initial_prechecks = skip_initial_prechecks - self.target_info = MigrationTargetInfo.from_json(target_info) if target_info else None - - - -class MigrationStatus(Type): - _toSchema = {'attempt': 'attempt', 'external_control': 'external-control', 'migration_id': 'migration-id', 'phase': 'phase', 'source_api_addrs': 'source-api-addrs', 'source_ca_cert': 'source-ca-cert', 'target_api_addrs': 'target-api-addrs', 'target_ca_cert': 'target-ca-cert'} - _toPy = {'attempt': 'attempt', 'external-control': 'external_control', 'migration-id': 'migration_id', 'phase': 'phase', 'source-api-addrs': 'source_api_addrs', 'source-ca-cert': 'source_ca_cert', 'target-api-addrs': 'target_api_addrs', 'target-ca-cert': 'target_ca_cert'} - def __init__(self, attempt=None, external_control=None, migration_id=None, phase=None, source_api_addrs=None, source_ca_cert=None, target_api_addrs=None, target_ca_cert=None, **unknown_fields): - ''' - attempt : int - external_control : bool - migration_id : str - phase : str - source_api_addrs : typing.Sequence[str] - source_ca_cert : str - target_api_addrs : typing.Sequence[str] - target_ca_cert : str - ''' - self.attempt = attempt - self.external_control = external_control - self.migration_id = migration_id - self.phase = phase - self.source_api_addrs = source_api_addrs - self.source_ca_cert = source_ca_cert - self.target_api_addrs = target_api_addrs - self.target_ca_cert = target_ca_cert - - - -class MigrationTargetInfo(Type): - _toSchema = {'addrs': 'addrs', 'auth_tag': 'auth-tag', 'ca_cert': 'ca-cert', 'controller_tag': 'controller-tag', 'macaroons': 'macaroons', 'password': 'password'} - _toPy = {'addrs': 'addrs', 'auth-tag': 'auth_tag', 'ca-cert': 'ca_cert', 'controller-tag': 'controller_tag', 'macaroons': 'macaroons', 'password': 'password'} - def __init__(self, addrs=None, auth_tag=None, ca_cert=None, controller_tag=None, macaroons=None, password=None, **unknown_fields): - ''' - addrs : typing.Sequence[str] - auth_tag : str - ca_cert : str - controller_tag : str - macaroons : str - password : str - ''' - self.addrs = addrs - self.auth_tag = auth_tag - self.ca_cert = ca_cert - self.controller_tag = controller_tag - self.macaroons = macaroons - self.password = password - - - -class MinionReport(Type): - _toSchema = {'migration_id': 'migration-id', 'phase': 'phase', 'success': 'success'} - _toPy = {'migration-id': 'migration_id', 'phase': 'phase', 'success': 'success'} - def __init__(self, migration_id=None, phase=None, success=None, **unknown_fields): - ''' - migration_id : str - phase : str - success : bool - ''' - self.migration_id = migration_id - self.phase = phase - self.success = success - - - -class MinionReports(Type): - _toSchema = {'failed': 'failed', 'migration_id': 'migration-id', 'phase': 'phase', 'success_count': 'success-count', 'unknown_count': 'unknown-count', 'unknown_sample': 'unknown-sample'} - _toPy = {'failed': 'failed', 'migration-id': 'migration_id', 'phase': 'phase', 'success-count': 'success_count', 'unknown-count': 'unknown_count', 'unknown-sample': 'unknown_sample'} - def __init__(self, failed=None, migration_id=None, phase=None, success_count=None, unknown_count=None, unknown_sample=None, **unknown_fields): - ''' - failed : typing.Sequence[str] - migration_id : str - phase : str - success_count : int - unknown_count : int - unknown_sample : typing.Sequence[str] - ''' - self.failed = failed - self.migration_id = migration_id - self.phase = phase - self.success_count = success_count - self.unknown_count = unknown_count - self.unknown_sample = unknown_sample - - - -class Model(Type): - _toSchema = {'name': 'name', 'owner_tag': 'owner-tag', 'uuid': 'uuid'} - _toPy = {'name': 'name', 'owner-tag': 'owner_tag', 'uuid': 'uuid'} - def __init__(self, name=None, owner_tag=None, uuid=None, **unknown_fields): - ''' - name : str - owner_tag : str - uuid : str - ''' - self.name = name - self.owner_tag = owner_tag - self.uuid = uuid - - - -class ModelAccess(Type): - _toSchema = {'access': 'access', 'model': 'model'} - _toPy = {'access': 'access', 'model': 'model'} - def __init__(self, access=None, model=None, **unknown_fields): - ''' - access : str - model : str - ''' - self.access = access - self.model = model - - - -class ModelArgs(Type): - _toSchema = {'model_tag': 'model-tag'} - _toPy = {'model-tag': 'model_tag'} - def __init__(self, model_tag=None, **unknown_fields): - ''' - model_tag : str - ''' - self.model_tag = model_tag - - - -class ModelBlockInfo(Type): - _toSchema = {'blocks': 'blocks', 'model_uuid': 'model-uuid', 'name': 'name', 'owner_tag': 'owner-tag'} - _toPy = {'blocks': 'blocks', 'model-uuid': 'model_uuid', 'name': 'name', 'owner-tag': 'owner_tag'} - def __init__(self, blocks=None, model_uuid=None, name=None, owner_tag=None, **unknown_fields): - ''' - blocks : typing.Sequence[str] - model_uuid : str - name : str - owner_tag : str - ''' - self.blocks = blocks - self.model_uuid = model_uuid - self.name = name - self.owner_tag = owner_tag - - - -class ModelBlockInfoList(Type): - _toSchema = {'models': 'models'} - _toPy = {'models': 'models'} - def __init__(self, models=None, **unknown_fields): - ''' - models : typing.Sequence[~ModelBlockInfo] - ''' - self.models = [ModelBlockInfo.from_json(o) for o in models or []] - - - -class ModelConfigResult(Type): - _toSchema = {'config': 'config'} - _toPy = {'config': 'config'} - def __init__(self, config=None, **unknown_fields): - ''' - config : typing.Mapping[str, typing.Any] - ''' - self.config = config - - - -class ModelConfigResults(Type): - _toSchema = {'config': 'config'} - _toPy = {'config': 'config'} - def __init__(self, config=None, **unknown_fields): - ''' - config : typing.Mapping[str, ~ConfigValue] - ''' - self.config = config - - - -class ModelCreateArgs(Type): - _toSchema = {'cloud_tag': 'cloud-tag', 'config': 'config', 'credential': 'credential', 'name': 'name', 'owner_tag': 'owner-tag', 'region': 'region'} - _toPy = {'cloud-tag': 'cloud_tag', 'config': 'config', 'credential': 'credential', 'name': 'name', 'owner-tag': 'owner_tag', 'region': 'region'} - def __init__(self, cloud_tag=None, config=None, credential=None, name=None, owner_tag=None, region=None, **unknown_fields): - ''' - cloud_tag : str - config : typing.Mapping[str, typing.Any] - credential : str - name : str - owner_tag : str - region : str - ''' - self.cloud_tag = cloud_tag - self.config = config - self.credential = credential - self.name = name - self.owner_tag = owner_tag - self.region = region - - - -class ModelCredential(Type): - _toSchema = {'credential_tag': 'credential-tag', 'exists': 'exists', 'model_tag': 'model-tag', 'valid': 'valid'} - _toPy = {'credential-tag': 'credential_tag', 'exists': 'exists', 'model-tag': 'model_tag', 'valid': 'valid'} - def __init__(self, credential_tag=None, exists=None, model_tag=None, valid=None, **unknown_fields): - ''' - credential_tag : str - exists : bool - model_tag : str - valid : bool - ''' - self.credential_tag = credential_tag - self.exists = exists - self.model_tag = model_tag - self.valid = valid - - - -class ModelDefaultValues(Type): - _toSchema = {'cloud_region': 'cloud-region', 'cloud_tag': 'cloud-tag', 'config': 'config'} - _toPy = {'cloud-region': 'cloud_region', 'cloud-tag': 'cloud_tag', 'config': 'config'} - def __init__(self, cloud_region=None, cloud_tag=None, config=None, **unknown_fields): - ''' - cloud_region : str - cloud_tag : str - config : typing.Mapping[str, typing.Any] - ''' - self.cloud_region = cloud_region - self.cloud_tag = cloud_tag - self.config = config - - - -class ModelDefaults(Type): - _toSchema = {'controller': 'controller', 'default': 'default', 'regions': 'regions'} - _toPy = {'controller': 'controller', 'default': 'default', 'regions': 'regions'} - def __init__(self, controller=None, default=None, regions=None, **unknown_fields): - ''' - controller : typing.Mapping[str, typing.Any] - default : typing.Mapping[str, typing.Any] - regions : typing.Sequence[~RegionDefaults] - ''' - self.controller = controller - self.default = default - self.regions = [RegionDefaults.from_json(o) for o in regions or []] - - - -class ModelDefaultsResult(Type): - _toSchema = {'config': 'config'} - _toPy = {'config': 'config'} - def __init__(self, config=None, **unknown_fields): - ''' - config : typing.Mapping[str, ~ModelDefaults] - ''' - self.config = config - - - -class ModelEntityCount(Type): - _toSchema = {'count': 'count', 'entity': 'entity'} - _toPy = {'count': 'count', 'entity': 'entity'} - def __init__(self, count=None, entity=None, **unknown_fields): - ''' - count : int - entity : str - ''' - self.count = count - self.entity = entity - - - -class ModelFilesystemInfo(Type): - _toSchema = {'detachable': 'detachable', 'id_': 'id', 'message': 'message', 'provider_id': 'provider-id', 'status': 'status'} - _toPy = {'detachable': 'detachable', 'id': 'id_', 'message': 'message', 'provider-id': 'provider_id', 'status': 'status'} - def __init__(self, detachable=None, id_=None, message=None, provider_id=None, status=None, **unknown_fields): - ''' - detachable : bool - id_ : str - message : str - provider_id : str - status : str - ''' - self.detachable = detachable - self.id_ = id_ - self.message = message - self.provider_id = provider_id - self.status = status - - - -class ModelInfo(Type): - _toSchema = {'agent_version': 'agent-version', 'cloud_credential_tag': 'cloud-credential-tag', 'cloud_region': 'cloud-region', 'cloud_tag': 'cloud-tag', 'controller_uuid': 'controller-uuid', 'default_series': 'default-series', 'life': 'life', 'machines': 'machines', 'migration': 'migration', 'name': 'name', 'owner_tag': 'owner-tag', 'provider_type': 'provider-type', 'sla': 'sla', 'status': 'status', 'type_': 'type', 'users': 'users', 'uuid': 'uuid'} - _toPy = {'agent-version': 'agent_version', 'cloud-credential-tag': 'cloud_credential_tag', 'cloud-region': 'cloud_region', 'cloud-tag': 'cloud_tag', 'controller-uuid': 'controller_uuid', 'default-series': 'default_series', 'life': 'life', 'machines': 'machines', 'migration': 'migration', 'name': 'name', 'owner-tag': 'owner_tag', 'provider-type': 'provider_type', 'sla': 'sla', 'status': 'status', 'type': 'type_', 'users': 'users', 'uuid': 'uuid'} - def __init__(self, agent_version=None, cloud_credential_tag=None, cloud_region=None, cloud_tag=None, controller_uuid=None, default_series=None, life=None, machines=None, migration=None, name=None, owner_tag=None, provider_type=None, sla=None, status=None, type_=None, users=None, uuid=None, **unknown_fields): - ''' - agent_version : Number - cloud_credential_tag : str - cloud_region : str - cloud_tag : str - controller_uuid : str - default_series : str - life : str - machines : typing.Sequence[~ModelMachineInfo] - migration : ModelMigrationStatus - name : str - owner_tag : str - provider_type : str - sla : ModelSLAInfo - status : EntityStatus - type_ : str - users : typing.Sequence[~ModelUserInfo] - uuid : str - ''' - self.agent_version = Number.from_json(agent_version) if agent_version else None - self.cloud_credential_tag = cloud_credential_tag - self.cloud_region = cloud_region - self.cloud_tag = cloud_tag - self.controller_uuid = controller_uuid - self.default_series = default_series - self.life = life - self.machines = [ModelMachineInfo.from_json(o) for o in machines or []] - self.migration = ModelMigrationStatus.from_json(migration) if migration else None - self.name = name - self.owner_tag = owner_tag - self.provider_type = provider_type - self.sla = ModelSLAInfo.from_json(sla) if sla else None - self.status = EntityStatus.from_json(status) if status else None - self.type_ = type_ - self.users = [ModelUserInfo.from_json(o) for o in users or []] - self.uuid = uuid - - - -class ModelInfoResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : ModelInfo - ''' - self.error = Error.from_json(error) if error else None - self.result = ModelInfo.from_json(result) if result else None - - - -class ModelInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ModelInfoResult] - ''' - self.results = [ModelInfoResult.from_json(o) for o in results or []] - - - -class ModelInstanceTypesConstraint(Type): - _toSchema = {'value': 'value'} - _toPy = {'value': 'value'} - def __init__(self, value=None, **unknown_fields): - ''' - value : Value - ''' - self.value = Value.from_json(value) if value else None - - - -class ModelInstanceTypesConstraints(Type): - _toSchema = {'constraints': 'constraints'} - _toPy = {'constraints': 'constraints'} - def __init__(self, constraints=None, **unknown_fields): - ''' - constraints : typing.Sequence[~ModelInstanceTypesConstraint] - ''' - self.constraints = [ModelInstanceTypesConstraint.from_json(o) for o in constraints or []] - - - -class ModelMachineInfo(Type): - _toSchema = {'hardware': 'hardware', 'has_vote': 'has-vote', 'id_': 'id', 'instance_id': 'instance-id', 'status': 'status', 'wants_vote': 'wants-vote'} - _toPy = {'hardware': 'hardware', 'has-vote': 'has_vote', 'id': 'id_', 'instance-id': 'instance_id', 'status': 'status', 'wants-vote': 'wants_vote'} - def __init__(self, hardware=None, has_vote=None, id_=None, instance_id=None, status=None, wants_vote=None, **unknown_fields): - ''' - hardware : MachineHardware - has_vote : bool - id_ : str - instance_id : str - status : str - wants_vote : bool - ''' - self.hardware = MachineHardware.from_json(hardware) if hardware else None - self.has_vote = has_vote - self.id_ = id_ - self.instance_id = instance_id - self.status = status - self.wants_vote = wants_vote - - - -class ModelMigrationStatus(Type): - _toSchema = {'end': 'end', 'start': 'start', 'status': 'status'} - _toPy = {'end': 'end', 'start': 'start', 'status': 'status'} - def __init__(self, end=None, start=None, status=None, **unknown_fields): - ''' - end : str - start : str - status : str - ''' - self.end = end - self.start = start - self.status = status - - - -class ModelResult(Type): - _toSchema = {'error': 'error', 'name': 'name', 'uuid': 'uuid'} - _toPy = {'error': 'error', 'name': 'name', 'uuid': 'uuid'} - def __init__(self, error=None, name=None, uuid=None, **unknown_fields): - ''' - error : Error - name : str - uuid : str - ''' - self.error = Error.from_json(error) if error else None - self.name = name - self.uuid = uuid - - - -class ModelSLA(Type): - _toSchema = {'creds': 'creds', 'level': 'level'} - _toPy = {'creds': 'creds', 'level': 'level'} - def __init__(self, creds=None, level=None, **unknown_fields): - ''' - creds : typing.Sequence[int] - level : str - ''' - self.creds = creds - self.level = level - - - -class ModelSLAInfo(Type): - _toSchema = {'level': 'level', 'owner': 'owner'} - _toPy = {'level': 'level', 'owner': 'owner'} - def __init__(self, level=None, owner=None, **unknown_fields): - ''' - level : str - owner : str - ''' - self.level = level - self.owner = owner - - - -class ModelSequencesResult(Type): - _toSchema = {'sequences': 'sequences'} - _toPy = {'sequences': 'sequences'} - def __init__(self, sequences=None, **unknown_fields): - ''' - sequences : typing.Mapping[str, int] - ''' - self.sequences = sequences - - - -class ModelSet(Type): - _toSchema = {'config': 'config'} - _toPy = {'config': 'config'} - def __init__(self, config=None, **unknown_fields): - ''' - config : typing.Mapping[str, typing.Any] - ''' - self.config = config - - - -class ModelStatus(Type): - _toSchema = {'application_count': 'application-count', 'hosted_machine_count': 'hosted-machine-count', 'life': 'life', 'machines': 'machines', 'model_tag': 'model-tag', 'owner_tag': 'owner-tag'} - _toPy = {'application-count': 'application_count', 'hosted-machine-count': 'hosted_machine_count', 'life': 'life', 'machines': 'machines', 'model-tag': 'model_tag', 'owner-tag': 'owner_tag'} - def __init__(self, application_count=None, hosted_machine_count=None, life=None, machines=None, model_tag=None, owner_tag=None, **unknown_fields): - ''' - application_count : int - hosted_machine_count : int - life : str - machines : typing.Sequence[~ModelMachineInfo] - model_tag : str - owner_tag : str - ''' - self.application_count = application_count - self.hosted_machine_count = hosted_machine_count - self.life = life - self.machines = [ModelMachineInfo.from_json(o) for o in machines or []] - self.model_tag = model_tag - self.owner_tag = owner_tag - - - -class ModelStatusInfo(Type): - _toSchema = {'available_version': 'available-version', 'cloud_tag': 'cloud-tag', 'meter_status': 'meter-status', 'model_status': 'model-status', 'name': 'name', 'region': 'region', 'sla': 'sla', 'type_': 'type', 'version': 'version'} - _toPy = {'available-version': 'available_version', 'cloud-tag': 'cloud_tag', 'meter-status': 'meter_status', 'model-status': 'model_status', 'name': 'name', 'region': 'region', 'sla': 'sla', 'type': 'type_', 'version': 'version'} - def __init__(self, available_version=None, cloud_tag=None, meter_status=None, model_status=None, name=None, region=None, sla=None, type_=None, version=None, **unknown_fields): - ''' - available_version : str - cloud_tag : str - meter_status : MeterStatus - model_status : DetailedStatus - name : str - region : str - sla : str - type_ : str - version : str - ''' - self.available_version = available_version - self.cloud_tag = cloud_tag - self.meter_status = MeterStatus.from_json(meter_status) if meter_status else None - self.model_status = DetailedStatus.from_json(model_status) if model_status else None - self.name = name - self.region = region - self.sla = sla - self.type_ = type_ - self.version = version - - - -class ModelStatusResults(Type): - _toSchema = {'models': 'models'} - _toPy = {'models': 'models'} - def __init__(self, models=None, **unknown_fields): - ''' - models : typing.Sequence[~ModelStatus] - ''' - self.models = [ModelStatus.from_json(o) for o in models or []] - - - -class ModelSummariesRequest(Type): - _toSchema = {'all_': 'all', 'user_tag': 'user-tag'} - _toPy = {'all': 'all_', 'user-tag': 'user_tag'} - def __init__(self, all_=None, user_tag=None, **unknown_fields): - ''' - all_ : bool - user_tag : str - ''' - self.all_ = all_ - self.user_tag = user_tag - - - -class ModelSummary(Type): - _toSchema = {'agent_version': 'agent-version', 'cloud_credential_tag': 'cloud-credential-tag', 'cloud_region': 'cloud-region', 'cloud_tag': 'cloud-tag', 'controller_uuid': 'controller-uuid', 'counts': 'counts', 'default_series': 'default-series', 'last_connection': 'last-connection', 'life': 'life', 'migration': 'migration', 'name': 'name', 'owner_tag': 'owner-tag', 'provider_type': 'provider-type', 'sla': 'sla', 'status': 'status', 'type_': 'type', 'user_access': 'user-access', 'uuid': 'uuid'} - _toPy = {'agent-version': 'agent_version', 'cloud-credential-tag': 'cloud_credential_tag', 'cloud-region': 'cloud_region', 'cloud-tag': 'cloud_tag', 'controller-uuid': 'controller_uuid', 'counts': 'counts', 'default-series': 'default_series', 'last-connection': 'last_connection', 'life': 'life', 'migration': 'migration', 'name': 'name', 'owner-tag': 'owner_tag', 'provider-type': 'provider_type', 'sla': 'sla', 'status': 'status', 'type': 'type_', 'user-access': 'user_access', 'uuid': 'uuid'} - def __init__(self, agent_version=None, cloud_credential_tag=None, cloud_region=None, cloud_tag=None, controller_uuid=None, counts=None, default_series=None, last_connection=None, life=None, migration=None, name=None, owner_tag=None, provider_type=None, sla=None, status=None, type_=None, user_access=None, uuid=None, **unknown_fields): - ''' - agent_version : Number - cloud_credential_tag : str - cloud_region : str - cloud_tag : str - controller_uuid : str - counts : typing.Sequence[~ModelEntityCount] - default_series : str - last_connection : str - life : str - migration : ModelMigrationStatus - name : str - owner_tag : str - provider_type : str - sla : ModelSLAInfo - status : EntityStatus - type_ : str - user_access : str - uuid : str - ''' - self.agent_version = Number.from_json(agent_version) if agent_version else None - self.cloud_credential_tag = cloud_credential_tag - self.cloud_region = cloud_region - self.cloud_tag = cloud_tag - self.controller_uuid = controller_uuid - self.counts = [ModelEntityCount.from_json(o) for o in counts or []] - self.default_series = default_series - self.last_connection = last_connection - self.life = life - self.migration = ModelMigrationStatus.from_json(migration) if migration else None - self.name = name - self.owner_tag = owner_tag - self.provider_type = provider_type - self.sla = ModelSLAInfo.from_json(sla) if sla else None - self.status = EntityStatus.from_json(status) if status else None - self.type_ = type_ - self.user_access = user_access - self.uuid = uuid - - - -class ModelSummaryResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : ModelSummary - ''' - self.error = Error.from_json(error) if error else None - self.result = ModelSummary.from_json(result) if result else None - - - -class ModelSummaryResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ModelSummaryResult] - ''' - self.results = [ModelSummaryResult.from_json(o) for o in results or []] - - - -class ModelTag(Type): - _toSchema = {} - _toPy = {} - def __init__(self, **unknown_fields): - ''' - - ''' - pass - - - -class ModelUnset(Type): - _toSchema = {'keys': 'keys'} - _toPy = {'keys': 'keys'} - def __init__(self, keys=None, **unknown_fields): - ''' - keys : typing.Sequence[str] - ''' - self.keys = keys - - - -class ModelUnsetKeys(Type): - _toSchema = {'cloud_region': 'cloud-region', 'cloud_tag': 'cloud-tag', 'keys': 'keys'} - _toPy = {'cloud-region': 'cloud_region', 'cloud-tag': 'cloud_tag', 'keys': 'keys'} - def __init__(self, cloud_region=None, cloud_tag=None, keys=None, **unknown_fields): - ''' - cloud_region : str - cloud_tag : str - keys : typing.Sequence[str] - ''' - self.cloud_region = cloud_region - self.cloud_tag = cloud_tag - self.keys = keys - - - -class ModelUserInfo(Type): - _toSchema = {'access': 'access', 'display_name': 'display-name', 'last_connection': 'last-connection', 'user': 'user'} - _toPy = {'access': 'access', 'display-name': 'display_name', 'last-connection': 'last_connection', 'user': 'user'} - def __init__(self, access=None, display_name=None, last_connection=None, user=None, **unknown_fields): - ''' - access : str - display_name : str - last_connection : str - user : str - ''' - self.access = access - self.display_name = display_name - self.last_connection = last_connection - self.user = user - - - -class ModelUserInfoResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : ModelUserInfo - ''' - self.error = Error.from_json(error) if error else None - self.result = ModelUserInfo.from_json(result) if result else None - - - -class ModelUserInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ModelUserInfoResult] - ''' - self.results = [ModelUserInfoResult.from_json(o) for o in results or []] - - - -class ModelVolumeInfo(Type): - _toSchema = {'detachable': 'detachable', 'id_': 'id', 'message': 'message', 'provider_id': 'provider-id', 'status': 'status'} - _toPy = {'detachable': 'detachable', 'id': 'id_', 'message': 'message', 'provider-id': 'provider_id', 'status': 'status'} - def __init__(self, detachable=None, id_=None, message=None, provider_id=None, status=None, **unknown_fields): - ''' - detachable : bool - id_ : str - message : str - provider_id : str - status : str - ''' - self.detachable = detachable - self.id_ = id_ - self.message = message - self.provider_id = provider_id - self.status = status - - - -class ModifyCloudAccess(Type): - _toSchema = {'access': 'access', 'action': 'action', 'cloud_tag': 'cloud-tag', 'user_tag': 'user-tag'} - _toPy = {'access': 'access', 'action': 'action', 'cloud-tag': 'cloud_tag', 'user-tag': 'user_tag'} - def __init__(self, access=None, action=None, cloud_tag=None, user_tag=None, **unknown_fields): - ''' - access : str - action : str - cloud_tag : str - user_tag : str - ''' - self.access = access - self.action = action - self.cloud_tag = cloud_tag - self.user_tag = user_tag - - - -class ModifyCloudAccessRequest(Type): - _toSchema = {'changes': 'changes'} - _toPy = {'changes': 'changes'} - def __init__(self, changes=None, **unknown_fields): - ''' - changes : typing.Sequence[~ModifyCloudAccess] - ''' - self.changes = [ModifyCloudAccess.from_json(o) for o in changes or []] - - - -class ModifyControllerAccess(Type): - _toSchema = {'access': 'access', 'action': 'action', 'user_tag': 'user-tag'} - _toPy = {'access': 'access', 'action': 'action', 'user-tag': 'user_tag'} - def __init__(self, access=None, action=None, user_tag=None, **unknown_fields): - ''' - access : str - action : str - user_tag : str - ''' - self.access = access - self.action = action - self.user_tag = user_tag - - - -class ModifyControllerAccessRequest(Type): - _toSchema = {'changes': 'changes'} - _toPy = {'changes': 'changes'} - def __init__(self, changes=None, **unknown_fields): - ''' - changes : typing.Sequence[~ModifyControllerAccess] - ''' - self.changes = [ModifyControllerAccess.from_json(o) for o in changes or []] - - - -class ModifyModelAccess(Type): - _toSchema = {'access': 'access', 'action': 'action', 'model_tag': 'model-tag', 'user_tag': 'user-tag'} - _toPy = {'access': 'access', 'action': 'action', 'model-tag': 'model_tag', 'user-tag': 'user_tag'} - def __init__(self, access=None, action=None, model_tag=None, user_tag=None, **unknown_fields): - ''' - access : str - action : str - model_tag : str - user_tag : str - ''' - self.access = access - self.action = action - self.model_tag = model_tag - self.user_tag = user_tag - - - -class ModifyModelAccessRequest(Type): - _toSchema = {'changes': 'changes'} - _toPy = {'changes': 'changes'} - def __init__(self, changes=None, **unknown_fields): - ''' - changes : typing.Sequence[~ModifyModelAccess] - ''' - self.changes = [ModifyModelAccess.from_json(o) for o in changes or []] - - - -class ModifyOfferAccess(Type): - _toSchema = {'access': 'access', 'action': 'action', 'offer_url': 'offer-url', 'user_tag': 'user-tag'} - _toPy = {'access': 'access', 'action': 'action', 'offer-url': 'offer_url', 'user-tag': 'user_tag'} - def __init__(self, access=None, action=None, offer_url=None, user_tag=None, **unknown_fields): - ''' - access : str - action : str - offer_url : str - user_tag : str - ''' - self.access = access - self.action = action - self.offer_url = offer_url - self.user_tag = user_tag - - - -class ModifyOfferAccessRequest(Type): - _toSchema = {'changes': 'changes'} - _toPy = {'changes': 'changes'} - def __init__(self, changes=None, **unknown_fields): - ''' - changes : typing.Sequence[~ModifyOfferAccess] - ''' - self.changes = [ModifyOfferAccess.from_json(o) for o in changes or []] - - - -class ModifyUserSSHKeys(Type): - _toSchema = {'ssh_keys': 'ssh-keys', 'user': 'user'} - _toPy = {'ssh-keys': 'ssh_keys', 'user': 'user'} - def __init__(self, ssh_keys=None, user=None, **unknown_fields): - ''' - ssh_keys : typing.Sequence[str] - user : str - ''' - self.ssh_keys = ssh_keys - self.user = user - - - -class MongoUpgradeResults(Type): - _toSchema = {'ha_members': 'ha-members', 'master': 'master', 'rs_members': 'rs-members'} - _toPy = {'ha-members': 'ha_members', 'master': 'master', 'rs-members': 'rs_members'} - def __init__(self, ha_members=None, master=None, rs_members=None, **unknown_fields): - ''' - ha_members : typing.Sequence[~HAMember] - master : HAMember - rs_members : typing.Sequence[~Member] - ''' - self.ha_members = [HAMember.from_json(o) for o in ha_members or []] - self.master = HAMember.from_json(master) if master else None - self.rs_members = [Member.from_json(o) for o in rs_members or []] - - - -class MongoVersion(Type): - _toSchema = {'engine': 'engine', 'major': 'major', 'minor': 'minor', 'patch': 'patch'} - _toPy = {'engine': 'engine', 'major': 'major', 'minor': 'minor', 'patch': 'patch'} - def __init__(self, engine=None, major=None, minor=None, patch=None, **unknown_fields): - ''' - engine : str - major : int - minor : int - patch : str - ''' - self.engine = engine - self.major = major - self.minor = minor - self.patch = patch - - - -class NetworkConfig(Type): - _toSchema = {'address': 'address', 'cidr': 'cidr', 'config_type': 'config-type', 'device_index': 'device-index', 'disabled': 'disabled', 'dns_search_domains': 'dns-search-domains', 'dns_servers': 'dns-servers', 'gateway_address': 'gateway-address', 'interface_name': 'interface-name', 'interface_type': 'interface-type', 'mac_address': 'mac-address', 'mtu': 'mtu', 'no_auto_start': 'no-auto-start', 'parent_interface_name': 'parent-interface-name', 'provider_address_id': 'provider-address-id', 'provider_id': 'provider-id', 'provider_space_id': 'provider-space-id', 'provider_subnet_id': 'provider-subnet-id', 'provider_vlan_id': 'provider-vlan-id', 'vlan_tag': 'vlan-tag'} - _toPy = {'address': 'address', 'cidr': 'cidr', 'config-type': 'config_type', 'device-index': 'device_index', 'disabled': 'disabled', 'dns-search-domains': 'dns_search_domains', 'dns-servers': 'dns_servers', 'gateway-address': 'gateway_address', 'interface-name': 'interface_name', 'interface-type': 'interface_type', 'mac-address': 'mac_address', 'mtu': 'mtu', 'no-auto-start': 'no_auto_start', 'parent-interface-name': 'parent_interface_name', 'provider-address-id': 'provider_address_id', 'provider-id': 'provider_id', 'provider-space-id': 'provider_space_id', 'provider-subnet-id': 'provider_subnet_id', 'provider-vlan-id': 'provider_vlan_id', 'vlan-tag': 'vlan_tag'} - def __init__(self, address=None, cidr=None, config_type=None, device_index=None, disabled=None, dns_search_domains=None, dns_servers=None, gateway_address=None, interface_name=None, interface_type=None, mac_address=None, mtu=None, no_auto_start=None, parent_interface_name=None, provider_address_id=None, provider_id=None, provider_space_id=None, provider_subnet_id=None, provider_vlan_id=None, vlan_tag=None, **unknown_fields): - ''' - address : str - cidr : str - config_type : str - device_index : int - disabled : bool - dns_search_domains : typing.Sequence[str] - dns_servers : typing.Sequence[str] - gateway_address : str - interface_name : str - interface_type : str - mac_address : str - mtu : int - no_auto_start : bool - parent_interface_name : str - provider_address_id : str - provider_id : str - provider_space_id : str - provider_subnet_id : str - provider_vlan_id : str - vlan_tag : int - ''' - self.address = address - self.cidr = cidr - self.config_type = config_type - self.device_index = device_index - self.disabled = disabled - self.dns_search_domains = dns_search_domains - self.dns_servers = dns_servers - self.gateway_address = gateway_address - self.interface_name = interface_name - self.interface_type = interface_type - self.mac_address = mac_address - self.mtu = mtu - self.no_auto_start = no_auto_start - self.parent_interface_name = parent_interface_name - self.provider_address_id = provider_address_id - self.provider_id = provider_id - self.provider_space_id = provider_space_id - self.provider_subnet_id = provider_subnet_id - self.provider_vlan_id = provider_vlan_id - self.vlan_tag = vlan_tag - - - -class NetworkInfo(Type): - _toSchema = {'addresses': 'addresses', 'interface_name': 'interface-name', 'mac_address': 'mac-address'} - _toPy = {'addresses': 'addresses', 'interface-name': 'interface_name', 'mac-address': 'mac_address'} - def __init__(self, addresses=None, interface_name=None, mac_address=None, **unknown_fields): - ''' - addresses : typing.Sequence[~InterfaceAddress] - interface_name : str - mac_address : str - ''' - self.addresses = [InterfaceAddress.from_json(o) for o in addresses or []] - self.interface_name = interface_name - self.mac_address = mac_address - - - -class NetworkInfoParams(Type): - _toSchema = {'bindings': 'bindings', 'unit': 'unit'} - _toPy = {'bindings': 'bindings', 'unit': 'unit'} - def __init__(self, bindings=None, unit=None, **unknown_fields): - ''' - bindings : typing.Sequence[str] - unit : str - ''' - self.bindings = bindings - self.unit = unit - - - -class NetworkInfoResult(Type): - _toSchema = {'error': 'error', 'network_info': 'network-info'} - _toPy = {'error': 'error', 'network-info': 'network_info'} - def __init__(self, error=None, network_info=None, **unknown_fields): - ''' - error : Error - network_info : typing.Sequence[~NetworkInfo] - ''' - self.error = Error.from_json(error) if error else None - self.network_info = [NetworkInfo.from_json(o) for o in network_info or []] - - - -class NetworkInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Mapping[str, ~NetworkInfoResult] - ''' - self.results = results - - - -class NetworkInterface(Type): - _toSchema = {'dns_nameservers': 'dns-nameservers', 'gateway': 'gateway', 'ip_addresses': 'ip-addresses', 'is_up': 'is-up', 'mac_address': 'mac-address', 'space': 'space'} - _toPy = {'dns-nameservers': 'dns_nameservers', 'gateway': 'gateway', 'ip-addresses': 'ip_addresses', 'is-up': 'is_up', 'mac-address': 'mac_address', 'space': 'space'} - def __init__(self, dns_nameservers=None, gateway=None, ip_addresses=None, is_up=None, mac_address=None, space=None, **unknown_fields): - ''' - dns_nameservers : typing.Sequence[str] - gateway : str - ip_addresses : typing.Sequence[str] - is_up : bool - mac_address : str - space : str - ''' - self.dns_nameservers = dns_nameservers - self.gateway = gateway - self.ip_addresses = ip_addresses - self.is_up = is_up - self.mac_address = mac_address - self.space = space - - - -class NetworkRoute(Type): - _toSchema = {'destination_cidr': 'destination-cidr', 'gateway_ip': 'gateway-ip', 'metric': 'metric'} - _toPy = {'destination-cidr': 'destination_cidr', 'gateway-ip': 'gateway_ip', 'metric': 'metric'} - def __init__(self, destination_cidr=None, gateway_ip=None, metric=None, **unknown_fields): - ''' - destination_cidr : str - gateway_ip : str - metric : int - ''' - self.destination_cidr = destination_cidr - self.gateway_ip = gateway_ip - self.metric = metric - - - -class NotifyWatchResult(Type): - _toSchema = {'error': 'error', 'notifywatcherid': 'NotifyWatcherId'} - _toPy = {'NotifyWatcherId': 'notifywatcherid', 'error': 'error'} - def __init__(self, notifywatcherid=None, error=None, **unknown_fields): - ''' - notifywatcherid : str - error : Error - ''' - self.notifywatcherid = notifywatcherid - self.error = Error.from_json(error) if error else None - - - -class NotifyWatchResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~NotifyWatchResult] - ''' - self.results = [NotifyWatchResult.from_json(o) for o in results or []] - - - -class Number(Type): - _toSchema = {'build': 'Build', 'major': 'Major', 'minor': 'Minor', 'patch': 'Patch', 'tag': 'Tag'} - _toPy = {'Build': 'build', 'Major': 'major', 'Minor': 'minor', 'Patch': 'patch', 'Tag': 'tag'} - def __init__(self, build=None, major=None, minor=None, patch=None, tag=None, **unknown_fields): - ''' - build : int - major : int - minor : int - patch : int - tag : str - ''' - self.build = build - self.major = major - self.minor = minor - self.patch = patch - self.tag = tag - - - -class OfferArg(Type): - _toSchema = {'macaroons': 'macaroons', 'offer_uuid': 'offer-uuid'} - _toPy = {'macaroons': 'macaroons', 'offer-uuid': 'offer_uuid'} - def __init__(self, macaroons=None, offer_uuid=None, **unknown_fields): - ''' - macaroons : typing.Sequence[~Macaroon] - offer_uuid : str - ''' - self.macaroons = [Macaroon.from_json(o) for o in macaroons or []] - self.offer_uuid = offer_uuid - - - -class OfferArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~OfferArg] - ''' - self.args = [OfferArg.from_json(o) for o in args or []] - - - -class OfferConnection(Type): - _toSchema = {'endpoint': 'endpoint', 'ingress_subnets': 'ingress-subnets', 'relation_id': 'relation-id', 'source_model_tag': 'source-model-tag', 'status': 'status', 'username': 'username'} - _toPy = {'endpoint': 'endpoint', 'ingress-subnets': 'ingress_subnets', 'relation-id': 'relation_id', 'source-model-tag': 'source_model_tag', 'status': 'status', 'username': 'username'} - def __init__(self, endpoint=None, ingress_subnets=None, relation_id=None, source_model_tag=None, status=None, username=None, **unknown_fields): - ''' - endpoint : str - ingress_subnets : typing.Sequence[str] - relation_id : int - source_model_tag : str - status : EntityStatus - username : str - ''' - self.endpoint = endpoint - self.ingress_subnets = ingress_subnets - self.relation_id = relation_id - self.source_model_tag = source_model_tag - self.status = EntityStatus.from_json(status) if status else None - self.username = username - - - -class OfferFilter(Type): - _toSchema = {'allowed_users': 'allowed-users', 'application_description': 'application-description', 'application_name': 'application-name', 'application_user': 'application-user', 'connected_users': 'connected-users', 'endpoints': 'endpoints', 'model_name': 'model-name', 'offer_name': 'offer-name', 'owner_name': 'owner-name'} - _toPy = {'allowed-users': 'allowed_users', 'application-description': 'application_description', 'application-name': 'application_name', 'application-user': 'application_user', 'connected-users': 'connected_users', 'endpoints': 'endpoints', 'model-name': 'model_name', 'offer-name': 'offer_name', 'owner-name': 'owner_name'} - def __init__(self, allowed_users=None, application_description=None, application_name=None, application_user=None, connected_users=None, endpoints=None, model_name=None, offer_name=None, owner_name=None, **unknown_fields): - ''' - allowed_users : typing.Sequence[str] - application_description : str - application_name : str - application_user : str - connected_users : typing.Sequence[str] - endpoints : typing.Sequence[~EndpointFilterAttributes] - model_name : str - offer_name : str - owner_name : str - ''' - self.allowed_users = allowed_users - self.application_description = application_description - self.application_name = application_name - self.application_user = application_user - self.connected_users = connected_users - self.endpoints = [EndpointFilterAttributes.from_json(o) for o in endpoints or []] - self.model_name = model_name - self.offer_name = offer_name - self.owner_name = owner_name - - - -class OfferFilters(Type): - _toSchema = {'filters': 'Filters'} - _toPy = {'Filters': 'filters'} - def __init__(self, filters=None, **unknown_fields): - ''' - filters : typing.Sequence[~OfferFilter] - ''' - self.filters = [OfferFilter.from_json(o) for o in filters or []] - - - -class OfferStatusChange(Type): - _toSchema = {'offer_name': 'offer-name', 'status': 'status'} - _toPy = {'offer-name': 'offer_name', 'status': 'status'} - def __init__(self, offer_name=None, status=None, **unknown_fields): - ''' - offer_name : str - status : EntityStatus - ''' - self.offer_name = offer_name - self.status = EntityStatus.from_json(status) if status else None - - - -class OfferStatusWatchResult(Type): - _toSchema = {'changes': 'changes', 'error': 'error', 'watcher_id': 'watcher-id'} - _toPy = {'changes': 'changes', 'error': 'error', 'watcher-id': 'watcher_id'} - def __init__(self, changes=None, error=None, watcher_id=None, **unknown_fields): - ''' - changes : typing.Sequence[~OfferStatusChange] - error : Error - watcher_id : str - ''' - self.changes = [OfferStatusChange.from_json(o) for o in changes or []] - self.error = Error.from_json(error) if error else None - self.watcher_id = watcher_id - - - -class OfferStatusWatchResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~OfferStatusWatchResult] - ''' - self.results = [OfferStatusWatchResult.from_json(o) for o in results or []] - - - -class OfferURLs(Type): - _toSchema = {'offer_urls': 'offer-urls'} - _toPy = {'offer-urls': 'offer_urls'} - def __init__(self, offer_urls=None, **unknown_fields): - ''' - offer_urls : typing.Sequence[str] - ''' - self.offer_urls = offer_urls - - - -class OfferUserDetails(Type): - _toSchema = {'access': 'access', 'display_name': 'display-name', 'user': 'user'} - _toPy = {'access': 'access', 'display-name': 'display_name', 'user': 'user'} - def __init__(self, access=None, display_name=None, user=None, **unknown_fields): - ''' - access : str - display_name : str - user : str - ''' - self.access = access - self.display_name = display_name - self.user = user - - - -class OperatorProvisioningInfo(Type): - _toSchema = {'api_addresses': 'api-addresses', 'charm_storage': 'charm-storage', 'image_path': 'image-path', 'tags': 'tags', 'version': 'version'} - _toPy = {'api-addresses': 'api_addresses', 'charm-storage': 'charm_storage', 'image-path': 'image_path', 'tags': 'tags', 'version': 'version'} - def __init__(self, api_addresses=None, charm_storage=None, image_path=None, tags=None, version=None, **unknown_fields): - ''' - api_addresses : typing.Sequence[str] - charm_storage : KubernetesFilesystemParams - image_path : str - tags : typing.Mapping[str, str] - version : Number - ''' - self.api_addresses = api_addresses - self.charm_storage = KubernetesFilesystemParams.from_json(charm_storage) if charm_storage else None - self.image_path = image_path - self.tags = tags - self.version = Number.from_json(version) if version else None - - - -class Payload(Type): - _toSchema = {'class_': 'class', 'id_': 'id', 'labels': 'labels', 'machine': 'machine', 'status': 'status', 'type_': 'type', 'unit': 'unit'} - _toPy = {'class': 'class_', 'id': 'id_', 'labels': 'labels', 'machine': 'machine', 'status': 'status', 'type': 'type_', 'unit': 'unit'} - def __init__(self, class_=None, id_=None, labels=None, machine=None, status=None, type_=None, unit=None, **unknown_fields): - ''' - class_ : str - id_ : str - labels : typing.Sequence[str] - machine : str - status : str - type_ : str - unit : str - ''' - self.class_ = class_ - self.id_ = id_ - self.labels = labels - self.machine = machine - self.status = status - self.type_ = type_ - self.unit = unit - - - -class PayloadListArgs(Type): - _toSchema = {'patterns': 'patterns'} - _toPy = {'patterns': 'patterns'} - def __init__(self, patterns=None, **unknown_fields): - ''' - patterns : typing.Sequence[str] - ''' - self.patterns = patterns - - - -class PayloadListResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~Payload] - ''' - self.results = [Payload.from_json(o) for o in results or []] - - - -class PayloadResult(Type): - _toSchema = {'entity': 'Entity', 'error': 'error', 'not_found': 'not-found', 'payload': 'payload'} - _toPy = {'Entity': 'entity', 'error': 'error', 'not-found': 'not_found', 'payload': 'payload'} - def __init__(self, entity=None, error=None, not_found=None, payload=None, **unknown_fields): - ''' - entity : Entity - error : Error - not_found : bool - payload : Payload - ''' - self.entity = Entity.from_json(entity) if entity else None - self.error = Error.from_json(error) if error else None - self.not_found = not_found - self.payload = Payload.from_json(payload) if payload else None - - - -class PayloadResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~PayloadResult] - ''' - self.results = [PayloadResult.from_json(o) for o in results or []] - - - -class PhaseResult(Type): - _toSchema = {'error': 'error', 'phase': 'phase'} - _toPy = {'error': 'error', 'phase': 'phase'} - def __init__(self, error=None, phase=None, **unknown_fields): - ''' - error : Error - phase : str - ''' - self.error = Error.from_json(error) if error else None - self.phase = phase - - - -class PhaseResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~PhaseResult] - ''' - self.results = [PhaseResult.from_json(o) for o in results or []] - - - -class PinApplicationResult(Type): - _toSchema = {'application_name': 'application-name', 'error': 'error'} - _toPy = {'application-name': 'application_name', 'error': 'error'} - def __init__(self, application_name=None, error=None, **unknown_fields): - ''' - application_name : str - error : Error - ''' - self.application_name = application_name - self.error = Error.from_json(error) if error else None - - - -class PinApplicationsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~PinApplicationResult] - ''' - self.results = [PinApplicationResult.from_json(o) for o in results or []] - - - -class PinnedLeadershipResult(Type): - _toSchema = {'result': 'result'} - _toPy = {'result': 'result'} - def __init__(self, result=None, **unknown_fields): - ''' - result : typing.Sequence[str] - ''' - self.result = result - - - -class Placement(Type): - _toSchema = {'directive': 'directive', 'scope': 'scope'} - _toPy = {'directive': 'directive', 'scope': 'scope'} - def __init__(self, directive=None, scope=None, **unknown_fields): - ''' - directive : str - scope : str - ''' - self.directive = directive - self.scope = scope - - - -class PortRange(Type): - _toSchema = {'from_port': 'from-port', 'protocol': 'protocol', 'to_port': 'to-port'} - _toPy = {'from-port': 'from_port', 'protocol': 'protocol', 'to-port': 'to_port'} - def __init__(self, from_port=None, protocol=None, to_port=None, **unknown_fields): - ''' - from_port : int - protocol : str - to_port : int - ''' - self.from_port = from_port - self.protocol = protocol - self.to_port = to_port - - - -class PrivateAddress(Type): - _toSchema = {'target': 'target'} - _toPy = {'target': 'target'} - def __init__(self, target=None, **unknown_fields): - ''' - target : str - ''' - self.target = target - - - -class PrivateAddressResults(Type): - _toSchema = {'private_address': 'private-address'} - _toPy = {'private-address': 'private_address'} - def __init__(self, private_address=None, **unknown_fields): - ''' - private_address : str - ''' - self.private_address = private_address - - - -class ProfileChangeResult(Type): - _toSchema = {'error': 'error', 'new_profile_name': 'new-profile-name', 'old_profile_name': 'old-profile-name', 'profile': 'profile', 'subordinate': 'subordinate'} - _toPy = {'error': 'error', 'new-profile-name': 'new_profile_name', 'old-profile-name': 'old_profile_name', 'profile': 'profile', 'subordinate': 'subordinate'} - def __init__(self, error=None, new_profile_name=None, old_profile_name=None, profile=None, subordinate=None, **unknown_fields): - ''' - error : Error - new_profile_name : str - old_profile_name : str - profile : CharmLXDProfile - subordinate : bool - ''' - self.error = Error.from_json(error) if error else None - self.new_profile_name = new_profile_name - self.old_profile_name = old_profile_name - self.profile = CharmLXDProfile.from_json(profile) if profile else None - self.subordinate = subordinate - - - -class ProfileChangeResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ProfileChangeResult] - ''' - self.results = [ProfileChangeResult.from_json(o) for o in results or []] - - - -class ProviderInterfaceInfo(Type): - _toSchema = {'interface_name': 'interface-name', 'mac_address': 'mac-address', 'provider_id': 'provider-id'} - _toPy = {'interface-name': 'interface_name', 'mac-address': 'mac_address', 'provider-id': 'provider_id'} - def __init__(self, interface_name=None, mac_address=None, provider_id=None, **unknown_fields): - ''' - interface_name : str - mac_address : str - provider_id : str - ''' - self.interface_name = interface_name - self.mac_address = mac_address - self.provider_id = provider_id - - - -class ProviderInterfaceInfoResult(Type): - _toSchema = {'error': 'error', 'interfaces': 'interfaces', 'machine_tag': 'machine-tag'} - _toPy = {'error': 'error', 'interfaces': 'interfaces', 'machine-tag': 'machine_tag'} - def __init__(self, error=None, interfaces=None, machine_tag=None, **unknown_fields): - ''' - error : Error - interfaces : typing.Sequence[~ProviderInterfaceInfo] - machine_tag : str - ''' - self.error = Error.from_json(error) if error else None - self.interfaces = [ProviderInterfaceInfo.from_json(o) for o in interfaces or []] - self.machine_tag = machine_tag - - - -class ProviderInterfaceInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ProviderInterfaceInfoResult] - ''' - self.results = [ProviderInterfaceInfoResult.from_json(o) for o in results or []] - - - -class ProviderSpace(Type): - _toSchema = {'error': 'error', 'name': 'name', 'provider_id': 'provider-id', 'subnets': 'subnets'} - _toPy = {'error': 'error', 'name': 'name', 'provider-id': 'provider_id', 'subnets': 'subnets'} - def __init__(self, error=None, name=None, provider_id=None, subnets=None, **unknown_fields): - ''' - error : Error - name : str - provider_id : str - subnets : typing.Sequence[~Subnet] - ''' - self.error = Error.from_json(error) if error else None - self.name = name - self.provider_id = provider_id - self.subnets = [Subnet.from_json(o) for o in subnets or []] - - - -class ProvisioningInfo(Type): - _toSchema = {'constraints': 'constraints', 'controller_config': 'controller-config', 'endpoint_bindings': 'endpoint-bindings', 'image_metadata': 'image-metadata', 'jobs': 'jobs', 'placement': 'placement', 'series': 'series', 'subnets_to_zones': 'subnets-to-zones', 'tags': 'tags', 'volumes': 'volumes'} - _toPy = {'constraints': 'constraints', 'controller-config': 'controller_config', 'endpoint-bindings': 'endpoint_bindings', 'image-metadata': 'image_metadata', 'jobs': 'jobs', 'placement': 'placement', 'series': 'series', 'subnets-to-zones': 'subnets_to_zones', 'tags': 'tags', 'volumes': 'volumes'} - def __init__(self, constraints=None, controller_config=None, endpoint_bindings=None, image_metadata=None, jobs=None, placement=None, series=None, subnets_to_zones=None, tags=None, volumes=None, **unknown_fields): - ''' - constraints : Value - controller_config : typing.Mapping[str, typing.Any] - endpoint_bindings : typing.Mapping[str, str] - image_metadata : typing.Sequence[~CloudImageMetadata] - jobs : typing.Sequence[str] - placement : str - series : str - subnets_to_zones : typing.Sequence[str] - tags : typing.Mapping[str, str] - volumes : typing.Sequence[~VolumeParams] - ''' - self.constraints = Value.from_json(constraints) if constraints else None - self.controller_config = controller_config - self.endpoint_bindings = endpoint_bindings - self.image_metadata = [CloudImageMetadata.from_json(o) for o in image_metadata or []] - self.jobs = jobs - self.placement = placement - self.series = series - self.subnets_to_zones = subnets_to_zones - self.tags = tags - self.volumes = [VolumeParams.from_json(o) for o in volumes or []] - - - -class ProvisioningInfoResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : ProvisioningInfo - ''' - self.error = Error.from_json(error) if error else None - self.result = ProvisioningInfo.from_json(result) if result else None - - - -class ProvisioningInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ProvisioningInfoResult] - ''' - self.results = [ProvisioningInfoResult.from_json(o) for o in results or []] - - - -class ProvisioningScriptParams(Type): - _toSchema = {'data_dir': 'data-dir', 'disable_package_commands': 'disable-package-commands', 'machine_id': 'machine-id', 'nonce': 'nonce'} - _toPy = {'data-dir': 'data_dir', 'disable-package-commands': 'disable_package_commands', 'machine-id': 'machine_id', 'nonce': 'nonce'} - def __init__(self, data_dir=None, disable_package_commands=None, machine_id=None, nonce=None, **unknown_fields): - ''' - data_dir : str - disable_package_commands : bool - machine_id : str - nonce : str - ''' - self.data_dir = data_dir - self.disable_package_commands = disable_package_commands - self.machine_id = machine_id - self.nonce = nonce - - - -class ProvisioningScriptResult(Type): - _toSchema = {'script': 'script'} - _toPy = {'script': 'script'} - def __init__(self, script=None, **unknown_fields): - ''' - script : str - ''' - self.script = script - - - -class ProxyConfig(Type): - _toSchema = {'ftp': 'ftp', 'http': 'http', 'https': 'https', 'no_proxy': 'no-proxy'} - _toPy = {'ftp': 'ftp', 'http': 'http', 'https': 'https', 'no-proxy': 'no_proxy'} - def __init__(self, ftp=None, http=None, https=None, no_proxy=None, **unknown_fields): - ''' - ftp : str - http : str - https : str - no_proxy : str - ''' - self.ftp = ftp - self.http = http - self.https = https - self.no_proxy = no_proxy - - - -class ProxyConfigResult(Type): - _toSchema = {'apt_proxy_settings': 'apt-proxy-settings', 'error': 'error', 'proxy_settings': 'proxy-settings'} - _toPy = {'apt-proxy-settings': 'apt_proxy_settings', 'error': 'error', 'proxy-settings': 'proxy_settings'} - def __init__(self, apt_proxy_settings=None, error=None, proxy_settings=None, **unknown_fields): - ''' - apt_proxy_settings : ProxyConfig - error : Error - proxy_settings : ProxyConfig - ''' - self.apt_proxy_settings = ProxyConfig.from_json(apt_proxy_settings) if apt_proxy_settings else None - self.error = Error.from_json(error) if error else None - self.proxy_settings = ProxyConfig.from_json(proxy_settings) if proxy_settings else None - - - -class ProxyConfigResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ProxyConfigResult] - ''' - self.results = [ProxyConfigResult.from_json(o) for o in results or []] - - - -class PublicAddress(Type): - _toSchema = {'target': 'target'} - _toPy = {'target': 'target'} - def __init__(self, target=None, **unknown_fields): - ''' - target : str - ''' - self.target = target - - - -class PublicAddressResults(Type): - _toSchema = {'public_address': 'public-address'} - _toPy = {'public-address': 'public_address'} - def __init__(self, public_address=None, **unknown_fields): - ''' - public_address : str - ''' - self.public_address = public_address - - - -class QueryApplicationOffersResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ApplicationOfferAdminDetails] - ''' - self.results = [ApplicationOfferAdminDetails.from_json(o) for o in results or []] - - - -class RebootActionResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : str - ''' - self.error = Error.from_json(error) if error else None - self.result = result - - - -class RebootActionResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RebootActionResult] - ''' - self.results = [RebootActionResult.from_json(o) for o in results or []] - - - -class RegionDefaults(Type): - _toSchema = {'region_name': 'region-name', 'value': 'value'} - _toPy = {'region-name': 'region_name', 'value': 'value'} - def __init__(self, region_name=None, value=None, **unknown_fields): - ''' - region_name : str - value : typing.Mapping[str, typing.Any] - ''' - self.region_name = region_name - self.value = value - - - -class RegisterRemoteRelationArg(Type): - _toSchema = {'application_token': 'application-token', 'local_endpoint_name': 'local-endpoint-name', 'macaroons': 'macaroons', 'offer_uuid': 'offer-uuid', 'relation_token': 'relation-token', 'remote_endpoint': 'remote-endpoint', 'remote_space': 'remote-space', 'source_model_tag': 'source-model-tag'} - _toPy = {'application-token': 'application_token', 'local-endpoint-name': 'local_endpoint_name', 'macaroons': 'macaroons', 'offer-uuid': 'offer_uuid', 'relation-token': 'relation_token', 'remote-endpoint': 'remote_endpoint', 'remote-space': 'remote_space', 'source-model-tag': 'source_model_tag'} - def __init__(self, application_token=None, local_endpoint_name=None, macaroons=None, offer_uuid=None, relation_token=None, remote_endpoint=None, remote_space=None, source_model_tag=None, **unknown_fields): - ''' - application_token : str - local_endpoint_name : str - macaroons : typing.Sequence[~Macaroon] - offer_uuid : str - relation_token : str - remote_endpoint : RemoteEndpoint - remote_space : RemoteSpace - source_model_tag : str - ''' - self.application_token = application_token - self.local_endpoint_name = local_endpoint_name - self.macaroons = [Macaroon.from_json(o) for o in macaroons or []] - self.offer_uuid = offer_uuid - self.relation_token = relation_token - self.remote_endpoint = RemoteEndpoint.from_json(remote_endpoint) if remote_endpoint else None - self.remote_space = RemoteSpace.from_json(remote_space) if remote_space else None - self.source_model_tag = source_model_tag - - - -class RegisterRemoteRelationArgs(Type): - _toSchema = {'relations': 'relations'} - _toPy = {'relations': 'relations'} - def __init__(self, relations=None, **unknown_fields): - ''' - relations : typing.Sequence[~RegisterRemoteRelationArg] - ''' - self.relations = [RegisterRemoteRelationArg.from_json(o) for o in relations or []] - - - -class RegisterRemoteRelationResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : RemoteRelationDetails - ''' - self.error = Error.from_json(error) if error else None - self.result = RemoteRelationDetails.from_json(result) if result else None - - - -class RegisterRemoteRelationResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RegisterRemoteRelationResult] - ''' - self.results = [RegisterRemoteRelationResult.from_json(o) for o in results or []] - - - -class RelationChange(Type): - _toSchema = {'changedunits': 'changedunits', 'departedunits': 'departedunits', 'id_': 'id', 'life': 'life'} - _toPy = {'changedunits': 'changedunits', 'departedunits': 'departedunits', 'id': 'id_', 'life': 'life'} - def __init__(self, changedunits=None, departedunits=None, id_=None, life=None, **unknown_fields): - ''' - changedunits : typing.Mapping[str, ~RelationUnitChange] - departedunits : typing.Sequence[str] - id_ : int - life : str - ''' - self.changedunits = changedunits - self.departedunits = departedunits - self.id_ = id_ - self.life = life - - - -class RelationIds(Type): - _toSchema = {'relation_ids': 'relation-ids'} - _toPy = {'relation-ids': 'relation_ids'} - def __init__(self, relation_ids=None, **unknown_fields): - ''' - relation_ids : typing.Sequence[int] - ''' - self.relation_ids = relation_ids - - - -class RelationLifeSuspendedStatusChange(Type): - _toSchema = {'key': 'key', 'life': 'life', 'suspended': 'suspended', 'suspended_reason': 'suspended-reason'} - _toPy = {'key': 'key', 'life': 'life', 'suspended': 'suspended', 'suspended-reason': 'suspended_reason'} - def __init__(self, key=None, life=None, suspended=None, suspended_reason=None, **unknown_fields): - ''' - key : str - life : str - suspended : bool - suspended_reason : str - ''' - self.key = key - self.life = life - self.suspended = suspended - self.suspended_reason = suspended_reason - - - -class RelationLifeSuspendedStatusWatchResult(Type): - _toSchema = {'changes': 'changes', 'error': 'error', 'watcher_id': 'watcher-id'} - _toPy = {'changes': 'changes', 'error': 'error', 'watcher-id': 'watcher_id'} - def __init__(self, changes=None, error=None, watcher_id=None, **unknown_fields): - ''' - changes : typing.Sequence[~RelationLifeSuspendedStatusChange] - error : Error - watcher_id : str - ''' - self.changes = [RelationLifeSuspendedStatusChange.from_json(o) for o in changes or []] - self.error = Error.from_json(error) if error else None - self.watcher_id = watcher_id - - - -class RelationResult(Type): - _toSchema = {'endpoint': 'endpoint', 'error': 'error', 'id_': 'id', 'key': 'key', 'life': 'life'} - _toPy = {'endpoint': 'endpoint', 'error': 'error', 'id': 'id_', 'key': 'key', 'life': 'life'} - def __init__(self, endpoint=None, error=None, id_=None, key=None, life=None, **unknown_fields): - ''' - endpoint : Endpoint - error : Error - id_ : int - key : str - life : str - ''' - self.endpoint = Endpoint.from_json(endpoint) if endpoint else None - self.error = Error.from_json(error) if error else None - self.id_ = id_ - self.key = key - self.life = life - - - -class RelationResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RelationResult] - ''' - self.results = [RelationResult.from_json(o) for o in results or []] - - - -class RelationStatus(Type): - _toSchema = {'endpoints': 'endpoints', 'id_': 'id', 'interface': 'interface', 'key': 'key', 'scope': 'scope'} - _toPy = {'endpoints': 'endpoints', 'id': 'id_', 'interface': 'interface', 'key': 'key', 'scope': 'scope'} - def __init__(self, endpoints=None, id_=None, interface=None, key=None, scope=None, **unknown_fields): - ''' - endpoints : typing.Sequence[~EndpointStatus] - id_ : int - interface : str - key : str - scope : str - ''' - self.endpoints = [EndpointStatus.from_json(o) for o in endpoints or []] - self.id_ = id_ - self.interface = interface - self.key = key - self.scope = scope - - - -class RelationStatusArg(Type): - _toSchema = {'message': 'message', 'relation_id': 'relation-id', 'status': 'status', 'unit_tag': 'unit-tag'} - _toPy = {'message': 'message', 'relation-id': 'relation_id', 'status': 'status', 'unit-tag': 'unit_tag'} - def __init__(self, message=None, relation_id=None, status=None, unit_tag=None, **unknown_fields): - ''' - message : str - relation_id : int - status : str - unit_tag : str - ''' - self.message = message - self.relation_id = relation_id - self.status = status - self.unit_tag = unit_tag - - - -class RelationStatusArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~RelationStatusArg] - ''' - self.args = [RelationStatusArg.from_json(o) for o in args or []] - - - -class RelationStatusWatchResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RelationLifeSuspendedStatusWatchResult] - ''' - self.results = [RelationLifeSuspendedStatusWatchResult.from_json(o) for o in results or []] - - - -class RelationSuspendedArg(Type): - _toSchema = {'message': 'message', 'relation_id': 'relation-id', 'suspended': 'suspended'} - _toPy = {'message': 'message', 'relation-id': 'relation_id', 'suspended': 'suspended'} - def __init__(self, message=None, relation_id=None, suspended=None, **unknown_fields): - ''' - message : str - relation_id : int - suspended : bool - ''' - self.message = message - self.relation_id = relation_id - self.suspended = suspended - - - -class RelationSuspendedArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~RelationSuspendedArg] - ''' - self.args = [RelationSuspendedArg.from_json(o) for o in args or []] - - - -class RelationUnit(Type): - _toSchema = {'relation': 'relation', 'unit': 'unit'} - _toPy = {'relation': 'relation', 'unit': 'unit'} - def __init__(self, relation=None, unit=None, **unknown_fields): - ''' - relation : str - unit : str - ''' - self.relation = relation - self.unit = unit - - - -class RelationUnitChange(Type): - _toSchema = {'settings': 'settings'} - _toPy = {'settings': 'settings'} - def __init__(self, settings=None, **unknown_fields): - ''' - settings : typing.Mapping[str, typing.Any] - ''' - self.settings = settings - - - -class RelationUnitPair(Type): - _toSchema = {'local_unit': 'local-unit', 'relation': 'relation', 'remote_unit': 'remote-unit'} - _toPy = {'local-unit': 'local_unit', 'relation': 'relation', 'remote-unit': 'remote_unit'} - def __init__(self, local_unit=None, relation=None, remote_unit=None, **unknown_fields): - ''' - local_unit : str - relation : str - remote_unit : str - ''' - self.local_unit = local_unit - self.relation = relation - self.remote_unit = remote_unit - - - -class RelationUnitPairs(Type): - _toSchema = {'relation_unit_pairs': 'relation-unit-pairs'} - _toPy = {'relation-unit-pairs': 'relation_unit_pairs'} - def __init__(self, relation_unit_pairs=None, **unknown_fields): - ''' - relation_unit_pairs : typing.Sequence[~RelationUnitPair] - ''' - self.relation_unit_pairs = [RelationUnitPair.from_json(o) for o in relation_unit_pairs or []] - - - -class RelationUnitSettings(Type): - _toSchema = {'relation': 'relation', 'settings': 'settings', 'unit': 'unit'} - _toPy = {'relation': 'relation', 'settings': 'settings', 'unit': 'unit'} - def __init__(self, relation=None, settings=None, unit=None, **unknown_fields): - ''' - relation : str - settings : typing.Mapping[str, str] - unit : str - ''' - self.relation = relation - self.settings = settings - self.unit = unit - - - -class RelationUnitStatus(Type): - _toSchema = {'in_scope': 'in-scope', 'relation_tag': 'relation-tag', 'suspended': 'suspended'} - _toPy = {'in-scope': 'in_scope', 'relation-tag': 'relation_tag', 'suspended': 'suspended'} - def __init__(self, in_scope=None, relation_tag=None, suspended=None, **unknown_fields): - ''' - in_scope : bool - relation_tag : str - suspended : bool - ''' - self.in_scope = in_scope - self.relation_tag = relation_tag - self.suspended = suspended - - - -class RelationUnitStatusResult(Type): - _toSchema = {'error': 'error', 'results': 'results'} - _toPy = {'error': 'error', 'results': 'results'} - def __init__(self, error=None, results=None, **unknown_fields): - ''' - error : Error - results : typing.Sequence[~RelationUnitStatus] - ''' - self.error = Error.from_json(error) if error else None - self.results = [RelationUnitStatus.from_json(o) for o in results or []] - - - -class RelationUnitStatusResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RelationUnitStatusResult] - ''' - self.results = [RelationUnitStatusResult.from_json(o) for o in results or []] - - - -class RelationUnits(Type): - _toSchema = {'relation_units': 'relation-units'} - _toPy = {'relation-units': 'relation_units'} - def __init__(self, relation_units=None, **unknown_fields): - ''' - relation_units : typing.Sequence[~RelationUnit] - ''' - self.relation_units = [RelationUnit.from_json(o) for o in relation_units or []] - - - -class RelationUnitsChange(Type): - _toSchema = {'changed': 'changed', 'departed': 'departed'} - _toPy = {'changed': 'changed', 'departed': 'departed'} - def __init__(self, changed=None, departed=None, **unknown_fields): - ''' - changed : typing.Mapping[str, ~UnitSettings] - departed : typing.Sequence[str] - ''' - self.changed = changed - self.departed = departed - - - -class RelationUnitsSettings(Type): - _toSchema = {'relation_units': 'relation-units'} - _toPy = {'relation-units': 'relation_units'} - def __init__(self, relation_units=None, **unknown_fields): - ''' - relation_units : typing.Sequence[~RelationUnitSettings] - ''' - self.relation_units = [RelationUnitSettings.from_json(o) for o in relation_units or []] - - - -class RelationUnitsWatchResult(Type): - _toSchema = {'changes': 'changes', 'error': 'error', 'watcher_id': 'watcher-id'} - _toPy = {'changes': 'changes', 'error': 'error', 'watcher-id': 'watcher_id'} - def __init__(self, changes=None, error=None, watcher_id=None, **unknown_fields): - ''' - changes : RelationUnitsChange - error : Error - watcher_id : str - ''' - self.changes = RelationUnitsChange.from_json(changes) if changes else None - self.error = Error.from_json(error) if error else None - self.watcher_id = watcher_id - - - -class RelationUnitsWatchResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RelationUnitsWatchResult] - ''' - self.results = [RelationUnitsWatchResult.from_json(o) for o in results or []] - - - -class RemoteApplication(Type): - _toSchema = {'is_consumer_proxy': 'is-consumer-proxy', 'life': 'life', 'macaroon': 'macaroon', 'model_uuid': 'model-uuid', 'name': 'name', 'offer_uuid': 'offer-uuid', 'status': 'status'} - _toPy = {'is-consumer-proxy': 'is_consumer_proxy', 'life': 'life', 'macaroon': 'macaroon', 'model-uuid': 'model_uuid', 'name': 'name', 'offer-uuid': 'offer_uuid', 'status': 'status'} - def __init__(self, is_consumer_proxy=None, life=None, macaroon=None, model_uuid=None, name=None, offer_uuid=None, status=None, **unknown_fields): - ''' - is_consumer_proxy : bool - life : str - macaroon : Macaroon - model_uuid : str - name : str - offer_uuid : str - status : str - ''' - self.is_consumer_proxy = is_consumer_proxy - self.life = life - self.macaroon = Macaroon.from_json(macaroon) if macaroon else None - self.model_uuid = model_uuid - self.name = name - self.offer_uuid = offer_uuid - self.status = status - - - -class RemoteApplicationChange(Type): - _toSchema = {'application_tag': 'application-tag', 'life': 'life', 'relations': 'relations'} - _toPy = {'application-tag': 'application_tag', 'life': 'life', 'relations': 'relations'} - def __init__(self, application_tag=None, life=None, relations=None, **unknown_fields): - ''' - application_tag : str - life : str - relations : RemoteRelationsChange - ''' - self.application_tag = application_tag - self.life = life - self.relations = RemoteRelationsChange.from_json(relations) if relations else None - - - -class RemoteApplicationInfo(Type): - _toSchema = {'application_url': 'application-url', 'description': 'description', 'endpoints': 'endpoints', 'icon_url_path': 'icon-url-path', 'model_tag': 'model-tag', 'name': 'name', 'source_model_label': 'source-model-label'} - _toPy = {'application-url': 'application_url', 'description': 'description', 'endpoints': 'endpoints', 'icon-url-path': 'icon_url_path', 'model-tag': 'model_tag', 'name': 'name', 'source-model-label': 'source_model_label'} - def __init__(self, application_url=None, description=None, endpoints=None, icon_url_path=None, model_tag=None, name=None, source_model_label=None, **unknown_fields): - ''' - application_url : str - description : str - endpoints : typing.Sequence[~RemoteEndpoint] - icon_url_path : str - model_tag : str - name : str - source_model_label : str - ''' - self.application_url = application_url - self.description = description - self.endpoints = [RemoteEndpoint.from_json(o) for o in endpoints or []] - self.icon_url_path = icon_url_path - self.model_tag = model_tag - self.name = name - self.source_model_label = source_model_label - - - -class RemoteApplicationInfoResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : RemoteApplicationInfo - ''' - self.error = Error.from_json(error) if error else None - self.result = RemoteApplicationInfo.from_json(result) if result else None - - - -class RemoteApplicationInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RemoteApplicationInfoResult] - ''' - self.results = [RemoteApplicationInfoResult.from_json(o) for o in results or []] - - - -class RemoteApplicationResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : RemoteApplication - ''' - self.error = Error.from_json(error) if error else None - self.result = RemoteApplication.from_json(result) if result else None - - - -class RemoteApplicationResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RemoteApplicationResult] - ''' - self.results = [RemoteApplicationResult.from_json(o) for o in results or []] - - - -class RemoteApplicationStatus(Type): - _toSchema = {'application_name': 'application-name', 'application_url': 'application-url', 'endpoints': 'endpoints', 'err': 'err', 'life': 'life', 'relations': 'relations', 'status': 'status'} - _toPy = {'application-name': 'application_name', 'application-url': 'application_url', 'endpoints': 'endpoints', 'err': 'err', 'life': 'life', 'relations': 'relations', 'status': 'status'} - def __init__(self, application_name=None, application_url=None, endpoints=None, err=None, life=None, relations=None, status=None, **unknown_fields): - ''' - application_name : str - application_url : str - endpoints : typing.Sequence[~RemoteEndpoint] - err : typing.Mapping[str, typing.Any] - life : str - relations : typing.Sequence[str] - status : DetailedStatus - ''' - self.application_name = application_name - self.application_url = application_url - self.endpoints = [RemoteEndpoint.from_json(o) for o in endpoints or []] - self.err = err - self.life = life - self.relations = relations - self.status = DetailedStatus.from_json(status) if status else None - - - -class RemoteApplicationWatchResult(Type): - _toSchema = {'change': 'change', 'error': 'error', 'id_': 'id'} - _toPy = {'change': 'change', 'error': 'error', 'id': 'id_'} - def __init__(self, change=None, error=None, id_=None, **unknown_fields): - ''' - change : RemoteApplicationChange - error : Error - id_ : str - ''' - self.change = RemoteApplicationChange.from_json(change) if change else None - self.error = Error.from_json(error) if error else None - self.id_ = id_ - - - -class RemoteEndpoint(Type): - _toSchema = {'interface': 'interface', 'limit': 'limit', 'name': 'name', 'role': 'role', 'scope': 'scope'} - _toPy = {'interface': 'interface', 'limit': 'limit', 'name': 'name', 'role': 'role', 'scope': 'scope'} - def __init__(self, interface=None, limit=None, name=None, role=None, scope=None, **unknown_fields): - ''' - interface : str - limit : int - name : str - role : str - scope : str - ''' - self.interface = interface - self.limit = limit - self.name = name - self.role = role - self.scope = scope - - - -class RemoteEntityArg(Type): - _toSchema = {'macaroons': 'macaroons', 'relation_token': 'relation-token'} - _toPy = {'macaroons': 'macaroons', 'relation-token': 'relation_token'} - def __init__(self, macaroons=None, relation_token=None, **unknown_fields): - ''' - macaroons : typing.Sequence[~Macaroon] - relation_token : str - ''' - self.macaroons = [Macaroon.from_json(o) for o in macaroons or []] - self.relation_token = relation_token - - - -class RemoteEntityArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~RemoteEntityArg] - ''' - self.args = [RemoteEntityArg.from_json(o) for o in args or []] - - - -class RemoteEntityId(Type): - _toSchema = {'model_uuid': 'model-uuid', 'token': 'token'} - _toPy = {'model-uuid': 'model_uuid', 'token': 'token'} - def __init__(self, model_uuid=None, token=None, **unknown_fields): - ''' - model_uuid : str - token : str - ''' - self.model_uuid = model_uuid - self.token = token - - - -class RemoteEntityTokenArg(Type): - _toSchema = {'tag': 'tag', 'token': 'token'} - _toPy = {'tag': 'tag', 'token': 'token'} - def __init__(self, tag=None, token=None, **unknown_fields): - ''' - tag : str - token : str - ''' - self.tag = tag - self.token = token - - - -class RemoteEntityTokenArgs(Type): - _toSchema = {'args': 'Args'} - _toPy = {'Args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~RemoteEntityTokenArg] - ''' - self.args = [RemoteEntityTokenArg.from_json(o) for o in args or []] - - - -class RemoteRelation(Type): - _toSchema = {'application_name': 'application-name', 'endpoint': 'endpoint', 'id_': 'id', 'key': 'key', 'life': 'life', 'remote_application_name': 'remote-application-name', 'remote_endpoint_name': 'remote-endpoint-name', 'source_model_uuid': 'source-model-uuid', 'suspended': 'suspended'} - _toPy = {'application-name': 'application_name', 'endpoint': 'endpoint', 'id': 'id_', 'key': 'key', 'life': 'life', 'remote-application-name': 'remote_application_name', 'remote-endpoint-name': 'remote_endpoint_name', 'source-model-uuid': 'source_model_uuid', 'suspended': 'suspended'} - def __init__(self, application_name=None, endpoint=None, id_=None, key=None, life=None, remote_application_name=None, remote_endpoint_name=None, source_model_uuid=None, suspended=None, **unknown_fields): - ''' - application_name : str - endpoint : RemoteEndpoint - id_ : int - key : str - life : str - remote_application_name : str - remote_endpoint_name : str - source_model_uuid : str - suspended : bool - ''' - self.application_name = application_name - self.endpoint = RemoteEndpoint.from_json(endpoint) if endpoint else None - self.id_ = id_ - self.key = key - self.life = life - self.remote_application_name = remote_application_name - self.remote_endpoint_name = remote_endpoint_name - self.source_model_uuid = source_model_uuid - self.suspended = suspended - - - -class RemoteRelationChange(Type): - _toSchema = {'changed_units': 'changed-units', 'departed_units': 'departed-units', 'id_': 'id', 'life': 'life'} - _toPy = {'changed-units': 'changed_units', 'departed-units': 'departed_units', 'id': 'id_', 'life': 'life'} - def __init__(self, changed_units=None, departed_units=None, id_=None, life=None, **unknown_fields): - ''' - changed_units : typing.Mapping[str, ~RemoteRelationUnitChange] - departed_units : typing.Sequence[str] - id_ : int - life : str - ''' - self.changed_units = changed_units - self.departed_units = departed_units - self.id_ = id_ - self.life = life - - - -class RemoteRelationChangeEvent(Type): - _toSchema = {'application_token': 'application-token', 'changed_units': 'changed-units', 'departed_units': 'departed-units', 'force_cleanup': 'force-cleanup', 'life': 'life', 'macaroons': 'macaroons', 'relation_token': 'relation-token', 'suspended': 'suspended', 'suspended_reason': 'suspended-reason'} - _toPy = {'application-token': 'application_token', 'changed-units': 'changed_units', 'departed-units': 'departed_units', 'force-cleanup': 'force_cleanup', 'life': 'life', 'macaroons': 'macaroons', 'relation-token': 'relation_token', 'suspended': 'suspended', 'suspended-reason': 'suspended_reason'} - def __init__(self, application_token=None, changed_units=None, departed_units=None, force_cleanup=None, life=None, macaroons=None, relation_token=None, suspended=None, suspended_reason=None, **unknown_fields): - ''' - application_token : str - changed_units : typing.Sequence[~RemoteRelationUnitChange] - departed_units : typing.Sequence[int] - force_cleanup : bool - life : str - macaroons : typing.Sequence[~Macaroon] - relation_token : str - suspended : bool - suspended_reason : str - ''' - self.application_token = application_token - self.changed_units = [RemoteRelationUnitChange.from_json(o) for o in changed_units or []] - self.departed_units = departed_units - self.force_cleanup = force_cleanup - self.life = life - self.macaroons = [Macaroon.from_json(o) for o in macaroons or []] - self.relation_token = relation_token - self.suspended = suspended - self.suspended_reason = suspended_reason - - - -class RemoteRelationDetails(Type): - _toSchema = {'macaroon': 'macaroon', 'relation_token': 'relation-token'} - _toPy = {'macaroon': 'macaroon', 'relation-token': 'relation_token'} - def __init__(self, macaroon=None, relation_token=None, **unknown_fields): - ''' - macaroon : Macaroon - relation_token : str - ''' - self.macaroon = Macaroon.from_json(macaroon) if macaroon else None - self.relation_token = relation_token - - - -class RemoteRelationResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : RemoteRelation - ''' - self.error = Error.from_json(error) if error else None - self.result = RemoteRelation.from_json(result) if result else None - - - -class RemoteRelationResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RemoteRelationResult] - ''' - self.results = [RemoteRelationResult.from_json(o) for o in results or []] - - - -class RemoteRelationUnit(Type): - _toSchema = {'macaroons': 'macaroons', 'relation_token': 'relation-token', 'unit': 'unit'} - _toPy = {'macaroons': 'macaroons', 'relation-token': 'relation_token', 'unit': 'unit'} - def __init__(self, macaroons=None, relation_token=None, unit=None, **unknown_fields): - ''' - macaroons : typing.Sequence[~Macaroon] - relation_token : str - unit : str - ''' - self.macaroons = [Macaroon.from_json(o) for o in macaroons or []] - self.relation_token = relation_token - self.unit = unit - - - -class RemoteRelationUnitChange(Type): - _toSchema = {'settings': 'settings', 'unit_id': 'unit-id'} - _toPy = {'settings': 'settings', 'unit-id': 'unit_id'} - def __init__(self, settings=None, unit_id=None, **unknown_fields): - ''' - settings : typing.Mapping[str, typing.Any] - unit_id : RemoteEntityId - ''' - self.settings = settings - self.unit_id = RemoteEntityId.from_json(unit_id) if unit_id else None - - - -class RemoteRelationUnits(Type): - _toSchema = {'relation_units': 'relation-units'} - _toPy = {'relation-units': 'relation_units'} - def __init__(self, relation_units=None, **unknown_fields): - ''' - relation_units : typing.Sequence[~RemoteRelationUnit] - ''' - self.relation_units = [RemoteRelationUnit.from_json(o) for o in relation_units or []] - - - -class RemoteRelationsChange(Type): - _toSchema = {'changed': 'changed', 'initial': 'initial', 'removed': 'removed'} - _toPy = {'changed': 'changed', 'initial': 'initial', 'removed': 'removed'} - def __init__(self, changed=None, initial=None, removed=None, **unknown_fields): - ''' - changed : typing.Sequence[~RemoteRelationChange] - initial : bool - removed : typing.Sequence[int] - ''' - self.changed = [RemoteRelationChange.from_json(o) for o in changed or []] - self.initial = initial - self.removed = removed - - - -class RemoteRelationsChanges(Type): - _toSchema = {'changes': 'changes'} - _toPy = {'changes': 'changes'} - def __init__(self, changes=None, **unknown_fields): - ''' - changes : typing.Sequence[~RemoteRelationChangeEvent] - ''' - self.changes = [RemoteRelationChangeEvent.from_json(o) for o in changes or []] - - - -class RemoteRelationsWatchResult(Type): - _toSchema = {'change': 'change', 'error': 'error', 'remoterelationswatcherid': 'RemoteRelationsWatcherId'} - _toPy = {'RemoteRelationsWatcherId': 'remoterelationswatcherid', 'change': 'change', 'error': 'error'} - def __init__(self, remoterelationswatcherid=None, change=None, error=None, **unknown_fields): - ''' - remoterelationswatcherid : str - change : RemoteRelationsChange - error : Error - ''' - self.remoterelationswatcherid = remoterelationswatcherid - self.change = RemoteRelationsChange.from_json(change) if change else None - self.error = Error.from_json(error) if error else None - - - -class RemoteSpace(Type): - _toSchema = {'cloud_type': 'cloud-type', 'name': 'name', 'provider_attributes': 'provider-attributes', 'provider_id': 'provider-id', 'subnets': 'subnets'} - _toPy = {'cloud-type': 'cloud_type', 'name': 'name', 'provider-attributes': 'provider_attributes', 'provider-id': 'provider_id', 'subnets': 'subnets'} - def __init__(self, cloud_type=None, name=None, provider_attributes=None, provider_id=None, subnets=None, **unknown_fields): - ''' - cloud_type : str - name : str - provider_attributes : typing.Mapping[str, typing.Any] - provider_id : str - subnets : typing.Sequence[~Subnet] - ''' - self.cloud_type = cloud_type - self.name = name - self.provider_attributes = provider_attributes - self.provider_id = provider_id - self.subnets = [Subnet.from_json(o) for o in subnets or []] - - - -class RemoveBlocksArgs(Type): - _toSchema = {'all_': 'all'} - _toPy = {'all': 'all_'} - def __init__(self, all_=None, **unknown_fields): - ''' - all_ : bool - ''' - self.all_ = all_ - - - -class RemoveFilesystemParams(Type): - _toSchema = {'destroy': 'destroy', 'filesystem_id': 'filesystem-id', 'provider': 'provider'} - _toPy = {'destroy': 'destroy', 'filesystem-id': 'filesystem_id', 'provider': 'provider'} - def __init__(self, destroy=None, filesystem_id=None, provider=None, **unknown_fields): - ''' - destroy : bool - filesystem_id : str - provider : str - ''' - self.destroy = destroy - self.filesystem_id = filesystem_id - self.provider = provider - - - -class RemoveFilesystemParamsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : RemoveFilesystemParams - ''' - self.error = Error.from_json(error) if error else None - self.result = RemoveFilesystemParams.from_json(result) if result else None - - - -class RemoveFilesystemParamsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RemoveFilesystemParamsResult] - ''' - self.results = [RemoveFilesystemParamsResult.from_json(o) for o in results or []] - - - -class RemoveStorage(Type): - _toSchema = {'storage': 'storage'} - _toPy = {'storage': 'storage'} - def __init__(self, storage=None, **unknown_fields): - ''' - storage : typing.Sequence[~RemoveStorageInstance] - ''' - self.storage = [RemoveStorageInstance.from_json(o) for o in storage or []] - - - -class RemoveStorageInstance(Type): - _toSchema = {'destroy_attachments': 'destroy-attachments', 'destroy_storage': 'destroy-storage', 'tag': 'tag'} - _toPy = {'destroy-attachments': 'destroy_attachments', 'destroy-storage': 'destroy_storage', 'tag': 'tag'} - def __init__(self, destroy_attachments=None, destroy_storage=None, tag=None, **unknown_fields): - ''' - destroy_attachments : bool - destroy_storage : bool - tag : str - ''' - self.destroy_attachments = destroy_attachments - self.destroy_storage = destroy_storage - self.tag = tag - - - -class RemoveVolumeParams(Type): - _toSchema = {'destroy': 'destroy', 'provider': 'provider', 'volume_id': 'volume-id'} - _toPy = {'destroy': 'destroy', 'provider': 'provider', 'volume-id': 'volume_id'} - def __init__(self, destroy=None, provider=None, volume_id=None, **unknown_fields): - ''' - destroy : bool - provider : str - volume_id : str - ''' - self.destroy = destroy - self.provider = provider - self.volume_id = volume_id - - - -class RemoveVolumeParamsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : RemoveVolumeParams - ''' - self.error = Error.from_json(error) if error else None - self.result = RemoveVolumeParams.from_json(result) if result else None - - - -class RemoveVolumeParamsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RemoveVolumeParamsResult] - ''' - self.results = [RemoveVolumeParamsResult.from_json(o) for o in results or []] - - - -class ResolveCharmResult(Type): - _toSchema = {'error': 'error', 'url': 'url'} - _toPy = {'error': 'error', 'url': 'url'} - def __init__(self, error=None, url=None, **unknown_fields): - ''' - error : str - url : str - ''' - self.error = error - self.url = url - - - -class ResolveCharmResults(Type): - _toSchema = {'urls': 'urls'} - _toPy = {'urls': 'urls'} - def __init__(self, urls=None, **unknown_fields): - ''' - urls : typing.Sequence[~ResolveCharmResult] - ''' - self.urls = [ResolveCharmResult.from_json(o) for o in urls or []] - - - -class ResolveCharms(Type): - _toSchema = {'references': 'references'} - _toPy = {'references': 'references'} - def __init__(self, references=None, **unknown_fields): - ''' - references : typing.Sequence[str] - ''' - self.references = references - - - -class Resolved(Type): - _toSchema = {'retry': 'retry', 'unit_name': 'unit-name'} - _toPy = {'retry': 'retry', 'unit-name': 'unit_name'} - def __init__(self, retry=None, unit_name=None, **unknown_fields): - ''' - retry : bool - unit_name : str - ''' - self.retry = retry - self.unit_name = unit_name - - - -class ResolvedModeResult(Type): - _toSchema = {'error': 'error', 'mode': 'mode'} - _toPy = {'error': 'error', 'mode': 'mode'} - def __init__(self, error=None, mode=None, **unknown_fields): - ''' - error : Error - mode : str - ''' - self.error = Error.from_json(error) if error else None - self.mode = mode - - - -class ResolvedModeResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ResolvedModeResult] - ''' - self.results = [ResolvedModeResult.from_json(o) for o in results or []] - - - -class Resource(Type): - _toSchema = {'application': 'application', 'charmresource': 'CharmResource', 'id_': 'id', 'pending_id': 'pending-id', 'timestamp': 'timestamp', 'username': 'username'} - _toPy = {'CharmResource': 'charmresource', 'application': 'application', 'id': 'id_', 'pending-id': 'pending_id', 'timestamp': 'timestamp', 'username': 'username'} - def __init__(self, charmresource=None, application=None, id_=None, pending_id=None, timestamp=None, username=None, **unknown_fields): - ''' - charmresource : CharmResource - application : str - id_ : str - pending_id : str - timestamp : str - username : str - ''' - self.charmresource = CharmResource.from_json(charmresource) if charmresource else None - self.application = application - self.id_ = id_ - self.pending_id = pending_id - self.timestamp = timestamp - self.username = username - - - -class ResourceResult(Type): - _toSchema = {'errorresult': 'ErrorResult', 'resource': 'resource'} - _toPy = {'ErrorResult': 'errorresult', 'resource': 'resource'} - def __init__(self, errorresult=None, resource=None, **unknown_fields): - ''' - errorresult : ErrorResult - resource : Resource - ''' - self.errorresult = ErrorResult.from_json(errorresult) if errorresult else None - self.resource = Resource.from_json(resource) if resource else None - - - -class ResourcesResult(Type): - _toSchema = {'charm_store_resources': 'charm-store-resources', 'errorresult': 'ErrorResult', 'resources': 'resources', 'unit_resources': 'unit-resources'} - _toPy = {'ErrorResult': 'errorresult', 'charm-store-resources': 'charm_store_resources', 'resources': 'resources', 'unit-resources': 'unit_resources'} - def __init__(self, errorresult=None, charm_store_resources=None, resources=None, unit_resources=None, **unknown_fields): - ''' - errorresult : ErrorResult - charm_store_resources : typing.Sequence[~CharmResource] - resources : typing.Sequence[~Resource] - unit_resources : typing.Sequence[~UnitResources] - ''' - self.errorresult = ErrorResult.from_json(errorresult) if errorresult else None - self.charm_store_resources = [CharmResource.from_json(o) for o in charm_store_resources or []] - self.resources = [Resource.from_json(o) for o in resources or []] - self.unit_resources = [UnitResources.from_json(o) for o in unit_resources or []] - - - -class ResourcesResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ResourcesResult] - ''' - self.results = [ResourcesResult.from_json(o) for o in results or []] - - - -class RestoreArgs(Type): - _toSchema = {'backup_id': 'backup-id'} - _toPy = {'backup-id': 'backup_id'} - def __init__(self, backup_id=None, **unknown_fields): - ''' - backup_id : str - ''' - self.backup_id = backup_id - - - -class ResumeReplicationParams(Type): - _toSchema = {'members': 'members'} - _toPy = {'members': 'members'} - def __init__(self, members=None, **unknown_fields): - ''' - members : typing.Sequence[~Member] - ''' - self.members = [Member.from_json(o) for o in members or []] - - - -class RetryStrategy(Type): - _toSchema = {'jitter_retry_time': 'jitter-retry-time', 'max_retry_time': 'max-retry-time', 'min_retry_time': 'min-retry-time', 'retry_time_factor': 'retry-time-factor', 'should_retry': 'should-retry'} - _toPy = {'jitter-retry-time': 'jitter_retry_time', 'max-retry-time': 'max_retry_time', 'min-retry-time': 'min_retry_time', 'retry-time-factor': 'retry_time_factor', 'should-retry': 'should_retry'} - def __init__(self, jitter_retry_time=None, max_retry_time=None, min_retry_time=None, retry_time_factor=None, should_retry=None, **unknown_fields): - ''' - jitter_retry_time : bool - max_retry_time : int - min_retry_time : int - retry_time_factor : int - should_retry : bool - ''' - self.jitter_retry_time = jitter_retry_time - self.max_retry_time = max_retry_time - self.min_retry_time = min_retry_time - self.retry_time_factor = retry_time_factor - self.should_retry = should_retry - - - -class RetryStrategyResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : RetryStrategy - ''' - self.error = Error.from_json(error) if error else None - self.result = RetryStrategy.from_json(result) if result else None - - - -class RetryStrategyResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RetryStrategyResult] - ''' - self.results = [RetryStrategyResult.from_json(o) for o in results or []] - - - -class RevokeCredentialArg(Type): - _toSchema = {'force': 'force', 'tag': 'tag'} - _toPy = {'force': 'force', 'tag': 'tag'} - def __init__(self, force=None, tag=None, **unknown_fields): - ''' - force : bool - tag : str - ''' - self.force = force - self.tag = tag - - - -class RevokeCredentialArgs(Type): - _toSchema = {'credentials': 'credentials'} - _toPy = {'credentials': 'credentials'} - def __init__(self, credentials=None, **unknown_fields): - ''' - credentials : typing.Sequence[~RevokeCredentialArg] - ''' - self.credentials = [RevokeCredentialArg.from_json(o) for o in credentials or []] - - - -class RunParams(Type): - _toSchema = {'applications': 'applications', 'commands': 'commands', 'machines': 'machines', 'timeout': 'timeout', 'units': 'units'} - _toPy = {'applications': 'applications', 'commands': 'commands', 'machines': 'machines', 'timeout': 'timeout', 'units': 'units'} - def __init__(self, applications=None, commands=None, machines=None, timeout=None, units=None, **unknown_fields): - ''' - applications : typing.Sequence[str] - commands : str - machines : typing.Sequence[str] - timeout : int - units : typing.Sequence[str] - ''' - self.applications = applications - self.commands = commands - self.machines = machines - self.timeout = timeout - self.units = units - - - -class SSHAddressResult(Type): - _toSchema = {'address': 'address', 'error': 'error'} - _toPy = {'address': 'address', 'error': 'error'} - def __init__(self, address=None, error=None, **unknown_fields): - ''' - address : str - error : Error - ''' - self.address = address - self.error = Error.from_json(error) if error else None - - - -class SSHAddressResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~SSHAddressResult] - ''' - self.results = [SSHAddressResult.from_json(o) for o in results or []] - - - -class SSHAddressesResult(Type): - _toSchema = {'addresses': 'addresses', 'error': 'error'} - _toPy = {'addresses': 'addresses', 'error': 'error'} - def __init__(self, addresses=None, error=None, **unknown_fields): - ''' - addresses : typing.Sequence[str] - error : Error - ''' - self.addresses = addresses - self.error = Error.from_json(error) if error else None - - - -class SSHAddressesResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~SSHAddressesResult] - ''' - self.results = [SSHAddressesResult.from_json(o) for o in results or []] - - - -class SSHHostKeySet(Type): - _toSchema = {'entity_keys': 'entity-keys'} - _toPy = {'entity-keys': 'entity_keys'} - def __init__(self, entity_keys=None, **unknown_fields): - ''' - entity_keys : typing.Sequence[~SSHHostKeys] - ''' - self.entity_keys = [SSHHostKeys.from_json(o) for o in entity_keys or []] - - - -class SSHHostKeys(Type): - _toSchema = {'public_keys': 'public-keys', 'tag': 'tag'} - _toPy = {'public-keys': 'public_keys', 'tag': 'tag'} - def __init__(self, public_keys=None, tag=None, **unknown_fields): - ''' - public_keys : typing.Sequence[str] - tag : str - ''' - self.public_keys = public_keys - self.tag = tag - - - -class SSHProxyResult(Type): - _toSchema = {'use_proxy': 'use-proxy'} - _toPy = {'use-proxy': 'use_proxy'} - def __init__(self, use_proxy=None, **unknown_fields): - ''' - use_proxy : bool - ''' - self.use_proxy = use_proxy - - - -class SSHPublicKeysResult(Type): - _toSchema = {'error': 'error', 'public_keys': 'public-keys'} - _toPy = {'error': 'error', 'public-keys': 'public_keys'} - def __init__(self, error=None, public_keys=None, **unknown_fields): - ''' - error : Error - public_keys : typing.Sequence[str] - ''' - self.error = Error.from_json(error) if error else None - self.public_keys = public_keys - - - -class SSHPublicKeysResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~SSHPublicKeysResult] - ''' - self.results = [SSHPublicKeysResult.from_json(o) for o in results or []] - - - -class ScaleApplicationInfo(Type): - _toSchema = {'num_units': 'num-units'} - _toPy = {'num-units': 'num_units'} - def __init__(self, num_units=None, **unknown_fields): - ''' - num_units : int - ''' - self.num_units = num_units - - - -class ScaleApplicationParams(Type): - _toSchema = {'application_tag': 'application-tag', 'scale': 'scale', 'scale_change': 'scale-change'} - _toPy = {'application-tag': 'application_tag', 'scale': 'scale', 'scale-change': 'scale_change'} - def __init__(self, application_tag=None, scale=None, scale_change=None, **unknown_fields): - ''' - application_tag : str - scale : int - scale_change : int - ''' - self.application_tag = application_tag - self.scale = scale - self.scale_change = scale_change - - - -class ScaleApplicationResult(Type): - _toSchema = {'error': 'error', 'info': 'info'} - _toPy = {'error': 'error', 'info': 'info'} - def __init__(self, error=None, info=None, **unknown_fields): - ''' - error : Error - info : ScaleApplicationInfo - ''' - self.error = Error.from_json(error) if error else None - self.info = ScaleApplicationInfo.from_json(info) if info else None - - - -class ScaleApplicationResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ScaleApplicationResult] - ''' - self.results = [ScaleApplicationResult.from_json(o) for o in results or []] - - - -class ScaleApplicationsParams(Type): - _toSchema = {'applications': 'applications'} - _toPy = {'applications': 'applications'} - def __init__(self, applications=None, **unknown_fields): - ''' - applications : typing.Sequence[~ScaleApplicationParams] - ''' - self.applications = [ScaleApplicationParams.from_json(o) for o in applications or []] - - - -class SerializedModel(Type): - _toSchema = {'bytes_': 'bytes', 'charms': 'charms', 'tools': 'tools'} - _toPy = {'bytes': 'bytes_', 'charms': 'charms', 'tools': 'tools'} - def __init__(self, bytes_=None, charms=None, tools=None, **unknown_fields): - ''' - bytes_ : typing.Sequence[int] - charms : typing.Sequence[str] - tools : typing.Sequence[~SerializedModelTools] - ''' - self.bytes_ = bytes_ - self.charms = charms - self.tools = [SerializedModelTools.from_json(o) for o in tools or []] - - - -class SerializedModelResource(Type): - _toSchema = {'application': 'application', 'application_revision': 'application-revision', 'charmstore_revision': 'charmstore-revision', 'name': 'name', 'unit_revisions': 'unit-revisions'} - _toPy = {'application': 'application', 'application-revision': 'application_revision', 'charmstore-revision': 'charmstore_revision', 'name': 'name', 'unit-revisions': 'unit_revisions'} - def __init__(self, application=None, application_revision=None, charmstore_revision=None, name=None, unit_revisions=None, **unknown_fields): - ''' - application : str - application_revision : SerializedModelResourceRevision - charmstore_revision : SerializedModelResourceRevision - name : str - unit_revisions : typing.Mapping[str, ~SerializedModelResourceRevision] - ''' - self.application = application - self.application_revision = SerializedModelResourceRevision.from_json(application_revision) if application_revision else None - self.charmstore_revision = SerializedModelResourceRevision.from_json(charmstore_revision) if charmstore_revision else None - self.name = name - self.unit_revisions = unit_revisions - - - -class SerializedModelResourceRevision(Type): - _toSchema = {'description': 'description', 'fingerprint': 'fingerprint', 'origin': 'origin', 'path': 'path', 'revision': 'revision', 'size': 'size', 'timestamp': 'timestamp', 'type_': 'type', 'username': 'username'} - _toPy = {'description': 'description', 'fingerprint': 'fingerprint', 'origin': 'origin', 'path': 'path', 'revision': 'revision', 'size': 'size', 'timestamp': 'timestamp', 'type': 'type_', 'username': 'username'} - def __init__(self, description=None, fingerprint=None, origin=None, path=None, revision=None, size=None, timestamp=None, type_=None, username=None, **unknown_fields): - ''' - description : str - fingerprint : str - origin : str - path : str - revision : int - size : int - timestamp : str - type_ : str - username : str - ''' - self.description = description - self.fingerprint = fingerprint - self.origin = origin - self.path = path - self.revision = revision - self.size = size - self.timestamp = timestamp - self.type_ = type_ - self.username = username - - - -class SerializedModelTools(Type): - _toSchema = {'uri': 'uri', 'version': 'version'} - _toPy = {'uri': 'uri', 'version': 'version'} - def __init__(self, uri=None, version=None, **unknown_fields): - ''' - uri : str - version : str - ''' - self.uri = uri - self.version = version - - - -class SetConstraints(Type): - _toSchema = {'application': 'application', 'constraints': 'constraints'} - _toPy = {'application': 'application', 'constraints': 'constraints'} - def __init__(self, application=None, constraints=None, **unknown_fields): - ''' - application : str - constraints : Value - ''' - self.application = application - self.constraints = Value.from_json(constraints) if constraints else None - - - -class SetExternalControllerInfoParams(Type): - _toSchema = {'info': 'info'} - _toPy = {'info': 'info'} - def __init__(self, info=None, **unknown_fields): - ''' - info : ExternalControllerInfo - ''' - self.info = ExternalControllerInfo.from_json(info) if info else None - - - -class SetExternalControllersInfoParams(Type): - _toSchema = {'controllers': 'controllers'} - _toPy = {'controllers': 'controllers'} - def __init__(self, controllers=None, **unknown_fields): - ''' - controllers : typing.Sequence[~SetExternalControllerInfoParams] - ''' - self.controllers = [SetExternalControllerInfoParams.from_json(o) for o in controllers or []] - - - -class SetMachineBlockDevices(Type): - _toSchema = {'machine_block_devices': 'machine-block-devices'} - _toPy = {'machine-block-devices': 'machine_block_devices'} - def __init__(self, machine_block_devices=None, **unknown_fields): - ''' - machine_block_devices : typing.Sequence[~MachineBlockDevices] - ''' - self.machine_block_devices = [MachineBlockDevices.from_json(o) for o in machine_block_devices or []] - - - -class SetMachineNetworkConfig(Type): - _toSchema = {'config': 'config', 'tag': 'tag'} - _toPy = {'config': 'config', 'tag': 'tag'} - def __init__(self, config=None, tag=None, **unknown_fields): - ''' - config : typing.Sequence[~NetworkConfig] - tag : str - ''' - self.config = [NetworkConfig.from_json(o) for o in config or []] - self.tag = tag - - - -class SetMachinesAddresses(Type): - _toSchema = {'machine_addresses': 'machine-addresses'} - _toPy = {'machine-addresses': 'machine_addresses'} - def __init__(self, machine_addresses=None, **unknown_fields): - ''' - machine_addresses : typing.Sequence[~MachineAddresses] - ''' - self.machine_addresses = [MachineAddresses.from_json(o) for o in machine_addresses or []] - - - -class SetMigrationPhaseArgs(Type): - _toSchema = {'phase': 'phase'} - _toPy = {'phase': 'phase'} - def __init__(self, phase=None, **unknown_fields): - ''' - phase : str - ''' - self.phase = phase - - - -class SetMigrationStatusMessageArgs(Type): - _toSchema = {'message': 'message'} - _toPy = {'message': 'message'} - def __init__(self, message=None, **unknown_fields): - ''' - message : str - ''' - self.message = message - - - -class SetModelAgentVersion(Type): - _toSchema = {'version': 'version'} - _toPy = {'version': 'version'} - def __init__(self, version=None, **unknown_fields): - ''' - version : Number - ''' - self.version = Number.from_json(version) if version else None - - - -class SetModelDefaults(Type): - _toSchema = {'config': 'config'} - _toPy = {'config': 'config'} - def __init__(self, config=None, **unknown_fields): - ''' - config : typing.Sequence[~ModelDefaultValues] - ''' - self.config = [ModelDefaultValues.from_json(o) for o in config or []] - - - -class SetModelEnvironVersion(Type): - _toSchema = {'model_tag': 'model-tag', 'version': 'version'} - _toPy = {'model-tag': 'model_tag', 'version': 'version'} - def __init__(self, model_tag=None, version=None, **unknown_fields): - ''' - model_tag : str - version : int - ''' - self.model_tag = model_tag - self.version = version - - - -class SetModelEnvironVersions(Type): - _toSchema = {'models': 'models'} - _toPy = {'models': 'models'} - def __init__(self, models=None, **unknown_fields): - ''' - models : typing.Sequence[~SetModelEnvironVersion] - ''' - self.models = [SetModelEnvironVersion.from_json(o) for o in models or []] - - - -class SetPayloadStatusArg(Type): - _toSchema = {'entity': 'Entity', 'status': 'status'} - _toPy = {'Entity': 'entity', 'status': 'status'} - def __init__(self, entity=None, status=None, **unknown_fields): - ''' - entity : Entity - status : str - ''' - self.entity = Entity.from_json(entity) if entity else None - self.status = status - - - -class SetPayloadStatusArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~SetPayloadStatusArg] - ''' - self.args = [SetPayloadStatusArg.from_json(o) for o in args or []] - - - -class SetPodSpecParams(Type): - _toSchema = {'specs': 'specs'} - _toPy = {'specs': 'specs'} - def __init__(self, specs=None, **unknown_fields): - ''' - specs : typing.Sequence[~EntityString] - ''' - self.specs = [EntityString.from_json(o) for o in specs or []] - - - -class SetProfileArg(Type): - _toSchema = {'entity': 'entity', 'profiles': 'profiles'} - _toPy = {'entity': 'entity', 'profiles': 'profiles'} - def __init__(self, entity=None, profiles=None, **unknown_fields): - ''' - entity : Entity - profiles : typing.Sequence[str] - ''' - self.entity = Entity.from_json(entity) if entity else None - self.profiles = profiles - - - -class SetProfileArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~SetProfileArg] - ''' - self.args = [SetProfileArg.from_json(o) for o in args or []] - - - -class SetProfileUpgradeCompleteArg(Type): - _toSchema = {'entity': 'entity', 'message': 'message'} - _toPy = {'entity': 'entity', 'message': 'message'} - def __init__(self, entity=None, message=None, **unknown_fields): - ''' - entity : Entity - message : str - ''' - self.entity = Entity.from_json(entity) if entity else None - self.message = message - - - -class SetProfileUpgradeCompleteArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~SetProfileUpgradeCompleteArg] - ''' - self.args = [SetProfileUpgradeCompleteArg.from_json(o) for o in args or []] - - - -class SetStatus(Type): - _toSchema = {'entities': 'entities'} - _toPy = {'entities': 'entities'} - def __init__(self, entities=None, **unknown_fields): - ''' - entities : typing.Sequence[~EntityStatusArgs] - ''' - self.entities = [EntityStatusArgs.from_json(o) for o in entities or []] - - - -class SetStatusArg(Type): - _toSchema = {'entity': 'Entity', 'status': 'status'} - _toPy = {'Entity': 'entity', 'status': 'status'} - def __init__(self, entity=None, status=None, **unknown_fields): - ''' - entity : Entity - status : str - ''' - self.entity = Entity.from_json(entity) if entity else None - self.status = status - - - -class SetStatusArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~SetStatusArg] - ''' - self.args = [SetStatusArg.from_json(o) for o in args or []] - - - -class Settings(Type): - _toSchema = {'ftp': 'Ftp', 'http': 'Http', 'https': 'Https', 'noproxy': 'NoProxy'} - _toPy = {'Ftp': 'ftp', 'Http': 'http', 'Https': 'https', 'NoProxy': 'noproxy'} - def __init__(self, ftp=None, http=None, https=None, noproxy=None, **unknown_fields): - ''' - ftp : str - http : str - https : str - noproxy : str - ''' - self.ftp = ftp - self.http = http - self.https = https - self.noproxy = noproxy - - - -class SettingsResult(Type): - _toSchema = {'error': 'error', 'settings': 'settings'} - _toPy = {'error': 'error', 'settings': 'settings'} - def __init__(self, error=None, settings=None, **unknown_fields): - ''' - error : Error - settings : typing.Mapping[str, str] - ''' - self.error = Error.from_json(error) if error else None - self.settings = settings - - - -class SettingsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~SettingsResult] - ''' - self.results = [SettingsResult.from_json(o) for o in results or []] - - - -class SingularClaim(Type): - _toSchema = {'controller_tag': 'controller-tag', 'duration': 'duration', 'model_tag': 'model-tag'} - _toPy = {'controller-tag': 'controller_tag', 'duration': 'duration', 'model-tag': 'model_tag'} - def __init__(self, controller_tag=None, duration=None, model_tag=None, **unknown_fields): - ''' - controller_tag : str - duration : int - model_tag : str - ''' - self.controller_tag = controller_tag - self.duration = duration - self.model_tag = model_tag - - - -class SingularClaims(Type): - _toSchema = {'claims': 'claims'} - _toPy = {'claims': 'claims'} - def __init__(self, claims=None, **unknown_fields): - ''' - claims : typing.Sequence[~SingularClaim] - ''' - self.claims = [SingularClaim.from_json(o) for o in claims or []] - - - -class Space(Type): - _toSchema = {'error': 'error', 'name': 'name', 'subnets': 'subnets'} - _toPy = {'error': 'error', 'name': 'name', 'subnets': 'subnets'} - def __init__(self, error=None, name=None, subnets=None, **unknown_fields): - ''' - error : Error - name : str - subnets : typing.Sequence[~Subnet] - ''' - self.error = Error.from_json(error) if error else None - self.name = name - self.subnets = [Subnet.from_json(o) for o in subnets or []] - - - -class SpaceResult(Type): - _toSchema = {'error': 'error', 'tag': 'tag'} - _toPy = {'error': 'error', 'tag': 'tag'} - def __init__(self, error=None, tag=None, **unknown_fields): - ''' - error : Error - tag : str - ''' - self.error = Error.from_json(error) if error else None - self.tag = tag - - - -class SpaceResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~SpaceResult] - ''' - self.results = [SpaceResult.from_json(o) for o in results or []] - - - -class StateServingInfo(Type): - _toSchema = {'api_port': 'api-port', 'ca_private_key': 'ca-private-key', 'cert': 'cert', 'private_key': 'private-key', 'shared_secret': 'shared-secret', 'state_port': 'state-port', 'system_identity': 'system-identity'} - _toPy = {'api-port': 'api_port', 'ca-private-key': 'ca_private_key', 'cert': 'cert', 'private-key': 'private_key', 'shared-secret': 'shared_secret', 'state-port': 'state_port', 'system-identity': 'system_identity'} - def __init__(self, api_port=None, ca_private_key=None, cert=None, private_key=None, shared_secret=None, state_port=None, system_identity=None, **unknown_fields): - ''' - api_port : int - ca_private_key : str - cert : str - private_key : str - shared_secret : str - state_port : int - system_identity : str - ''' - self.api_port = api_port - self.ca_private_key = ca_private_key - self.cert = cert - self.private_key = private_key - self.shared_secret = shared_secret - self.state_port = state_port - self.system_identity = system_identity - - - -class StatusHistoryFilter(Type): - _toSchema = {'date': 'date', 'delta': 'delta', 'size': 'size'} - _toPy = {'date': 'date', 'delta': 'delta', 'size': 'size'} - def __init__(self, date=None, delta=None, size=None, **unknown_fields): - ''' - date : str - delta : int - size : int - ''' - self.date = date - self.delta = delta - self.size = size - - - -class StatusHistoryPruneArgs(Type): - _toSchema = {'max_history_mb': 'max-history-mb', 'max_history_time': 'max-history-time'} - _toPy = {'max-history-mb': 'max_history_mb', 'max-history-time': 'max_history_time'} - def __init__(self, max_history_mb=None, max_history_time=None, **unknown_fields): - ''' - max_history_mb : int - max_history_time : int - ''' - self.max_history_mb = max_history_mb - self.max_history_time = max_history_time - - - -class StatusHistoryRequest(Type): - _toSchema = {'filter_': 'filter', 'historykind': 'historyKind', 'size': 'size', 'tag': 'tag'} - _toPy = {'filter': 'filter_', 'historyKind': 'historykind', 'size': 'size', 'tag': 'tag'} - def __init__(self, filter_=None, historykind=None, size=None, tag=None, **unknown_fields): - ''' - filter_ : StatusHistoryFilter - historykind : str - size : int - tag : str - ''' - self.filter_ = StatusHistoryFilter.from_json(filter_) if filter_ else None - self.historykind = historykind - self.size = size - self.tag = tag - - - -class StatusHistoryRequests(Type): - _toSchema = {'requests': 'requests'} - _toPy = {'requests': 'requests'} - def __init__(self, requests=None, **unknown_fields): - ''' - requests : typing.Sequence[~StatusHistoryRequest] - ''' - self.requests = [StatusHistoryRequest.from_json(o) for o in requests or []] - - - -class StatusHistoryResult(Type): - _toSchema = {'error': 'error', 'history': 'history'} - _toPy = {'error': 'error', 'history': 'history'} - def __init__(self, error=None, history=None, **unknown_fields): - ''' - error : Error - history : History - ''' - self.error = Error.from_json(error) if error else None - self.history = History.from_json(history) if history else None - - - -class StatusHistoryResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~StatusHistoryResult] - ''' - self.results = [StatusHistoryResult.from_json(o) for o in results or []] - - - -class StatusParams(Type): - _toSchema = {'patterns': 'patterns'} - _toPy = {'patterns': 'patterns'} - def __init__(self, patterns=None, **unknown_fields): - ''' - patterns : typing.Sequence[str] - ''' - self.patterns = patterns - - - -class StatusResult(Type): - _toSchema = {'data': 'data', 'error': 'error', 'id_': 'id', 'info': 'info', 'life': 'life', 'since': 'since', 'status': 'status'} - _toPy = {'data': 'data', 'error': 'error', 'id': 'id_', 'info': 'info', 'life': 'life', 'since': 'since', 'status': 'status'} - def __init__(self, data=None, error=None, id_=None, info=None, life=None, since=None, status=None, **unknown_fields): - ''' - data : typing.Mapping[str, typing.Any] - error : Error - id_ : str - info : str - life : str - since : str - status : str - ''' - self.data = data - self.error = Error.from_json(error) if error else None - self.id_ = id_ - self.info = info - self.life = life - self.since = since - self.status = status - - - -class StatusResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~StatusResult] - ''' - self.results = [StatusResult.from_json(o) for o in results or []] - - - -class StorageAddParams(Type): - _toSchema = {'name': 'name', 'storage': 'storage', 'unit': 'unit'} - _toPy = {'name': 'name', 'storage': 'storage', 'unit': 'unit'} - def __init__(self, name=None, storage=None, unit=None, **unknown_fields): - ''' - name : str - storage : StorageConstraints - unit : str - ''' - self.name = name - self.storage = StorageConstraints.from_json(storage) if storage else None - self.unit = unit - - - -class StorageAttachment(Type): - _toSchema = {'kind': 'kind', 'life': 'life', 'location': 'location', 'owner_tag': 'owner-tag', 'storage_tag': 'storage-tag', 'unit_tag': 'unit-tag'} - _toPy = {'kind': 'kind', 'life': 'life', 'location': 'location', 'owner-tag': 'owner_tag', 'storage-tag': 'storage_tag', 'unit-tag': 'unit_tag'} - def __init__(self, kind=None, life=None, location=None, owner_tag=None, storage_tag=None, unit_tag=None, **unknown_fields): - ''' - kind : int - life : str - location : str - owner_tag : str - storage_tag : str - unit_tag : str - ''' - self.kind = kind - self.life = life - self.location = location - self.owner_tag = owner_tag - self.storage_tag = storage_tag - self.unit_tag = unit_tag - - - -class StorageAttachmentDetails(Type): - _toSchema = {'location': 'location', 'machine_tag': 'machine-tag', 'storage_tag': 'storage-tag', 'unit_tag': 'unit-tag'} - _toPy = {'location': 'location', 'machine-tag': 'machine_tag', 'storage-tag': 'storage_tag', 'unit-tag': 'unit_tag'} - def __init__(self, location=None, machine_tag=None, storage_tag=None, unit_tag=None, **unknown_fields): - ''' - location : str - machine_tag : str - storage_tag : str - unit_tag : str - ''' - self.location = location - self.machine_tag = machine_tag - self.storage_tag = storage_tag - self.unit_tag = unit_tag - - - -class StorageAttachmentId(Type): - _toSchema = {'storage_tag': 'storage-tag', 'unit_tag': 'unit-tag'} - _toPy = {'storage-tag': 'storage_tag', 'unit-tag': 'unit_tag'} - def __init__(self, storage_tag=None, unit_tag=None, **unknown_fields): - ''' - storage_tag : str - unit_tag : str - ''' - self.storage_tag = storage_tag - self.unit_tag = unit_tag - - - -class StorageAttachmentIds(Type): - _toSchema = {'ids': 'ids'} - _toPy = {'ids': 'ids'} - def __init__(self, ids=None, **unknown_fields): - ''' - ids : typing.Sequence[~StorageAttachmentId] - ''' - self.ids = [StorageAttachmentId.from_json(o) for o in ids or []] - - - -class StorageAttachmentIdsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : StorageAttachmentIds - ''' - self.error = Error.from_json(error) if error else None - self.result = StorageAttachmentIds.from_json(result) if result else None - - - -class StorageAttachmentIdsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~StorageAttachmentIdsResult] - ''' - self.results = [StorageAttachmentIdsResult.from_json(o) for o in results or []] - - - -class StorageAttachmentResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : StorageAttachment - ''' - self.error = Error.from_json(error) if error else None - self.result = StorageAttachment.from_json(result) if result else None - - - -class StorageAttachmentResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~StorageAttachmentResult] - ''' - self.results = [StorageAttachmentResult.from_json(o) for o in results or []] - - - -class StorageConstraints(Type): - _toSchema = {'count': 'count', 'pool': 'pool', 'size': 'size'} - _toPy = {'count': 'count', 'pool': 'pool', 'size': 'size'} - def __init__(self, count=None, pool=None, size=None, **unknown_fields): - ''' - count : int - pool : str - size : int - ''' - self.count = count - self.pool = pool - self.size = size - - - -class StorageDetails(Type): - _toSchema = {'attachments': 'attachments', 'kind': 'kind', 'owner_tag': 'owner-tag', 'persistent': 'persistent', 'status': 'status', 'storage_tag': 'storage-tag'} - _toPy = {'attachments': 'attachments', 'kind': 'kind', 'owner-tag': 'owner_tag', 'persistent': 'persistent', 'status': 'status', 'storage-tag': 'storage_tag'} - def __init__(self, attachments=None, kind=None, owner_tag=None, persistent=None, status=None, storage_tag=None, **unknown_fields): - ''' - attachments : typing.Mapping[str, ~StorageAttachmentDetails] - kind : int - owner_tag : str - persistent : bool - status : EntityStatus - storage_tag : str - ''' - self.attachments = attachments - self.kind = kind - self.owner_tag = owner_tag - self.persistent = persistent - self.status = EntityStatus.from_json(status) if status else None - self.storage_tag = storage_tag - - - -class StorageDetailsListResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : typing.Sequence[~StorageDetails] - ''' - self.error = Error.from_json(error) if error else None - self.result = [StorageDetails.from_json(o) for o in result or []] - - - -class StorageDetailsListResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~StorageDetailsListResult] - ''' - self.results = [StorageDetailsListResult.from_json(o) for o in results or []] - - - -class StorageDetailsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : StorageDetails - ''' - self.error = Error.from_json(error) if error else None - self.result = StorageDetails.from_json(result) if result else None - - - -class StorageDetailsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~StorageDetailsResult] - ''' - self.results = [StorageDetailsResult.from_json(o) for o in results or []] - - - -class StorageFilter(Type): - _toSchema = {} - _toPy = {} - def __init__(self, **unknown_fields): - ''' - - ''' - pass - - - -class StorageFilters(Type): - _toSchema = {'filters': 'filters'} - _toPy = {'filters': 'filters'} - def __init__(self, filters=None, **unknown_fields): - ''' - filters : typing.Sequence[~StorageFilter] - ''' - self.filters = [StorageFilter.from_json(o) for o in filters or []] - - - -class StoragePool(Type): - _toSchema = {'attrs': 'attrs', 'name': 'name', 'provider': 'provider'} - _toPy = {'attrs': 'attrs', 'name': 'name', 'provider': 'provider'} - def __init__(self, attrs=None, name=None, provider=None, **unknown_fields): - ''' - attrs : typing.Mapping[str, typing.Any] - name : str - provider : str - ''' - self.attrs = attrs - self.name = name - self.provider = provider - - - -class StoragePoolFilter(Type): - _toSchema = {'names': 'names', 'providers': 'providers'} - _toPy = {'names': 'names', 'providers': 'providers'} - def __init__(self, names=None, providers=None, **unknown_fields): - ''' - names : typing.Sequence[str] - providers : typing.Sequence[str] - ''' - self.names = names - self.providers = providers - - - -class StoragePoolFilters(Type): - _toSchema = {'filters': 'filters'} - _toPy = {'filters': 'filters'} - def __init__(self, filters=None, **unknown_fields): - ''' - filters : typing.Sequence[~StoragePoolFilter] - ''' - self.filters = [StoragePoolFilter.from_json(o) for o in filters or []] - - - -class StoragePoolsResult(Type): - _toSchema = {'error': 'error', 'storage_pools': 'storage-pools'} - _toPy = {'error': 'error', 'storage-pools': 'storage_pools'} - def __init__(self, error=None, storage_pools=None, **unknown_fields): - ''' - error : Error - storage_pools : typing.Sequence[~StoragePool] - ''' - self.error = Error.from_json(error) if error else None - self.storage_pools = [StoragePool.from_json(o) for o in storage_pools or []] - - - -class StoragePoolsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~StoragePoolsResult] - ''' - self.results = [StoragePoolsResult.from_json(o) for o in results or []] - - - -class StoragesAddParams(Type): - _toSchema = {'storages': 'storages'} - _toPy = {'storages': 'storages'} - def __init__(self, storages=None, **unknown_fields): - ''' - storages : typing.Sequence[~StorageAddParams] - ''' - self.storages = [StorageAddParams.from_json(o) for o in storages or []] - - - -class StringBoolResult(Type): - _toSchema = {'error': 'error', 'ok': 'ok', 'result': 'result'} - _toPy = {'error': 'error', 'ok': 'ok', 'result': 'result'} - def __init__(self, error=None, ok=None, result=None, **unknown_fields): - ''' - error : Error - ok : bool - result : str - ''' - self.error = Error.from_json(error) if error else None - self.ok = ok - self.result = result - - - -class StringBoolResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~StringBoolResult] - ''' - self.results = [StringBoolResult.from_json(o) for o in results or []] - - - -class StringResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : str - ''' - self.error = Error.from_json(error) if error else None - self.result = result - - - -class StringResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~StringResult] - ''' - self.results = [StringResult.from_json(o) for o in results or []] - - - -class StringsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : typing.Sequence[str] - ''' - self.error = Error.from_json(error) if error else None - self.result = result - - - -class StringsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~StringsResult] - ''' - self.results = [StringsResult.from_json(o) for o in results or []] - - - -class StringsWatchResult(Type): - _toSchema = {'changes': 'changes', 'error': 'error', 'watcher_id': 'watcher-id'} - _toPy = {'changes': 'changes', 'error': 'error', 'watcher-id': 'watcher_id'} - def __init__(self, changes=None, error=None, watcher_id=None, **unknown_fields): - ''' - changes : typing.Sequence[str] - error : Error - watcher_id : str - ''' - self.changes = changes - self.error = Error.from_json(error) if error else None - self.watcher_id = watcher_id - - - -class StringsWatchResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~StringsWatchResult] - ''' - self.results = [StringsWatchResult.from_json(o) for o in results or []] - - - -class Subnet(Type): - _toSchema = {'cidr': 'cidr', 'life': 'life', 'provider_id': 'provider-id', 'space_tag': 'space-tag', 'status': 'status', 'vlan_tag': 'vlan-tag', 'zones': 'zones'} - _toPy = {'cidr': 'cidr', 'life': 'life', 'provider-id': 'provider_id', 'space-tag': 'space_tag', 'status': 'status', 'vlan-tag': 'vlan_tag', 'zones': 'zones'} - def __init__(self, cidr=None, life=None, provider_id=None, space_tag=None, status=None, vlan_tag=None, zones=None, **unknown_fields): - ''' - cidr : str - life : str - provider_id : str - space_tag : str - status : str - vlan_tag : int - zones : typing.Sequence[str] - ''' - self.cidr = cidr - self.life = life - self.provider_id = provider_id - self.space_tag = space_tag - self.status = status - self.vlan_tag = vlan_tag - self.zones = zones - - - -class SubnetsFilters(Type): - _toSchema = {'space_tag': 'space-tag', 'zone': 'zone'} - _toPy = {'space-tag': 'space_tag', 'zone': 'zone'} - def __init__(self, space_tag=None, zone=None, **unknown_fields): - ''' - space_tag : str - zone : str - ''' - self.space_tag = space_tag - self.zone = zone - - - -class TaggedCredential(Type): - _toSchema = {'credential': 'credential', 'tag': 'tag'} - _toPy = {'credential': 'credential', 'tag': 'tag'} - def __init__(self, credential=None, tag=None, **unknown_fields): - ''' - credential : CloudCredential - tag : str - ''' - self.credential = CloudCredential.from_json(credential) if credential else None - self.tag = tag - - - -class TaggedCredentials(Type): - _toSchema = {'credentials': 'credentials'} - _toPy = {'credentials': 'credentials'} - def __init__(self, credentials=None, **unknown_fields): - ''' - credentials : typing.Sequence[~TaggedCredential] - ''' - self.credentials = [TaggedCredential.from_json(o) for o in credentials or []] - - - -class TokenResult(Type): - _toSchema = {'error': 'error', 'token': 'token'} - _toPy = {'error': 'error', 'token': 'token'} - def __init__(self, error=None, token=None, **unknown_fields): - ''' - error : Error - token : str - ''' - self.error = Error.from_json(error) if error else None - self.token = token - - - -class TokenResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~TokenResult] - ''' - self.results = [TokenResult.from_json(o) for o in results or []] - - - -class Tools(Type): - _toSchema = {'sha256': 'sha256', 'size': 'size', 'url': 'url', 'version': 'version'} - _toPy = {'sha256': 'sha256', 'size': 'size', 'url': 'url', 'version': 'version'} - def __init__(self, sha256=None, size=None, url=None, version=None, **unknown_fields): - ''' - sha256 : str - size : int - url : str - version : Binary - ''' - self.sha256 = sha256 - self.size = size - self.url = url - self.version = Binary.from_json(version) if version else None - - - -class ToolsResult(Type): - _toSchema = {'disable_ssl_hostname_verification': 'disable-ssl-hostname-verification', 'error': 'error', 'tools': 'tools'} - _toPy = {'disable-ssl-hostname-verification': 'disable_ssl_hostname_verification', 'error': 'error', 'tools': 'tools'} - def __init__(self, disable_ssl_hostname_verification=None, error=None, tools=None, **unknown_fields): - ''' - disable_ssl_hostname_verification : bool - error : Error - tools : typing.Sequence[~Tools] - ''' - self.disable_ssl_hostname_verification = disable_ssl_hostname_verification - self.error = Error.from_json(error) if error else None - self.tools = [Tools.from_json(o) for o in tools or []] - - - -class ToolsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ToolsResult] - ''' - self.results = [ToolsResult.from_json(o) for o in results or []] - - - -class TrackArgs(Type): - _toSchema = {'payloads': 'payloads'} - _toPy = {'payloads': 'payloads'} - def __init__(self, payloads=None, **unknown_fields): - ''' - payloads : typing.Sequence[~Payload] - ''' - self.payloads = [Payload.from_json(o) for o in payloads or []] - - - -class TrackPayloadArgs(Type): - _toSchema = {'payloads': 'payloads'} - _toPy = {'payloads': 'payloads'} - def __init__(self, payloads=None, **unknown_fields): - ''' - payloads : typing.Sequence[~Payload] - ''' - self.payloads = [Payload.from_json(o) for o in payloads or []] - - - -class UndertakerModelInfo(Type): - _toSchema = {'global_name': 'global-name', 'is_system': 'is-system', 'life': 'life', 'name': 'name', 'uuid': 'uuid'} - _toPy = {'global-name': 'global_name', 'is-system': 'is_system', 'life': 'life', 'name': 'name', 'uuid': 'uuid'} - def __init__(self, global_name=None, is_system=None, life=None, name=None, uuid=None, **unknown_fields): - ''' - global_name : str - is_system : bool - life : str - name : str - uuid : str - ''' - self.global_name = global_name - self.is_system = is_system - self.life = life - self.name = name - self.uuid = uuid - - - -class UndertakerModelInfoResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : UndertakerModelInfo - ''' - self.error = Error.from_json(error) if error else None - self.result = UndertakerModelInfo.from_json(result) if result else None - - - -class UnitNetworkConfig(Type): - _toSchema = {'binding_name': 'binding-name', 'unit_tag': 'unit-tag'} - _toPy = {'binding-name': 'binding_name', 'unit-tag': 'unit_tag'} - def __init__(self, binding_name=None, unit_tag=None, **unknown_fields): - ''' - binding_name : str - unit_tag : str - ''' - self.binding_name = binding_name - self.unit_tag = unit_tag - - - -class UnitNetworkConfigResult(Type): - _toSchema = {'error': 'error', 'info': 'info'} - _toPy = {'error': 'error', 'info': 'info'} - def __init__(self, error=None, info=None, **unknown_fields): - ''' - error : Error - info : typing.Sequence[~NetworkConfig] - ''' - self.error = Error.from_json(error) if error else None - self.info = [NetworkConfig.from_json(o) for o in info or []] - - - -class UnitNetworkConfigResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~UnitNetworkConfigResult] - ''' - self.results = [UnitNetworkConfigResult.from_json(o) for o in results or []] - - - -class UnitRefreshResult(Type): - _toSchema = {'error': 'Error', 'life': 'Life', 'resolved': 'Resolved'} - _toPy = {'Error': 'error', 'Life': 'life', 'Resolved': 'resolved'} - def __init__(self, error=None, life=None, resolved=None, **unknown_fields): - ''' - error : Error - life : str - resolved : str - ''' - self.error = Error.from_json(error) if error else None - self.life = life - self.resolved = resolved - - - -class UnitRefreshResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~UnitRefreshResult] - ''' - self.results = [UnitRefreshResult.from_json(o) for o in results or []] - - - -class UnitResourceResult(Type): - _toSchema = {'errorresult': 'ErrorResult', 'resource': 'resource'} - _toPy = {'ErrorResult': 'errorresult', 'resource': 'resource'} - def __init__(self, errorresult=None, resource=None, **unknown_fields): - ''' - errorresult : ErrorResult - resource : Resource - ''' - self.errorresult = ErrorResult.from_json(errorresult) if errorresult else None - self.resource = Resource.from_json(resource) if resource else None - - - -class UnitResources(Type): - _toSchema = {'download_progress': 'download-progress', 'entity': 'Entity', 'resources': 'resources'} - _toPy = {'Entity': 'entity', 'download-progress': 'download_progress', 'resources': 'resources'} - def __init__(self, entity=None, download_progress=None, resources=None, **unknown_fields): - ''' - entity : Entity - download_progress : typing.Mapping[str, int] - resources : typing.Sequence[~Resource] - ''' - self.entity = Entity.from_json(entity) if entity else None - self.download_progress = download_progress - self.resources = [Resource.from_json(o) for o in resources or []] - - - -class UnitResourcesResult(Type): - _toSchema = {'errorresult': 'ErrorResult', 'resources': 'resources'} - _toPy = {'ErrorResult': 'errorresult', 'resources': 'resources'} - def __init__(self, errorresult=None, resources=None, **unknown_fields): - ''' - errorresult : ErrorResult - resources : typing.Sequence[~UnitResourceResult] - ''' - self.errorresult = ErrorResult.from_json(errorresult) if errorresult else None - self.resources = [UnitResourceResult.from_json(o) for o in resources or []] - - - -class UnitSettings(Type): - _toSchema = {'version': 'version'} - _toPy = {'version': 'version'} - def __init__(self, version=None, **unknown_fields): - ''' - version : int - ''' - self.version = version - - - -class UnitStatus(Type): - _toSchema = {'agent_status': 'agent-status', 'charm': 'charm', 'leader': 'leader', 'machine': 'machine', 'opened_ports': 'opened-ports', 'public_address': 'public-address', 'subordinates': 'subordinates', 'workload_status': 'workload-status', 'workload_version': 'workload-version'} - _toPy = {'agent-status': 'agent_status', 'charm': 'charm', 'leader': 'leader', 'machine': 'machine', 'opened-ports': 'opened_ports', 'public-address': 'public_address', 'subordinates': 'subordinates', 'workload-status': 'workload_status', 'workload-version': 'workload_version'} - def __init__(self, agent_status=None, charm=None, leader=None, machine=None, opened_ports=None, public_address=None, subordinates=None, workload_status=None, workload_version=None, **unknown_fields): - ''' - agent_status : DetailedStatus - charm : str - leader : bool - machine : str - opened_ports : typing.Sequence[str] - public_address : str - subordinates : typing.Mapping[str, ~UnitStatus] - workload_status : DetailedStatus - workload_version : str - ''' - self.agent_status = DetailedStatus.from_json(agent_status) if agent_status else None - self.charm = charm - self.leader = leader - self.machine = machine - self.opened_ports = opened_ports - self.public_address = public_address - self.subordinates = subordinates - self.workload_status = DetailedStatus.from_json(workload_status) if workload_status else None - self.workload_version = workload_version - - - -class UnitsNetworkConfig(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~UnitNetworkConfig] - ''' - self.args = [UnitNetworkConfig.from_json(o) for o in args or []] - - - -class UnitsResolved(Type): - _toSchema = {'all_': 'all', 'retry': 'retry', 'tags': 'tags'} - _toPy = {'all': 'all_', 'retry': 'retry', 'tags': 'tags'} - def __init__(self, all_=None, retry=None, tags=None, **unknown_fields): - ''' - all_ : bool - retry : bool - tags : Entities - ''' - self.all_ = all_ - self.retry = retry - self.tags = Entities.from_json(tags) if tags else None - - - -class UnsetModelDefaults(Type): - _toSchema = {'keys': 'keys'} - _toPy = {'keys': 'keys'} - def __init__(self, keys=None, **unknown_fields): - ''' - keys : typing.Sequence[~ModelUnsetKeys] - ''' - self.keys = [ModelUnsetKeys.from_json(o) for o in keys or []] - - - -class UpdateApplicationServiceArg(Type): - _toSchema = {'addresses': 'addresses', 'application_tag': 'application-tag', 'provider_id': 'provider-id'} - _toPy = {'addresses': 'addresses', 'application-tag': 'application_tag', 'provider-id': 'provider_id'} - def __init__(self, addresses=None, application_tag=None, provider_id=None, **unknown_fields): - ''' - addresses : typing.Sequence[~Address] - application_tag : str - provider_id : str - ''' - self.addresses = [Address.from_json(o) for o in addresses or []] - self.application_tag = application_tag - self.provider_id = provider_id - - - -class UpdateApplicationServiceArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~UpdateApplicationServiceArg] - ''' - self.args = [UpdateApplicationServiceArg.from_json(o) for o in args or []] - - - -class UpdateApplicationUnitArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~UpdateApplicationUnits] - ''' - self.args = [UpdateApplicationUnits.from_json(o) for o in args or []] - - - -class UpdateApplicationUnits(Type): - _toSchema = {'application_tag': 'application-tag', 'units': 'units'} - _toPy = {'application-tag': 'application_tag', 'units': 'units'} - def __init__(self, application_tag=None, units=None, **unknown_fields): - ''' - application_tag : str - units : typing.Sequence[~ApplicationUnitParams] - ''' - self.application_tag = application_tag - self.units = [ApplicationUnitParams.from_json(o) for o in units or []] - - - -class UpdateBehavior(Type): - _toSchema = {'enable_os_refresh_update': 'enable-os-refresh-update', 'enable_os_upgrade': 'enable-os-upgrade'} - _toPy = {'enable-os-refresh-update': 'enable_os_refresh_update', 'enable-os-upgrade': 'enable_os_upgrade'} - def __init__(self, enable_os_refresh_update=None, enable_os_upgrade=None, **unknown_fields): - ''' - enable_os_refresh_update : bool - enable_os_upgrade : bool - ''' - self.enable_os_refresh_update = enable_os_refresh_update - self.enable_os_upgrade = enable_os_upgrade - - - -class UpdateCloudCredential(Type): - _toSchema = {'credential': 'credential', 'tag': 'tag'} - _toPy = {'credential': 'credential', 'tag': 'tag'} - def __init__(self, credential=None, tag=None, **unknown_fields): - ''' - credential : CloudCredential - tag : str - ''' - self.credential = CloudCredential.from_json(credential) if credential else None - self.tag = tag - - - -class UpdateCloudCredentials(Type): - _toSchema = {'credentials': 'credentials'} - _toPy = {'credentials': 'credentials'} - def __init__(self, credentials=None, **unknown_fields): - ''' - credentials : typing.Sequence[~UpdateCloudCredential] - ''' - self.credentials = [UpdateCloudCredential.from_json(o) for o in credentials or []] - - - -class UpdateCredentialArgs(Type): - _toSchema = {'credentials': 'credentials', 'force': 'force'} - _toPy = {'credentials': 'credentials', 'force': 'force'} - def __init__(self, credentials=None, force=None, **unknown_fields): - ''' - credentials : typing.Sequence[~TaggedCredential] - force : bool - ''' - self.credentials = [TaggedCredential.from_json(o) for o in credentials or []] - self.force = force - - - -class UpdateCredentialModelResult(Type): - _toSchema = {'errors': 'errors', 'name': 'name', 'uuid': 'uuid'} - _toPy = {'errors': 'errors', 'name': 'name', 'uuid': 'uuid'} - def __init__(self, errors=None, name=None, uuid=None, **unknown_fields): - ''' - errors : typing.Sequence[~ErrorResult] - name : str - uuid : str - ''' - self.errors = [ErrorResult.from_json(o) for o in errors or []] - self.name = name - self.uuid = uuid - - - -class UpdateCredentialResult(Type): - _toSchema = {'error': 'error', 'models': 'models', 'tag': 'tag'} - _toPy = {'error': 'error', 'models': 'models', 'tag': 'tag'} - def __init__(self, error=None, models=None, tag=None, **unknown_fields): - ''' - error : Error - models : typing.Sequence[~UpdateCredentialModelResult] - tag : str - ''' - self.error = Error.from_json(error) if error else None - self.models = [UpdateCredentialModelResult.from_json(o) for o in models or []] - self.tag = tag - - - -class UpdateCredentialResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~UpdateCredentialResult] - ''' - self.results = [UpdateCredentialResult.from_json(o) for o in results or []] - - - -class UpdateSeriesArg(Type): - _toSchema = {'force': 'force', 'series': 'series', 'tag': 'tag'} - _toPy = {'force': 'force', 'series': 'series', 'tag': 'tag'} - def __init__(self, force=None, series=None, tag=None, **unknown_fields): - ''' - force : bool - series : str - tag : Entity - ''' - self.force = force - self.series = series - self.tag = Entity.from_json(tag) if tag else None - - - -class UpdateSeriesArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~UpdateSeriesArg] - ''' - self.args = [UpdateSeriesArg.from_json(o) for o in args or []] - - - -class UpgradeMongoParams(Type): - _toSchema = {'target': 'target'} - _toPy = {'target': 'target'} - def __init__(self, target=None, **unknown_fields): - ''' - target : MongoVersion - ''' - self.target = MongoVersion.from_json(target) if target else None - - - -class UpgradeSeriesNotificationParam(Type): - _toSchema = {'entity': 'entity', 'watcher_id': 'watcher-id'} - _toPy = {'entity': 'entity', 'watcher-id': 'watcher_id'} - def __init__(self, entity=None, watcher_id=None, **unknown_fields): - ''' - entity : Entity - watcher_id : str - ''' - self.entity = Entity.from_json(entity) if entity else None - self.watcher_id = watcher_id - - - -class UpgradeSeriesNotificationParams(Type): - _toSchema = {'params': 'params'} - _toPy = {'params': 'params'} - def __init__(self, params=None, **unknown_fields): - ''' - params : typing.Sequence[~UpgradeSeriesNotificationParam] - ''' - self.params = [UpgradeSeriesNotificationParam.from_json(o) for o in params or []] - - - -class UpgradeSeriesStartUnitCompletionParam(Type): - _toSchema = {'entities': 'entities', 'message': 'message'} - _toPy = {'entities': 'entities', 'message': 'message'} - def __init__(self, entities=None, message=None, **unknown_fields): - ''' - entities : typing.Sequence[~Entity] - message : str - ''' - self.entities = [Entity.from_json(o) for o in entities or []] - self.message = message - - - -class UpgradeSeriesStatusParam(Type): - _toSchema = {'entity': 'entity', 'message': 'message', 'status': 'status'} - _toPy = {'entity': 'entity', 'message': 'message', 'status': 'status'} - def __init__(self, entity=None, message=None, status=None, **unknown_fields): - ''' - entity : Entity - message : str - status : str - ''' - self.entity = Entity.from_json(entity) if entity else None - self.message = message - self.status = status - - - -class UpgradeSeriesStatusParams(Type): - _toSchema = {'params': 'params'} - _toPy = {'params': 'params'} - def __init__(self, params=None, **unknown_fields): - ''' - params : typing.Sequence[~UpgradeSeriesStatusParam] - ''' - self.params = [UpgradeSeriesStatusParam.from_json(o) for o in params or []] - - - -class UpgradeSeriesStatusResult(Type): - _toSchema = {'error': 'error', 'status': 'status'} - _toPy = {'error': 'error', 'status': 'status'} - def __init__(self, error=None, status=None, **unknown_fields): - ''' - error : Error - status : str - ''' - self.error = Error.from_json(error) if error else None - self.status = status - - - -class UpgradeSeriesStatusResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~UpgradeSeriesStatusResult] - ''' - self.results = [UpgradeSeriesStatusResult.from_json(o) for o in results or []] - - - -class UpgradeSeriesUnitsResult(Type): - _toSchema = {'error': 'error', 'unit_names': 'unit-names'} - _toPy = {'error': 'error', 'unit-names': 'unit_names'} - def __init__(self, error=None, unit_names=None, **unknown_fields): - ''' - error : Error - unit_names : typing.Sequence[str] - ''' - self.error = Error.from_json(error) if error else None - self.unit_names = unit_names - - - -class UpgradeSeriesUnitsResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~UpgradeSeriesUnitsResult] - ''' - self.results = [UpgradeSeriesUnitsResult.from_json(o) for o in results or []] - - - -class UserAccess(Type): - _toSchema = {'access': 'access', 'user_tag': 'user-tag'} - _toPy = {'access': 'access', 'user-tag': 'user_tag'} - def __init__(self, access=None, user_tag=None, **unknown_fields): - ''' - access : str - user_tag : str - ''' - self.access = access - self.user_tag = user_tag - - - -class UserAccessResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : UserAccess - ''' - self.error = Error.from_json(error) if error else None - self.result = UserAccess.from_json(result) if result else None - - - -class UserAccessResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~UserAccessResult] - ''' - self.results = [UserAccessResult.from_json(o) for o in results or []] - - - -class UserCloud(Type): - _toSchema = {'cloud_tag': 'cloud-tag', 'user_tag': 'user-tag'} - _toPy = {'cloud-tag': 'cloud_tag', 'user-tag': 'user_tag'} - def __init__(self, cloud_tag=None, user_tag=None, **unknown_fields): - ''' - cloud_tag : str - user_tag : str - ''' - self.cloud_tag = cloud_tag - self.user_tag = user_tag - - - -class UserClouds(Type): - _toSchema = {'user_clouds': 'user-clouds'} - _toPy = {'user-clouds': 'user_clouds'} - def __init__(self, user_clouds=None, **unknown_fields): - ''' - user_clouds : typing.Sequence[~UserCloud] - ''' - self.user_clouds = [UserCloud.from_json(o) for o in user_clouds or []] - - - -class UserInfo(Type): - _toSchema = {'access': 'access', 'created_by': 'created-by', 'date_created': 'date-created', 'disabled': 'disabled', 'display_name': 'display-name', 'last_connection': 'last-connection', 'username': 'username'} - _toPy = {'access': 'access', 'created-by': 'created_by', 'date-created': 'date_created', 'disabled': 'disabled', 'display-name': 'display_name', 'last-connection': 'last_connection', 'username': 'username'} - def __init__(self, access=None, created_by=None, date_created=None, disabled=None, display_name=None, last_connection=None, username=None, **unknown_fields): - ''' - access : str - created_by : str - date_created : str - disabled : bool - display_name : str - last_connection : str - username : str - ''' - self.access = access - self.created_by = created_by - self.date_created = date_created - self.disabled = disabled - self.display_name = display_name - self.last_connection = last_connection - self.username = username - - - -class UserInfoRequest(Type): - _toSchema = {'entities': 'entities', 'include_disabled': 'include-disabled'} - _toPy = {'entities': 'entities', 'include-disabled': 'include_disabled'} - def __init__(self, entities=None, include_disabled=None, **unknown_fields): - ''' - entities : typing.Sequence[~Entity] - include_disabled : bool - ''' - self.entities = [Entity.from_json(o) for o in entities or []] - self.include_disabled = include_disabled - - - -class UserInfoResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : UserInfo - ''' - self.error = Error.from_json(error) if error else None - self.result = UserInfo.from_json(result) if result else None - - - -class UserInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~UserInfoResult] - ''' - self.results = [UserInfoResult.from_json(o) for o in results or []] - - - -class UserModel(Type): - _toSchema = {'last_connection': 'last-connection', 'model': 'model'} - _toPy = {'last-connection': 'last_connection', 'model': 'model'} - def __init__(self, last_connection=None, model=None, **unknown_fields): - ''' - last_connection : str - model : Model - ''' - self.last_connection = last_connection - self.model = Model.from_json(model) if model else None - - - -class UserModelList(Type): - _toSchema = {'user_models': 'user-models'} - _toPy = {'user-models': 'user_models'} - def __init__(self, user_models=None, **unknown_fields): - ''' - user_models : typing.Sequence[~UserModel] - ''' - self.user_models = [UserModel.from_json(o) for o in user_models or []] - - - -class Value(Type): - _toSchema = {'arch': 'arch', 'container': 'container', 'cores': 'cores', 'cpu_power': 'cpu-power', 'instance_type': 'instance-type', 'mem': 'mem', 'root_disk': 'root-disk', 'spaces': 'spaces', 'tags': 'tags', 'virt_type': 'virt-type'} - _toPy = {'arch': 'arch', 'container': 'container', 'cores': 'cores', 'cpu-power': 'cpu_power', 'instance-type': 'instance_type', 'mem': 'mem', 'root-disk': 'root_disk', 'spaces': 'spaces', 'tags': 'tags', 'virt-type': 'virt_type'} - def __init__(self, arch=None, container=None, cores=None, cpu_power=None, instance_type=None, mem=None, root_disk=None, spaces=None, tags=None, virt_type=None, **unknown_fields): - ''' - arch : str - container : str - cores : int - cpu_power : int - instance_type : str - mem : int - root_disk : int - spaces : typing.Sequence[str] - tags : typing.Sequence[str] - virt_type : str - ''' - self.arch = arch - self.container = container - self.cores = cores - self.cpu_power = cpu_power - self.instance_type = instance_type - self.mem = mem - self.root_disk = root_disk - self.spaces = spaces - self.tags = tags - self.virt_type = virt_type - - - -class Version(Type): - _toSchema = {'version': 'version'} - _toPy = {'version': 'version'} - def __init__(self, version=None, **unknown_fields): - ''' - version : Binary - ''' - self.version = Binary.from_json(version) if version else None - - - -class VersionResult(Type): - _toSchema = {'error': 'error', 'version': 'version'} - _toPy = {'error': 'error', 'version': 'version'} - def __init__(self, error=None, version=None, **unknown_fields): - ''' - error : Error - version : Number - ''' - self.error = Error.from_json(error) if error else None - self.version = Number.from_json(version) if version else None - - - -class VersionResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~VersionResult] - ''' - self.results = [VersionResult.from_json(o) for o in results or []] - - - -class Volume(Type): - _toSchema = {'info': 'info', 'volume_tag': 'volume-tag'} - _toPy = {'info': 'info', 'volume-tag': 'volume_tag'} - def __init__(self, info=None, volume_tag=None, **unknown_fields): - ''' - info : VolumeInfo - volume_tag : str - ''' - self.info = VolumeInfo.from_json(info) if info else None - self.volume_tag = volume_tag - - - -class VolumeAttachment(Type): - _toSchema = {'info': 'info', 'machine_tag': 'machine-tag', 'volume_tag': 'volume-tag'} - _toPy = {'info': 'info', 'machine-tag': 'machine_tag', 'volume-tag': 'volume_tag'} - def __init__(self, info=None, machine_tag=None, volume_tag=None, **unknown_fields): - ''' - info : VolumeAttachmentInfo - machine_tag : str - volume_tag : str - ''' - self.info = VolumeAttachmentInfo.from_json(info) if info else None - self.machine_tag = machine_tag - self.volume_tag = volume_tag - - - -class VolumeAttachmentDetails(Type): - _toSchema = {'life': 'life', 'volumeattachmentinfo': 'VolumeAttachmentInfo'} - _toPy = {'VolumeAttachmentInfo': 'volumeattachmentinfo', 'life': 'life'} - def __init__(self, volumeattachmentinfo=None, life=None, **unknown_fields): - ''' - volumeattachmentinfo : VolumeAttachmentInfo - life : str - ''' - self.volumeattachmentinfo = VolumeAttachmentInfo.from_json(volumeattachmentinfo) if volumeattachmentinfo else None - self.life = life - - - -class VolumeAttachmentInfo(Type): - _toSchema = {'bus_address': 'bus-address', 'device_link': 'device-link', 'device_name': 'device-name', 'read_only': 'read-only'} - _toPy = {'bus-address': 'bus_address', 'device-link': 'device_link', 'device-name': 'device_name', 'read-only': 'read_only'} - def __init__(self, bus_address=None, device_link=None, device_name=None, read_only=None, **unknown_fields): - ''' - bus_address : str - device_link : str - device_name : str - read_only : bool - ''' - self.bus_address = bus_address - self.device_link = device_link - self.device_name = device_name - self.read_only = read_only - - - -class VolumeAttachmentParams(Type): - _toSchema = {'instance_id': 'instance-id', 'machine_tag': 'machine-tag', 'provider': 'provider', 'read_only': 'read-only', 'volume_id': 'volume-id', 'volume_tag': 'volume-tag'} - _toPy = {'instance-id': 'instance_id', 'machine-tag': 'machine_tag', 'provider': 'provider', 'read-only': 'read_only', 'volume-id': 'volume_id', 'volume-tag': 'volume_tag'} - def __init__(self, instance_id=None, machine_tag=None, provider=None, read_only=None, volume_id=None, volume_tag=None, **unknown_fields): - ''' - instance_id : str - machine_tag : str - provider : str - read_only : bool - volume_id : str - volume_tag : str - ''' - self.instance_id = instance_id - self.machine_tag = machine_tag - self.provider = provider - self.read_only = read_only - self.volume_id = volume_id - self.volume_tag = volume_tag - - - -class VolumeAttachmentParamsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : VolumeAttachmentParams - ''' - self.error = Error.from_json(error) if error else None - self.result = VolumeAttachmentParams.from_json(result) if result else None - - - -class VolumeAttachmentParamsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~VolumeAttachmentParamsResult] - ''' - self.results = [VolumeAttachmentParamsResult.from_json(o) for o in results or []] - - - -class VolumeAttachmentPlan(Type): - _toSchema = {'block_device': 'block-device', 'life': 'life', 'machine_tag': 'machine-tag', 'plan_info': 'plan-info', 'volume_tag': 'volume-tag'} - _toPy = {'block-device': 'block_device', 'life': 'life', 'machine-tag': 'machine_tag', 'plan-info': 'plan_info', 'volume-tag': 'volume_tag'} - def __init__(self, block_device=None, life=None, machine_tag=None, plan_info=None, volume_tag=None, **unknown_fields): - ''' - block_device : BlockDevice - life : str - machine_tag : str - plan_info : VolumeAttachmentPlanInfo - volume_tag : str - ''' - self.block_device = BlockDevice.from_json(block_device) if block_device else None - self.life = life - self.machine_tag = machine_tag - self.plan_info = VolumeAttachmentPlanInfo.from_json(plan_info) if plan_info else None - self.volume_tag = volume_tag - - - -class VolumeAttachmentPlanInfo(Type): - _toSchema = {'device_attributes': 'device-attributes', 'device_type': 'device-type'} - _toPy = {'device-attributes': 'device_attributes', 'device-type': 'device_type'} - def __init__(self, device_attributes=None, device_type=None, **unknown_fields): - ''' - device_attributes : typing.Mapping[str, str] - device_type : str - ''' - self.device_attributes = device_attributes - self.device_type = device_type - - - -class VolumeAttachmentPlanResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : VolumeAttachmentPlan - ''' - self.error = Error.from_json(error) if error else None - self.result = VolumeAttachmentPlan.from_json(result) if result else None - - - -class VolumeAttachmentPlanResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~VolumeAttachmentPlanResult] - ''' - self.results = [VolumeAttachmentPlanResult.from_json(o) for o in results or []] - - - -class VolumeAttachmentPlans(Type): - _toSchema = {'volume_plans': 'volume-plans'} - _toPy = {'volume-plans': 'volume_plans'} - def __init__(self, volume_plans=None, **unknown_fields): - ''' - volume_plans : typing.Sequence[~VolumeAttachmentPlan] - ''' - self.volume_plans = [VolumeAttachmentPlan.from_json(o) for o in volume_plans or []] - - - -class VolumeAttachmentResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : VolumeAttachment - ''' - self.error = Error.from_json(error) if error else None - self.result = VolumeAttachment.from_json(result) if result else None - - - -class VolumeAttachmentResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~VolumeAttachmentResult] - ''' - self.results = [VolumeAttachmentResult.from_json(o) for o in results or []] - - - -class VolumeAttachments(Type): - _toSchema = {'volume_attachments': 'volume-attachments'} - _toPy = {'volume-attachments': 'volume_attachments'} - def __init__(self, volume_attachments=None, **unknown_fields): - ''' - volume_attachments : typing.Sequence[~VolumeAttachment] - ''' - self.volume_attachments = [VolumeAttachment.from_json(o) for o in volume_attachments or []] - - - -class VolumeDetails(Type): - _toSchema = {'info': 'info', 'machine_attachments': 'machine-attachments', 'status': 'status', 'storage': 'storage', 'volume_tag': 'volume-tag'} - _toPy = {'info': 'info', 'machine-attachments': 'machine_attachments', 'status': 'status', 'storage': 'storage', 'volume-tag': 'volume_tag'} - def __init__(self, info=None, machine_attachments=None, status=None, storage=None, volume_tag=None, **unknown_fields): - ''' - info : VolumeInfo - machine_attachments : typing.Mapping[str, ~VolumeAttachmentInfo] - status : EntityStatus - storage : StorageDetails - volume_tag : str - ''' - self.info = VolumeInfo.from_json(info) if info else None - self.machine_attachments = machine_attachments - self.status = EntityStatus.from_json(status) if status else None - self.storage = StorageDetails.from_json(storage) if storage else None - self.volume_tag = volume_tag - - - -class VolumeDetailsListResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : typing.Sequence[~VolumeDetails] - ''' - self.error = Error.from_json(error) if error else None - self.result = [VolumeDetails.from_json(o) for o in result or []] - - - -class VolumeDetailsListResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~VolumeDetailsListResult] - ''' - self.results = [VolumeDetailsListResult.from_json(o) for o in results or []] - - - -class VolumeFilter(Type): - _toSchema = {'machines': 'machines'} - _toPy = {'machines': 'machines'} - def __init__(self, machines=None, **unknown_fields): - ''' - machines : typing.Sequence[str] - ''' - self.machines = machines - - - -class VolumeFilters(Type): - _toSchema = {'filters': 'filters'} - _toPy = {'filters': 'filters'} - def __init__(self, filters=None, **unknown_fields): - ''' - filters : typing.Sequence[~VolumeFilter] - ''' - self.filters = [VolumeFilter.from_json(o) for o in filters or []] - - - -class VolumeInfo(Type): - _toSchema = {'hardware_id': 'hardware-id', 'persistent': 'persistent', 'size': 'size', 'volume_id': 'volume-id'} - _toPy = {'hardware-id': 'hardware_id', 'persistent': 'persistent', 'size': 'size', 'volume-id': 'volume_id'} - def __init__(self, hardware_id=None, persistent=None, size=None, volume_id=None, **unknown_fields): - ''' - hardware_id : str - persistent : bool - size : int - volume_id : str - ''' - self.hardware_id = hardware_id - self.persistent = persistent - self.size = size - self.volume_id = volume_id - - - -class VolumeParams(Type): - _toSchema = {'attachment': 'attachment', 'attributes': 'attributes', 'provider': 'provider', 'size': 'size', 'tags': 'tags', 'volume_tag': 'volume-tag'} - _toPy = {'attachment': 'attachment', 'attributes': 'attributes', 'provider': 'provider', 'size': 'size', 'tags': 'tags', 'volume-tag': 'volume_tag'} - def __init__(self, attachment=None, attributes=None, provider=None, size=None, tags=None, volume_tag=None, **unknown_fields): - ''' - attachment : VolumeAttachmentParams - attributes : typing.Mapping[str, typing.Any] - provider : str - size : int - tags : typing.Mapping[str, str] - volume_tag : str - ''' - self.attachment = VolumeAttachmentParams.from_json(attachment) if attachment else None - self.attributes = attributes - self.provider = provider - self.size = size - self.tags = tags - self.volume_tag = volume_tag - - - -class VolumeParamsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : VolumeParams - ''' - self.error = Error.from_json(error) if error else None - self.result = VolumeParams.from_json(result) if result else None - - - -class VolumeParamsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~VolumeParamsResult] - ''' - self.results = [VolumeParamsResult.from_json(o) for o in results or []] - - - -class VolumeResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : Volume - ''' - self.error = Error.from_json(error) if error else None - self.result = Volume.from_json(result) if result else None - - - -class VolumeResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~VolumeResult] - ''' - self.results = [VolumeResult.from_json(o) for o in results or []] - - - -class Volumes(Type): - _toSchema = {'volumes': 'volumes'} - _toPy = {'volumes': 'volumes'} - def __init__(self, volumes=None, **unknown_fields): - ''' - volumes : typing.Sequence[~Volume] - ''' - self.volumes = [Volume.from_json(o) for o in volumes or []] - - - -class WatchContainer(Type): - _toSchema = {'container_type': 'container-type', 'machine_tag': 'machine-tag'} - _toPy = {'container-type': 'container_type', 'machine-tag': 'machine_tag'} - def __init__(self, container_type=None, machine_tag=None, **unknown_fields): - ''' - container_type : str - machine_tag : str - ''' - self.container_type = container_type - self.machine_tag = machine_tag - - - -class WatchContainers(Type): - _toSchema = {'params': 'params'} - _toPy = {'params': 'params'} - def __init__(self, params=None, **unknown_fields): - ''' - params : typing.Sequence[~WatchContainer] - ''' - self.params = [WatchContainer.from_json(o) for o in params or []] - - - -class ZoneResult(Type): - _toSchema = {'available': 'available', 'error': 'error', 'name': 'name'} - _toPy = {'available': 'available', 'error': 'error', 'name': 'name'} - def __init__(self, available=None, error=None, name=None, **unknown_fields): - ''' - available : bool - error : Error - name : str - ''' - self.available = available - self.error = Error.from_json(error) if error else None - self.name = name - - - -class ZoneResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ZoneResult] - ''' - self.results = [ZoneResult.from_json(o) for o in results or []] diff --git a/modules/libjuju/juju/client/client.py b/modules/libjuju/juju/client/client.py deleted file mode 100644 index 2721d07..0000000 --- a/modules/libjuju/juju/client/client.py +++ /dev/null @@ -1,33 +0,0 @@ -'''Replace auto-generated classes with our own, where necessary. -''' - -from . import _client, _definitions, overrides # isort:skip - -for o in overrides.__all__: - if "Facade" not in o: - # Override stuff in _definitions, which is all imported - # into _client. We Monkey patch both the original class and - # the ref in _client (import shenanigans are fun!) - setattr(_definitions, o, getattr(overrides, o)) - setattr(_client, o, getattr(overrides, o)) - # We shouldn't be overriding Facades! - else: - raise ValueError( - "Cannot override a versioned Facade class -- you must patch " - "it instead.") - -for o in overrides.__patches__: - # Patch a versioned Facade. - for client_version in _client.CLIENTS.values(): - try: - c_type = getattr(client_version, o) - except AttributeError: - # Not all the _client modules may have the - # facade. That's okay -- we just skip over them. - continue - o_type = getattr(overrides, o) - for a in dir(o_type): - if not a.startswith('_'): - setattr(c_type, a, getattr(o_type, a)) - -from ._client import * # noqa, isort:skip diff --git a/modules/libjuju/juju/client/codegen.py b/modules/libjuju/juju/client/codegen.py deleted file mode 100644 index f8a792a..0000000 --- a/modules/libjuju/juju/client/codegen.py +++ /dev/null @@ -1,52 +0,0 @@ -from collections import defaultdict -from io import StringIO -from textwrap import indent - - -class CodeWriter(StringIO): - """ - Blob of text that, when used in the context of facade.py, ends up - holding the source code for a Python class and associated methods. - - """ - INDENT = " " - - CLASS = 0 - METHOD = 1 - - def write(self, msg, depth=0): - if depth: - prefix = self.INDENT * depth - msg = indent(msg, prefix) - - return super(CodeWriter, self).write(msg) - - def __str__(self): - return super(CodeWriter, self).getvalue() - - -class Capture(defaultdict): - """ - A collection of CodeWriter objects, together representing a Python - module. - - """ - - def __init__(self, default_factory=CodeWriter, *args, **kwargs): - super(Capture, self).__init__(default_factory, *args, **kwargs) - - def clear(self, name): - """ - Reset one of the keys in this class, if it exists. - - This is necessary, because we don't worry about de-duplicating - the schemas for each version of juju up front, and this gives - us a way to sort of de-duplicate on the fly, by resetting a - specific CodeWriter instance before we start to write a class - into it. - - """ - try: - del self[name] - except KeyError: - pass diff --git a/modules/libjuju/juju/client/connection.py b/modules/libjuju/juju/client/connection.py deleted file mode 100644 index f2150b7..0000000 --- a/modules/libjuju/juju/client/connection.py +++ /dev/null @@ -1,601 +0,0 @@ -import asyncio -import base64 -import json -import logging -import ssl -import urllib.request -import weakref -from concurrent.futures import CancelledError -from http.client import HTTPSConnection - -import macaroonbakery.httpbakery as httpbakery -import macaroonbakery.bakery as bakery -import websockets -from juju import errors, tag, utils -from juju.client import client -from juju.utils import IdQueue - -log = logging.getLogger('juju.client.connection') - - -class Monitor: - """ - Monitor helper class for our Connection class. - - Contains a reference to an instantiated Connection, along with a - reference to the Connection.receiver Future. Upon inspection of - these objects, this class determines whether the connection is in - an 'error', 'connected' or 'disconnected' state. - - Use this class to stay up to date on the health of a connection, - and take appropriate action if the connection errors out due to - network issues or other unexpected circumstances. - - """ - ERROR = 'error' - CONNECTED = 'connected' - DISCONNECTING = 'disconnecting' - DISCONNECTED = 'disconnected' - - def __init__(self, connection): - self.connection = weakref.ref(connection) - self.reconnecting = asyncio.Lock(loop=connection.loop) - self.close_called = asyncio.Event(loop=connection.loop) - - @property - def status(self): - """ - Determine the status of the connection and receiver, and return - ERROR, CONNECTED, or DISCONNECTED as appropriate. - - For simplicity, we only consider ourselves to be connected - after the Connection class has setup a receiver task. This - only happens after the websocket is open, and the connection - isn't usable until that receiver has been started. - - """ - connection = self.connection() - - # the connection instance was destroyed but someone kept - # a separate reference to the monitor for some reason - if not connection: - return self.DISCONNECTED - - # connection cleanly disconnected or not yet opened - if not connection.ws: - return self.DISCONNECTED - - # close called but not yet complete - if self.close_called.is_set(): - return self.DISCONNECTING - - # connection closed uncleanly (we didn't call connection.close) - stopped = connection._receiver_task.stopped.is_set() - if stopped or not connection.ws.open: - return self.ERROR - - # everything is fine! - return self.CONNECTED - - -class Connection: - """ - Usage:: - - # Connect to an arbitrary api server - client = await Connection.connect( - api_endpoint, model_uuid, username, password, cacert) - - Note: Any connection method or constructor can accept an optional `loop` - argument to override the default event loop from `asyncio.get_event_loop`. - """ - - MAX_FRAME_SIZE = 2**22 - "Maximum size for a single frame. Defaults to 4MB." - - @classmethod - async def connect( - cls, - endpoint=None, - uuid=None, - username=None, - password=None, - cacert=None, - bakery_client=None, - loop=None, - max_frame_size=None, - retries=3, - retry_backoff=10, - ): - """Connect to the websocket. - - If uuid is None, the connection will be to the controller. Otherwise it - will be to the model. - - :param str endpoint: The hostname:port of the controller to connect to. - :param str uuid: The model UUID to connect to (None for a - controller-only connection). - :param str username: The username for controller-local users (or None - to use macaroon-based login.) - :param str password: The password for controller-local users. - :param str cacert: The CA certificate of the controller - (PEM formatted). - :param httpbakery.Client bakery_client: The macaroon bakery client to - to use when performing macaroon-based login. Macaroon tokens - acquired when logging will be saved to bakery_client.cookies. - If this is None, a default bakery_client will be used. - :param asyncio.BaseEventLoop loop: The event loop to use for async - operations. - :param int max_frame_size: The maximum websocket frame size to allow. - :param int retries: When connecting or reconnecting, and all endpoints - fail, how many times to retry the connection before giving up. - :param int retry_backoff: Number of seconds to increase the wait - between connection retry attempts (a backoff of 10 with 3 retries - would wait 10s, 20s, and 30s). - """ - self = cls() - if endpoint is None: - raise ValueError('no endpoint provided') - self.uuid = uuid - if bakery_client is None: - bakery_client = httpbakery.Client() - self.bakery_client = bakery_client - if username and '@' in username and not username.endswith('@local'): - # We're trying to log in as an external user - we need to use - # macaroon authentication with no username or password. - if password is not None: - raise errors.JujuAuthError('cannot log in as external ' - 'user with a password') - username = None - self.usertag = tag.user(username) - self.password = password - self.loop = loop or asyncio.get_event_loop() - - self.__request_id__ = 0 - - # The following instance variables are initialized by the - # _connect_with_redirect method, but create them here - # as a reminder that they will exist. - self.addr = None - self.ws = None - self.endpoint = None - self.cacert = None - self.info = None - - # Create that _Task objects but don't start the tasks yet. - self._pinger_task = _Task(self._pinger, self.loop) - self._receiver_task = _Task(self._receiver, self.loop) - - self._retries = retries - self._retry_backoff = retry_backoff - - self.facades = {} - self.messages = IdQueue(loop=self.loop) - self.monitor = Monitor(connection=self) - if max_frame_size is None: - max_frame_size = self.MAX_FRAME_SIZE - self.max_frame_size = max_frame_size - await self._connect_with_redirect([(endpoint, cacert)]) - return self - - @property - def username(self): - if not self.usertag: - return None - return self.usertag[len('user-'):] - - @property - def is_open(self): - return self.monitor.status == Monitor.CONNECTED - - def _get_ssl(self, cert=None): - return ssl.create_default_context( - purpose=ssl.Purpose.CLIENT_AUTH, cadata=cert) - - async def _open(self, endpoint, cacert): - if self.uuid: - url = "wss://{}/model/{}/api".format(endpoint, self.uuid) - else: - url = "wss://{}/api".format(endpoint) - - return (await websockets.connect( - url, - ssl=self._get_ssl(cacert), - loop=self.loop, - max_size=self.max_frame_size, - ), url, endpoint, cacert) - - async def close(self): - if not self.ws: - return - self.monitor.close_called.set() - await self._pinger_task.stopped.wait() - await self._receiver_task.stopped.wait() - await self.ws.close() - self.ws = None - - async def _recv(self, request_id): - if not self.is_open: - raise websockets.exceptions.ConnectionClosed(0, 'websocket closed') - return await self.messages.get(request_id) - - async def _receiver(self): - try: - while self.is_open: - result = await utils.run_with_interrupt( - self.ws.recv(), - self.monitor.close_called, - loop=self.loop) - if self.monitor.close_called.is_set(): - break - if result is not None: - result = json.loads(result) - await self.messages.put(result['request-id'], result) - except CancelledError: - pass - except websockets.ConnectionClosed as e: - log.warning('Receiver: Connection closed, reconnecting') - await self.messages.put_all(e) - # the reconnect has to be done as a task because the receiver will - # be cancelled by the reconnect and we don't want the reconnect - # to be aborted half-way through - self.loop.create_task(self.reconnect()) - return - except Exception as e: - log.exception("Error in receiver") - # make pending listeners aware of the error - await self.messages.put_all(e) - raise - - async def _pinger(self): - ''' - A Controller can time us out if we are silent for too long. This - is especially true in JaaS, which has a fairly strict timeout. - - To prevent timing out, we send a ping every ten seconds. - - ''' - async def _do_ping(): - try: - await pinger_facade.Ping() - await asyncio.sleep(10, loop=self.loop) - except CancelledError: - pass - - pinger_facade = client.PingerFacade.from_connection(self) - try: - while True: - await utils.run_with_interrupt( - _do_ping(), - self.monitor.close_called, - loop=self.loop) - if self.monitor.close_called.is_set(): - break - except websockets.exceptions.ConnectionClosed: - # The connection has closed - we can't do anything - # more until the connection is restarted. - log.debug('ping failed because of closed connection') - pass - - async def rpc(self, msg, encoder=None): - '''Make an RPC to the API. The message is encoded as JSON - using the given encoder if any. - :param msg: Parameters for the call (will be encoded as JSON). - :param encoder: Encoder to be used when encoding the message. - :return: The result of the call. - :raises JujuAPIError: When there's an error returned. - :raises JujuError: - ''' - self.__request_id__ += 1 - msg['request-id'] = self.__request_id__ - if'params' not in msg: - msg['params'] = {} - if "version" not in msg: - msg['version'] = self.facades[msg['type']] - outgoing = json.dumps(msg, indent=2, cls=encoder) - log.debug('connection {} -> {}'.format(id(self), outgoing)) - for attempt in range(3): - if self.monitor.status == Monitor.DISCONNECTED: - # closed cleanly; shouldn't try to reconnect - raise websockets.exceptions.ConnectionClosed( - 0, 'websocket closed') - try: - await self.ws.send(outgoing) - break - except websockets.ConnectionClosed: - if attempt == 2: - raise - log.warning('RPC: Connection closed, reconnecting') - # the reconnect has to be done in a separate task because, - # if it is triggered by the pinger, then this RPC call will - # be cancelled when the pinger is cancelled by the reconnect, - # and we don't want the reconnect to be aborted halfway through - await asyncio.wait([self.reconnect()], loop=self.loop) - if self.monitor.status != Monitor.CONNECTED: - # reconnect failed; abort and shutdown - log.error('RPC: Automatic reconnect failed') - raise - result = await self._recv(msg['request-id']) - log.debug('connection {} <- {}'.format(id(self), result)) - - if not result: - return result - - if 'error' in result: - # API Error Response - raise errors.JujuAPIError(result) - - if 'response' not in result: - # This may never happen - return result - - if 'results' in result['response']: - # Check for errors in a result list. - # TODO This loses the results that might have succeeded. - # Perhaps JujuError should return all the results including - # errors, or perhaps a keyword parameter to the rpc method - # could be added to trigger this behaviour. - err_results = [] - for res in result['response']['results']: - if res.get('error', {}).get('message'): - err_results.append(res['error']['message']) - if err_results: - raise errors.JujuError(err_results) - - elif result['response'].get('error', {}).get('message'): - raise errors.JujuError(result['response']['error']['message']) - - return result - - def _http_headers(self): - """Return dictionary of http headers necessary for making an http - connection to the endpoint of this Connection. - - :return: Dictionary of headers - - """ - if not self.usertag: - return {} - - creds = u'{}:{}'.format( - self.usertag, - self.password or '' - ) - token = base64.b64encode(creds.encode()) - return { - 'Authorization': 'Basic {}'.format(token.decode()) - } - - def https_connection(self): - """Return an https connection to this Connection's endpoint. - - Returns a 3-tuple containing:: - - 1. The :class:`HTTPSConnection` instance - 2. Dictionary of auth headers to be used with the connection - 3. The root url path (str) to be used for requests. - - """ - endpoint = self.endpoint - host, remainder = endpoint.split(':', 1) - port = remainder - if '/' in remainder: - port, _ = remainder.split('/', 1) - - conn = HTTPSConnection( - host, int(port), - context=self._get_ssl(self.cacert), - ) - - path = ( - "/model/{}".format(self.uuid) - if self.uuid else "" - ) - return conn, self._http_headers(), path - - async def clone(self): - """Return a new Connection, connected to the same websocket endpoint - as this one. - - """ - return await Connection.connect(**self.connect_params()) - - def connect_params(self): - """Return a tuple of parameters suitable for passing to - Connection.connect that can be used to make a new connection - to the same controller (and model if specified. The first - element in the returned tuple holds the endpoint argument; - the other holds a dict of the keyword args. - """ - return { - 'endpoint': self.endpoint, - 'uuid': self.uuid, - 'username': self.username, - 'password': self.password, - 'cacert': self.cacert, - 'bakery_client': self.bakery_client, - 'loop': self.loop, - 'max_frame_size': self.max_frame_size, - } - - async def controller(self): - """Return a Connection to the controller at self.endpoint - """ - return await Connection.connect( - self.endpoint, - username=self.username, - password=self.password, - cacert=self.cacert, - bakery_client=self.bakery_client, - loop=self.loop, - max_frame_size=self.max_frame_size, - ) - - async def reconnect(self): - """ Force a reconnection. - """ - monitor = self.monitor - if monitor.reconnecting.locked() or monitor.close_called.is_set(): - return - async with monitor.reconnecting: - await self.close() - await self._connect_with_login([(self.endpoint, self.cacert)]) - - async def _connect(self, endpoints): - if len(endpoints) == 0: - raise errors.JujuConnectionError('no endpoints to connect to') - - async def _try_endpoint(endpoint, cacert, delay): - if delay: - await asyncio.sleep(delay) - return await self._open(endpoint, cacert) - - # Try all endpoints in parallel, with slight increasing delay (+100ms - # for each subsequent endpoint); the delay allows us to prefer the - # earlier endpoints over the latter. Use first successful connection. - tasks = [self.loop.create_task(_try_endpoint(endpoint, cacert, - 0.1 * i)) - for i, (endpoint, cacert) in enumerate(endpoints)] - for attempt in range(self._retries + 1): - for task in asyncio.as_completed(tasks, loop=self.loop): - try: - result = await task - break - except ConnectionError: - continue # ignore; try another endpoint - else: - _endpoints_str = ', '.join([endpoint - for endpoint, cacert in endpoints]) - if attempt < self._retries: - log.debug('Retrying connection to endpoints: {}; ' - 'attempt {} of {}'.format(_endpoints_str, - attempt + 1, - self._retries + 1)) - await asyncio.sleep((attempt + 1) * self._retry_backoff) - continue - else: - raise errors.JujuConnectionError( - 'Unable to connect to any endpoint: ' - '{}'.format(_endpoints_str)) - # only executed if inner loop's else did not continue - # (i.e., inner loop did break due to successful connection) - break - for task in tasks: - task.cancel() - self.ws = result[0] - self.addr = result[1] - self.endpoint = result[2] - self.cacert = result[3] - self._receiver_task.start() - log.debug("Driver connected to juju %s", self.addr) - self.monitor.close_called.clear() - - async def _connect_with_login(self, endpoints): - """Connect to the websocket. - - If uuid is None, the connection will be to the controller. Otherwise it - will be to the model. - :return: The response field of login response JSON object. - """ - success = False - try: - await self._connect(endpoints) - # It's possible that we may get several discharge-required errors, - # corresponding to different levels of authentication, so retry - # a few times. - for i in range(0, 2): - result = (await self.login())['response'] - macaroonJSON = result.get('discharge-required') - if macaroonJSON is None: - self.info = result - success = True - return result - macaroon = bakery.Macaroon.from_dict(macaroonJSON) - self.bakery_client.handle_error( - httpbakery.Error( - code=httpbakery.ERR_DISCHARGE_REQUIRED, - message=result.get('discharge-required-error'), - version=macaroon.version, - info=httpbakery.ErrorInfo( - macaroon=macaroon, - macaroon_path=result.get('macaroon-path'), - ), - ), - # note: remove the port number. - 'https://' + self.endpoint + '/', - ) - raise errors.JujuAuthError('failed to authenticate ' - 'after several attempts') - finally: - if not success: - await self.close() - - async def _connect_with_redirect(self, endpoints): - try: - login_result = await self._connect_with_login(endpoints) - except errors.JujuRedirectException as e: - login_result = await self._connect_with_login(e.endpoints) - self._build_facades(login_result.get('facades', {})) - self._pinger_task.start() - - def _build_facades(self, facades): - self.facades.clear() - for facade in facades: - self.facades[facade['name']] = facade['versions'][-1] - - async def login(self): - params = {} - params['auth-tag'] = self.usertag - if self.password: - params['credentials'] = self.password - else: - macaroons = _macaroons_for_domain(self.bakery_client.cookies, - self.endpoint) - params['macaroons'] = [[bakery.macaroon_to_dict(m) for m in ms] - for ms in macaroons] - - try: - return await self.rpc({ - "type": "Admin", - "request": "Login", - "version": 3, - "params": params, - }) - except errors.JujuAPIError as e: - if e.error_code != 'redirection required': - raise - log.info('Controller requested redirect') - # Fetch additional redirection information now so that - # we can safely close the connection after login - # fails. - redirect_info = (await self.rpc({ - "type": "Admin", - "request": "RedirectInfo", - "version": 3, - }))['response'] - raise errors.JujuRedirectException(redirect_info) from e - - -class _Task: - def __init__(self, task, loop): - self.stopped = asyncio.Event(loop=loop) - self.stopped.set() - self.task = task - self.loop = loop - - def start(self): - async def run(): - try: - return await self.task() - finally: - self.stopped.set() - self.stopped.clear() - self.loop.create_task(run()) - - -def _macaroons_for_domain(cookies, domain): - '''Return any macaroons from the given cookie jar that - apply to the given domain name.''' - req = urllib.request.Request('https://' + domain + '/') - cookies.add_cookie_header(req) - return httpbakery.extract_macaroons(req) diff --git a/modules/libjuju/juju/client/connector.py b/modules/libjuju/juju/client/connector.py deleted file mode 100644 index a30adbf..0000000 --- a/modules/libjuju/juju/client/connector.py +++ /dev/null @@ -1,156 +0,0 @@ -import asyncio -import logging -import copy - -import macaroonbakery.httpbakery as httpbakery -from juju.client.connection import Connection -from juju.client.gocookies import go_to_py_cookie, GoCookieJar -from juju.client.jujudata import FileJujuData -from juju.errors import JujuConnectionError, JujuError - -log = logging.getLogger('connector') - - -class NoConnectionException(Exception): - '''Raised by Connector when the connection method is called - and there is no current connection.''' - pass - - -class Connector: - '''This class abstracts out a reconnectable client that can connect - to controllers and models found in the Juju data files. - ''' - def __init__( - self, - loop=None, - max_frame_size=None, - bakery_client=None, - jujudata=None, - ): - '''Initialize a connector that will use the given parameters - by default when making a new connection''' - self.max_frame_size = max_frame_size - self.loop = loop or asyncio.get_event_loop() - self.bakery_client = bakery_client - self._connection = None - self.controller_name = None - self.model_name = None - self.jujudata = jujudata or FileJujuData() - - def is_connected(self): - '''Report whether there is a currently connected controller or not''' - return self._connection is not None - - def connection(self): - '''Return the current connection; raises an exception if there - is no current connection.''' - if not self.is_connected(): - raise NoConnectionException('not connected') - return self._connection - - async def connect(self, **kwargs): - """Connect to an arbitrary Juju model. - - kwargs are passed through to Connection.connect() - """ - kwargs.setdefault('loop', self.loop) - kwargs.setdefault('max_frame_size', self.max_frame_size) - kwargs.setdefault('bakery_client', self.bakery_client) - if 'macaroons' in kwargs: - if not kwargs['bakery_client']: - kwargs['bakery_client'] = httpbakery.Client() - if not kwargs['bakery_client'].cookies: - kwargs['bakery_client'].cookies = GoCookieJar() - jar = kwargs['bakery_client'].cookies - for macaroon in kwargs.pop('macaroons'): - jar.set_cookie(go_to_py_cookie(macaroon)) - self._connection = await Connection.connect(**kwargs) - - async def disconnect(self): - """Shut down the watcher task and close websockets. - """ - if self._connection: - log.debug('Closing model connection') - await self._connection.close() - self._connection = None - - async def connect_controller(self, controller_name=None): - """Connect to a controller by name. If the name is empty, it - connect to the current controller. - """ - if not controller_name: - controller_name = self.jujudata.current_controller() - if not controller_name: - raise JujuConnectionError('No current controller') - - controller = self.jujudata.controllers()[controller_name] - # TODO change Connection so we can pass all the endpoints - # instead of just the first. - endpoint = controller['api-endpoints'][0] - accounts = self.jujudata.accounts().get(controller_name, {}) - - await self.connect( - endpoint=endpoint, - uuid=None, - username=accounts.get('user'), - password=accounts.get('password'), - cacert=controller.get('ca-cert'), - bakery_client=self.bakery_client_for_controller(controller_name), - ) - self.controller_name = controller_name - - async def connect_model(self, model_name=None): - """Connect to a model by name. If either controller or model - parts of the name are empty, the current controller and/or model - will be used. - - :param str model: : - """ - - try: - controller_name, model_name = self.jujudata.parse_model(model_name) - controller = self.jujudata.controllers().get(controller_name) - except JujuError as e: - raise JujuConnectionError(e.message) from e - if controller is None: - raise JujuConnectionError('Controller {} not found'.format( - controller_name)) - # TODO change Connection so we can pass all the endpoints - # instead of just the first one. - endpoint = controller['api-endpoints'][0] - account = self.jujudata.accounts().get(controller_name, {}) - models = self.jujudata.models().get(controller_name, {}).get('models', - {}) - if model_name not in models: - raise JujuConnectionError('Model not found: {}'.format(model_name)) - - # TODO if there's no record for the required model name, connect - # to the controller to find out the model's uuid, then connect - # to that. This will let connect_model work with models that - # haven't necessarily synced with the local juju data, - # and also remove the need for base.CleanModel to - # subclass JujuData. - await self.connect( - endpoint=endpoint, - uuid=models[model_name]['uuid'], - username=account.get('user'), - password=account.get('password'), - cacert=controller.get('ca-cert'), - bakery_client=self.bakery_client_for_controller(controller_name), - ) - self.controller_name = controller_name - self.model_name = controller_name + ':' + model_name - - def bakery_client_for_controller(self, controller_name): - '''Make a copy of the bakery client with a the appropriate controller's - cookiejar in it. - ''' - bakery_client = self.bakery_client - if bakery_client: - bakery_client = copy.copy(bakery_client) - else: - bakery_client = httpbakery.Client() - bakery_client.cookies = self.jujudata.cookies_for_controller( - controller_name) - return bakery_client diff --git a/modules/libjuju/juju/client/facade.py b/modules/libjuju/juju/client/facade.py deleted file mode 100644 index ec20c38..0000000 --- a/modules/libjuju/juju/client/facade.py +++ /dev/null @@ -1,818 +0,0 @@ -import argparse -import builtins -import functools -import json -import keyword -import pprint -import re -import textwrap -import typing -from collections import defaultdict -from glob import glob -from pathlib import Path -from typing import Any, Mapping, Sequence, TypeVar, Union - -from . import codegen - -_marker = object() - -JUJU_VERSION = re.compile(r'[0-9]+\.[0-9-]+[\.\-][0-9a-z]+(\.[0-9]+)?') -# Workaround for https://bugs.launchpad.net/juju/+bug/1683906 -NAUGHTY_CLASSES = ['ClientFacade', 'Client', 'FullStatus', 'ModelStatusInfo', - 'ModelInfo', 'ApplicationDeploy'] - - -# Map basic types to Python's typing with a callable -SCHEMA_TO_PYTHON = { - 'string': str, - 'integer': int, - 'float': float, - 'number': float, - 'boolean': bool, - 'object': Any, -} - - -# Friendly warning message to stick at the top of generated files. -HEADER = """\ -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. - -""" - - -# Classes and helper functions that we'll write to _client.py -LOOKUP_FACADE = ''' -def lookup_facade(name, version): - """ - Given a facade name and version, attempt to pull that facade out - of the correct client.py file. - - """ - for _version in range(int(version), 0, -1): - try: - facade = getattr(CLIENTS[str(_version)], name) - return facade - except (KeyError, AttributeError): - continue - else: - raise ImportError("No supported version for facade: " - "{}".format(name)) - - -''' - -TYPE_FACTORY = ''' -class TypeFactory: - @classmethod - def from_connection(cls, connection): - """ - Given a connected Connection object, return an initialized and - connected instance of an API Interface matching the name of - this class. - - @param connection: initialized Connection object. - - """ - facade_name = cls.__name__ - if not facade_name.endswith('Facade'): - raise TypeError('Unexpected class name: {}'.format(facade_name)) - facade_name = facade_name[:-len('Facade')] - version = connection.facades.get(facade_name) - if version is None: - raise Exception('No facade {} in facades {}'.format(facade_name, - connection.facades)) - - c = lookup_facade(cls.__name__, version) - c = c() - c.connect(connection) - - return c - - -''' - -CLIENT_TABLE = ''' -CLIENTS = {{ - {clients} -}} - - -''' - - -class KindRegistry(dict): - def register(self, name, version, obj): - self[name] = {version: { - "object": obj, - }} - - def lookup(self, name, version=None): - """If version is omitted, max version is used""" - versions = self.get(name) - if not versions: - return None - if version: - return versions[version] - return versions[max(versions)] - - def getObj(self, name, version=None): - result = self.lookup(name, version) - if result: - obj = result["object"] - return obj - return None - - -class TypeRegistry(dict): - def get(self, name): - # Two way mapping - refname = Schema.referenceName(name) - if refname not in self: - result = TypeVar(refname) - self[refname] = result - self[result] = refname - - return self[refname] - - -_types = TypeRegistry() -_registry = KindRegistry() -CLASSES = {} -factories = codegen.Capture() - - -def booler(v): - if isinstance(v, str): - if v == "false": - return False - return bool(v) - - -def getRefType(ref): - return _types.get(ref) - - -def refType(obj): - return getRefType(obj["$ref"]) - - -def objType(obj): - kind = obj.get('type') - if not kind: - raise ValueError("%s has no type" % obj) - result = SCHEMA_TO_PYTHON.get(kind) - if not result: - raise ValueError("%s has type %s" % (obj, kind)) - return result - - -basic_types = [str, bool, int, float] - - -def name_to_py(name): - result = name.replace("-", "_") - result = result.lower() - if keyword.iskeyword(result) or result in dir(builtins): - result += "_" - return result - - -def strcast(kind, keep_builtins=False): - if (kind in basic_types or - type(kind) in basic_types) and keep_builtins is False: - return kind.__name__ - if str(kind).startswith('~'): - return str(kind)[1:] - if issubclass(kind, typing.GenericMeta): - return str(kind)[1:] - return kind - - -class Args(list): - def __init__(self, defs): - self.defs = defs - if defs: - rtypes = _registry.getObj(_types[defs]) - if len(rtypes) == 1: - if not self.do_explode(rtypes[0][1]): - for name, rtype in rtypes: - self.append((name, rtype)) - else: - for name, rtype in rtypes: - self.append((name, rtype)) - - def do_explode(self, kind): - if kind in basic_types or type(kind) is typing.TypeVar: - return False - if not issubclass(kind, (typing.Sequence, - typing.Mapping)): - self.clear() - self.extend(Args(kind)) - return True - return False - - def PyToSchemaMapping(self): - m = {} - for n, rt in self: - m[name_to_py(n)] = n - return m - - def SchemaToPyMapping(self): - m = {} - for n, tr in self: - m[n] = name_to_py(n) - return m - - def _format(self, name, rtype, typed=True): - if typed: - return "{} : {}".format( - name_to_py(name), - strcast(rtype) - ) - else: - return name_to_py(name) - - def _get_arg_str(self, typed=False, joined=", "): - if self: - parts = [] - for item in self: - parts.append(self._format(item[0], item[1], typed)) - if joined: - return joined.join(parts) - return parts - return '' - - def as_kwargs(self): - if self: - parts = [] - for item in self: - parts.append('{}=None'.format(name_to_py(item[0]))) - return ', '.join(parts) - return '' - - def typed(self): - return self._get_arg_str(True) - - def __str__(self): - return self._get_arg_str(False) - - def get_doc(self): - return self._get_arg_str(True, "\n") - - -def buildTypes(schema, capture): - INDENT = " " - for kind in sorted((k for k in _types if not isinstance(k, str)), - key=lambda x: str(x)): - name = _types[kind] - if name in capture and name not in NAUGHTY_CLASSES: - continue - args = Args(kind) - # Write Factory class for _client.py - make_factory(name) - # Write actual class - source = [""" -class {}(Type): - _toSchema = {} - _toPy = {} - def __init__(self{}{}, **unknown_fields): - ''' -{} - '''""".format( - name, - # pprint these to get stable ordering across regens - pprint.pformat(args.PyToSchemaMapping(), width=999), - pprint.pformat(args.SchemaToPyMapping(), width=999), - ", " if args else "", - args.as_kwargs(), - textwrap.indent(args.get_doc(), INDENT * 2))] - - if not args: - source.append("{}pass".format(INDENT * 2)) - else: - for arg in args: - arg_name = name_to_py(arg[0]) - arg_type = arg[1] - arg_type_name = strcast(arg_type) - if arg_type in basic_types: - source.append("{}self.{} = {}".format(INDENT * 2, - arg_name, - arg_name)) - elif type(arg_type) is typing.TypeVar: - source.append("{}self.{} = {}.from_json({}) " - "if {} else None".format(INDENT * 2, - arg_name, - arg_type_name, - arg_name, - arg_name)) - elif issubclass(arg_type, typing.Sequence): - value_type = ( - arg_type_name.__parameters__[0] - if len(arg_type_name.__parameters__) - else None - ) - if type(value_type) is typing.TypeVar: - source.append( - "{}self.{} = [{}.from_json(o) " - "for o in {} or []]".format(INDENT * 2, - arg_name, - strcast(value_type), - arg_name)) - else: - source.append("{}self.{} = {}".format(INDENT * 2, - arg_name, - arg_name)) - elif issubclass(arg_type, typing.Mapping): - value_type = ( - arg_type_name.__parameters__[1] - if len(arg_type_name.__parameters__) > 1 - else None - ) - if type(value_type) is typing.TypeVar: - source.append( - "{}self.{} = {{k: {}.from_json(v) " - "for k, v in ({} or dict()).items()}}".format( - INDENT * 2, - arg_name, - strcast(value_type), - arg_name)) - else: - source.append("{}self.{} = {}".format(INDENT * 2, - arg_name, - arg_name)) - else: - source.append("{}self.{} = {}".format(INDENT * 2, - arg_name, - arg_name)) - - source = "\n".join(source) - capture.clear(name) - capture[name].write(source) - capture[name].write("\n\n") - co = compile(source, __name__, "exec") - ns = _getns() - exec(co, ns) - cls = ns[name] - CLASSES[name] = cls - - -def retspec(defs): - # return specs - # only return 1, so if there is more than one type - # we need to include a union - # In truth there is only 1 return - # Error or the expected Type - if not defs: - return None - if defs in basic_types: - return strcast(defs, False) - rtypes = _registry.getObj(_types[defs]) - if not rtypes: - return None - if len(rtypes) > 1: - return Union[tuple([strcast(r[1], True) for r in rtypes])] - return strcast(rtypes[0][1], False) - - -def return_type(defs): - if not defs: - return None - rtypes = _registry.getObj(_types[defs]) - if not rtypes: - return None - if len(rtypes) > 1: - for n, t in rtypes: - if n == "Error": - continue - return t - return rtypes[0][1] - - -def type_anno_func(func, defs, is_result=False): - annos = {} - if not defs: - return func - rtypes = _registry.getObj(_types[defs]) - if is_result: - kn = "return" - if not rtypes: - annos[kn] = None - elif len(rtypes) > 1: - annos[kn] = Union[tuple([r[1] for r in rtypes])] - else: - annos[kn] = rtypes[0][1] - else: - for name, rtype in rtypes: - name = name_to_py(name) - annos[name] = rtype - func.__annotations__.update(annos) - return func - - -def ReturnMapping(cls): - # Annotate the method with a return Type - # so the value can be cast - def decorator(f): - @functools.wraps(f) - async def wrapper(*args, **kwargs): - nonlocal cls - reply = await f(*args, **kwargs) - if cls is None: - return reply - if 'error' in reply: - cls = CLASSES['Error'] - if issubclass(cls, typing.Sequence): - result = [] - item_cls = cls.__parameters__[0] - for item in reply: - result.append(item_cls.from_json(item)) - """ - if 'error' in item: - cls = CLASSES['Error'] - else: - cls = item_cls - result.append(cls.from_json(item)) - """ - else: - result = cls.from_json(reply['response']) - - return result - return wrapper - return decorator - - -def makeFunc(cls, name, params, result, _async=True): - INDENT = " " - args = Args(params) - assignments = [] - toschema = args.PyToSchemaMapping() - for arg in args._get_arg_str(False, False): - assignments.append("{}_params[\'{}\'] = {}".format(INDENT, - toschema[arg], - arg)) - assignments = "\n".join(assignments) - res = retspec(result) - source = """ - -@ReturnMapping({rettype}) -{_async}def {name}(self{argsep}{args}): - ''' -{docstring} - Returns -> {res} - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='{cls.name}', - request='{name}', - version={cls.version}, - params=_params) -{assignments} - reply = {_await}self.rpc(msg) - return reply - -""" - - fsource = source.format(_async="async " if _async else "", - name=name, - argsep=", " if args else "", - args=args, - res=res, - rettype=result.__name__ if result else None, - docstring=textwrap.indent(args.get_doc(), INDENT), - cls=cls, - assignments=assignments, - _await="await " if _async else "") - ns = _getns() - exec(fsource, ns) - func = ns[name] - return func, fsource - - -def buildMethods(cls, capture): - properties = cls.schema['properties'] - for methodname in sorted(properties): - method, source = _buildMethod(cls, methodname) - setattr(cls, methodname, method) - capture["{}Facade".format(cls.__name__)].write(source, depth=1) - - -def _buildMethod(cls, name): - params = None - result = None - method = cls.schema['properties'][name] - if 'properties' in method: - prop = method['properties'] - spec = prop.get('Params') - if spec: - params = _types.get(spec['$ref']) - spec = prop.get('Result') - if spec: - if '$ref' in spec: - result = _types.get(spec['$ref']) - else: - result = SCHEMA_TO_PYTHON[spec['type']] - return makeFunc(cls, name, params, result) - - -def buildFacade(schema): - cls = type(schema.name, (Type,), dict(name=schema.name, - version=schema.version, - schema=schema)) - source = """ -class {name}Facade(Type): - name = '{name}' - version = {version} - schema = {schema} - """.format(name=schema.name, - version=schema.version, - schema=textwrap.indent(pprint.pformat(schema), " ")) - return cls, source - - -class TypeEncoder(json.JSONEncoder): - def default(self, obj): - if isinstance(obj, Type): - return obj.serialize() - return json.JSONEncoder.default(self, obj) - - -class Type: - def connect(self, connection): - self.connection = connection - - async def rpc(self, msg): - result = await self.connection.rpc(msg, encoder=TypeEncoder) - return result - - @classmethod - def from_json(cls, data): - if isinstance(data, cls): - return data - if isinstance(data, str): - try: - data = json.loads(data) - except json.JSONDecodeError: - raise - d = {} - for k, v in (data or {}).items(): - d[cls._toPy.get(k, k)] = v - - try: - return cls(**d) - except TypeError: - raise - - def serialize(self): - d = {} - for attr, tgt in self._toSchema.items(): - d[tgt] = getattr(self, attr) - return d - - def to_json(self): - return json.dumps(self.serialize(), cls=TypeEncoder, sort_keys=True) - - -class Schema(dict): - def __init__(self, schema): - self.name = schema['Name'] - self.version = schema['Version'] - self.update(schema['Schema']) - - @classmethod - def referenceName(cls, ref): - if ref.startswith("#/definitions/"): - ref = ref.rsplit("/", 1)[-1] - return ref - - def resolveDefinition(self, ref): - return self['definitions'][self.referenceName(ref)] - - def deref(self, prop, name): - if not isinstance(prop, dict): - raise TypeError(prop) - if "$ref" not in prop: - return prop - - target = self.resolveDefinition(prop["$ref"]) - return target - - def buildDefinitions(self): - # here we are building the types out - # anything in definitions is a type - # but these may contain references themselves - # so we dfs to the bottom and build upwards - # when a types is already in the registry - defs = self.get('definitions') - if not defs: - return - for d, data in defs.items(): - if d in _registry and d not in NAUGHTY_CLASSES: - continue - node = self.deref(data, d) - kind = node.get("type") - if kind == "object": - result = self.buildObject(node, d) - elif kind == "array": - pass - _registry.register(d, self.version, result) - # XXX: This makes sure that the type gets added to the global - # _types dict even if no other type in the schema has a ref - # to it. - getRefType(d) - - def buildObject(self, node, name=None, d=0): - # we don't need to build types recursively here - # they are all in definitions already - # we only want to include the type reference - # which we can derive from the name - struct = [] - add = struct.append - props = node.get("properties") - pprops = node.get("patternProperties") - if props: - # Sort these so the __init__ arg list for each Type remains - # consistently ordered across regens of client.py - for p in sorted(props): - prop = props[p] - if "$ref" in prop: - add((p, refType(prop))) - else: - kind = prop['type'] - if kind == "array": - add((p, self.buildArray(prop, d + 1))) - elif kind == "object": - struct.extend(self.buildObject(prop, p, d + 1)) - else: - add((p, objType(prop))) - if pprops: - if ".*" not in pprops: - raise ValueError( - "Cannot handle actual pattern in patternProperties %s" % - pprops) - pprop = pprops[".*"] - if "$ref" in pprop: - add((name, Mapping[str, refType(pprop)])) - return struct - ppkind = pprop["type"] - if ppkind == "array": - add((name, self.buildArray(pprop, d + 1))) - else: - add((name, Mapping[str, SCHEMA_TO_PYTHON[ppkind]])) - - if not struct and node.get('additionalProperties', False): - add((name, Mapping[str, SCHEMA_TO_PYTHON['object']])) - - return struct - - def buildArray(self, obj, d=0): - # return a sequence from an array in the schema - if "$ref" in obj: - return Sequence[refType(obj)] - else: - kind = obj.get("type") - if kind and kind == "array": - items = obj['items'] - return self.buildArray(items, d + 1) - else: - return Sequence[objType(obj)] - - -def _getns(): - ns = {'Type': Type, - 'typing': typing, - 'ReturnMapping': ReturnMapping - } - # Copy our types into the globals of the method - for facade in _registry: - ns[facade] = _registry.getObj(facade) - return ns - - -def make_factory(name): - if name in factories: - del factories[name] - factories[name].write("class {}(TypeFactory):\n pass\n\n".format(name)) - - -def write_facades(captures, options): - """ - Write the Facades to the appropriate _client.py - - """ - for version in sorted(captures.keys()): - filename = "{}/_client{}.py".format(options.output_dir, version) - with open(filename, "w") as f: - f.write(HEADER) - f.write("from juju.client.facade import Type, ReturnMapping\n") - f.write("from juju.client._definitions import *\n\n") - for key in sorted( - [k for k in captures[version].keys() if "Facade" in k]): - print(captures[version][key], file=f) - - # Return the last (most recent) version for use in other routines. - return version - - -def write_definitions(captures, options, version): - """ - Write auxillary (non versioned) classes to - _definitions.py The auxillary classes currently get - written redudantly into each capture object, so we can look in - one of them -- we just use the last one from the loop above. - - """ - with open("{}/_definitions.py".format(options.output_dir), "w") as f: - f.write(HEADER) - f.write("from juju.client.facade import Type, ReturnMapping\n\n") - for key in sorted( - [k for k in captures[version].keys() if "Facade" not in k]): - print(captures[version][key], file=f) - - -def write_client(captures, options): - """ - Write the TypeFactory classes to _client.py, along with some - imports and tables so that we can look up versioned Facades. - - """ - with open("{}/_client.py".format(options.output_dir), "w") as f: - f.write(HEADER) - f.write("from juju.client._definitions import *\n\n") - clients = ", ".join("_client{}".format(v) for v in captures) - f.write("from juju.client import " + clients + "\n\n") - f.write(CLIENT_TABLE.format(clients=",\n ".join( - ['"{}": _client{}'.format(v, v) for v in captures]))) - f.write(LOOKUP_FACADE) - f.write(TYPE_FACTORY) - for key in sorted([k for k in factories.keys() if "Facade" in k]): - print(factories[key], file=f) - - -def generate_facades(options): - captures = defaultdict(codegen.Capture) - schemas = {} - for p in sorted(glob(options.schema)): - if 'latest' in p: - juju_version = 'latest' - else: - try: - juju_version = re.search(JUJU_VERSION, p).group() - except AttributeError: - print("Cannot extract a juju version from {}".format(p)) - print("Schemas must include a juju version in the filename") - raise SystemExit(1) - - new_schemas = json.loads(Path(p).read_text("utf-8")) - schemas[juju_version] = [Schema(s) for s in new_schemas] - - # Build all of the auxillary (unversioned) classes - # TODO: get rid of some of the excess trips through loops in the - # called functions. - for juju_version in sorted(schemas.keys()): - for schema in schemas[juju_version]: - schema.buildDefinitions() - buildTypes(schema, captures[schema.version]) - - # Build the Facade classes - for juju_version in sorted(schemas.keys()): - for schema in schemas[juju_version]: - cls, source = buildFacade(schema) - cls_name = "{}Facade".format(schema.name) - - captures[schema.version].clear(cls_name) - # Make the factory class for _client.py - make_factory(cls_name) - # Make the actual class - captures[schema.version][cls_name].write(source) - # Build the methods for each Facade class. - buildMethods(cls, captures[schema.version]) - # Mark this Facade class as being done for this version -- - # helps mitigate some excessive looping. - CLASSES[schema.name] = cls - - return captures - - -def setup(): - parser = argparse.ArgumentParser() - parser.add_argument("-s", "--schema", default="juju/client/schemas*") - parser.add_argument("-o", "--output_dir", default="juju/client") - options = parser.parse_args() - return options - - -def main(): - options = setup() - - # Generate some text blobs - captures = generate_facades(options) - - # ... and write them out - last_version = write_facades(captures, options) - write_definitions(captures, options, last_version) - write_client(captures, options) - - -if __name__ == '__main__': - main() diff --git a/modules/libjuju/juju/client/gocookies.py b/modules/libjuju/juju/client/gocookies.py deleted file mode 100644 index 3e48b8d..0000000 --- a/modules/libjuju/juju/client/gocookies.py +++ /dev/null @@ -1,102 +0,0 @@ -import datetime -import http.cookiejar as cookiejar -import json -import time - -import pyrfc3339 - - -class GoCookieJar(cookiejar.FileCookieJar): - '''A CookieJar implementation that reads and writes cookies - to the cookiejar format as understood by the Go package - github.com/juju/persistent-cookiejar.''' - def _really_load(self, f, filename, ignore_discard, ignore_expires): - '''Implement the _really_load method called by FileCookieJar - to implement the actual cookie loading''' - data = json.load(f) or [] - now = time.time() - for cookie in map(go_to_py_cookie, data): - if not ignore_expires and cookie.is_expired(now): - continue - self.set_cookie(cookie) - - def save(self, filename=None, ignore_discard=False, ignore_expires=False): - '''Implement the FileCookieJar abstract method.''' - if filename is None: - if self.filename is not None: - filename = self.filename - else: - raise ValueError(cookiejar.MISSING_FILENAME_TEXT) - - # TODO: obtain file lock, read contents of file, and merge with - # current content. - go_cookies = [] - now = time.time() - for cookie in self: - if not ignore_discard and cookie.discard: - continue - if not ignore_expires and cookie.is_expired(now): - continue - go_cookies.append(py_to_go_cookie(cookie)) - with open(filename, "w") as f: - f.write(json.dumps(go_cookies)) - - -def go_to_py_cookie(go_cookie): - '''Convert a Go-style JSON-unmarshaled cookie into a Python cookie''' - expires = None - if go_cookie.get('Expires') is not None: - t = pyrfc3339.parse(go_cookie['Expires']) - expires = t.timestamp() - return cookiejar.Cookie( - version=0, - name=go_cookie['Name'], - value=go_cookie['Value'], - port=None, - port_specified=False, - # Unfortunately Python cookies don't record the original - # host that the cookie came from, so we'll just use Domain - # for that purpose, and record that the domain was specified, - # even though it probably was not. This means that - # we won't correctly record the CanonicalHost entry - # when writing the cookie file after reading it. - domain=go_cookie['Domain'], - domain_specified=not go_cookie['HostOnly'], - domain_initial_dot=False, - path=go_cookie['Path'], - path_specified=True, - secure=go_cookie['Secure'], - expires=expires, - discard=False, - comment=None, - comment_url=None, - rest=None, - rfc2109=False, - ) - - -def py_to_go_cookie(py_cookie): - '''Convert a python cookie to the JSON-marshalable Go-style cookie form.''' - # TODO (perhaps): - # HttpOnly - # Creation - # LastAccess - # Updated - # not done properly: CanonicalHost. - go_cookie = { - 'Name': py_cookie.name, - 'Value': py_cookie.value, - 'Domain': py_cookie.domain, - 'HostOnly': not py_cookie.domain_specified, - 'Persistent': not py_cookie.discard, - 'Secure': py_cookie.secure, - 'CanonicalHost': py_cookie.domain, - } - if py_cookie.path_specified: - go_cookie['Path'] = py_cookie.path - if py_cookie.expires is not None: - unix_time = datetime.datetime.fromtimestamp(py_cookie.expires) - # Note: fromtimestamp bizarrely produces a time without - # a time zone, so we need to use accept_naive. - go_cookie['Expires'] = pyrfc3339.generate(unix_time, accept_naive=True) - return go_cookie diff --git a/modules/libjuju/juju/client/jujudata.py b/modules/libjuju/juju/client/jujudata.py deleted file mode 100644 index 8b844c2..0000000 --- a/modules/libjuju/juju/client/jujudata.py +++ /dev/null @@ -1,219 +0,0 @@ -import abc -import io -import os -import pathlib - -import juju.client.client as jujuclient -import yaml -from juju import tag -from juju.client.gocookies import GoCookieJar -from juju.errors import JujuError - - -class NoModelException(Exception): - pass - - -class JujuData: - __metaclass__ = abc.ABCMeta - - @abc.abstractmethod - def current_controller(self): - '''Return the current controller name''' - raise NotImplementedError() - - @abc.abstractmethod - def controllers(self): - '''Return all the currently known controllers as a dict - mapping controller name to a dict containing the - following string keys: - uuid: The UUID of the controller - api-endpoints: A list of host:port addresses for the controller. - ca-cert: the PEM-encoded CA cert of the controller (optional) - - This is compatible with the "controllers" entry in the YAML-unmarshaled data - stored in ~/.local/share/juju/controllers.yaml. - ''' - raise NotImplementedError() - - @abc.abstractmethod - def models(self): - '''Return all the currently known models as a dict - containing a key for each known controller, - each holding a dict value containing an optional "current-model" - key (the name of the current model for that controller, - if there is one), and a dict mapping fully-qualified - model names to a dict containing a "uuid" key with the - key for that model. - This is compatible with the YAML-unmarshaled data - stored in ~/.local/share/juju/models.yaml. - ''' - raise NotImplementedError() - - @abc.abstractmethod - def accounts(self): - '''Return the currently known accounts, as a dict - containing a key for each known controller, with - each value holding a dict with the following keys: - - user: The username to use when logging into the controller (str) - password: The password to use when logging into the controller (str, optional) - ''' - raise NotImplementedError() - - @abc.abstractmethod - def cookies_for_controller(self, controller_name): - '''Return the cookie jar to use when connecting to the - controller with the given name. - :return http.cookiejar.CookieJar - ''' - raise NotImplementedError() - - @abc.abstractmethod - def current_model(self, controller_name=None, model_only=False): - '''Return the current model, qualified by its controller name. - If controller_name is specified, the current model for - that controller will be returned. - If model_only is true, only the model name, not qualified by - its controller name, will be returned. - ''' - raise NotImplementedError() - - def parse_model(self, model): - """Split the given model_name into controller and model parts. - If the controller part is empty, the current controller will be used. - If the model part is empty, the current model will be used for - the controller. - The returned model name will always be qualified with a username. - :param model str: The model name to parse. - :return (str, str): The controller and model names. - """ - # TODO if model is empty, use $JUJU_MODEL environment variable. - if model and ':' in model: - # explicit controller given - controller_name, model_name = model.split(':') - else: - # use the current controller if one isn't explicitly given - controller_name = self.current_controller() - model_name = model - if not controller_name: - controller_name = self.current_controller() - if not model_name: - model_name = self.current_model(controller_name, model_only=True) - if not model_name: - raise NoModelException('no current model') - - if '/' not in model_name: - # model name doesn't include a user prefix, so add one - # by using the current user for the controller. - accounts = self.accounts().get(controller_name) - if accounts is None: - raise JujuError('No account found for controller {} '.format(controller_name)) - username = accounts.get('user') - if username is None: - raise JujuError('No username found for controller {}'.format(controller_name)) - model_name = username + "/" + model_name - - return controller_name, model_name - - -class FileJujuData(JujuData): - '''Provide access to the Juju client configuration files. - Any configuration file is read once and then cached.''' - def __init__(self): - self.path = os.environ.get('JUJU_DATA') or '~/.local/share/juju' - self.path = os.path.abspath(os.path.expanduser(self.path)) - # _loaded keeps track of the loaded YAML from - # the Juju data files so we don't need to load the same - # file many times. - self._loaded = {} - - def refresh(self): - '''Forget the cache of configuration file data''' - self._loaded = {} - - def current_controller(self): - '''Return the current controller name''' - return self._load_yaml('controllers.yaml', 'current-controller') - - def current_model(self, controller_name=None, model_only=False): - '''Return the current model, qualified by its controller name. - If controller_name is specified, the current model for - that controller will be returned. - - If model_only is true, only the model name, not qualified by - its controller name, will be returned. - ''' - # TODO respect JUJU_MODEL environment variable. - if not controller_name: - controller_name = self.current_controller() - if not controller_name: - raise JujuError('No current controller') - models = self.models()[controller_name] - if 'current-model' not in models: - return None - if model_only: - return models['current-model'] - return controller_name + ':' + models['current-model'] - - def load_credential(self, cloud, name=None): - """Load a local credential. - - :param str cloud: Name of cloud to load credentials from. - :param str name: Name of credential. If None, the default credential - will be used, if available. - :return: A CloudCredential instance, or None. - """ - try: - cloud = tag.untag('cloud-', cloud) - creds_data = self.credentials()[cloud] - if not name: - default_credential = creds_data.pop('default-credential', None) - default_region = creds_data.pop('default-region', None) # noqa - if default_credential: - name = creds_data['default-credential'] - elif len(creds_data) == 1: - name = list(creds_data)[0] - else: - return None, None - cred_data = creds_data[name] - auth_type = cred_data.pop('auth-type') - return name, jujuclient.CloudCredential( - auth_type=auth_type, - attrs=cred_data, - ) - except (KeyError, FileNotFoundError): - return None, None - - def controllers(self): - return self._load_yaml('controllers.yaml', 'controllers') - - def models(self): - return self._load_yaml('models.yaml', 'controllers') - - def accounts(self): - return self._load_yaml('accounts.yaml', 'controllers') - - def credentials(self): - return self._load_yaml('credentials.yaml', 'credentials') - - def _load_yaml(self, filename, key): - if filename in self._loaded: - # Data already exists in the cache. - return self._loaded[filename].get(key) - # TODO use the file lock like Juju does. - filepath = os.path.join(self.path, filename) - with io.open(filepath, 'rt') as f: - data = yaml.safe_load(f) - self._loaded[filename] = data - return data.get(key) - - def cookies_for_controller(self, controller_name): - f = pathlib.Path(self.path) / 'cookies' / (controller_name + '.json') - if not f.exists(): - f = pathlib.Path('~/.go-cookies').expanduser() - # TODO if neither cookie file exists, where should - # we create the cookies? - jar = GoCookieJar(str(f)) - jar.load() - return jar diff --git a/modules/libjuju/juju/client/overrides.py b/modules/libjuju/juju/client/overrides.py deleted file mode 100644 index 49ab931..0000000 --- a/modules/libjuju/juju/client/overrides.py +++ /dev/null @@ -1,365 +0,0 @@ -import re -from collections import namedtuple - -from . import _client, _definitions -from .facade import ReturnMapping, Type, TypeEncoder - -__all__ = [ - 'Delta', - 'Number', - 'Binary', - 'ConfigValue', - 'Resource', -] - -__patches__ = [ - 'ResourcesFacade', - 'AllWatcherFacade', - 'ActionFacade', -] - - -class Delta(Type): - """A single websocket delta. - - :ivar entity: The entity name, e.g. 'unit', 'application' - :vartype entity: str - - :ivar type: The delta type, e.g. 'add', 'change', 'remove' - :vartype type: str - - :ivar data: The raw delta data - :vartype data: dict - - NOTE: The 'data' variable above is being incorrectly cross-linked by a - Sphinx bug: https://github.com/sphinx-doc/sphinx/issues/2549 - - """ - _toSchema = {'deltas': 'deltas'} - _toPy = {'deltas': 'deltas'} - - def __init__(self, deltas=None): - """ - :param deltas: [str, str, object] - - """ - self.deltas = deltas - - Change = namedtuple('Change', 'entity type data') - change = Change(*self.deltas) - - self.entity = change.entity - self.type = change.type - self.data = change.data - - @classmethod - def from_json(cls, data): - return cls(deltas=data) - - -class ResourcesFacade(Type): - """Patch parts of ResourcesFacade to make it work. - """ - - @ReturnMapping(_client.AddPendingResourcesResult) - async def AddPendingResources(self, application_tag, charm_url, resources): - """Fix the calling signature of AddPendingResources. - - The ResourcesFacade doesn't conform to the standard facade pattern in - the Juju source, which leads to the schemagened code not matching up - properly with the actual calling convention in the API. There is work - planned to fix this in Juju, but we have to work around it for now. - - application_tag : str - charm_url : str - resources : typing.Sequence<+T_co>[~CharmResource]<~CharmResource> - Returns -> typing.Union[_ForwardRef('ErrorResult'), - typing.Sequence<+T_co>[str]] - """ - # map input types to rpc msg - _params = dict() - msg = dict(type='Resources', - request='AddPendingResources', - version=1, - params=_params) - _params['tag'] = application_tag - _params['url'] = charm_url - _params['resources'] = resources - reply = await self.rpc(msg) - return reply - - -class AllWatcherFacade(Type): - """ - Patch rpc method of allwatcher to add in 'id' stuff. - - """ - async def rpc(self, msg): - if not hasattr(self, 'Id'): - client = _client.ClientFacade.from_connection(self.connection) - - result = await client.WatchAll() - self.Id = result.watcher_id - - msg['Id'] = self.Id - result = await self.connection.rpc(msg, encoder=TypeEncoder) - return result - - -class ActionFacade(Type): - - class _FindTagsResults(Type): - _toSchema = {'matches': 'matches'} - _toPy = {'matches': 'matches'} - - def __init__(self, matches=None, **unknown_fields): - ''' - FindTagsResults wraps the mapping between the requested prefix and the - matching tags for each requested prefix. - - Matches map[string][]Entity `json:"matches"` - ''' - self.matches = {} - matches = matches or {} - for prefix, tags in matches.items(): - self.matches[prefix] = [_definitions.Entity.from_json(r) - for r in tags] - - @ReturnMapping(_FindTagsResults) - async def FindActionTagsByPrefix(self, prefixes): - ''' - prefixes : typing.Sequence[str] - Returns -> typing.Sequence[~Entity] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='FindActionTagsByPrefix', - version=2, - params=_params) - _params['prefixes'] = prefixes - reply = await self.rpc(msg) - return reply - - -class Number(_definitions.Number): - """ - This type represents a semver string. - - Because it is not standard JSON, the typical from_json parsing fails and - the parsing must be handled specially. - - See https://github.com/juju/version for more info. - """ - numberPat = re.compile(r'^(\d{1,9})\.(\d{1,9})(?:\.|-([a-z]+))(\d{1,9})(\.\d{1,9})?$') # noqa - - def __init__(self, major=None, minor=None, patch=None, tag=None, - build=None, **unknown_fields): - ''' - major : int - minor : int - patch : int - tag : str - build : int - ''' - self.major = int(major or '0') - self.minor = int(minor or '0') - self.patch = int(patch or '0') - self.tag = tag or '' - self.build = int(build or '0') - - def __repr__(self): - return ''.format( - self.major, self.minor, self.patch, self.tag, self.build) - - def __str__(self): - return self.serialize() - - @property - def _cmp(self): - return (self.major, self.minor, self.tag, self.patch, self.build) - - def __eq__(self, other): - return isinstance(other, type(self)) and self._cmp == other._cmp - - def __lt__(self, other): - return self._cmp < other._cmp - - def __le__(self, other): - return self._cmp <= other._cmp - - def __gt__(self, other): - return self._cmp > other._cmp - - def __ge__(self, other): - return self._cmp >= other._cmp - - @classmethod - def from_json(cls, data): - parsed = None - if isinstance(data, cls): - return data - elif data is None: - return cls() - elif isinstance(data, dict): - parsed = data - elif isinstance(data, str): - match = cls.numberPat.match(data) - if match: - parsed = { - 'major': match.group(1), - 'minor': match.group(2), - 'tag': match.group(3), - 'patch': match.group(4), - 'build': (match.group(5)[1:] if match.group(5) - else 0), - } - if not parsed: - raise TypeError('Unable to parse Number version string: ' - '{}'.format(data)) - d = {} - for k, v in parsed.items(): - d[cls._toPy.get(k, k)] = v - - return cls(**d) - - def serialize(self): - s = "" - if not self.tag: - s = "{}.{}.{}".format(self.major, self.minor, self.patch) - else: - s = "{}.{}-{}{}".format(self.major, self.minor, self.tag, - self.patch) - if self.build: - s = "{}.{}".format(s, self.build) - return s - - def to_json(self): - return self.serialize() - - -class Binary(_definitions.Binary): - """ - This type represents a semver string with additional series and arch info. - - Because it is not standard JSON, the typical from_json parsing fails and - the parsing must be handled specially. - - See https://github.com/juju/version for more info. - """ - binaryPat = re.compile(r'^(\d{1,9})\.(\d{1,9})(?:\.|-([a-z]+))(\d{1,9})(\.\d{1,9})?-([^-]+)-([^-]+)$') # noqa - - def __init__(self, number=None, series=None, arch=None, **unknown_fields): - ''' - number : Number - series : str - arch : str - ''' - self.number = Number.from_json(number) - self.series = series - self.arch = arch - - def __repr__(self): - return ''.format( - self.number, self.series, self.arch) - - def __str__(self): - return self.serialize() - - def __eq__(self, other): - return ( - isinstance(other, type(self)) and - other.number == self.number and - other.series == self.series and - other.arch == self.arch) - - @classmethod - def from_json(cls, data): - parsed = None - if isinstance(data, cls): - return data - elif data is None: - return cls() - elif isinstance(data, dict): - parsed = data - elif isinstance(data, str): - match = cls.binaryPat.match(data) - if match: - parsed = { - 'number': { - 'major': match.group(1), - 'minor': match.group(2), - 'tag': match.group(3), - 'patch': match.group(4), - 'build': (match.group(5)[1:] if match.group(5) - else 0), - }, - 'series': match.group(6), - 'arch': match.group(7), - } - if parsed is None: - raise TypeError('Unable to parse Binary version string: ' - '{}'.format(data)) - d = {} - for k, v in parsed.items(): - d[cls._toPy.get(k, k)] = v - - return cls(**d) - - def serialize(self): - return "{}-{}-{}".format(self.number.serialize(), - self.series, self.arch) - - def to_json(self): - return self.serialize() - - -class ConfigValue(_definitions.ConfigValue): - def __repr__(self): - return '<{} source={} value={}>'.format(type(self).__name__, - repr(self.source), - repr(self.value)) - - -class Resource(Type): - _toSchema = {'application': 'application', - 'charmresource': 'CharmResource', - 'id_': 'id', - 'pending_id': 'pending-id', - 'timestamp': 'timestamp', - 'username': 'username', - 'name': 'name', - 'origin': 'origin'} - _toPy = {'CharmResource': 'charmresource', - 'application': 'application', - 'id': 'id_', - 'pending-id': 'pending_id', - 'timestamp': 'timestamp', - 'username': 'username', - 'name': 'name', - 'origin': 'origin'} - - def __init__(self, charmresource=None, application=None, id_=None, - pending_id=None, timestamp=None, username=None, name=None, - origin=None, **unknown_fields): - ''' - charmresource : CharmResource - application : str - id_ : str - pending_id : str - timestamp : str - username : str - name: str - origin : str - ''' - if charmresource: - self.charmresource = _client.CharmResource.from_json(charmresource) - else: - self.charmresource = None - self.application = application - self.id_ = id_ - self.pending_id = pending_id - self.timestamp = timestamp - self.username = username - self.name = name - self.origin = origin diff --git a/modules/libjuju/juju/client/runner.py b/modules/libjuju/juju/client/runner.py deleted file mode 100644 index 6545bc4..0000000 --- a/modules/libjuju/juju/client/runner.py +++ /dev/null @@ -1,21 +0,0 @@ - -class AsyncRunner: - async def __call__(self, facade_method, *args, **kwargs): - await self.connection.rpc(facade_method(*args, **kwargs)) - - -class ThreadedRunner: - pass - -# Methods are descriptors?? -# get is called with params -# set gets called with the result? -# This could let us fake the protocol we want -# while decoupling the protocol from the RPC and the IO/Process context - -# The problem is leaking the runtime impl details to the top levels of the API -# with async def By handling the Marshal/Unmarshal side of RPC as a protocol we -# can leave the RPC running to a specific delegate without altering the method -# signatures. This still isn't quite right though as async is co-op -# multitasking and the methods still need to know not to block or they will -# pause other execution diff --git a/modules/libjuju/juju/client/schemas-juju-2.0.0.json b/modules/libjuju/juju/client/schemas-juju-2.0.0.json deleted file mode 100644 index c53a541..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.0.0.json +++ /dev/null @@ -1,24533 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "ip-addresses", - "instance-id", - "series", - "id", - "containers", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "migration": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "CloudRegion": { - "type": "object", - "properties": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Controller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiscoverSpaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DiscoverSpacesResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "DiscoverSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ProviderSpace": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider-id", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "tools" - ] - }, - "SerializedModelTools": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "external-control": { - "type": "boolean" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "external-control", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "tools" - ] - }, - "SerializedModelTools": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EnvListArgs" - }, - "Result": { - "$ref": "#/definitions/EnvListResults" - } - } - } - }, - "definitions": { - "EnvListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "EnvListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetInstanceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InstancesInfo" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetSupportedContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineContainersParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchAllContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/WatchContainers" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/WatchContainers" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMachineErrorRetry": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "ConstraintsResult": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "ConstraintsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConstraintsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ContainerConfig": { - "type": "object", - "properties": { - "UpdateBehavior": { - "$ref": "#/definitions/UpdateBehavior" - }, - "apt-mirror": { - "type": "string" - }, - "apt-proxy": { - "$ref": "#/definitions/Settings" - }, - "authorized-keys": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "proxy": { - "$ref": "#/definitions/Settings" - }, - "ssl-hostname-verification": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "provider-type", - "authorized-keys", - "ssl-hostname-verification", - "proxy", - "apt-proxy", - "apt-mirror", - "UpdateBehavior" - ] - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ContainerManagerConfigParams": { - "type": "object", - "properties": { - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DistributionGroupResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DistributionGroupResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DistributionGroupResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "InstanceInfo": { - "type": "object", - "properties": { - "characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "network-config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "nonce": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "volume-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentInfo" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "tag", - "instance-id", - "nonce", - "characteristics", - "volumes", - "volume-attachments", - "network-config" - ] - }, - "InstancesInfo": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/InstanceInfo" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineContainers": { - "type": "object", - "properties": { - "container-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-types" - ] - }, - "MachineContainersParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineContainers" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachineNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "MachineNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "Resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "Resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - } - }, - "definitions": { - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnitsNetworkConfig" - }, - "Result": { - "$ref": "#/definitions/UnitNetworkConfigResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchApplicationRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitNetworkConfig": { - "type": "object", - "properties": { - "binding-name": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "binding-name" - ] - }, - "UnitNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "UnitNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "UnitsNetworkConfig": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.0.1.json b/modules/libjuju/juju/client/schemas-juju-2.0.1.json deleted file mode 100644 index 69db493..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.0.1.json +++ /dev/null @@ -1,24799 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationRelationsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ApplicationRelationsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "ApplicationRelationsChange": { - "type": "object", - "properties": { - "changed": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationChange" - } - }, - "removed": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false - }, - "ApplicationRelationsWatchResult": { - "type": "object", - "properties": { - "ApplicationRelationsWatcherId": { - "type": "string" - }, - "changes": { - "$ref": "#/definitions/ApplicationRelationsChange" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "ApplicationRelationsWatcherId" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationChange": { - "type": "object", - "properties": { - "changedunits": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RelationUnitChange" - } - } - }, - "departedunits": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "integer" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life" - ] - }, - "RelationUnitChange": { - "type": "object", - "properties": { - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "ip-addresses", - "instance-id", - "series", - "id", - "containers", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "migration": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "application-url": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "application-url", - "application-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "CloudRegion": { - "type": "object", - "properties": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Controller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiscoverSpaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DiscoverSpacesResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "DiscoverSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ProviderSpace": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider-id", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "tools" - ] - }, - "SerializedModelTools": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "external-control": { - "type": "boolean" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "external-control", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "tools" - ] - }, - "SerializedModelTools": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EnvListArgs" - }, - "Result": { - "$ref": "#/definitions/EnvListResults" - } - } - } - }, - "definitions": { - "EnvListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "EnvListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetInstanceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InstancesInfo" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetSupportedContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineContainersParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchAllContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/WatchContainers" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/WatchContainers" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMachineErrorRetry": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "ConstraintsResult": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "ConstraintsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConstraintsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ContainerConfig": { - "type": "object", - "properties": { - "UpdateBehavior": { - "$ref": "#/definitions/UpdateBehavior" - }, - "apt-mirror": { - "type": "string" - }, - "apt-proxy": { - "$ref": "#/definitions/Settings" - }, - "authorized-keys": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "proxy": { - "$ref": "#/definitions/Settings" - }, - "ssl-hostname-verification": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "provider-type", - "authorized-keys", - "ssl-hostname-verification", - "proxy", - "apt-proxy", - "apt-mirror", - "UpdateBehavior" - ] - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ContainerManagerConfigParams": { - "type": "object", - "properties": { - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DistributionGroupResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DistributionGroupResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DistributionGroupResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "InstanceInfo": { - "type": "object", - "properties": { - "characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "network-config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "nonce": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "volume-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentInfo" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "tag", - "instance-id", - "nonce", - "characteristics", - "volumes", - "volume-attachments", - "network-config" - ] - }, - "InstancesInfo": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/InstanceInfo" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineContainers": { - "type": "object", - "properties": { - "container-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-types" - ] - }, - "MachineContainersParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineContainers" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachineNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "MachineNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "Resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "Resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - } - }, - "definitions": { - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnitsNetworkConfig" - }, - "Result": { - "$ref": "#/definitions/UnitNetworkConfigResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchApplicationRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitNetworkConfig": { - "type": "object", - "properties": { - "binding-name": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "binding-name" - ] - }, - "UnitNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "UnitNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "UnitsNetworkConfig": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.0.2.json b/modules/libjuju/juju/client/schemas-juju-2.0.2.json deleted file mode 100644 index 69db493..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.0.2.json +++ /dev/null @@ -1,24799 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationRelationsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ApplicationRelationsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "ApplicationRelationsChange": { - "type": "object", - "properties": { - "changed": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationChange" - } - }, - "removed": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false - }, - "ApplicationRelationsWatchResult": { - "type": "object", - "properties": { - "ApplicationRelationsWatcherId": { - "type": "string" - }, - "changes": { - "$ref": "#/definitions/ApplicationRelationsChange" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "ApplicationRelationsWatcherId" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationChange": { - "type": "object", - "properties": { - "changedunits": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RelationUnitChange" - } - } - }, - "departedunits": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "integer" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life" - ] - }, - "RelationUnitChange": { - "type": "object", - "properties": { - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "ip-addresses", - "instance-id", - "series", - "id", - "containers", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "migration": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "application-url": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "application-url", - "application-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "CloudRegion": { - "type": "object", - "properties": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Controller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiscoverSpaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DiscoverSpacesResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "DiscoverSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ProviderSpace": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider-id", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "tools" - ] - }, - "SerializedModelTools": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "external-control": { - "type": "boolean" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "external-control", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "tools" - ] - }, - "SerializedModelTools": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EnvListArgs" - }, - "Result": { - "$ref": "#/definitions/EnvListResults" - } - } - } - }, - "definitions": { - "EnvListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "EnvListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetInstanceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InstancesInfo" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetSupportedContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineContainersParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchAllContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/WatchContainers" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/WatchContainers" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMachineErrorRetry": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "ConstraintsResult": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "ConstraintsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConstraintsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ContainerConfig": { - "type": "object", - "properties": { - "UpdateBehavior": { - "$ref": "#/definitions/UpdateBehavior" - }, - "apt-mirror": { - "type": "string" - }, - "apt-proxy": { - "$ref": "#/definitions/Settings" - }, - "authorized-keys": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "proxy": { - "$ref": "#/definitions/Settings" - }, - "ssl-hostname-verification": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "provider-type", - "authorized-keys", - "ssl-hostname-verification", - "proxy", - "apt-proxy", - "apt-mirror", - "UpdateBehavior" - ] - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ContainerManagerConfigParams": { - "type": "object", - "properties": { - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DistributionGroupResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DistributionGroupResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DistributionGroupResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "InstanceInfo": { - "type": "object", - "properties": { - "characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "network-config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "nonce": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "volume-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentInfo" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "tag", - "instance-id", - "nonce", - "characteristics", - "volumes", - "volume-attachments", - "network-config" - ] - }, - "InstancesInfo": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/InstanceInfo" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineContainers": { - "type": "object", - "properties": { - "container-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-types" - ] - }, - "MachineContainersParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineContainers" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachineNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "MachineNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "Resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "Resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - } - }, - "definitions": { - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnitsNetworkConfig" - }, - "Result": { - "$ref": "#/definitions/UnitNetworkConfigResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchApplicationRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitNetworkConfig": { - "type": "object", - "properties": { - "binding-name": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "binding-name" - ] - }, - "UnitNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "UnitNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "UnitsNetworkConfig": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.0.3.json b/modules/libjuju/juju/client/schemas-juju-2.0.3.json deleted file mode 100644 index 69db493..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.0.3.json +++ /dev/null @@ -1,24799 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationRelationsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ApplicationRelationsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "ApplicationRelationsChange": { - "type": "object", - "properties": { - "changed": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationChange" - } - }, - "removed": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false - }, - "ApplicationRelationsWatchResult": { - "type": "object", - "properties": { - "ApplicationRelationsWatcherId": { - "type": "string" - }, - "changes": { - "$ref": "#/definitions/ApplicationRelationsChange" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "ApplicationRelationsWatcherId" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationChange": { - "type": "object", - "properties": { - "changedunits": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RelationUnitChange" - } - } - }, - "departedunits": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "integer" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life" - ] - }, - "RelationUnitChange": { - "type": "object", - "properties": { - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "ip-addresses", - "instance-id", - "series", - "id", - "containers", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "migration": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "application-url": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "application-url", - "application-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "CloudRegion": { - "type": "object", - "properties": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Controller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiscoverSpaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DiscoverSpacesResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "DiscoverSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ProviderSpace": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider-id", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "tools" - ] - }, - "SerializedModelTools": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "external-control": { - "type": "boolean" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "external-control", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "tools" - ] - }, - "SerializedModelTools": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EnvListArgs" - }, - "Result": { - "$ref": "#/definitions/EnvListResults" - } - } - } - }, - "definitions": { - "EnvListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "EnvListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetInstanceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InstancesInfo" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetSupportedContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineContainersParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchAllContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/WatchContainers" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/WatchContainers" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMachineErrorRetry": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "ConstraintsResult": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "ConstraintsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConstraintsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ContainerConfig": { - "type": "object", - "properties": { - "UpdateBehavior": { - "$ref": "#/definitions/UpdateBehavior" - }, - "apt-mirror": { - "type": "string" - }, - "apt-proxy": { - "$ref": "#/definitions/Settings" - }, - "authorized-keys": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "proxy": { - "$ref": "#/definitions/Settings" - }, - "ssl-hostname-verification": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "provider-type", - "authorized-keys", - "ssl-hostname-verification", - "proxy", - "apt-proxy", - "apt-mirror", - "UpdateBehavior" - ] - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ContainerManagerConfigParams": { - "type": "object", - "properties": { - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DistributionGroupResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DistributionGroupResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DistributionGroupResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "InstanceInfo": { - "type": "object", - "properties": { - "characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "network-config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "nonce": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "volume-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentInfo" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "tag", - "instance-id", - "nonce", - "characteristics", - "volumes", - "volume-attachments", - "network-config" - ] - }, - "InstancesInfo": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/InstanceInfo" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineContainers": { - "type": "object", - "properties": { - "container-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-types" - ] - }, - "MachineContainersParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineContainers" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachineNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "MachineNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "Resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "Resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - } - }, - "definitions": { - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnitsNetworkConfig" - }, - "Result": { - "$ref": "#/definitions/UnitNetworkConfigResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchApplicationRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitNetworkConfig": { - "type": "object", - "properties": { - "binding-name": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "binding-name" - ] - }, - "UnitNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "UnitNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "UnitsNetworkConfig": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.1.0.json b/modules/libjuju/juju/client/schemas-juju-2.1.0.json deleted file mode 100644 index 15f068f..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.1.0.json +++ /dev/null @@ -1,25652 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "constraints": { - "type": "string" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "ip-addresses", - "instance-id", - "series", - "id", - "containers", - "constraints", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "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": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "migration": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "application-url": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "application-url", - "application-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CloudInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "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": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "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 - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - }, - "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": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiscoverSpaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DiscoverSpacesResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "DiscoverSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ProviderSpace": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider-id", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "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": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "controller-agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "external-control": { - "type": "boolean" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "external-control", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "AdoptResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AdoptResourcesArgs" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "LatestLogTime": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - }, - "Result": { - "type": "string", - "format": "date-time" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "AdoptResourcesArgs": { - "type": "object", - "properties": { - "model-tag": { - "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, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "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": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EnvListArgs" - }, - "Result": { - "$ref": "#/definitions/EnvListResults" - } - } - } - }, - "definitions": { - "EnvListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "EnvListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "HostChangesForContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/HostNetworkChangeResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetHostMachineNetworkConfig": { - "type": "object", - "properties": { - "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" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "RemoteApplicationWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RemoteApplicationWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RemoteApplicationChange": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "life": { - "type": "string" - }, - "relations": { - "$ref": "#/definitions/RemoteRelationsChange" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "life", - "relations" - ] - }, - "RemoteApplicationWatchResult": { - "type": "object", - "properties": { - "change": { - "$ref": "#/definitions/RemoteApplicationChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "RemoteEntityId": { - "type": "object", - "properties": { - "model-uuid": { - "type": "string" - }, - "token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-uuid", - "token" - ] - }, - "RemoteRelationChange": { - "type": "object", - "properties": { - "changed-units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteRelationUnitChange" - } - } - }, - "departed-units": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "integer" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life" - ] - }, - "RemoteRelationUnitChange": { - "type": "object", - "properties": { - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "unit-id": { - "$ref": "#/definitions/RemoteEntityId" - } - }, - "additionalProperties": false, - "required": [ - "unit-id" - ] - }, - "RemoteRelationsChange": { - "type": "object", - "properties": { - "changed": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationChange" - } - }, - "initial": { - "type": "boolean" - }, - "removed": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "initial" - ] - } - } - } - }, - { - "Name": "RemoteRelationsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RemoteRelationsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RemoteEntityId": { - "type": "object", - "properties": { - "model-uuid": { - "type": "string" - }, - "token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-uuid", - "token" - ] - }, - "RemoteRelationChange": { - "type": "object", - "properties": { - "changed-units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteRelationUnitChange" - } - } - }, - "departed-units": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "integer" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life" - ] - }, - "RemoteRelationUnitChange": { - "type": "object", - "properties": { - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "unit-id": { - "$ref": "#/definitions/RemoteEntityId" - } - }, - "additionalProperties": false, - "required": [ - "unit-id" - ] - }, - "RemoteRelationsChange": { - "type": "object", - "properties": { - "changed": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationChange" - } - }, - "initial": { - "type": "boolean" - }, - "removed": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "initial" - ] - }, - "RemoteRelationsWatchResult": { - "type": "object", - "properties": { - "RemoteRelationsWatcherId": { - "type": "string" - }, - "change": { - "$ref": "#/definitions/RemoteRelationsChange" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "RemoteRelationsWatcherId" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "Resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "Resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - } - }, - "definitions": { - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnitsNetworkConfig" - }, - "Result": { - "$ref": "#/definitions/UnitNetworkConfigResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchApplicationRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitNetworkConfig": { - "type": "object", - "properties": { - "binding-name": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "binding-name" - ] - }, - "UnitNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "UnitNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "UnitsNetworkConfig": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.1.1.json b/modules/libjuju/juju/client/schemas-juju-2.1.1.json deleted file mode 100644 index 474b204..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.1.1.json +++ /dev/null @@ -1,25730 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "constraints": { - "type": "string" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "ip-addresses", - "instance-id", - "series", - "id", - "containers", - "constraints", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "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": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "migration": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "application-url": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "application-url", - "application-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CloudInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "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": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "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 - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - }, - "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": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiscoverSpaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DiscoverSpacesResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "DiscoverSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ProviderSpace": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider-id", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "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": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "controller-agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "external-control": { - "type": "boolean" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "external-control", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "AdoptResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AdoptResourcesArgs" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "LatestLogTime": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - }, - "Result": { - "type": "string", - "format": "date-time" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "AdoptResourcesArgs": { - "type": "object", - "properties": { - "model-tag": { - "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, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "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": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EnvListArgs" - }, - "Result": { - "$ref": "#/definitions/EnvListResults" - } - } - } - }, - "definitions": { - "EnvListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "EnvListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "HostChangesForContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/HostNetworkChangeResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetHostMachineNetworkConfig": { - "type": "object", - "properties": { - "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" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "RemoteApplicationWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RemoteApplicationWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RemoteApplicationChange": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "life": { - "type": "string" - }, - "relations": { - "$ref": "#/definitions/RemoteRelationsChange" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "life", - "relations" - ] - }, - "RemoteApplicationWatchResult": { - "type": "object", - "properties": { - "change": { - "$ref": "#/definitions/RemoteApplicationChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "RemoteEntityId": { - "type": "object", - "properties": { - "model-uuid": { - "type": "string" - }, - "token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-uuid", - "token" - ] - }, - "RemoteRelationChange": { - "type": "object", - "properties": { - "changed-units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteRelationUnitChange" - } - } - }, - "departed-units": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "integer" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life" - ] - }, - "RemoteRelationUnitChange": { - "type": "object", - "properties": { - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "unit-id": { - "$ref": "#/definitions/RemoteEntityId" - } - }, - "additionalProperties": false, - "required": [ - "unit-id" - ] - }, - "RemoteRelationsChange": { - "type": "object", - "properties": { - "changed": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationChange" - } - }, - "initial": { - "type": "boolean" - }, - "removed": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "initial" - ] - } - } - } - }, - { - "Name": "RemoteRelationsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RemoteRelationsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RemoteEntityId": { - "type": "object", - "properties": { - "model-uuid": { - "type": "string" - }, - "token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-uuid", - "token" - ] - }, - "RemoteRelationChange": { - "type": "object", - "properties": { - "changed-units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteRelationUnitChange" - } - } - }, - "departed-units": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "integer" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life" - ] - }, - "RemoteRelationUnitChange": { - "type": "object", - "properties": { - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "unit-id": { - "$ref": "#/definitions/RemoteEntityId" - } - }, - "additionalProperties": false, - "required": [ - "unit-id" - ] - }, - "RemoteRelationsChange": { - "type": "object", - "properties": { - "changed": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationChange" - } - }, - "initial": { - "type": "boolean" - }, - "removed": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "initial" - ] - }, - "RemoteRelationsWatchResult": { - "type": "object", - "properties": { - "RemoteRelationsWatcherId": { - "type": "string" - }, - "change": { - "$ref": "#/definitions/RemoteRelationsChange" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "RemoteRelationsWatcherId" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "Resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "Resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - } - }, - "definitions": { - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnitsNetworkConfig" - }, - "Result": { - "$ref": "#/definitions/UnitNetworkConfigResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchApplicationRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitNetworkConfig": { - "type": "object", - "properties": { - "binding-name": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "binding-name" - ] - }, - "UnitNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "UnitNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "UnitsNetworkConfig": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.1.2.json b/modules/libjuju/juju/client/schemas-juju-2.1.2.json deleted file mode 100644 index 474b204..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.1.2.json +++ /dev/null @@ -1,25730 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "constraints": { - "type": "string" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "ip-addresses", - "instance-id", - "series", - "id", - "containers", - "constraints", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "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": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "migration": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "application-url": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "application-url", - "application-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CloudInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "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": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "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 - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - }, - "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": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiscoverSpaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DiscoverSpacesResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "DiscoverSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ProviderSpace": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider-id", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "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": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "controller-agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "external-control": { - "type": "boolean" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "external-control", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "AdoptResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AdoptResourcesArgs" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "LatestLogTime": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - }, - "Result": { - "type": "string", - "format": "date-time" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "AdoptResourcesArgs": { - "type": "object", - "properties": { - "model-tag": { - "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, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "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": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EnvListArgs" - }, - "Result": { - "$ref": "#/definitions/EnvListResults" - } - } - } - }, - "definitions": { - "EnvListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "EnvListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "HostChangesForContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/HostNetworkChangeResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetHostMachineNetworkConfig": { - "type": "object", - "properties": { - "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" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "RemoteApplicationWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RemoteApplicationWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RemoteApplicationChange": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "life": { - "type": "string" - }, - "relations": { - "$ref": "#/definitions/RemoteRelationsChange" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "life", - "relations" - ] - }, - "RemoteApplicationWatchResult": { - "type": "object", - "properties": { - "change": { - "$ref": "#/definitions/RemoteApplicationChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "RemoteEntityId": { - "type": "object", - "properties": { - "model-uuid": { - "type": "string" - }, - "token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-uuid", - "token" - ] - }, - "RemoteRelationChange": { - "type": "object", - "properties": { - "changed-units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteRelationUnitChange" - } - } - }, - "departed-units": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "integer" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life" - ] - }, - "RemoteRelationUnitChange": { - "type": "object", - "properties": { - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "unit-id": { - "$ref": "#/definitions/RemoteEntityId" - } - }, - "additionalProperties": false, - "required": [ - "unit-id" - ] - }, - "RemoteRelationsChange": { - "type": "object", - "properties": { - "changed": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationChange" - } - }, - "initial": { - "type": "boolean" - }, - "removed": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "initial" - ] - } - } - } - }, - { - "Name": "RemoteRelationsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RemoteRelationsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RemoteEntityId": { - "type": "object", - "properties": { - "model-uuid": { - "type": "string" - }, - "token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-uuid", - "token" - ] - }, - "RemoteRelationChange": { - "type": "object", - "properties": { - "changed-units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteRelationUnitChange" - } - } - }, - "departed-units": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "integer" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life" - ] - }, - "RemoteRelationUnitChange": { - "type": "object", - "properties": { - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "unit-id": { - "$ref": "#/definitions/RemoteEntityId" - } - }, - "additionalProperties": false, - "required": [ - "unit-id" - ] - }, - "RemoteRelationsChange": { - "type": "object", - "properties": { - "changed": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationChange" - } - }, - "initial": { - "type": "boolean" - }, - "removed": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "initial" - ] - }, - "RemoteRelationsWatchResult": { - "type": "object", - "properties": { - "RemoteRelationsWatcherId": { - "type": "string" - }, - "change": { - "$ref": "#/definitions/RemoteRelationsChange" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "RemoteRelationsWatcherId" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "Resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "Resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - } - }, - "definitions": { - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnitsNetworkConfig" - }, - "Result": { - "$ref": "#/definitions/UnitNetworkConfigResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchApplicationRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitNetworkConfig": { - "type": "object", - "properties": { - "binding-name": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "binding-name" - ] - }, - "UnitNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "UnitNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "UnitsNetworkConfig": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.2-alpha1.json b/modules/libjuju/juju/client/schemas-juju-2.2-alpha1.json deleted file mode 100644 index 8fa5071..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.2-alpha1.json +++ /dev/null @@ -1,25974 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Consume": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ConsumeApplicationArgs" - }, - "Result": { - "$ref": "#/definitions/ConsumeApplicationResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyApplication": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyApplicationResults" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyUnitResults" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "RemoteApplicationInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationURLs" - }, - "Result": { - "$ref": "#/definitions/RemoteApplicationInfoResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationURLs": { - "type": "object", - "properties": { - "application-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "ConsumeApplicationArg": { - "type": "object", - "properties": { - "application-alias": { - "type": "string" - }, - "application-url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-url" - ] - }, - "ConsumeApplicationArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/ConsumeApplicationArg" - } - } - }, - "additionalProperties": false - }, - "ConsumeApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "local-name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ConsumeApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConsumeApplicationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "DestroyApplicationInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyApplicationInfo" - } - }, - "additionalProperties": false - }, - "DestroyApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyApplicationResult" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "DestroyUnitInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyUnitResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyUnitInfo" - } - }, - "additionalProperties": false - }, - "DestroyUnitResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyUnitResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "RemoteApplicationInfo": { - "type": "object", - "properties": { - "application-url": { - "type": "string" - }, - "description": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "icon-url-path": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "name": { - "type": "string" - }, - "source-model-label": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "name", - "description", - "application-url", - "endpoints", - "icon-url-path" - ] - }, - "RemoteApplicationInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RemoteApplicationInfo" - } - }, - "additionalProperties": false - }, - "RemoteApplicationInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteApplicationInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "constraints": { - "type": "string" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "network-interfaces": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/NetworkInterface" - } - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "instance-id", - "series", - "id", - "containers", - "constraints", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "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": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "model-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version", - "model-status" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NetworkInterface": { - "type": "object", - "properties": { - "dns-nameservers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway": { - "type": "string" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "is-up": { - "type": "boolean" - }, - "mac-address": { - "type": "string" - }, - "space": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "ip-addresses", - "mac-address", - "is-up" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "application-url": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "application-url", - "application-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "exclude": { - "type": "array", - "items": { - "type": "string" - } - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta", - "exclude" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CloudInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "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": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "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 - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - }, - "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": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiscoverSpaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DiscoverSpacesResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "DiscoverSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ProviderSpace": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider-id", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "DestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "ForceDestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachineInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyMachineResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyMachineInfo" - } - }, - "additionalProperties": false - }, - "DestroyMachineResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyMachineResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "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 - }, - "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": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "controller-agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "external-control": { - "type": "boolean" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "external-control", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "AdoptResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AdoptResourcesArgs" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "LatestLogTime": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - }, - "Result": { - "type": "string", - "format": "date-time" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "AdoptResourcesArgs": { - "type": "object", - "properties": { - "model-tag": { - "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, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "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": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PayloadListArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadListResults" - } - } - } - }, - "definitions": { - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "PayloadListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetPayloadStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpPayloadArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpPayloadArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpPayloadArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetPayloadStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetPayloadStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetPayloadStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackPayloadArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "HostChangesForContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/HostNetworkChangeResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetHostMachineNetworkConfig": { - "type": "object", - "properties": { - "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" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "Resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "Resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - } - }, - "definitions": { - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Attach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Detach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentDetails": { - "type": "object", - "properties": { - "FilesystemAttachmentInfo": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "FilesystemAttachmentInfo" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentDetails": { - "type": "object", - "properties": { - "VolumeAttachmentInfo": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "VolumeAttachmentInfo" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnitsNetworkConfig" - }, - "Result": { - "$ref": "#/definitions/UnitNetworkConfigResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchApplicationRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitNetworkConfig": { - "type": "object", - "properties": { - "binding-name": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "binding-name" - ] - }, - "UnitNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "UnitNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "UnitsNetworkConfig": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.2-beta1.json b/modules/libjuju/juju/client/schemas-juju-2.2-beta1.json deleted file mode 100644 index 9bd941b..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.2-beta1.json +++ /dev/null @@ -1,26135 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Consume": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ConsumeApplicationArgs" - }, - "Result": { - "$ref": "#/definitions/ConsumeApplicationResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyApplication": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyApplicationResults" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyUnitResults" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "RemoteApplicationInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationURLs" - }, - "Result": { - "$ref": "#/definitions/RemoteApplicationInfoResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationURLs": { - "type": "object", - "properties": { - "application-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "ConsumeApplicationArg": { - "type": "object", - "properties": { - "application-alias": { - "type": "string" - }, - "application-url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-url" - ] - }, - "ConsumeApplicationArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/ConsumeApplicationArg" - } - } - }, - "additionalProperties": false - }, - "ConsumeApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "local-name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ConsumeApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConsumeApplicationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "DestroyApplicationInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyApplicationInfo" - } - }, - "additionalProperties": false - }, - "DestroyApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyApplicationResult" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "DestroyUnitInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyUnitResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyUnitInfo" - } - }, - "additionalProperties": false - }, - "DestroyUnitResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyUnitResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "RemoteApplicationInfo": { - "type": "object", - "properties": { - "application-url": { - "type": "string" - }, - "description": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "icon-url-path": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "name": { - "type": "string" - }, - "source-model-label": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "name", - "description", - "application-url", - "endpoints", - "icon-url-path" - ] - }, - "RemoteApplicationInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RemoteApplicationInfo" - } - }, - "additionalProperties": false - }, - "RemoteApplicationInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteApplicationInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetSLALevel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSLA" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "constraints": { - "type": "string" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "network-interfaces": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/NetworkInterface" - } - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "instance-id", - "series", - "id", - "containers", - "constraints", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelMigrationStatus": { - "type": "object", - "properties": { - "end": { - "type": "string", - "format": "date-time" - }, - "start": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "start" - ] - }, - "ModelSLA": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "type": "integer" - } - }, - "level": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "creds" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "meter-status": { - "$ref": "#/definitions/MeterStatus" - }, - "model-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version", - "model-status", - "meter-status" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NetworkInterface": { - "type": "object", - "properties": { - "dns-nameservers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway": { - "type": "string" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "is-up": { - "type": "boolean" - }, - "mac-address": { - "type": "string" - }, - "space": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "ip-addresses", - "mac-address", - "is-up" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "application-url": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "application-url", - "application-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "exclude": { - "type": "array", - "items": { - "type": "string" - } - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta", - "exclude" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CloudInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "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": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "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 - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - }, - "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": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiscoverSpaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DiscoverSpacesResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "DiscoverSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ProviderSpace": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider-id", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "DestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "ForceDestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachineInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyMachineResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyMachineInfo" - } - }, - "additionalProperties": false - }, - "DestroyMachineResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyMachineResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "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 - }, - "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": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddJujuMachineMetrics": { - "type": "object" - }, - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "controller-agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "external-control": { - "type": "boolean" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "external-control", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "AdoptResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AdoptResourcesArgs" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "LatestLogTime": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - }, - "Result": { - "type": "string", - "format": "date-time" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "AdoptResourcesArgs": { - "type": "object", - "properties": { - "model-tag": { - "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, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetSLALevel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSLA" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSLA": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "type": "integer" - } - }, - "level": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "creds" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "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": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PayloadListArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadListResults" - } - } - } - }, - "definitions": { - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "PayloadListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetPayloadStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpPayloadArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpPayloadArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpPayloadArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetPayloadStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetPayloadStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetPayloadStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackPayloadArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "HostChangesForContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/HostNetworkChangeResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetHostMachineNetworkConfig": { - "type": "object", - "properties": { - "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" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "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" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListUnitResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/UnitResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListUnitResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "UnitResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "UnitResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - } - }, - "definitions": { - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Attach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Detach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentDetails": { - "type": "object", - "properties": { - "FilesystemAttachmentInfo": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "FilesystemAttachmentInfo" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentDetails": { - "type": "object", - "properties": { - "VolumeAttachmentInfo": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "VolumeAttachmentInfo" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 5, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnitsNetworkConfig" - }, - "Result": { - "$ref": "#/definitions/UnitNetworkConfigResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchApplicationRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitNetworkConfig": { - "type": "object", - "properties": { - "binding-name": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "binding-name" - ] - }, - "UnitNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "UnitNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "UnitsNetworkConfig": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.2-beta2.json b/modules/libjuju/juju/client/schemas-juju-2.2-beta2.json deleted file mode 100644 index 4b141fd..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.2-beta2.json +++ /dev/null @@ -1,26150 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Consume": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ConsumeApplicationArgs" - }, - "Result": { - "$ref": "#/definitions/ConsumeApplicationResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyApplication": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyApplicationResults" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyUnitResults" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "RemoteApplicationInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationURLs" - }, - "Result": { - "$ref": "#/definitions/RemoteApplicationInfoResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationURLs": { - "type": "object", - "properties": { - "application-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "ConsumeApplicationArg": { - "type": "object", - "properties": { - "application-alias": { - "type": "string" - }, - "application-url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-url" - ] - }, - "ConsumeApplicationArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/ConsumeApplicationArg" - } - } - }, - "additionalProperties": false - }, - "ConsumeApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "local-name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ConsumeApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConsumeApplicationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "DestroyApplicationInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyApplicationInfo" - } - }, - "additionalProperties": false - }, - "DestroyApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyApplicationResult" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "DestroyUnitInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyUnitResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyUnitInfo" - } - }, - "additionalProperties": false - }, - "DestroyUnitResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyUnitResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "RemoteApplicationInfo": { - "type": "object", - "properties": { - "application-url": { - "type": "string" - }, - "description": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "icon-url-path": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "name": { - "type": "string" - }, - "source-model-label": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "name", - "description", - "application-url", - "endpoints", - "icon-url-path" - ] - }, - "RemoteApplicationInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RemoteApplicationInfo" - } - }, - "additionalProperties": false - }, - "RemoteApplicationInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteApplicationInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetSLALevel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSLA" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "constraints": { - "type": "string" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "network-interfaces": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/NetworkInterface" - } - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "instance-id", - "series", - "id", - "containers", - "constraints", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelMigrationStatus": { - "type": "object", - "properties": { - "end": { - "type": "string", - "format": "date-time" - }, - "start": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "start" - ] - }, - "ModelSLA": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "type": "integer" - } - }, - "level": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "creds" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "meter-status": { - "$ref": "#/definitions/MeterStatus" - }, - "model-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version", - "model-status", - "meter-status" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NetworkInterface": { - "type": "object", - "properties": { - "dns-nameservers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway": { - "type": "string" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "is-up": { - "type": "boolean" - }, - "mac-address": { - "type": "string" - }, - "space": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "ip-addresses", - "mac-address", - "is-up" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "application-url": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "application-url", - "application-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "exclude": { - "type": "array", - "items": { - "type": "string" - } - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta", - "exclude" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CloudInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "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": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "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 - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - }, - "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": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiscoverSpaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DiscoverSpacesResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "provider-network-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "DiscoverSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ProviderSpace": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider-id", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "DestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "ForceDestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachineInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyMachineResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyMachineInfo" - } - }, - "additionalProperties": false - }, - "DestroyMachineResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyMachineResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "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 - }, - "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": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddJujuMachineMetrics": { - "type": "object" - }, - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "controller-agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "external-control": { - "type": "boolean" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "external-control", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "AdoptResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AdoptResourcesArgs" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "LatestLogTime": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - }, - "Result": { - "type": "string", - "format": "date-time" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "AdoptResourcesArgs": { - "type": "object", - "properties": { - "model-tag": { - "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, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetSLALevel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSLA" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSLA": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "type": "integer" - } - }, - "level": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "creds" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "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": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PayloadListArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadListResults" - } - } - } - }, - "definitions": { - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "PayloadListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetPayloadStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpPayloadArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpPayloadArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpPayloadArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetPayloadStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetPayloadStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetPayloadStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackPayloadArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "HostChangesForContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/HostNetworkChangeResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetHostMachineNetworkConfig": { - "type": "object", - "properties": { - "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" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "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" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListUnitResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/UnitResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListUnitResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "UnitResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "UnitResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - } - }, - "definitions": { - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Attach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Detach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentDetails": { - "type": "object", - "properties": { - "FilesystemAttachmentInfo": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "FilesystemAttachmentInfo" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentDetails": { - "type": "object", - "properties": { - "VolumeAttachmentInfo": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "VolumeAttachmentInfo" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "provider-network-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 5, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnitsNetworkConfig" - }, - "Result": { - "$ref": "#/definitions/UnitNetworkConfigResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchApplicationRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitNetworkConfig": { - "type": "object", - "properties": { - "binding-name": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "binding-name" - ] - }, - "UnitNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "UnitNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "UnitsNetworkConfig": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.2-rc1.json b/modules/libjuju/juju/client/schemas-juju-2.2-rc1.json deleted file mode 100644 index 17e841a..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.2-rc1.json +++ /dev/null @@ -1,26295 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Consume": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ConsumeApplicationArgs" - }, - "Result": { - "$ref": "#/definitions/ConsumeApplicationResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyApplication": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyApplicationResults" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyUnitResults" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "RemoteApplicationInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationURLs" - }, - "Result": { - "$ref": "#/definitions/RemoteApplicationInfoResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationURLs": { - "type": "object", - "properties": { - "application-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "ConsumeApplicationArg": { - "type": "object", - "properties": { - "application-alias": { - "type": "string" - }, - "application-url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-url" - ] - }, - "ConsumeApplicationArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/ConsumeApplicationArg" - } - } - }, - "additionalProperties": false - }, - "ConsumeApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "local-name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ConsumeApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConsumeApplicationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "DestroyApplicationInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyApplicationInfo" - } - }, - "additionalProperties": false - }, - "DestroyApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyApplicationResult" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "DestroyUnitInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyUnitResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyUnitInfo" - } - }, - "additionalProperties": false - }, - "DestroyUnitResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyUnitResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "RemoteApplicationInfo": { - "type": "object", - "properties": { - "application-url": { - "type": "string" - }, - "description": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "icon-url-path": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "name": { - "type": "string" - }, - "source-model-label": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "name", - "description", - "application-url", - "endpoints", - "icon-url-path" - ] - }, - "RemoteApplicationInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RemoteApplicationInfo" - } - }, - "additionalProperties": false - }, - "RemoteApplicationInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteApplicationInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetSLALevel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSLA" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "constraints": { - "type": "string" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "network-interfaces": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/NetworkInterface" - } - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "instance-id", - "series", - "id", - "containers", - "constraints", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "sla": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "cloud-tag", - "owner-tag", - "life", - "users", - "machines", - "sla", - "agent-version" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelMigrationStatus": { - "type": "object", - "properties": { - "end": { - "type": "string", - "format": "date-time" - }, - "start": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "start" - ] - }, - "ModelSLA": { - "type": "object", - "properties": { - "ModelSLAInfo": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "creds": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "ModelSLAInfo", - "creds" - ] - }, - "ModelSLAInfo": { - "type": "object", - "properties": { - "level": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "owner" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "meter-status": { - "$ref": "#/definitions/MeterStatus" - }, - "model-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "sla": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version", - "model-status", - "meter-status", - "sla" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NetworkInterface": { - "type": "object", - "properties": { - "dns-nameservers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway": { - "type": "string" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "is-up": { - "type": "boolean" - }, - "mac-address": { - "type": "string" - }, - "space": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "ip-addresses", - "mac-address", - "is-up" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "application-url": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "application-url", - "application-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "exclude": { - "type": "array", - "items": { - "type": "string" - } - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta", - "exclude" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CloudInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "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": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "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 - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - }, - "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": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiscoverSpaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DiscoverSpacesResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "provider-network-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "DiscoverSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ProviderSpace": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider-id", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - }, - "WWN": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "WWN", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "DestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "ForceDestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachineInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyMachineResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyMachineInfo" - } - }, - "additionalProperties": false - }, - "DestroyMachineResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyMachineResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "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 - }, - "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": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddJujuMachineMetrics": { - "type": "object" - }, - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "controller-agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "AdoptResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AdoptResourcesArgs" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "LatestLogTime": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - }, - "Result": { - "type": "string", - "format": "date-time" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "AdoptResourcesArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - }, - "source-controller-version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "source-controller-version" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "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, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetSLALevel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSLA" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSLA": { - "type": "object", - "properties": { - "ModelSLAInfo": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "creds": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "ModelSLAInfo", - "creds" - ] - }, - "ModelSLAInfo": { - "type": "object", - "properties": { - "level": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "owner" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "sla": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "cloud-tag", - "owner-tag", - "life", - "users", - "machines", - "sla", - "agent-version" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelMigrationStatus": { - "type": "object", - "properties": { - "end": { - "type": "string", - "format": "date-time" - }, - "start": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "start" - ] - }, - "ModelSLAInfo": { - "type": "object", - "properties": { - "level": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "owner" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PayloadListArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadListResults" - } - } - } - }, - "definitions": { - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "PayloadListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetPayloadStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpPayloadArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpPayloadArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpPayloadArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetPayloadStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetPayloadStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetPayloadStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackPayloadArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "HostChangesForContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/HostNetworkChangeResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetHostMachineNetworkConfig": { - "type": "object", - "properties": { - "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" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "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" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "AutoNoProxy": { - "type": "string" - }, - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy", - "AutoNoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - }, - "wwn": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListUnitResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/UnitResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListUnitResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "UnitResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "UnitResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Attach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Detach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentDetails": { - "type": "object", - "properties": { - "FilesystemAttachmentInfo": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "FilesystemAttachmentInfo" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentDetails": { - "type": "object", - "properties": { - "VolumeAttachmentInfo": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "VolumeAttachmentInfo" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - }, - "wwn": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - }, - "WWN": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "WWN", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - }, - "wwn": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "provider-network-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 5, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/NetworkInfoParams" - }, - "Result": { - "$ref": "#/definitions/NetworkInfoResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "InterfaceAddress": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "cidr" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkInfo": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/InterfaceAddress" - } - }, - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mac-address", - "interface-name", - "addresses" - ] - }, - "NetworkInfoParams": { - "type": "object", - "properties": { - "bindings": { - "type": "array", - "items": { - "type": "string" - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "bindings" - ] - }, - "NetworkInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "network-info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkInfo" - } - } - }, - "additionalProperties": false, - "required": [ - "network-info" - ] - }, - "NetworkInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/NetworkInfoResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.3-alpha1.json b/modules/libjuju/juju/client/schemas-juju-2.3-alpha1.json deleted file mode 100644 index e59c105..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.3-alpha1.json +++ /dev/null @@ -1,26050 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 5, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Consume": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ConsumeApplicationArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyApplication": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyApplicationResults" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyUnitResults" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "attach-storage": { - "type": "array", - "items": { - "type": "string" - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "attach-storage": { - "type": "array", - "items": { - "type": "string" - } - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationOffer": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "application-description": { - "type": "string" - }, - "bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "offer-name": { - "type": "string" - }, - "offer-url": { - "type": "string" - }, - "source-model-tag": { - "type": "string" - }, - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "source-model-tag", - "offer-url", - "offer-name", - "application-description", - "endpoints", - "spaces", - "bindings", - "access" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "ConsumeApplicationArg": { - "type": "object", - "properties": { - "ApplicationOffer": { - "$ref": "#/definitions/ApplicationOffer" - }, - "application-alias": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - } - }, - "additionalProperties": false, - "required": [ - "ApplicationOffer" - ] - }, - "ConsumeApplicationArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/ConsumeApplicationArg" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyApplicationInfo" - } - }, - "additionalProperties": false - }, - "DestroyApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyApplicationResult" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "DestroyUnitInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyUnitResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyUnitInfo" - } - }, - "additionalProperties": false - }, - "DestroyUnitResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyUnitResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "RemoteSpace": { - "type": "object", - "properties": { - "cloud-type": { - "type": "string" - }, - "name": { - "type": "string" - }, - "provider-attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "cloud-type", - "name", - "provider-id", - "provider-attributes", - "subnets" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "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": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetSLALevel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSLA" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "constraints": { - "type": "string" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "network-interfaces": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/NetworkInterface" - } - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "instance-id", - "series", - "id", - "containers", - "constraints", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "sla": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "cloud-tag", - "owner-tag", - "life", - "users", - "machines", - "sla", - "agent-version" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelMigrationStatus": { - "type": "object", - "properties": { - "end": { - "type": "string", - "format": "date-time" - }, - "start": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "start" - ] - }, - "ModelSLA": { - "type": "object", - "properties": { - "ModelSLAInfo": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "creds": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "ModelSLAInfo", - "creds" - ] - }, - "ModelSLAInfo": { - "type": "object", - "properties": { - "level": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "owner" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "meter-status": { - "$ref": "#/definitions/MeterStatus" - }, - "model-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "sla": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version", - "model-status", - "meter-status", - "sla" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NetworkInterface": { - "type": "object", - "properties": { - "dns-nameservers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway": { - "type": "string" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "is-up": { - "type": "boolean" - }, - "mac-address": { - "type": "string" - }, - "space": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "ip-addresses", - "mac-address", - "is-up" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "application-url": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "application-url", - "application-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "exclude": { - "type": "array", - "items": { - "type": "string" - } - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta", - "exclude" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CloudInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "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": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "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 - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - }, - "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": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - }, - "WWN": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "WWN", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "DestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "ForceDestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachineInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyMachineResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyMachineInfo" - } - }, - "additionalProperties": false - }, - "DestroyMachineResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyMachineResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "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 - }, - "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": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddJujuMachineMetrics": { - "type": "object" - }, - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "controller-agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "AdoptResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AdoptResourcesArgs" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "LatestLogTime": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - }, - "Result": { - "type": "string", - "format": "date-time" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "AdoptResourcesArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - }, - "source-controller-version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "source-controller-version" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "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, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetSLALevel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSLA" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSLA": { - "type": "object", - "properties": { - "ModelSLAInfo": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "creds": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "ModelSLAInfo", - "creds" - ] - }, - "ModelSLAInfo": { - "type": "object", - "properties": { - "level": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "owner" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DumpModelRequest" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "DumpModelRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "simplified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "simplified" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "sla": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "cloud-tag", - "owner-tag", - "life", - "users", - "machines", - "sla", - "agent-version" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelMigrationStatus": { - "type": "object", - "properties": { - "end": { - "type": "string", - "format": "date-time" - }, - "start": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "start" - ] - }, - "ModelSLAInfo": { - "type": "object", - "properties": { - "level": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "owner" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PayloadListArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadListResults" - } - } - } - }, - "definitions": { - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "PayloadListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetPayloadStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpPayloadArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpPayloadArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpPayloadArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetPayloadStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetPayloadStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetPayloadStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackPayloadArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "HostChangesForContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/HostNetworkChangeResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetHostMachineNetworkConfig": { - "type": "object", - "properties": { - "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" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "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" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "AutoNoProxy": { - "type": "string" - }, - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy", - "AutoNoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - }, - "wwn": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListUnitResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/UnitResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListUnitResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "UnitResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "UnitResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - }, - "ReloadSpaces": { - "type": "object" - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Attach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Detach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentDetails": { - "type": "object", - "properties": { - "FilesystemAttachmentInfo": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "FilesystemAttachmentInfo" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentDetails": { - "type": "object", - "properties": { - "VolumeAttachmentInfo": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "VolumeAttachmentInfo" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - }, - "wwn": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - }, - "WWN": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "WWN", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - }, - "wwn": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "provider-network-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 5, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/NetworkInfoParams" - }, - "Result": { - "$ref": "#/definitions/NetworkInfoResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "InterfaceAddress": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "cidr" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkInfo": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/InterfaceAddress" - } - }, - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mac-address", - "interface-name", - "addresses" - ] - }, - "NetworkInfoParams": { - "type": "object", - "properties": { - "bindings": { - "type": "array", - "items": { - "type": "string" - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "bindings" - ] - }, - "NetworkInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "network-info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkInfo" - } - } - }, - "additionalProperties": false, - "required": [ - "network-info" - ] - }, - "NetworkInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/NetworkInfoResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.5-rc1.json b/modules/libjuju/juju/client/schemas-juju-2.5-rc1.json deleted file mode 100644 index b53dd0b..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.5-rc1.json +++ /dev/null @@ -1,37036 +0,0 @@ -[ - { - "Name": "Action", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "ActionPruner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionPruneArgs" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "ActionPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - }, - "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 - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerAPIInfoForModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ControllerAPIInfoResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "cacertificates": { - "type": "array", - "items": { - "type": "string" - } - }, - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerAPIInfoResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "cacert": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses", - "cacert" - ] - }, - "ControllerAPIInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllerAPIInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "controller-api-port": { - "type": "integer" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 8, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetConfigResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Consume": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ConsumeApplicationArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyApplication": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationsParams" - }, - "Result": { - "$ref": "#/definitions/DestroyApplicationResults" - } - } - }, - "DestroyConsumedApplications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyConsumedApplicationsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyUnitsParams" - }, - "Result": { - "$ref": "#/definitions/DestroyUnitResults" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetConfigResults" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetConstraintsResults" - } - } - }, - "GetLXDProfileUpgradeMessages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LXDProfileUpgradeMessages" - }, - "Result": { - "$ref": "#/definitions/LXDProfileUpgradeMessagesResults" - } - } - }, - "ResolveUnitErrors": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnitsResolved" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ScaleApplications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ScaleApplicationsParams" - }, - "Result": { - "$ref": "#/definitions/ScaleApplicationResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetApplicationsConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationConfigSetArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetCharmProfile": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharmProfile" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetRelationsSuspended": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationSuspendedArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "UnsetApplicationsConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationConfigUnsetArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - }, - "UpdateApplicationSeries": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateSeriesArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchLXDProfileUpgradeNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "attach-storage": { - "type": "array", - "items": { - "type": "string" - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "policy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - }, - "via-cidrs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationConfigSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "config" - ] - }, - "ApplicationConfigSetArgs": { - "type": "object", - "properties": { - "Args": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationConfigSet" - } - } - }, - "additionalProperties": false, - "required": [ - "Args" - ] - }, - "ApplicationConfigUnsetArgs": { - "type": "object", - "properties": { - "Args": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "additionalProperties": false, - "required": [ - "Args" - ] - }, - "ApplicationConstraint": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "attach-storage": { - "type": "array", - "items": { - "type": "string" - } - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "devices": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "policy": { - "type": "string" - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetConfigResults": { - "type": "object", - "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "Results" - ] - }, - "ApplicationGetConstraintsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationConstraint" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "application-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationOfferDetails": { - "type": "object", - "properties": { - "application-description": { - "type": "string" - }, - "bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "offer-name": { - "type": "string" - }, - "offer-url": { - "type": "string" - }, - "offer-uuid": { - "type": "string" - }, - "source-model-tag": { - "type": "string" - }, - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteSpace" - } - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/OfferUserDetails" - } - } - }, - "additionalProperties": false, - "required": [ - "source-model-tag", - "offer-uuid", - "offer-url", - "offer-name", - "application-description" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force", - "force-units", - "force-series" - ] - }, - "ApplicationSetCharmProfile": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url" - ] - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force": { - "type": "boolean" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "force", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "ConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "ConsumeApplicationArg": { - "type": "object", - "properties": { - "ApplicationOfferDetails": { - "$ref": "#/definitions/ApplicationOfferDetails" - }, - "application-alias": { - "type": "string" - }, - "external-controller": { - "$ref": "#/definitions/ExternalControllerInfo" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - } - }, - "additionalProperties": false, - "required": [ - "ApplicationOfferDetails" - ] - }, - "ConsumeApplicationArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/ConsumeApplicationArg" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "destroy-storage": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application-tag" - ] - }, - "DestroyApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyApplicationInfo" - } - }, - "additionalProperties": false - }, - "DestroyApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyApplicationResult" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyApplicationsParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyApplicationParams" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "DestroyConsumedApplicationParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag" - ] - }, - "DestroyConsumedApplicationsParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyConsumedApplicationParams" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - }, - "relation-id": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "relation-id" - ] - }, - "DestroyUnitInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyUnitParams": { - "type": "object", - "properties": { - "destroy-storage": { - "type": "boolean" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag" - ] - }, - "DestroyUnitResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyUnitInfo" - } - }, - "additionalProperties": false - }, - "DestroyUnitResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyUnitResult" - } - } - }, - "additionalProperties": false - }, - "DestroyUnitsParams": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyUnitParams" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ExternalControllerInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "ca-cert": { - "type": "string" - }, - "controller-alias": { - "type": "string" - }, - "controller-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "controller-alias", - "addrs", - "ca-cert" - ] - }, - "LXDProfileUpgradeMessages": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/Entity" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "watcher-id" - ] - }, - "LXDProfileUpgradeMessagesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "message" - ] - }, - "LXDProfileUpgradeMessagesResults": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LXDProfileUpgradeMessagesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "OfferUserDetails": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "access" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "RelationSuspendedArg": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "relation-id": { - "type": "integer" - }, - "suspended": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "relation-id", - "message", - "suspended" - ] - }, - "RelationSuspendedArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationSuspendedArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit" - ] - }, - "RemoteSpace": { - "type": "object", - "properties": { - "cloud-type": { - "type": "string" - }, - "name": { - "type": "string" - }, - "provider-attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "cloud-type", - "name", - "provider-id", - "provider-attributes", - "subnets" - ] - }, - "ScaleApplicationInfo": { - "type": "object", - "properties": { - "num-units": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "num-units" - ] - }, - "ScaleApplicationParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "scale": { - "type": "integer" - }, - "scale-change": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "scale" - ] - }, - "ScaleApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/ScaleApplicationInfo" - } - }, - "additionalProperties": false - }, - "ScaleApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ScaleApplicationResult" - } - } - }, - "additionalProperties": false - }, - "ScaleApplicationsParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ScaleApplicationParams" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "UnitsResolved": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - }, - "retry": { - "type": "boolean" - }, - "tags": { - "$ref": "#/definitions/Entities" - } - }, - "additionalProperties": false - }, - "UpdateSeriesArg": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "series": { - "type": "string" - }, - "tag": { - "$ref": "#/definitions/Entity" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "force", - "series" - ] - }, - "UpdateSeriesArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateSeriesArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "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" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationOffers", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ApplicationOffers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/OfferURLs" - }, - "Result": { - "$ref": "#/definitions/ApplicationOffersResults" - } - } - }, - "DestroyOffers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationOffers" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindApplicationOffers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/OfferFilters" - }, - "Result": { - "$ref": "#/definitions/QueryApplicationOffersResults" - } - } - }, - "GetConsumeDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/OfferURLs" - }, - "Result": { - "$ref": "#/definitions/ConsumeOfferDetailsResults" - } - } - }, - "ListApplicationOffers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/OfferFilters" - }, - "Result": { - "$ref": "#/definitions/QueryApplicationOffersResults" - } - } - }, - "ModifyOfferAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyOfferAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Offer": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationOffers" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoteApplicationInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/OfferURLs" - }, - "Result": { - "$ref": "#/definitions/RemoteApplicationInfoResults" - } - } - } - }, - "definitions": { - "AddApplicationOffer": { - "type": "object", - "properties": { - "application-description": { - "type": "string" - }, - "application-name": { - "type": "string" - }, - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "model-tag": { - "type": "string" - }, - "offer-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "offer-name", - "application-name", - "application-description", - "endpoints" - ] - }, - "AddApplicationOffers": { - "type": "object", - "properties": { - "Offers": { - "type": "array", - "items": { - "$ref": "#/definitions/AddApplicationOffer" - } - } - }, - "additionalProperties": false, - "required": [ - "Offers" - ] - }, - "ApplicationOfferAdminDetails": { - "type": "object", - "properties": { - "ApplicationOfferDetails": { - "$ref": "#/definitions/ApplicationOfferDetails" - }, - "application-name": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "connections": { - "type": "array", - "items": { - "$ref": "#/definitions/OfferConnection" - } - } - }, - "additionalProperties": false, - "required": [ - "ApplicationOfferDetails", - "application-name", - "charm-url" - ] - }, - "ApplicationOfferDetails": { - "type": "object", - "properties": { - "application-description": { - "type": "string" - }, - "bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "offer-name": { - "type": "string" - }, - "offer-url": { - "type": "string" - }, - "offer-uuid": { - "type": "string" - }, - "source-model-tag": { - "type": "string" - }, - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteSpace" - } - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/OfferUserDetails" - } - } - }, - "additionalProperties": false, - "required": [ - "source-model-tag", - "offer-uuid", - "offer-url", - "offer-name", - "application-description" - ] - }, - "ApplicationOfferResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ApplicationOfferAdminDetails" - } - }, - "additionalProperties": false - }, - "ApplicationOffersResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationOfferResult" - } - } - }, - "additionalProperties": false - }, - "ConsumeOfferDetails": { - "type": "object", - "properties": { - "external-controller": { - "$ref": "#/definitions/ExternalControllerInfo" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "offer": { - "$ref": "#/definitions/ApplicationOfferDetails" - } - }, - "additionalProperties": false - }, - "ConsumeOfferDetailsResult": { - "type": "object", - "properties": { - "ConsumeOfferDetails": { - "$ref": "#/definitions/ConsumeOfferDetails" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "ConsumeOfferDetails" - ] - }, - "ConsumeOfferDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConsumeOfferDetailsResult" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationOffers": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "offer-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "offer-urls" - ] - }, - "EndpointFilterAttributes": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "role", - "interface", - "name" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ExternalControllerInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "ca-cert": { - "type": "string" - }, - "controller-alias": { - "type": "string" - }, - "controller-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "controller-alias", - "addrs", - "ca-cert" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyOfferAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "offer-url": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "offer-url" - ] - }, - "ModifyOfferAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyOfferAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "OfferConnection": { - "type": "object", - "properties": { - "endpoint": { - "type": "string" - }, - "ingress-subnets": { - "type": "array", - "items": { - "type": "string" - } - }, - "relation-id": { - "type": "integer" - }, - "source-model-tag": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "source-model-tag", - "relation-id", - "username", - "endpoint", - "status", - "ingress-subnets" - ] - }, - "OfferFilter": { - "type": "object", - "properties": { - "allowed-users": { - "type": "array", - "items": { - "type": "string" - } - }, - "application-description": { - "type": "string" - }, - "application-name": { - "type": "string" - }, - "application-user": { - "type": "string" - }, - "connected-users": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointFilterAttributes" - } - }, - "model-name": { - "type": "string" - }, - "offer-name": { - "type": "string" - }, - "owner-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "owner-name", - "model-name", - "offer-name", - "application-name", - "application-description", - "application-user", - "endpoints", - "connected-users", - "allowed-users" - ] - }, - "OfferFilters": { - "type": "object", - "properties": { - "Filters": { - "type": "array", - "items": { - "$ref": "#/definitions/OfferFilter" - } - } - }, - "additionalProperties": false, - "required": [ - "Filters" - ] - }, - "OfferURLs": { - "type": "object", - "properties": { - "offer-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "OfferUserDetails": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "access" - ] - }, - "QueryApplicationOffersResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationOfferAdminDetails" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RemoteApplicationInfo": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "icon-url-path": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "name": { - "type": "string" - }, - "offer-url": { - "type": "string" - }, - "source-model-label": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "name", - "description", - "offer-url", - "endpoints", - "icon-url-path" - ] - }, - "RemoteApplicationInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RemoteApplicationInfo" - } - }, - "additionalProperties": false - }, - "RemoteApplicationInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteApplicationInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit" - ] - }, - "RemoteSpace": { - "type": "object", - "properties": { - "cloud-type": { - "type": "string" - }, - "name": { - "type": "string" - }, - "provider-attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "cloud-type", - "name", - "provider-id", - "provider-attributes", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "keep-copy": { - "type": "boolean" - }, - "no-download": { - "type": "boolean" - }, - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes", - "keep-copy", - "no-download" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "filename": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key", - "filename" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ExportBundle": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "bundleURL": { - "type": "string" - }, - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml", - "bundleURL" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "CAASAgent", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "cacertificates": { - "type": "array", - "items": { - "type": "string" - } - }, - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "CAASFirewaller", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ApplicationsConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetConfigResults" - } - } - }, - "IsExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchApplications": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "ApplicationGetConfigResults": { - "type": "object", - "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "Results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "CAASOperator", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Charm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPodSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetPodSpecParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationCharm": { - "type": "object", - "properties": { - "charm-modified-version": { - "type": "integer" - }, - "force-upgrade": { - "type": "boolean" - }, - "sha256": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "sha256", - "charm-modified-version" - ] - }, - "ApplicationCharmResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ApplicationCharm" - } - }, - "additionalProperties": false - }, - "ApplicationCharmResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "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" - ] - }, - "EntityString": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "value" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "type" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SetPodSpecParams": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityString" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "CAASOperatorProvisioner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "OperatorProvisioningInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/OperatorProvisioningInfo" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchApplications": { - "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" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "KubernetesFilesystemAttachmentParams": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "provider" - ] - }, - "KubernetesFilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/KubernetesFilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "storagename": { - "type": "string" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "storagename", - "size", - "provider" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "OperatorProvisioningInfo": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "charm-storage": { - "$ref": "#/definitions/KubernetesFilesystemParams" - }, - "image-path": { - "type": "string" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "image-path", - "version", - "api-addresses", - "charm-storage" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "CAASUnitProvisioner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ApplicationsConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetConfigResults" - } - } - }, - "ApplicationsScale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/KubernetesProvisioningInfoResults" - } - } - }, - "SetOperatorStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateApplicationsService": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateApplicationServiceArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateApplicationsUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateApplicationUnitArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchApplications": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchApplicationsScale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchPodSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationGetConfigResults": { - "type": "object", - "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "Results" - ] - }, - "ApplicationUnitParams": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-info": { - "type": "array", - "items": { - "$ref": "#/definitions/KubernetesFilesystemInfo" - } - }, - "info": { - "type": "string" - }, - "ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "provider-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "provider-id", - "unit-tag", - "address", - "ports", - "status", - "info" - ] - }, - "ConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "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" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "KubernetesDeviceParams": { - "type": "object", - "properties": { - "Attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Count": { - "type": "integer" - }, - "Type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Type", - "Count", - "Attributes" - ] - }, - "KubernetesFilesystemAttachmentParams": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "provider" - ] - }, - "KubernetesFilesystemInfo": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "status": { - "type": "string" - }, - "storagename": { - "type": "string" - }, - "volume": { - "$ref": "#/definitions/KubernetesVolumeInfo" - } - }, - "additionalProperties": false, - "required": [ - "storagename", - "pool", - "size", - "filesystem-id", - "status", - "info", - "volume" - ] - }, - "KubernetesFilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/KubernetesFilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "storagename": { - "type": "string" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "storagename", - "size", - "provider" - ] - }, - "KubernetesProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "devices": { - "type": "array", - "items": { - "$ref": "#/definitions/KubernetesDeviceParams" - } - }, - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/KubernetesFilesystemParams" - } - }, - "placement": { - "type": "string" - }, - "pod-spec": { - "type": "string" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/KubernetesVolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "pod-spec", - "constraints" - ] - }, - "KubernetesProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/KubernetesProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "KubernetesProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/KubernetesProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "KubernetesVolumeAttachmentParams": { - "type": "object", - "properties": { - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "provider" - ] - }, - "KubernetesVolumeInfo": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "status": { - "type": "string" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent", - "status", - "info" - ] - }, - "KubernetesVolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/KubernetesVolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "storagename": { - "type": "string" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "storagename", - "size", - "provider" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "UpdateApplicationServiceArg": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "application-tag": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "provider-id", - "addresses" - ] - }, - "UpdateApplicationServiceArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateApplicationServiceArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "UpdateApplicationUnitArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateApplicationUnits" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "UpdateApplicationUnits": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "units": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationUnitParams" - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "units" - ] - }, - "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" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmDevice": { - "type": "object", - "properties": { - "CountMax": { - "type": "integer" - }, - "CountMin": { - "type": "integer" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name", - "Description", - "Type", - "CountMin", - "CountMax" - ] - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "lxd-profile": { - "$ref": "#/definitions/CharmLXDProfile" - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmLXDProfile": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "description": { - "type": "string" - }, - "devices": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "config", - "description", - "devices" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "devices": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmDevice" - } - } - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetSLALevel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSLA" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "force": { - "type": "boolean" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "force" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "force": { - "type": "boolean" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon", - "force" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationOfferStatus": { - "type": "object", - "properties": { - "active-connected-count": { - "type": "integer" - }, - "application-name": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteEndpoint" - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "offer-name": { - "type": "string" - }, - "total-connected-count": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "offer-name", - "application-name", - "charm", - "endpoints", - "active-connected-count", - "total-connected-count" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "charm-verion": { - "type": "string" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "int": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "provider-id": { - "type": "string" - }, - "public-address": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "string": { - "type": "string" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version", - "charm-verion", - "endpoint-bindings", - "public-address" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "bundleURL": { - "type": "string" - }, - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml", - "bundleURL" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "agentstream": { - "type": "string" - }, - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series", - "agentstream" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "controller-timestamp": { - "type": "string", - "format": "date-time" - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "offers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationOfferStatus" - } - } - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "offers", - "relations", - "controller-timestamp" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LXDProfile": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "description": { - "type": "string" - }, - "devices": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "config", - "description", - "devices" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "constraints": { - "type": "string" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "lxd-profiles": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/LXDProfile" - } - } - }, - "network-interfaces": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/NetworkInterface" - } - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "instance-id", - "series", - "id", - "containers", - "constraints", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "sla": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "type": { - "type": "string" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "uuid", - "controller-uuid", - "cloud-tag", - "owner-tag", - "life", - "users", - "machines", - "sla", - "agent-version" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "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" - ] - }, - "ModelSLA": { - "type": "object", - "properties": { - "ModelSLAInfo": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "creds": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "ModelSLAInfo", - "creds" - ] - }, - "ModelSLAInfo": { - "type": "object", - "properties": { - "level": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "owner" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "meter-status": { - "$ref": "#/definitions/MeterStatus" - }, - "model-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "sla": { - "type": "string" - }, - "type": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "cloud-tag", - "version", - "available-version", - "model-status", - "meter-status", - "sla" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NetworkInterface": { - "type": "object", - "properties": { - "dns-nameservers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway": { - "type": "string" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "is-up": { - "type": "boolean" - }, - "mac-address": { - "type": "string" - }, - "space": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "ip-addresses", - "mac-address", - "is-up" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints", - "status" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "offer-name": { - "type": "string" - }, - "offer-url": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "offer-url", - "offer-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "exclude": { - "type": "array", - "items": { - "type": "string" - } - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta", - "exclude" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "provider-id": { - "type": "string" - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddCloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCloudArgs" - } - } - }, - "AddCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TaggedCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CheckCredentialsModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TaggedCredentials" - }, - "Result": { - "$ref": "#/definitions/UpdateCredentialResults" - } - } - }, - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "CloudInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudInfoResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "CredentialContents": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CloudCredentialArgs" - }, - "Result": { - "$ref": "#/definitions/CredentialContentResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CloudInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - }, - "ListCloudInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListCloudsRequest" - }, - "Result": { - "$ref": "#/definitions/ListCloudInfoResults" - } - } - }, - "ModifyCloudAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyCloudAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveClouds": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RevokeCredentialsCheckModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RevokeCredentialArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentialsCheckModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCredentialArgs" - }, - "Result": { - "$ref": "#/definitions/UpdateCredentialResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "AddCloudArgs": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud", - "name" - ] - }, - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "ca-certificates": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialArg": { - "type": "object", - "properties": { - "cloud-name": { - "type": "string" - }, - "credential-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud-name", - "credential-name" - ] - }, - "CloudCredentialArgs": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialArg" - } - }, - "include-secrets": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "include-secrets" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "CloudDetails": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudInfo": { - "type": "object", - "properties": { - "CloudDetails": { - "$ref": "#/definitions/CloudDetails" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudUserInfo" - } - } - }, - "additionalProperties": false, - "required": [ - "CloudDetails", - "users" - ] - }, - "CloudInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudInfo" - } - }, - "additionalProperties": false - }, - "CloudInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "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": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "access" - ] - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "ControllerCredentialInfo": { - "type": "object", - "properties": { - "content": { - "$ref": "#/definitions/CredentialContent" - }, - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelAccess" - } - } - }, - "additionalProperties": false - }, - "CredentialContent": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "cloud": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud", - "auth-type" - ] - }, - "CredentialContentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllerCredentialInfo" - } - }, - "additionalProperties": false - }, - "CredentialContentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CredentialContentResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "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" - ] - }, - "ListCloudInfo": { - "type": "object", - "properties": { - "CloudDetails": { - "$ref": "#/definitions/CloudDetails" - }, - "user-access": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CloudDetails", - "user-access" - ] - }, - "ListCloudInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ListCloudInfo" - } - }, - "additionalProperties": false - }, - "ListCloudInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ListCloudInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListCloudsRequest": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "model": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ModifyCloudAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag", - "action", - "access" - ] - }, - "ModifyCloudAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyCloudAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RevokeCredentialArg": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "force" - ] - }, - "RevokeCredentialArgs": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/RevokeCredentialArg" - } - } - }, - "additionalProperties": false, - "required": [ - "credentials" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "TaggedCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "TaggedCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/TaggedCredential" - } - } - }, - "additionalProperties": false - }, - "UpdateCredentialArgs": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/TaggedCredential" - } - }, - "force": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "credentials", - "force" - ] - }, - "UpdateCredentialModelResult": { - "type": "object", - "properties": { - "errors": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name" - ] - }, - "UpdateCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCredentialModelResult" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "UpdateCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCredentialResult" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - }, - "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" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Controller", - "Version": 5, - "Schema": { - "type": "object", - "properties": { - "AllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ConfigSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllerConfigSet" - } - } - }, - "ControllerAPIInfoForModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ControllerAPIInfoResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "cacertificates": { - "type": "array", - "items": { - "type": "string" - } - }, - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerAPIInfoResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "cacert": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses", - "cacert" - ] - }, - "ControllerAPIInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllerAPIInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ControllerConfigSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - }, - "destroy-storage": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "type": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "type", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelFilesystemInfo": { - "type": "object", - "properties": { - "detachable": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelFilesystemInfo" - } - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelVolumeInfo" - } - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModelVolumeInfo": { - "type": "object", - "properties": { - "detachable": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "CredentialManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "InvalidateModelCredential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InvalidateCredentialArg" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "InvalidateCredentialArg": { - "type": "object", - "properties": { - "reason": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "CredentialValidator", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "InvalidateModelCredential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InvalidateCredentialArg" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ModelCredential": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelCredential" - } - } - }, - "WatchCredential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelCredential": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "InvalidateCredentialArg": { - "type": "object", - "properties": { - "reason": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelCredential": { - "type": "object", - "properties": { - "credential-tag": { - "type": "string" - }, - "exists": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "valid": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "credential-tag" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "CrossController", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ControllerInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerAPIInfoResults" - } - } - }, - "WatchControllerInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "ControllerAPIInfoResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "cacert": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses", - "cacert" - ] - }, - "ControllerAPIInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllerAPIInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "CrossModelRelations", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "PublishIngressNetworkChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/IngressNetworksChanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PublishRelationChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoteRelationsChanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RegisterRemoteRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RegisterRemoteRelationArgs" - }, - "Result": { - "$ref": "#/definitions/RegisterRemoteRelationResults" - } - } - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoteRelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "WatchEgressAddressesForRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoteEntityArgs" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchOfferStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/OfferArgs" - }, - "Result": { - "$ref": "#/definitions/OfferStatusWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoteEntityArgs" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchRelationsSuspendedStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoteEntityArgs" - }, - "Result": { - "$ref": "#/definitions/RelationStatusWatchResults" - } - } - } - }, - "definitions": { - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IngressNetworksChangeEvent": { - "type": "object", - "properties": { - "application-token": { - "type": "string" - }, - "ingress-required": { - "type": "boolean" - }, - "macaroons": { - "type": "array", - "items": { - "$ref": "#/definitions/Macaroon" - } - }, - "networks": { - "type": "array", - "items": { - "type": "string" - } - }, - "relation-token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation-token", - "application-token", - "ingress-required" - ] - }, - "IngressNetworksChanges": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/IngressNetworksChangeEvent" - } - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "OfferArg": { - "type": "object", - "properties": { - "macaroons": { - "type": "array", - "items": { - "$ref": "#/definitions/Macaroon" - } - }, - "offer-uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "offer-uuid" - ] - }, - "OfferArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/OfferArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "OfferStatusChange": { - "type": "object", - "properties": { - "offer-name": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - } - }, - "additionalProperties": false, - "required": [ - "offer-name", - "status" - ] - }, - "OfferStatusWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/OfferStatusChange" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "OfferStatusWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/OfferStatusWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RegisterRemoteRelationArg": { - "type": "object", - "properties": { - "application-token": { - "type": "string" - }, - "local-endpoint-name": { - "type": "string" - }, - "macaroons": { - "type": "array", - "items": { - "$ref": "#/definitions/Macaroon" - } - }, - "offer-uuid": { - "type": "string" - }, - "relation-token": { - "type": "string" - }, - "remote-endpoint": { - "$ref": "#/definitions/RemoteEndpoint" - }, - "remote-space": { - "$ref": "#/definitions/RemoteSpace" - }, - "source-model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-token", - "source-model-tag", - "relation-token", - "remote-endpoint", - "remote-space", - "offer-uuid", - "local-endpoint-name" - ] - }, - "RegisterRemoteRelationArgs": { - "type": "object", - "properties": { - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RegisterRemoteRelationArg" - } - } - }, - "additionalProperties": false, - "required": [ - "relations" - ] - }, - "RegisterRemoteRelationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RemoteRelationDetails" - } - }, - "additionalProperties": false - }, - "RegisterRemoteRelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RegisterRemoteRelationResult" - } - } - }, - "additionalProperties": false - }, - "RelationLifeSuspendedStatusChange": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "life": { - "type": "string" - }, - "suspended": { - "type": "boolean" - }, - "suspended-reason": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "life", - "suspended", - "suspended-reason" - ] - }, - "RelationLifeSuspendedStatusWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationLifeSuspendedStatusChange" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationStatusWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationLifeSuspendedStatusWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit" - ] - }, - "RemoteEntityArg": { - "type": "object", - "properties": { - "macaroons": { - "type": "array", - "items": { - "$ref": "#/definitions/Macaroon" - } - }, - "relation-token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation-token" - ] - }, - "RemoteEntityArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEntityArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "RemoteRelationChangeEvent": { - "type": "object", - "properties": { - "application-token": { - "type": "string" - }, - "changed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationUnitChange" - } - }, - "departed-units": { - "type": "array", - "items": { - "type": "integer" - } - }, - "force-cleanup": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "macaroons": { - "type": "array", - "items": { - "$ref": "#/definitions/Macaroon" - } - }, - "relation-token": { - "type": "string" - }, - "suspended": { - "type": "boolean" - }, - "suspended-reason": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation-token", - "application-token", - "life" - ] - }, - "RemoteRelationDetails": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "relation-token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation-token" - ] - }, - "RemoteRelationUnit": { - "type": "object", - "properties": { - "macaroons": { - "type": "array", - "items": { - "$ref": "#/definitions/Macaroon" - } - }, - "relation-token": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation-token", - "unit" - ] - }, - "RemoteRelationUnitChange": { - "type": "object", - "properties": { - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "unit-id": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "unit-id" - ] - }, - "RemoteRelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RemoteRelationsChanges": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationChangeEvent" - } - } - }, - "additionalProperties": false - }, - "RemoteSpace": { - "type": "object", - "properties": { - "cloud-type": { - "type": "string" - }, - "name": { - "type": "string" - }, - "provider-attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "cloud-type", - "name", - "provider-id", - "provider-attributes", - "subnets" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - }, - "WWN": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "WWN", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ExternalControllerUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ExternalControllerInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ExternalControllerInfoResults" - } - } - }, - "SetExternalControllerInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetExternalControllersInfoParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchExternalControllers": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ExternalControllerInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "ca-cert": { - "type": "string" - }, - "controller-alias": { - "type": "string" - }, - "controller-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "controller-alias", - "addrs", - "ca-cert" - ] - }, - "ExternalControllerInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ExternalControllerInfo" - } - }, - "additionalProperties": false, - "required": [ - "result", - "error" - ] - }, - "ExternalControllerInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ExternalControllerInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetExternalControllerInfoParams": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/ExternalControllerInfo" - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "SetExternalControllersInfoParams": { - "type": "object", - "properties": { - "controllers": { - "type": "array", - "items": { - "$ref": "#/definitions/SetExternalControllerInfoParams" - } - } - }, - "additionalProperties": false, - "required": [ - "controllers" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "FanConfigurer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "FanConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/FanConfigResult" - } - } - }, - "WatchForFanConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FanConfigEntry": { - "type": "object", - "properties": { - "overlay": { - "type": "string" - }, - "underlay": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "underlay", - "overlay" - ] - }, - "FanConfigResult": { - "type": "object", - "properties": { - "fans": { - "type": "array", - "items": { - "$ref": "#/definitions/FanConfigEntry" - } - } - }, - "additionalProperties": false, - "required": [ - "fans" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "FirewallRules", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ListFirewallRules": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListFirewallRulesResults" - } - } - }, - "SetFirewallRules": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FirewallRuleArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FirewallRule": { - "type": "object", - "properties": { - "known-service": { - "type": "string" - }, - "whitelist-cidrs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "known-service" - ] - }, - "FirewallRuleArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/FirewallRule" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "ListFirewallRulesResults": { - "type": "object", - "properties": { - "Rules": { - "type": "array", - "items": { - "$ref": "#/definitions/FirewallRule" - } - } - }, - "additionalProperties": false, - "required": [ - "Rules" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Firewaller", - "Version": 5, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerAPIInfoForModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ControllerAPIInfoResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "FirewallRules": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/KnownServiceArgs" - }, - "Result": { - "$ref": "#/definitions/ListFirewallRulesResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MacaroonForRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MacaroonResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetRelationsStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchEgressAddressesForRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchIngressAddressesForRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "cacertificates": { - "type": "array", - "items": { - "type": "string" - } - }, - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerAPIInfoResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "cacert": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses", - "cacert" - ] - }, - "ControllerAPIInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllerAPIInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "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" - ] - }, - "FirewallRule": { - "type": "object", - "properties": { - "known-service": { - "type": "string" - }, - "whitelist-cidrs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "known-service" - ] - }, - "KnownServiceArgs": { - "type": "object", - "properties": { - "known-services": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "known-services" - ] - }, - "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" - ] - }, - "ListFirewallRulesResults": { - "type": "object", - "properties": { - "Rules": { - "type": "array", - "items": { - "$ref": "#/definitions/FirewallRule" - } - } - }, - "additionalProperties": false, - "required": [ - "Rules" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MacaroonResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Macaroon" - } - }, - "additionalProperties": false - }, - "MacaroonResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MacaroonResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Priority", - "Tags", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "UpdateFromPublishedImages": { - "type": "object" - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 5, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "DestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "DestroyMachineWithParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachinesParams" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "ForceDestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "GetUpgradeSeriesMessages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeSeriesNotificationParams" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - }, - "UpgradeSeriesComplete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateSeriesArg" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "UpgradeSeriesPrepare": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateSeriesArg" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "UpgradeSeriesValidate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateSeriesArgs" - }, - "Result": { - "$ref": "#/definitions/UpgradeSeriesUnitsResults" - } - } - }, - "WatchUpgradeSeriesNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachineInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyMachineResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyMachineInfo" - } - }, - "additionalProperties": false - }, - "DestroyMachineResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyMachineResult" - } - } - }, - "additionalProperties": false - }, - "DestroyMachinesParams": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "keep": { - "type": "boolean" - }, - "machine-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-tags" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "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 - }, - "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" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateSeriesArg": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "series": { - "type": "string" - }, - "tag": { - "$ref": "#/definitions/Entity" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "force", - "series" - ] - }, - "UpdateSeriesArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateSeriesArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "UpgradeSeriesNotificationParam": { - "type": "object", - "properties": { - "entity": { - "$ref": "#/definitions/Entity" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "watcher-id" - ] - }, - "UpgradeSeriesNotificationParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/UpgradeSeriesNotificationParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "UpgradeSeriesUnitsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "UpgradeSeriesUnitsResults": { - "type": "object", - "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/UpgradeSeriesUnitsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "Results" - ] - }, - "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" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "is-default-gateway": { - "type": "boolean" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "labels": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "labels": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit", - "labels" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddJujuMachineMetrics": { - "type": "object" - }, - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "controller-agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "AdoptResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AdoptResourcesArgs" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CheckMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "LatestLogTime": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - }, - "Result": { - "type": "string", - "format": "date-time" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "AdoptResourcesArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - }, - "source-controller-version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "source-controller-version" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "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, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Sequences": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelSequencesResult" - } - } - }, - "SetSLALevel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSLA" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSLA": { - "type": "object", - "properties": { - "ModelSLAInfo": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "creds": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "ModelSLAInfo", - "creds" - ] - }, - "ModelSLAInfo": { - "type": "object", - "properties": { - "level": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "owner" - ] - }, - "ModelSequencesResult": { - "type": "object", - "properties": { - "sequences": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - } - }, - "additionalProperties": false, - "required": [ - "sequences" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 5, - "Schema": { - "type": "object", - "properties": { - "ChangeModelCredential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ChangeModelCredentialsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyModelsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DumpModelRequest" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModelSummaries": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSummariesRequest" - }, - "Result": { - "$ref": "#/definitions/ModelSummaryResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "ChangeModelCredentialParams": { - "type": "object", - "properties": { - "credential-tag": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "credential-tag" - ] - }, - "ChangeModelCredentialsParams": { - "type": "object", - "properties": { - "model-credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/ChangeModelCredentialParams" - } - } - }, - "additionalProperties": false, - "required": [ - "model-credentials" - ] - }, - "DestroyModelParams": { - "type": "object", - "properties": { - "destroy-storage": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "DestroyModelsParams": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyModelParams" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "DumpModelRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "simplified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "simplified" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "type": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "type", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelEntityCount": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "count" - ] - }, - "ModelFilesystemInfo": { - "type": "object", - "properties": { - "detachable": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "sla": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "type": { - "type": "string" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "uuid", - "controller-uuid", - "cloud-tag", - "owner-tag", - "life", - "users", - "machines", - "sla", - "agent-version" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "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" - ] - }, - "ModelSLAInfo": { - "type": "object", - "properties": { - "level": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "owner" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelFilesystemInfo" - } - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelVolumeInfo" - } - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelSummariesRequest": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag" - ] - }, - "ModelSummary": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "counts": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelEntityCount" - } - }, - "default-series": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "life": { - "type": "string" - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "sla": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "type": { - "type": "string" - }, - "user-access": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "type", - "controller-uuid", - "cloud-tag", - "owner-tag", - "life", - "user-access", - "last-connection", - "counts", - "sla", - "agent-version" - ] - }, - "ModelSummaryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelSummary" - } - }, - "additionalProperties": false - }, - "ModelSummaryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelSummaryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelVolumeInfo": { - "type": "object", - "properties": { - "detachable": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "ModelUpgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelEnvironVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "ModelTargetEnvironVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "SetModelEnvironVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelEnvironVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelEnvironVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "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" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetModelEnvironVersion": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - }, - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "version" - ] - }, - "SetModelEnvironVersions": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/SetModelEnvironVersion" - } - } - }, - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "OfferStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/OfferStatusWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "OfferStatusChange": { - "type": "object", - "properties": { - "offer-name": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - } - }, - "additionalProperties": false, - "required": [ - "offer-name", - "status" - ] - }, - "OfferStatusWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/OfferStatusChange" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PayloadListArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadListResults" - } - } - } - }, - "definitions": { - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "PayloadListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetPayloadStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpPayloadArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpPayloadArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpPayloadArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetPayloadStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetPayloadStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetPayloadStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackPayloadArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 7, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmProfileChangeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProfileChangeResults" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerAPIInfoForModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ControllerAPIInfoResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "DistributionGroupByMachineId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "GetContainerProfileInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ContainerProfileResults" - } - } - }, - "HostChangesForContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/HostNetworkChangeResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "KeepInstance": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUpgradeCharmProfileData": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetCharmProfiles": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetProfileArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetHostMachineNetworkConfig": { - "type": "object", - "properties": { - "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" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "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" - } - } - }, - "SetUpgradeCharmProfileComplete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetProfileUpgradeCompleteArgs" - }, - "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" - } - } - }, - "WatchContainersCharmProfiles": { - "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" - } - } - }, - "WatchModelMachinesCharmProfiles": { - "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" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmLXDProfile": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "description": { - "type": "string" - }, - "devices": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "config", - "description", - "devices" - ] - }, - "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" - }, - "cloudinit-userdata": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "container-inherit-properties": { - "type": "string" - }, - "juju-proxy": { - "$ref": "#/definitions/Settings" - }, - "legacy-proxy": { - "$ref": "#/definitions/Settings" - }, - "provider-type": { - "type": "string" - }, - "snap-proxy": { - "$ref": "#/definitions/Settings" - }, - "ssl-hostname-verification": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "provider-type", - "authorized-keys", - "ssl-hostname-verification", - "legacy-proxy", - "juju-proxy", - "apt-proxy", - "snap-proxy", - "apt-mirror", - "UpdateBehavior" - ] - }, - "ContainerLXDProfile": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "profile": { - "$ref": "#/definitions/CharmLXDProfile" - } - }, - "additionalProperties": false, - "required": [ - "profile", - "name" - ] - }, - "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" - ] - }, - "ContainerProfileResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "lxd-profiles": { - "type": "array", - "items": { - "$ref": "#/definitions/ContainerLXDProfile" - } - } - }, - "additionalProperties": false - }, - "ContainerProfileResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ContainerProfileResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllerAPIInfoResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "cacert": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses", - "cacert" - ] - }, - "ControllerAPIInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllerAPIInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "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" - }, - "mac-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "host-device-name", - "bridge-name", - "mac-address" - ] - }, - "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": { - "agentstream": { - "type": "string" - }, - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series", - "agentstream" - ] - }, - "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" - }, - "charm-profiles": { - "type": "array", - "items": { - "type": "string" - } - }, - "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", - "charm-profiles" - ] - }, - "InstancesInfo": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/InstanceInfo" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineContainers": { - "type": "object", - "properties": { - "container-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-types" - ] - }, - "MachineContainersParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineContainers" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachineNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "MachineNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "is-default-gateway": { - "type": "boolean" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProfileChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "new-profile-name": { - "type": "string" - }, - "old-profile-name": { - "type": "string" - }, - "profile": { - "$ref": "#/definitions/CharmLXDProfile" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "ProfileChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProfileChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "charm-lxd-profiles": { - "type": "array", - "items": { - "type": "string" - } - }, - "cloudinit-userdata": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetProfileArg": { - "type": "object", - "properties": { - "entity": { - "$ref": "#/definitions/Entity" - }, - "profiles": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "entity", - "profiles" - ] - }, - "SetProfileArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetProfileArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "SetProfileUpgradeCompleteArg": { - "type": "object", - "properties": { - "entity": { - "$ref": "#/definitions/Entity" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "message" - ] - }, - "SetProfileUpgradeCompleteArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetProfileUpgradeCompleteArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "AutoNoProxy": { - "type": "string" - }, - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy", - "AutoNoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "plan-info": { - "$ref": "#/definitions/VolumeAttachmentPlanInfo" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentPlanInfo": { - "type": "object", - "properties": { - "device-attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "device-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - }, - "wwn": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "juju-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "legacy-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "snap-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "snap-store-assertions": { - "type": "string" - }, - "snap-store-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "legacy-proxy-settings", - "juju-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationLifeSuspendedStatusWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationLifeSuspendedStatusChange": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "life": { - "type": "string" - }, - "suspended": { - "type": "boolean" - }, - "suspended-reason": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "life", - "suspended", - "suspended-reason" - ] - }, - "RelationLifeSuspendedStatusWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationLifeSuspendedStatusChange" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "RemoteRelations", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ConsumeRemoteRelationChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoteRelationsChanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ControllerAPIInfoForModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ControllerAPIInfoResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "ExportEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/TokenResults" - } - } - }, - "GetTokens": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetTokenArgs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ImportRemoteEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoteEntityTokenArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RemoteRelationResults" - } - } - }, - "RemoteApplications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RemoteApplicationResults" - } - } - }, - "SaveMacaroons": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityMacaroonArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetRemoteApplicationsStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchLocalRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchRemoteApplicationRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchRemoteApplications": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchRemoteRelations": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "ControllerAPIInfoResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "cacert": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses", - "cacert" - ] - }, - "ControllerAPIInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllerAPIInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMacaroonArg": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "macaroon", - "tag" - ] - }, - "EntityMacaroonArgs": { - "type": "object", - "properties": { - "Args": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMacaroonArg" - } - } - }, - "additionalProperties": false, - "required": [ - "Args" - ] - }, - "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" - ] - }, - "GetTokenArg": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "GetTokenArgs": { - "type": "object", - "properties": { - "Args": { - "type": "array", - "items": { - "$ref": "#/definitions/GetTokenArg" - } - } - }, - "additionalProperties": false, - "required": [ - "Args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RemoteApplication": { - "type": "object", - "properties": { - "is-consumer-proxy": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "offer-uuid": { - "type": "string" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "offer-uuid", - "model-uuid", - "is-consumer-proxy" - ] - }, - "RemoteApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RemoteApplication" - } - }, - "additionalProperties": false - }, - "RemoteApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteApplicationResult" - } - } - }, - "additionalProperties": false - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit" - ] - }, - "RemoteEntityTokenArg": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "RemoteEntityTokenArgs": { - "type": "object", - "properties": { - "Args": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEntityTokenArg" - } - } - }, - "additionalProperties": false, - "required": [ - "Args" - ] - }, - "RemoteRelation": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "endpoint": { - "$ref": "#/definitions/RemoteEndpoint" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - }, - "remote-application-name": { - "type": "string" - }, - "remote-endpoint-name": { - "type": "string" - }, - "source-model-uuid": { - "type": "string" - }, - "suspended": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "life", - "suspended", - "id", - "key", - "application-name", - "endpoint", - "remote-application-name", - "remote-endpoint-name", - "source-model-uuid" - ] - }, - "RemoteRelationChangeEvent": { - "type": "object", - "properties": { - "application-token": { - "type": "string" - }, - "changed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationUnitChange" - } - }, - "departed-units": { - "type": "array", - "items": { - "type": "integer" - } - }, - "force-cleanup": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "macaroons": { - "type": "array", - "items": { - "$ref": "#/definitions/Macaroon" - } - }, - "relation-token": { - "type": "string" - }, - "suspended": { - "type": "boolean" - }, - "suspended-reason": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation-token", - "application-token", - "life" - ] - }, - "RemoteRelationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RemoteRelation" - } - }, - "additionalProperties": false - }, - "RemoteRelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RemoteRelationUnitChange": { - "type": "object", - "properties": { - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "unit-id": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "unit-id" - ] - }, - "RemoteRelationsChanges": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationChangeEvent" - } - } - }, - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "TokenResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "token": { - "type": "string" - } - }, - "additionalProperties": false - }, - "TokenResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/TokenResult" - } - } - }, - "additionalProperties": false - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "force": { - "type": "boolean" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon", - "force" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListUnitResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/UnitResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListUnitResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "UnitResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "UnitResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "claimant-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "entity-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity-tag", - "claimant-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - }, - "ReloadSpaces": { - "type": "object" - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/AddStorageResults" - } - } - }, - "Attach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "Detach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BulkImportStorageParams" - }, - "Result": { - "$ref": "#/definitions/ImportStorageResults" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveStorage" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "AddStorageDetails": { - "type": "object", - "properties": { - "storage-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "storage-tags" - ] - }, - "AddStorageResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/AddStorageDetails" - } - }, - "additionalProperties": false - }, - "AddStorageResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddStorageResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BulkImportStorageParams": { - "type": "object", - "properties": { - "storage": { - "type": "array", - "items": { - "$ref": "#/definitions/ImportStorageParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storage" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentDetails": { - "type": "object", - "properties": { - "FilesystemAttachmentInfo": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "FilesystemAttachmentInfo" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "unit-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentDetails" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "ImportStorageDetails": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag" - ] - }, - "ImportStorageParams": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "storage-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "pool", - "provider-id", - "storage-name" - ] - }, - "ImportStorageResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ImportStorageDetails" - } - }, - "additionalProperties": false - }, - "ImportStorageResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ImportStorageResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RemoveStorage": { - "type": "object", - "properties": { - "storage": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoveStorageInstance" - } - } - }, - "additionalProperties": false, - "required": [ - "storage" - ] - }, - "RemoveStorageInstance": { - "type": "object", - "properties": { - "destroy-attachments": { - "type": "boolean" - }, - "destroy-storage": { - "type": "boolean" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentDetails": { - "type": "object", - "properties": { - "VolumeAttachmentInfo": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "VolumeAttachmentInfo" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "plan-info": { - "$ref": "#/definitions/VolumeAttachmentPlanInfo" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentPlanInfo": { - "type": "object", - "properties": { - "device-attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "device-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "unit-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentDetails" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - }, - "wwn": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "CreateVolumeAttachmentPlans": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachmentPlans" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveFilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RemoveFilesystemParamsResults" - } - } - }, - "RemoveVolumeAttachmentPlan": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveVolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RemoveVolumeParamsResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentPlanBlockInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachmentPlans" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachmentPlans": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentPlanResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchApplications": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachmentPlans": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - }, - "WWN": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "WWN", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RemoveFilesystemParams": { - "type": "object", - "properties": { - "destroy": { - "type": "boolean" - }, - "filesystem-id": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "provider", - "filesystem-id" - ] - }, - "RemoveFilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RemoveFilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "RemoveFilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoveFilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "RemoveVolumeParams": { - "type": "object", - "properties": { - "destroy": { - "type": "boolean" - }, - "provider": { - "type": "string" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "provider", - "volume-id" - ] - }, - "RemoveVolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RemoveVolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "RemoveVolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoveVolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "plan-info": { - "$ref": "#/definitions/VolumeAttachmentPlanInfo" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentPlan": { - "type": "object", - "properties": { - "block-device": { - "$ref": "#/definitions/BlockDevice" - }, - "life": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "plan-info": { - "$ref": "#/definitions/VolumeAttachmentPlanInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "plan-info" - ] - }, - "VolumeAttachmentPlanInfo": { - "type": "object", - "properties": { - "device-attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "device-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentPlanResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentPlan" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentPlanResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentPlanResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentPlans": { - "type": "object", - "properties": { - "volume-plans": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentPlan" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-plans" - ] - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - }, - "wwn": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "provider-network-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 9, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "GoalStates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GoalStateResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/NetworkInfoParams" - }, - "Result": { - "$ref": "#/definitions/NetworkInfoResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Refresh": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UnitRefreshResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationsStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RelationUnitStatusResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPodSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetPodSpecParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetRelationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationStatusArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUpgradeSeriesUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeSeriesStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpgradeSeriesUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UpgradeSeriesStatusResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettingsHash": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchTrustConfigSettingsHash": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnitAddressesHash": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnitRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUpgradeSeriesNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "cacertificates": { - "type": "array", - "items": { - "type": "string" - } - }, - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityString": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "value" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "GoalState": { - "type": "object", - "properties": { - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/GoalStateStatus" - } - } - } - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/GoalStateStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "units", - "relations" - ] - }, - "GoalStateResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/GoalState" - } - }, - "additionalProperties": false, - "required": [ - "result", - "error" - ] - }, - "GoalStateResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GoalStateResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GoalStateStatus": { - "type": "object", - "properties": { - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "since" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "InterfaceAddress": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "hostname": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "hostname", - "value", - "cidr" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "labels": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "type" - ] - }, - "NetworkInfo": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/InterfaceAddress" - } - }, - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mac-address", - "interface-name", - "addresses" - ] - }, - "NetworkInfoParams": { - "type": "object", - "properties": { - "bindings": { - "type": "array", - "items": { - "type": "string" - } - }, - "relation-id": { - "type": "integer" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "bindings" - ] - }, - "NetworkInfoResult": { - "type": "object", - "properties": { - "bind-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkInfo" - } - }, - "egress-subnets": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "ingress-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "NetworkInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/NetworkInfoResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "bool": { - "type": "boolean" - }, - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - }, - "other-application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationStatusArg": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "relation-id": { - "type": "integer" - }, - "status": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-id", - "status", - "message" - ] - }, - "RelationStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnitStatus": { - "type": "object", - "properties": { - "in-scope": { - "type": "boolean" - }, - "relation-tag": { - "type": "string" - }, - "suspended": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "relation-tag", - "in-scope", - "suspended" - ] - }, - "RelationUnitStatusResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnitStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetPodSpecParams": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityString" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitRefreshResult": { - "type": "object", - "properties": { - "Error": { - "$ref": "#/definitions/Error" - }, - "Life": { - "type": "string" - }, - "Resolved": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Life", - "Resolved", - "Error" - ] - }, - "UnitRefreshResults": { - "type": "object", - "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitRefreshResult" - } - } - }, - "additionalProperties": false, - "required": [ - "Results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "UpgradeSeriesStatusParam": { - "type": "object", - "properties": { - "entity": { - "$ref": "#/definitions/Entity" - }, - "message": { - "type": "string" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "status", - "message" - ] - }, - "UpgradeSeriesStatusParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/UpgradeSeriesStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "UpgradeSeriesStatusResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "UpgradeSeriesStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UpgradeSeriesStatusResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "UpgradeSeries", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "FinishUpgradeSeries": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateSeriesArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "MachineStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UpgradeSeriesStatusResults" - } - } - }, - "PinMachineApplications": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/PinApplicationsResults" - } - } - }, - "PinnedLeadership": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/PinnedLeadershipResult" - } - } - }, - "SetMachineStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeSeriesStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUpgradeSeriesUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeSeriesStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StartUnitCompletion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeSeriesStartUnitCompletionParam" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "TargetSeries": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "UnitsCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "UnitsPrepared": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "UnpinMachineApplications": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/PinApplicationsResults" - } - } - }, - "UpgradeSeriesUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UpgradeSeriesStatusResults" - } - } - }, - "WatchUpgradeSeriesNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PinApplicationResult": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "application-name" - ] - }, - "PinApplicationsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PinApplicationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PinnedLeadershipResult": { - "type": "object", - "properties": { - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateSeriesArg": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "series": { - "type": "string" - }, - "tag": { - "$ref": "#/definitions/Entity" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "force", - "series" - ] - }, - "UpdateSeriesArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateSeriesArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "UpgradeSeriesStartUnitCompletionParam": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "message" - ] - }, - "UpgradeSeriesStatusParam": { - "type": "object", - "properties": { - "entity": { - "$ref": "#/definitions/Entity" - }, - "message": { - "type": "string" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "status", - "message" - ] - }, - "UpgradeSeriesStatusParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/UpgradeSeriesStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "UpgradeSeriesStatusResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "UpgradeSeriesStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UpgradeSeriesStatusResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ResetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentPlansWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/cloud.py b/modules/libjuju/juju/cloud.py deleted file mode 100644 index e4793ee..0000000 --- a/modules/libjuju/juju/cloud.py +++ /dev/null @@ -1,81 +0,0 @@ -class Cloud(object): - """Cloud - - :ivar name: Name of the cloud - - """ - def add_credential(self, credential): - """Add or replaces credentials for this cloud. - - :param `juju.Credential` credential: The Credential to add - - """ - raise NotImplementedError() - - def get_credentials(self): - """Return list of all credentials for this cloud. - - """ - raise NotImplementedError() - - def remove_credential(self, credential_name): - """Remove a credential for this cloud. - - :param str credential_name: Name of the credential to remove - - """ - raise NotImplementedError() - - def bootstrap( - self, controller_name, region=None, agent_version=None, - auto_upgrade=False, bootstrap_constraints=None, - bootstrap_series=None, config=None, constraints=None, - credential=None, default_model=None, keep_broken=False, - metadata_source=None, no_gui=False, to=None, - upload_tools=False): - - """Initialize a cloud environment. - - :param str controller_name: Name of controller to create - :param str region: Cloud region in which to bootstrap - :param str agent_version: Version of tools to use for Juju agents - :param bool auto_upgrade: Upgrade to latest path release tools on first - bootstrap - :param bootstrap_constraints: Constraints for the bootstrap machine - :type bootstrap_constraints: :class:`juju.Constraints` - :param str bootstrap_series: Series of the bootstrap machine - :param dict config: Controller configuration - :param constraints: Default constraints for all future workload - machines - :type constraints: :class:`juju.Constraints` - :param credential: Credential to use when bootstrapping - :type credential: :class:`juju.Credential` - :param str default_model: Name to give the default model - :param bool keep_broken: Don't destroy model if bootstrap fails - :param str metadata_source: Local path to use as tools and/or metadata - source - :param bool no_gui: Don't install the Juju GUI in the controller when - bootstrapping - :param str to: Placement directive for bootstrap node (typically used - with MAAS) - :param bool upload_tools: Upload local version of tools before - bootstrapping - - """ - raise NotImplementedError() - - def set_default_credential(self, credential_name): - """Set the default credentials for this cloud. - - :param str credential_name: Credential to make default - - """ - raise NotImplementedError() - - def set_default_region(self, region): - """Set the default region for this cloud. - - :param str region: Name of region to make default - - """ - raise NotImplementedError() diff --git a/modules/libjuju/juju/constraints.py b/modules/libjuju/juju/constraints.py deleted file mode 100644 index 0050673..0000000 --- a/modules/libjuju/juju/constraints.py +++ /dev/null @@ -1,87 +0,0 @@ -# -# Module that parses constraints -# -# The current version of juju core expects the client to take -# constraints given in the form "mem=10G foo=bar" and parse them into -# json that looks like {"mem": 10240, "foo": "bar"}. This module helps us -# accomplish that task. -# -# We do not attempt to duplicate the checking done in -# client/_client.py:Value here. That class will verify that the -# constraints keys are valid, and that we can successfully dump the -# constraints dict to json. -# -# Once https://bugs.launchpad.net/juju/+bug/1645402 is addressed, this -# module should be deprecated. -# - -import re - -# Matches on a string specifying memory size -MEM = re.compile('^[1-9][0-9]*[MGTP]$') - -# Multiplication factors to get Megabytes -# https://github.com/juju/juju/blob/master/constraints/constraints.go#L666 -FACTORS = { - "M": 1, - "G": 1024, - "T": 1024 * 1024, - "P": 1024 * 1024 * 1024 -} - -LIST_KEYS = {'tags', 'spaces'} - -SNAKE1 = re.compile(r'(.)([A-Z][a-z]+)') -SNAKE2 = re.compile('([a-z0-9])([A-Z])') - - -def parse(constraints): - """ - Constraints must be expressed as a string containing only spaces - and key value pairs joined by an '='. - - """ - if not constraints: - return None - - if type(constraints) is dict: - # Fowards compatibilty: already parsed - return constraints - - constraints = { - normalize_key(k): ( - normalize_list_value(v) if k in LIST_KEYS else - normalize_value(v) - ) for k, v in [s.split("=") for s in constraints.split(" ")]} - - return constraints - - -def normalize_key(key): - key = key.strip() - - key = key.replace("-", "_") # Our _client lib wants "_" in place of "-" - - # Convert camelCase to snake_case - key = SNAKE1.sub(r'\1_\2', key) - key = SNAKE2.sub(r'\1_\2', key).lower() - - return key - - -def normalize_value(value): - value = value.strip() - - if MEM.match(value): - # Translate aliases to Megabytes. e.g. 1G = 10240 - return int(value[:-1]) * FACTORS[value[-1:]] - - if value.isdigit(): - return int(value) - - return value - - -def normalize_list_value(value): - values = value.strip().split(',') - return [normalize_value(value) for value in values] diff --git a/modules/libjuju/juju/controller.py b/modules/libjuju/juju/controller.py deleted file mode 100644 index ed9b744..0000000 --- a/modules/libjuju/juju/controller.py +++ /dev/null @@ -1,653 +0,0 @@ -# Copyright 2019 Canonical Ltd. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import asyncio -import json -import logging -from pathlib import Path - -from . import errors, tag, utils -from .client import client, connector -from .user import User - -log = logging.getLogger(__name__) - - -class Controller: - def __init__( - self, - loop=None, - max_frame_size=None, - bakery_client=None, - jujudata=None, - ): - """Instantiate a new Controller. - - One of the connect_* methods will need to be called before this - object can be used for anything interesting. - - If jujudata is None, jujudata.FileJujuData will be used. - - :param loop: an asyncio event loop - :param max_frame_size: See - `juju.client.connection.Connection.MAX_FRAME_SIZE` - :param bakery_client httpbakery.Client: The bakery client to use - for macaroon authorization. - :param jujudata JujuData: The source for current controller - information. - """ - self._connector = connector.Connector( - loop=loop, - max_frame_size=max_frame_size, - bakery_client=bakery_client, - jujudata=jujudata, - ) - - async def __aenter__(self): - await self.connect() - return self - - async def __aexit__(self, exc_type, exc, tb): - await self.disconnect() - - @property - def loop(self): - return self._connector.loop - - async def connect(self, *args, **kwargs): - """Connect to a Juju controller. - - This supports two calling conventions: - - The controller and (optionally) authentication information can be - taken from the data files created by the Juju CLI. This convention - will be used if a ``controller_name`` is specified, or if the - ``endpoint`` is not. - - Otherwise, both the ``endpoint`` and authentication information - (``username`` and ``password``, or ``bakery_client`` and/or - ``macaroons``) are required. - - If a single positional argument is given, it will be assumed to be - the ``controller_name``. Otherwise, the first positional argument, - if any, must be the ``endpoint``. - - Available parameters are: - - :param str controller_name: Name of controller registered with the - Juju CLI. - :param str endpoint: The hostname:port of the controller to connect to. - :param str username: The username for controller-local users (or None - to use macaroon-based login.) - :param str password: The password for controller-local users. - :param str cacert: The CA certificate of the controller - (PEM formatted). - :param httpbakery.Client bakery_client: The macaroon bakery client to - to use when performing macaroon-based login. Macaroon tokens - acquired when logging will be saved to bakery_client.cookies. - If this is None, a default bakery_client will be used. - :param list macaroons: List of macaroons to load into the - ``bakery_client``. - :param asyncio.BaseEventLoop loop: The event loop to use for async - operations. - :param int max_frame_size: The maximum websocket frame size to allow. - """ - await self.disconnect() - if 'endpoint' not in kwargs and len(args) < 2: - if args and 'model_name' in kwargs: - raise TypeError('connect() got multiple values for ' - 'controller_name') - elif args: - controller_name = args[0] - else: - controller_name = kwargs.pop('controller_name', None) - await self._connector.connect_controller(controller_name, **kwargs) - else: - if 'controller_name' in kwargs: - raise TypeError('connect() got values for both ' - 'controller_name and endpoint') - if args and 'endpoint' in kwargs: - raise TypeError('connect() got multiple values for endpoint') - has_userpass = (len(args) >= 3 or - {'username', 'password'}.issubset(kwargs)) - has_macaroons = (len(args) >= 5 or not - {'bakery_client', 'macaroons'}.isdisjoint(kwargs)) - if not (has_userpass or has_macaroons): - raise TypeError('connect() missing auth params') - arg_names = [ - 'endpoint', - 'username', - 'password', - 'cacert', - 'bakery_client', - 'macaroons', - 'loop', - 'max_frame_size', - ] - for i, arg in enumerate(args): - kwargs[arg_names[i]] = arg - if 'endpoint' not in kwargs: - raise ValueError('endpoint is required ' - 'if controller_name not given') - if not ({'username', 'password'}.issubset(kwargs) or - {'bakery_client', 'macaroons'}.intersection(kwargs)): - raise ValueError('Authentication parameters are required ' - 'if controller_name not given') - await self._connector.connect(**kwargs) - - async def connect_current(self): - """ - .. deprecated:: 0.7.3 - Use :meth:`.connect()` instead. - """ - return await self.connect() - - async def connect_controller(self, controller_name): - """ - .. deprecated:: 0.7.3 - Use :meth:`.connect(controller_name)` instead. - """ - return await self.connect(controller_name) - - async def _connect_direct(self, **kwargs): - await self.disconnect() - await self._connector.connect(**kwargs) - - def is_connected(self): - """Reports whether the Controller is currently connected.""" - return self._connector.is_connected() - - def connection(self): - """Return the current Connection object. It raises an exception - if the Controller is disconnected""" - return self._connector.connection() - - @property - def controller_name(self): - return self._connector.controller_name - - async def disconnect(self): - """Shut down the watcher task and close websockets. - - """ - await self._connector.disconnect() - - async def add_credential(self, name=None, credential=None, cloud=None, - owner=None, force=False): - """Add or update a credential to the controller. - - :param str name: Name of new credential. If None, the default - local credential is used. Name must be provided if a credential - is given. - :param CloudCredential credential: Credential to add. If not given, - it will attempt to read from local data, if available. - :param str cloud: Name of cloud to associate the credential with. - Defaults to the same cloud as the controller. - :param str owner: Username that will own the credential. Defaults to - the current user. - :param bool force: Force indicates whether the update should be forced. - It's only supported for facade v3 or later. - Defaults to false. - :returns: Name of credential that was uploaded. - """ - if not cloud: - cloud = await self.get_cloud() - - if not owner: - owner = self.connection().info['user-info']['identity'] - - if credential and not name: - raise errors.JujuError('Name must be provided for credential') - - if not credential: - name, credential = self._connector.jujudata.load_credential(cloud, - name) - if credential is None: - raise errors.JujuError( - 'Unable to find credential: {}'.format(name)) - - if credential.auth_type == 'jsonfile' and 'file' in credential.attrs: - # file creds have to be loaded before being sent to the controller - try: - # it might already be JSON - json.loads(credential.attrs['file']) - except json.JSONDecodeError: - # not valid JSON, so maybe it's a file - cred_path = Path(credential.attrs['file']) - if cred_path.exists(): - # make a copy - cred_json = credential.to_json() - credential = client.CloudCredential.from_json(cred_json) - # inline the cred - credential.attrs['file'] = cred_path.read_text() - - log.debug('Uploading credential %s', name) - cloud_facade = client.CloudFacade.from_connection(self.connection()) - tagged_credentials = [ - client.UpdateCloudCredential( - tag=tag.credential(cloud, tag.untag('user-', owner), name), - credential=credential, - )] - if cloud_facade.version >= 3: - # UpdateCredentials was renamed to UpdateCredentialsCheckModels - # in facade version 3. - await cloud_facade.UpdateCredentialsCheckModels( - credentials=tagged_credentials, force=force, - ) - else: - await cloud_facade.UpdateCredentials(tagged_credentials) - return name - - async def add_model( - self, model_name, cloud_name=None, credential_name=None, - owner=None, config=None, region=None): - """Add a model to this controller. - - :param str model_name: Name to give the new model. - :param str cloud_name: Name of the cloud in which to create the - model, e.g. 'aws'. Defaults to same cloud as controller. - :param str credential_name: Name of the credential to use when - creating the model. If not given, it will attempt to find a - default credential. - :param str owner: Username that will own the model. Defaults to - the current user. - :param dict config: Model configuration. - :param str region: Region in which to create the model. - :return Model: A connection to the newly created model. - """ - model_facade = client.ModelManagerFacade.from_connection( - self.connection()) - - owner = owner or self.connection().info['user-info']['identity'] - cloud_name = cloud_name or await self.get_cloud() - - try: - # attempt to add/update the credential from local data if available - credential_name = await self.add_credential( - name=credential_name, - cloud=cloud_name, - owner=owner) - except errors.JujuError: - # if it's not available locally, assume it's on the controller - pass - - if credential_name: - credential = tag.credential( - cloud_name, - tag.untag('user-', owner), - credential_name - ) - else: - credential = None - - log.debug('Creating model %s', model_name) - - if not config or 'authorized-keys' not in config: - config = config or {} - config['authorized-keys'] = await utils.read_ssh_key( - loop=self._connector.loop) - - model_info = await model_facade.CreateModel( - tag.cloud(cloud_name), - config, - credential, - model_name, - owner, - region - ) - - # This is a temporary workaround for a race condition: - # https://bugs.launchpad.net/juju/+bug/1838774 - # This will be fixed when Juju 2.6.7 is released. - import time - time.sleep(5) - - from juju.model import Model - model = Model(jujudata=self._connector.jujudata) - kwargs = self.connection().connect_params() - kwargs['uuid'] = model_info.uuid - await model._connect_direct(**kwargs) - - return model - - async def destroy_models(self, *models, destroy_storage=False): - """Destroy one or more models. - - :param str *models: Names or UUIDs of models to destroy - :param bool destroy_storage: Whether or not to destroy storage when - destroying the models. Defaults to false. - - """ - uuids = await self.model_uuids() - models = [uuids[model] if model in uuids else model - for model in models] - - model_facade = client.ModelManagerFacade.from_connection( - self.connection()) - - log.debug( - 'Destroying model%s %s', - '' if len(models) == 1 else 's', - ', '.join(models) - ) - - if model_facade.version >= 5: - params = [ - client.DestroyModelParams(model_tag=tag.model(model), - destroy_storage=destroy_storage) - for model in models] - else: - params = [client.Entity(tag.model(model)) for model in models] - - await model_facade.DestroyModels(params) - destroy_model = destroy_models - - async def add_user(self, username, password=None, display_name=None): - """Add a user to this controller. - - :param str username: Username - :param str password: Password - :param str display_name: Display name - :returns: A :class:`~juju.user.User` instance - """ - if not display_name: - display_name = username - user_facade = client.UserManagerFacade.from_connection( - self.connection()) - users = [client.AddUser(display_name=display_name, - username=username, - password=password)] - results = await user_facade.AddUser(users) - secret_key = results.results[0].secret_key - return await self.get_user(username, secret_key=secret_key) - - async def remove_user(self, username): - """Remove a user from this controller. - """ - client_facade = client.UserManagerFacade.from_connection( - self.connection()) - user = tag.user(username) - await client_facade.RemoveUser([client.Entity(user)]) - - async def change_user_password(self, username, password): - """Change the password for a user in this controller. - - :param str username: Username - :param str password: New password - - """ - user_facade = client.UserManagerFacade.from_connection( - self.connection()) - entity = client.EntityPassword(password, tag.user(username)) - return await user_facade.SetPassword([entity]) - - async def reset_user_password(self, username): - """Reset user password. - - :param str username: Username - :returns: A :class:`~juju.user.User` instance - """ - user_facade = client.UserManagerFacade.from_connection( - self.connection()) - entity = client.Entity(tag.user(username)) - results = await user_facade.ResetPassword([entity]) - secret_key = results.results[0].secret_key - return await self.get_user(username, secret_key=secret_key) - - async def destroy(self, destroy_all_models=False): - """Destroy this controller. - - :param bool destroy_all_models: Destroy all hosted models in the - controller. - - """ - controller_facade = client.ControllerFacade.from_connection( - self.connection()) - return await controller_facade.DestroyController(destroy_all_models) - - async def disable_user(self, username): - """Disable a user. - - :param str username: Username - - """ - user_facade = client.UserManagerFacade.from_connection( - self.connection()) - entity = client.Entity(tag.user(username)) - return await user_facade.DisableUser([entity]) - - async def enable_user(self, username): - """Re-enable a previously disabled user. - - """ - user_facade = client.UserManagerFacade.from_connection( - self.connection()) - entity = client.Entity(tag.user(username)) - return await user_facade.EnableUser([entity]) - - def kill(self): - """Forcibly terminate all machines and other associated resources for - this controller. - - """ - raise NotImplementedError() - - async def get_cloud(self): - """ - Get the name of the cloud that this controller lives on. - """ - cloud_facade = client.CloudFacade.from_connection(self.connection()) - - result = await cloud_facade.Clouds() - cloud = list(result.clouds.keys())[0] # only lives on one cloud - return tag.untag('cloud-', cloud) - - async def get_models(self, all_=False, username=None): - """ - .. deprecated:: 0.7.0 - Use :meth:`.list_models` instead. - """ - controller_facade = client.ControllerFacade.from_connection( - self.connection()) - for attempt in (1, 2, 3): - try: - return await controller_facade.AllModels() - except errors.JujuAPIError as e: - # retry concurrency error until resolved in Juju - # see: https://bugs.launchpad.net/juju/+bug/1721786 - if 'has been removed' not in e.message or attempt == 3: - raise - - async def model_uuids(self): - """Return a mapping of model names to UUIDs. - """ - controller_facade = client.ControllerFacade.from_connection( - self.connection()) - for attempt in (1, 2, 3): - try: - response = await controller_facade.AllModels() - return {um.model.name: um.model.uuid - for um in response.user_models} - except errors.JujuAPIError as e: - # retry concurrency error until resolved in Juju - # see: https://bugs.launchpad.net/juju/+bug/1721786 - if 'has been removed' not in e.message or attempt == 3: - raise - await asyncio.sleep(attempt, loop=self._connector.loop) - - async def list_models(self): - """Return list of names of the available models on this controller. - - Equivalent to ``sorted((await self.model_uuids()).keys())`` - """ - uuids = await self.model_uuids() - return sorted(uuids.keys()) - - def get_payloads(self, *patterns): - """Return list of known payloads. - - :param str *patterns: Patterns to match against - - Each pattern will be checked against the following info in Juju:: - - - unit name - - machine id - - payload type - - payload class - - payload id - - payload tag - - payload status - - """ - raise NotImplementedError() - - def login(self): - """Log in to this controller. - - """ - raise NotImplementedError() - - def logout(self, force=False): - """Log out of this controller. - - :param bool force: Don't fail even if user not previously logged in - with a password - - """ - raise NotImplementedError() - - async def get_model(self, model): - """Get a model by name or UUID. - - :param str model: Model name or UUID - :returns Model: Connected Model instance. - """ - uuids = await self.model_uuids() - if model in uuids: - uuid = uuids[model] - else: - uuid = model - - from juju.model import Model - model = Model() - kwargs = self.connection().connect_params() - kwargs['uuid'] = uuid - await model._connect_direct(**kwargs) - return model - - async def get_user(self, username, secret_key=None): - """Get a user by name. - - :param str username: Username - :param str secret_key: Issued by juju when add or reset user - password - :returns: A :class:`~juju.user.User` instance - """ - client_facade = client.UserManagerFacade.from_connection( - self.connection()) - user = tag.user(username) - args = [client.Entity(user)] - try: - response = await client_facade.UserInfo(args, True) - except errors.JujuError as e: - if 'permission denied' in e.errors: - # apparently, trying to get info for a nonexistent user returns - # a "permission denied" error rather than an empty result set - return None - raise - if response.results and response.results[0].result: - return User(self, response.results[0].result, secret_key=secret_key) - return None - - async def get_users(self, include_disabled=False): - """Return list of users that can connect to this controller. - - :param bool include_disabled: Include disabled users - :returns: A list of :class:`~juju.user.User` instances - """ - client_facade = client.UserManagerFacade.from_connection( - self.connection()) - response = await client_facade.UserInfo(None, include_disabled) - return [User(self, r.result) for r in response.results] - - async def grant(self, username, acl='login'): - """Grant access level of the given user on the controller. - Note that if the user already has higher permissions than the - provided ACL, this will do nothing (see revoke for a way to - remove permissions). - :param str username: Username - :param str acl: Access control ('login', 'add-model' or 'superuser') - :returns: True if new access was granted, False if user already had - requested access or greater. Raises JujuError if failed. - """ - controller_facade = client.ControllerFacade.from_connection( - self.connection()) - user = tag.user(username) - changes = client.ModifyControllerAccess(acl, 'grant', user) - try: - await controller_facade.ModifyControllerAccess([changes]) - return True - except errors.JujuError as e: - if 'user already has' in str(e): - return False - else: - raise - - async def revoke(self, username, acl='login'): - """Removes some or all access of a user to from a controller - If 'login' access is revoked, the user will no longer have any - permissions on the controller. Revoking a higher privilege from - a user without that privilege will have no effect. - - :param str username: username - :param str acl: Access to remove ('login', 'add-model' or 'superuser') - """ - controller_facade = client.ControllerFacade.from_connection( - self.connection()) - user = tag.user(username) - changes = client.ModifyControllerAccess('login', 'revoke', user) - return await controller_facade.ModifyControllerAccess([changes]) - - async def grant_model(self, username, model_uuid, acl='read'): - """Grant a user access to a model. Note that if the user - already has higher permissions than the provided ACL, - this will do nothing (see revoke_model for a way to remove - permissions). - - :param str username: Username - :param str model_uuid: The UUID of the model to change. - :param str acl: Access control ('read, 'write' or 'admin') - """ - model_facade = client.ModelManagerFacade.from_connection( - self.connection()) - user = tag.user(username) - model = tag.model(model_uuid) - changes = client.ModifyModelAccess(acl, 'grant', model, user) - return await model_facade.ModifyModelAccess([changes]) - - async def revoke_model(self, username, model_uuid, acl='read'): - """Revoke some or all of a user's access to a model. - If 'read' access is revoked, the user will no longer have any - permissions on the model. Revoking a higher privilege from - a user without that privilege will have no effect. - - :param str username: Username to revoke - :param str model_uuid: The UUID of the model to change. - :param str acl: Access control ('read, 'write' or 'admin') - """ - model_facade = client.ModelManagerFacade.from_connection( - self.connection()) - user = tag.user(username) - model = tag.model(model_uuid) - changes = client.ModifyModelAccess(acl, 'revoke', model, user) - return await model_facade.ModifyModelAccess([changes]) diff --git a/modules/libjuju/juju/credential.py b/modules/libjuju/juju/credential.py deleted file mode 100644 index e69de29..0000000 diff --git a/modules/libjuju/juju/delta.py b/modules/libjuju/juju/delta.py deleted file mode 100644 index b1eba23..0000000 --- a/modules/libjuju/juju/delta.py +++ /dev/null @@ -1,79 +0,0 @@ -from .client import client - - -def get_entity_delta(d): - return _delta_types[d.entity](d.deltas) - - -def get_entity_class(entity_type): - return _delta_types[entity_type].get_entity_class() - - -class EntityDelta(client.Delta): - def get_id(self): - return self.data['id'] - - @classmethod - def get_entity_class(self): - return None - - -class ActionDelta(EntityDelta): - @classmethod - def get_entity_class(self): - from .action import Action - return Action - - -class ApplicationDelta(EntityDelta): - def get_id(self): - return self.data['name'] - - @classmethod - def get_entity_class(self): - from .application import Application - return Application - - -class AnnotationDelta(EntityDelta): - def get_id(self): - return self.data['tag'] - - @classmethod - def get_entity_class(self): - from .annotation import Annotation - return Annotation - - -class MachineDelta(EntityDelta): - @classmethod - def get_entity_class(self): - from .machine import Machine - return Machine - - -class UnitDelta(EntityDelta): - def get_id(self): - return self.data['name'] - - @classmethod - def get_entity_class(self): - from .unit import Unit - return Unit - - -class RelationDelta(EntityDelta): - @classmethod - def get_entity_class(self): - from .relation import Relation - return Relation - - -_delta_types = { - 'action': ActionDelta, - 'application': ApplicationDelta, - 'annotation': AnnotationDelta, - 'machine': MachineDelta, - 'unit': UnitDelta, - 'relation': RelationDelta, -} diff --git a/modules/libjuju/juju/errors.py b/modules/libjuju/juju/errors.py deleted file mode 100644 index da11cdb..0000000 --- a/modules/libjuju/juju/errors.py +++ /dev/null @@ -1,49 +0,0 @@ -class JujuError(Exception): - def __init__(self, *args, **kwargs): - self.message = '' - self.errors = [] - if args: - self.message = str(args[0]) - if isinstance(args[0], (list, tuple)): - self.errors = args[0] - elif len(args) > 1: - self.errors = list(args) - else: - self.errors = [self.message] - super().__init__(*args, **kwargs) - - -class JujuAPIError(JujuError): - def __init__(self, result): - self.result = result - self.message = result['error'] - self.error_code = result.get('error-code') - self.response = result['response'] - self.request_id = result['request-id'] - super().__init__(self.message) - - -class JujuConnectionError(ConnectionError, JujuError): - pass - - -class JujuAuthError(JujuConnectionError): - pass - - -class JujuRedirectException(Exception): - """Exception indicating that a redirection was requested""" - def __init__(self, redirect_info): - self.redirect_info = redirect_info - - @property - def ca_cert(self): - return self.redirect_info['ca-cert'] - - @property - def endpoints(self): - return [ - ('{value}:{port}'.format(**s), self.ca_cert) - for servers in self.redirect_info['servers'] - for s in servers if s['scope'] == 'public' - ] diff --git a/modules/libjuju/juju/exceptions.py b/modules/libjuju/juju/exceptions.py deleted file mode 100644 index bcf07b6..0000000 --- a/modules/libjuju/juju/exceptions.py +++ /dev/null @@ -1,2 +0,0 @@ -class DeadEntityException(Exception): - pass diff --git a/modules/libjuju/juju/juju.py b/modules/libjuju/juju/juju.py deleted file mode 100644 index 444155f..0000000 --- a/modules/libjuju/juju/juju.py +++ /dev/null @@ -1,118 +0,0 @@ -class Juju(object): - def add_cloud(self, name, definition, replace=False): - """Add a user-defined cloud to Juju from among known cloud types. - - :param str name: Name of cloud - :param dict definition: Cloud definition - - Example cloud definition, as yaml:: - - type: openstack - auth-types: [ userpass ] - regions: - london: - endpoint: https://london.mycloud.com:35574/v3.0/ - - """ - raise NotImplementedError() - - def agree(self, *terms): - """Agree to the terms of a charm. - - :param str *terms: Terms to agree to - - """ - raise NotImplementedError() - - def autoload_credentials(self): - """Finds cloud credentials and caches them for use by Juju when - bootstrapping. - - """ - raise NotImplementedError() - - def create_budget(self): - """Create a new budget. - - """ - raise NotImplementedError() - - def get_agreements(self): - """Return list of terms to which the current user has agreed. - - """ - raise NotImplementedError() - - def get_budgets(self): - """Return list of available budgets. - - """ - raise NotImplementedError() - - def get_clouds(self): - """Return list of all available clouds. - - """ - raise NotImplementedError() - - def get_controllers(self): - """Return list of all available controllers. - - (maybe move this to Cloud?) - """ - raise NotImplementedError() - - def get_plans(self, charm_url): - """Return list of plans available for the specified charm. - - :param str charm_url: Charm url - - """ - raise NotImplementedError() - - def register(self, registration_string): - """Register a user to a controller. - - :param str registration_string: The registration string - - """ - raise NotImplementedError() - - def set_budget(self, name, limit): - """Set a monthly budget limit. - - :param str name: Name of budget - :param int limit: Monthly limit - - """ - raise NotImplementedError() - - def get_cloud(self, name): - """Get a cloud by name. - - :param str name: Name of cloud - - """ - raise NotImplementedError() - - def get_controller(self, name, include_passwords=False): - """Get a controller by name. - - :param str name: Name of controller - :param bool include_passwords: Include passwords for accounts - - (maybe move this to Cloud?) - """ - raise NotImplementedError() - - def update_clouds(self): - """Update public cloud info available to Juju. - - """ - raise NotImplementedError() - - def version(self): - """Return the Juju version. - - """ - raise NotImplementedError() diff --git a/modules/libjuju/juju/loop.py b/modules/libjuju/juju/loop.py deleted file mode 100644 index aca726b..0000000 --- a/modules/libjuju/juju/loop.py +++ /dev/null @@ -1,42 +0,0 @@ -import asyncio -import signal - - -def run(*steps): - """ - Helper to run one or more async functions synchronously, with graceful - handling of SIGINT / Ctrl-C. - - Returns the return value of the last function. - """ - if not steps: - return - - task = None - run._sigint = False # function attr to allow setting from closure - loop = asyncio.get_event_loop() - - def abort(): - task.cancel() - run._sigint = True - - added = False - try: - loop.add_signal_handler(signal.SIGINT, abort) - added = True - except (ValueError, OSError, RuntimeError) as e: - # add_signal_handler doesn't work in a thread - if 'main thread' not in str(e): - raise - try: - for step in steps: - task = loop.create_task(step) - loop.run_until_complete(asyncio.wait([task], loop=loop)) - if run._sigint: - raise KeyboardInterrupt() - if task.exception(): - raise task.exception() - return task.result() - finally: - if added: - loop.remove_signal_handler(signal.SIGINT) diff --git a/modules/libjuju/juju/machine.py b/modules/libjuju/juju/machine.py deleted file mode 100644 index 39bfa11..0000000 --- a/modules/libjuju/juju/machine.py +++ /dev/null @@ -1,284 +0,0 @@ -import asyncio -import logging -import os - -import pyrfc3339 - -from . import model, utils -from .client import client -from .errors import JujuError - -log = logging.getLogger(__name__) - - -class Machine(model.ModelEntity): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.model.loop.create_task(self._queue_workarounds()) - - async def _queue_workarounds(self): - model = self.model - if not model.info: - await utils.run_with_interrupt(model.get_info(), - model._watch_stopping, - loop=model.loop) - if model._watch_stopping.is_set(): - return - if model.info.agent_version < client.Number.from_json('2.2.3'): - self.on_change(self._workaround_1695335) - - async def _workaround_1695335(self, delta, old, new, model): - """ - This is a (hacky) temporary work around for a bug in Juju where the - instance status and agent version fields don't get updated properly - by the AllWatcher. - - Deltas never contain a value for `data['agent-status']['version']`, - and once the `instance-status` reaches `pending`, we no longer get - any updates for it (the deltas come in, but the `instance-status` - data is always the same after that). - - To work around this, whenever a delta comes in for this machine, we - query FullStatus and use the data from there if and only if it's newer. - Luckily, the timestamps on the `since` field does seem to be accurate. - - See https://bugs.launchpad.net/juju/+bug/1695335 - """ - if delta.data.get('synthetic', False): - # prevent infinite loops re-processing already processed deltas - return - - full_status = await utils.run_with_interrupt(model.get_status(), - model._watch_stopping, - loop=model.loop) - if model._watch_stopping.is_set(): - return - - if self.id not in full_status.machines: - return - - if not full_status.machines[self.id]['instance-status']['since']: - return - - machine = full_status.machines[self.id] - - change_log = [] - key_map = { - 'status': 'current', - 'info': 'message', - 'since': 'since', - } - - # handle agent version specially, because it's never set in - # deltas, and we don't want even a newer delta to clear it - agent_version = machine['agent-status']['version'] - if agent_version: - delta.data['agent-status']['version'] = agent_version - change_log.append(('agent-version', '', agent_version)) - - # only update (other) delta fields if status data is newer - status_since = pyrfc3339.parse(machine['instance-status']['since']) - delta_since = pyrfc3339.parse(delta.data['instance-status']['since']) - if status_since > delta_since: - for status_key in ('status', 'info', 'since'): - delta_key = key_map[status_key] - status_value = machine['instance-status'][status_key] - delta_value = delta.data['instance-status'][delta_key] - change_log.append((delta_key, delta_value, status_value)) - delta.data['instance-status'][delta_key] = status_value - - if change_log: - log.debug('Overriding machine delta with FullStatus data') - for log_item in change_log: - log.debug(' {}: {} -> {}'.format(*log_item)) - delta.data['synthetic'] = True - old_obj, new_obj = self.model.state.apply_delta(delta) - await model._notify_observers(delta, old_obj, new_obj) - - async def destroy(self, force=False): - """Remove this machine from the model. - - Blocks until the machine is actually removed. - - """ - facade = client.ClientFacade.from_connection(self.connection) - - log.debug( - 'Destroying machine %s', self.id) - - await facade.DestroyMachines(force, [self.id]) - return await self.model._wait( - 'machine', self.id, 'remove') - remove = destroy - - def run(self, command, timeout=None): - """Run command on this machine. - - :param str command: The command to run - :param int timeout: Time to wait before command is considered failed - - """ - raise NotImplementedError() - - async def set_annotations(self, annotations): - """Set annotations on this machine. - - :param annotations map[string]string: the annotations as key/value - pairs. - - """ - log.debug('Updating annotations on machine %s', self.id) - - self.ann_facade = client.AnnotationsFacade.from_connection( - self.connection) - - ann = client.EntityAnnotations( - entity=self.id, - annotations=annotations, - ) - return await self.ann_facade.Set([ann]) - - async def scp_to(self, source, destination, user='ubuntu', proxy=False, - scp_opts=''): - """Transfer files to this machine. - - :param str source: Local path of file(s) to transfer - :param str destination: Remote destination of transferred files - :param str user: Remote username - :param bool proxy: Proxy through the Juju API server - :param scp_opts: Additional options to the `scp` command - :type scp_opts: str or list - """ - if proxy: - raise NotImplementedError('proxy option is not implemented') - - address = self.dns_name - destination = '%s@%s:%s' % (user, address, destination) - await self._scp(source, destination, scp_opts) - - async def scp_from(self, source, destination, user='ubuntu', proxy=False, - scp_opts=''): - """Transfer files from this machine. - - :param str source: Remote path of file(s) to transfer - :param str destination: Local destination of transferred files - :param str user: Remote username - :param bool proxy: Proxy through the Juju API server - :param scp_opts: Additional options to the `scp` command - :type scp_opts: str or list - """ - if proxy: - raise NotImplementedError('proxy option is not implemented') - - address = self.dns_name - source = '%s@%s:%s' % (user, address, source) - await self._scp(source, destination, scp_opts) - - async def _scp(self, source, destination, scp_opts): - """ Execute an scp command. Requires a fully qualified source and - destination. - """ - cmd = [ - 'scp', - '-i', os.path.expanduser('~/.local/share/juju/ssh/juju_id_rsa'), - '-o', 'StrictHostKeyChecking=no', - '-q', - '-B' - ] - cmd.extend(scp_opts.split() if isinstance(scp_opts, str) else scp_opts) - cmd.extend([source, destination]) - loop = self.model.loop - process = await asyncio.create_subprocess_exec(*cmd, loop=loop) - await process.wait() - if process.returncode != 0: - raise JujuError("command failed: %s" % cmd) - - def ssh( - self, command, user=None, proxy=False, ssh_opts=None): - """Execute a command over SSH on this machine. - - :param str command: Command to execute - :param str user: Remote username - :param bool proxy: Proxy through the Juju API server - :param str ssh_opts: Additional options to the `ssh` command - - """ - raise NotImplementedError() - - def status_history(self, num=20, utc=False): - """Get status history for this machine. - - :param int num: Size of history backlog - :param bool utc: Display time as UTC in RFC3339 format - - """ - raise NotImplementedError() - - @property - def agent_status(self): - """Returns the current Juju agent status string. - - """ - return self.safe_data['agent-status']['current'] - - @property - def agent_status_since(self): - """Get the time when the `agent_status` was last updated. - - """ - return pyrfc3339.parse(self.safe_data['agent-status']['since']) - - @property - def agent_version(self): - """Get the version of the Juju machine agent. - - May return None if the agent is not yet available. - """ - version = self.safe_data['agent-status']['version'] - if version: - return client.Number.from_json(version) - else: - return None - - @property - def status(self): - """Returns the current machine provisioning status string. - - """ - return self.safe_data['instance-status']['current'] - - @property - def status_message(self): - """Returns the current machine provisioning status message. - - """ - return self.safe_data['instance-status']['message'] - - @property - def status_since(self): - """Get the time when the `status` was last updated. - - """ - return pyrfc3339.parse(self.safe_data['instance-status']['since']) - - @property - def dns_name(self): - """Get the DNS name for this machine. This is a best guess based on the - addresses available in current data. - - May return None if no suitable address is found. - """ - for scope in ['public', 'local-cloud']: - addresses = self.safe_data['addresses'] or [] - addresses = [address for address in addresses - if address['scope'] == scope] - if addresses: - return addresses[0]['value'] - return None - - @property - def series(self): - """Returns the series of the current machine - - """ - return self.safe_data['series'] diff --git a/modules/libjuju/juju/model.py b/modules/libjuju/juju/model.py deleted file mode 100644 index 9a14add..0000000 --- a/modules/libjuju/juju/model.py +++ /dev/null @@ -1,2328 +0,0 @@ -import asyncio -import base64 -import collections -import hashlib -import json -import logging -import os -import re -import stat -import tempfile -import weakref -import zipfile -from concurrent.futures import CancelledError -from functools import partial -from pathlib import Path - -import theblues.charmstore -import theblues.errors -import websockets -import yaml - -from . import tag, utils -from .client import client, connector -from .client.client import ConfigValue -from .client.client import Value -from .constraints import parse as parse_constraints -from .constraints import normalize_key -from .delta import get_entity_class, get_entity_delta -from .errors import JujuAPIError, JujuError -from .exceptions import DeadEntityException -from .placement import parse as parse_placement -from . import provisioner - - -log = logging.getLogger(__name__) - - -class _Observer: - """Wrapper around an observer callable. - - This wrapper allows filter criteria to be associated with the - callable so that it's only called for changes that meet the criteria. - - """ - def __init__(self, callable_, entity_type, action, entity_id, predicate): - self.callable_ = callable_ - self.entity_type = entity_type - self.action = action - self.entity_id = entity_id - self.predicate = predicate - if self.entity_id: - self.entity_id = str(self.entity_id) - if not self.entity_id.startswith('^'): - self.entity_id = '^' + self.entity_id - if not self.entity_id.endswith('$'): - self.entity_id += '$' - - async def __call__(self, delta, old, new, model): - await self.callable_(delta, old, new, model) - - def cares_about(self, delta): - """Return True if this observer "cares about" (i.e. wants to be - called) for a this delta. - - """ - if (self.entity_id and delta.get_id() and - not re.match(self.entity_id, str(delta.get_id()))): - return False - - if self.entity_type and self.entity_type != delta.entity: - return False - - if self.action and self.action != delta.type: - return False - - if self.predicate and not self.predicate(delta): - return False - - return True - - -class ModelObserver: - """ - Base class for creating observers that react to changes in a model. - """ - async def __call__(self, delta, old, new, model): - handler_name = 'on_{}_{}'.format(delta.entity, delta.type) - method = getattr(self, handler_name, self.on_change) - await method(delta, old, new, model) - - async def on_change(self, delta, old, new, model): - """Generic model-change handler. - - This should be overridden in a subclass. - - :param delta: :class:`juju.client.overrides.Delta` - :param old: :class:`juju.model.ModelEntity` - :param new: :class:`juju.model.ModelEntity` - :param model: :class:`juju.model.Model` - - """ - pass - - -class ModelState: - """Holds the state of the model, including the delta history of all - entities in the model. - - """ - def __init__(self, model): - self.model = model - self.state = dict() - - def _live_entity_map(self, entity_type): - """Return an id:Entity map of all the living entities of - type ``entity_type``. - - """ - return { - entity_id: self.get_entity(entity_type, entity_id) - for entity_id, history in self.state.get(entity_type, {}).items() - if history[-1] is not None - } - - @property - def applications(self): - """Return a map of application-name:Application for all applications - currently in the model. - - """ - return self._live_entity_map('application') - - @property - def machines(self): - """Return a map of machine-id:Machine for all machines currently in - the model. - - """ - return self._live_entity_map('machine') - - @property - def units(self): - """Return a map of unit-id:Unit for all units currently in - the model. - - """ - return self._live_entity_map('unit') - - @property - def relations(self): - """Return a map of relation-id:Relation for all relations currently in - the model. - - """ - return self._live_entity_map('relation') - - def entity_history(self, entity_type, entity_id): - """Return the history deque for an entity. - - """ - return self.state[entity_type][entity_id] - - def entity_data(self, entity_type, entity_id, history_index): - """Return the data dict for an entity at a specific index of its - history. - - """ - return self.entity_history(entity_type, entity_id)[history_index] - - def apply_delta(self, delta): - """Apply delta to our state and return a copy of the - affected object as it was before and after the update, e.g.: - - old_obj, new_obj = self.apply_delta(delta) - - old_obj may be None if the delta is for the creation of a new object, - e.g. a new application or unit is deployed. - - new_obj will never be None, but may be dead (new_obj.dead == True) - if the object was deleted as a result of the delta being applied. - - """ - history = ( - self.state - .setdefault(delta.entity, {}) - .setdefault(delta.get_id(), collections.deque()) - ) - - history.append(delta.data) - if delta.type == 'remove': - history.append(None) - - entity = self.get_entity(delta.entity, delta.get_id()) - return entity.previous(), entity - - def get_entity( - self, entity_type, entity_id, history_index=-1, connected=True): - """Return an object instance for the given entity_type and id. - - By default the object state matches the most recent state from - Juju. To get an instance of the object in an older state, pass - history_index, an index into the history deque for the entity. - - """ - - if history_index < 0 and history_index != -1: - history_index += len(self.entity_history(entity_type, entity_id)) - if history_index < 0: - return None - - try: - self.entity_data(entity_type, entity_id, history_index) - except IndexError: - return None - - entity_class = get_entity_class(entity_type) - return entity_class( - entity_id, self.model, history_index=history_index, - connected=connected) - - -class ModelEntity: - """An object in the Model tree""" - - def __init__(self, entity_id, model, history_index=-1, connected=True): - """Initialize a new entity - - :param entity_id str: The unique id of the object in the model - :param model: The model instance in whose object tree this - entity resides - :history_index int: The index of this object's state in the model's - history deque for this entity - :connected bool: Flag indicating whether this object gets live updates - from the model. - - """ - self.entity_id = entity_id - self.model = model - self._history_index = history_index - self.connected = connected - self.connection = model.connection() - - def __repr__(self): - return '<{} entity_id="{}">'.format(type(self).__name__, - self.entity_id) - - def __getattr__(self, name): - """Fetch object attributes from the underlying data dict held in the - model. - - """ - try: - return self.safe_data[name] - except KeyError: - name = name.replace('_', '-') - if name in self.safe_data: - return self.safe_data[name] - else: - raise - - def __bool__(self): - return bool(self.data) - - def on_change(self, callable_): - """Add a change observer to this entity. - - """ - self.model.add_observer( - callable_, self.entity_type, 'change', self.entity_id) - - def on_remove(self, callable_): - """Add a remove observer to this entity. - - """ - self.model.add_observer( - callable_, self.entity_type, 'remove', self.entity_id) - - @property - def entity_type(self): - """A string identifying the entity type of this object, e.g. - 'application' or 'unit', etc. - - """ - return self.__class__.__name__.lower() - - @property - def current(self): - """Return True if this object represents the current state of the - entity in the underlying model. - - This will be True except when the object represents an entity at a - non-latest state in history, e.g. if the object was obtained by calling - .previous() on another object. - - """ - return self._history_index == -1 - - @property - def dead(self): - """Returns True if this entity no longer exists in the underlying - model. - - """ - return ( - self.data is None or - self.model.state.entity_data( - self.entity_type, self.entity_id, -1) is None - ) - - @property - def alive(self): - """Returns True if this entity still exists in the underlying - model. - - """ - return not self.dead - - @property - def data(self): - """The data dictionary for this entity. - - """ - return self.model.state.entity_data( - self.entity_type, self.entity_id, self._history_index) - - @property - def safe_data(self): - """The data dictionary for this entity. - - If this `ModelEntity` points to the dead state, it will - raise `DeadEntityException`. - - """ - if self.data is None: - raise DeadEntityException( - "Entity {}:{} is dead - its attributes can no longer be " - "accessed. Use the .previous() method on this object to get " - "a copy of the object at its previous state.".format( - self.entity_type, self.entity_id)) - return self.data - - def previous(self): - """Return a copy of this object as was at its previous state in - history. - - Returns None if this object is new (and therefore has no history). - - The returned object is always "disconnected", i.e. does not receive - live updates. - - """ - return self.model.state.get_entity( - self.entity_type, self.entity_id, self._history_index - 1, - connected=False) - - def next(self): - """Return a copy of this object at its next state in - history. - - Returns None if this object is already the latest. - - The returned object is "disconnected", i.e. does not receive - live updates, unless it is current (latest). - - """ - if self._history_index == -1: - return None - - new_index = self._history_index + 1 - connected = ( - new_index == len(self.model.state.entity_history( - self.entity_type, self.entity_id)) - 1 - ) - return self.model.state.get_entity( - self.entity_type, self.entity_id, self._history_index - 1, - connected=connected) - - def latest(self): - """Return a copy of this object at its current state in the model. - - Returns self if this object is already the latest. - - The returned object is always "connected", i.e. receives - live updates from the model. - - """ - if self._history_index == -1: - return self - - return self.model.state.get_entity(self.entity_type, self.entity_id) - - -class Model: - """ - The main API for interacting with a Juju model. - """ - def __init__( - self, - loop=None, - max_frame_size=None, - bakery_client=None, - jujudata=None, - ): - """Instantiate a new Model. - - The connect method will need to be called before this - object can be used for anything interesting. - - If jujudata is None, jujudata.FileJujuData will be used. - - :param loop: an asyncio event loop - :param max_frame_size: See - `juju.client.connection.Connection.MAX_FRAME_SIZE` - :param bakery_client httpbakery.Client: The bakery client to use - for macaroon authorization. - :param jujudata JujuData: The source for current controller information - """ - self._connector = connector.Connector( - loop=loop, - max_frame_size=max_frame_size, - bakery_client=bakery_client, - jujudata=jujudata, - ) - self._observers = weakref.WeakValueDictionary() - self.state = ModelState(self) - self._info = None - self._watch_stopping = asyncio.Event(loop=self._connector.loop) - self._watch_stopped = asyncio.Event(loop=self._connector.loop) - self._watch_received = asyncio.Event(loop=self._connector.loop) - self._watch_stopped.set() - self._charmstore = CharmStore(self._connector.loop) - - def is_connected(self): - """Reports whether the Model is currently connected.""" - return self._connector.is_connected() - - @property - def loop(self): - return self._connector.loop - - def connection(self): - """Return the current Connection object. It raises an exception - if the Model is disconnected""" - return self._connector.connection() - - async def get_controller(self): - """Return a Controller instance for the currently connected model. - :return Controller: - """ - from juju.controller import Controller - controller = Controller(jujudata=self._connector.jujudata) - kwargs = self.connection().connect_params() - kwargs.pop('uuid') - await controller._connect_direct(**kwargs) - return controller - - async def __aenter__(self): - await self.connect() - return self - - async def __aexit__(self, exc_type, exc, tb): - await self.disconnect() - - async def connect(self, *args, **kwargs): - """Connect to a juju model. - - This supports two calling conventions: - - The model and (optionally) authentication information can be taken - from the data files created by the Juju CLI. This convention will - be used if a ``model_name`` is specified, or if the ``endpoint`` - and ``uuid`` are not. - - Otherwise, all of the ``endpoint``, ``uuid``, and authentication - information (``username`` and ``password``, or ``bakery_client`` and/or - ``macaroons``) are required. - - If a single positional argument is given, it will be assumed to be - the ``model_name``. Otherwise, the first positional argument, if any, - must be the ``endpoint``. - - Available parameters are: - - :param model_name: Format [controller:][user/]model - :param str endpoint: The hostname:port of the controller to connect to. - :param str uuid: The model UUID to connect to. - :param str username: The username for controller-local users (or None - to use macaroon-based login.) - :param str password: The password for controller-local users. - :param str cacert: The CA certificate of the controller - (PEM formatted). - :param httpbakery.Client bakery_client: The macaroon bakery client to - to use when performing macaroon-based login. Macaroon tokens - acquired when logging will be saved to bakery_client.cookies. - If this is None, a default bakery_client will be used. - :param list macaroons: List of macaroons to load into the - ``bakery_client``. - :param asyncio.BaseEventLoop loop: The event loop to use for async - operations. - :param int max_frame_size: The maximum websocket frame size to allow. - """ - await self.disconnect() - if 'endpoint' not in kwargs and len(args) < 2: - if args and 'model_name' in kwargs: - raise TypeError('connect() got multiple values for model_name') - elif args: - model_name = args[0] - else: - model_name = kwargs.pop('model_name', None) - await self._connector.connect_model(model_name, **kwargs) - else: - if 'model_name' in kwargs: - raise TypeError('connect() got values for both ' - 'model_name and endpoint') - if args and 'endpoint' in kwargs: - raise TypeError('connect() got multiple values for endpoint') - if len(args) < 2 and 'uuid' not in kwargs: - raise TypeError('connect() missing value for uuid') - has_userpass = (len(args) >= 4 or - {'username', 'password'}.issubset(kwargs)) - has_macaroons = (len(args) >= 6 or not - {'bakery_client', 'macaroons'}.isdisjoint(kwargs)) - if not (has_userpass or has_macaroons): - raise TypeError('connect() missing auth params') - arg_names = [ - 'endpoint', - 'uuid', - 'username', - 'password', - 'cacert', - 'bakery_client', - 'macaroons', - 'loop', - 'max_frame_size', - ] - for i, arg in enumerate(args): - kwargs[arg_names[i]] = arg - if not {'endpoint', 'uuid'}.issubset(kwargs): - raise ValueError('endpoint and uuid are required ' - 'if model_name not given') - if not ({'username', 'password'}.issubset(kwargs) or - {'bakery_client', 'macaroons'}.intersection(kwargs)): - raise ValueError('Authentication parameters are required ' - 'if model_name not given') - await self._connector.connect(**kwargs) - await self._after_connect() - - async def connect_model(self, model_name): - """ - .. deprecated:: 0.6.2 - Use ``connect(model_name=model_name)`` instead. - """ - return await self.connect(model_name=model_name) - - async def connect_current(self): - """ - .. deprecated:: 0.6.2 - Use ``connect()`` instead. - """ - return await self.connect() - - async def _connect_direct(self, **kwargs): - await self.disconnect() - await self._connector.connect(**kwargs) - await self._after_connect() - - async def _after_connect(self): - self._watch() - - # Wait for the first packet of data from the AllWatcher, - # which contains all information on the model. - # TODO this means that we can't do anything until - # we've received all the model data, which might be - # a whole load of unneeded data if all the client wants - # to do is make one RPC call. - await self._watch_received.wait() - - await self.get_info() - - async def disconnect(self): - """Shut down the watcher task and close websockets. - - """ - if not self._watch_stopped.is_set(): - log.debug('Stopping watcher task') - self._watch_stopping.set() - await self._watch_stopped.wait() - self._watch_stopping.clear() - - if self.is_connected(): - log.debug('Closing model connection') - await self._connector.disconnect() - self._info = None - - async def add_local_charm_dir(self, charm_dir, series): - """Upload a local charm to the model. - - This will automatically generate an archive from - the charm dir. - - :param charm_dir: Path to the charm directory - :param series: Charm series - - """ - fh = tempfile.NamedTemporaryFile() - CharmArchiveGenerator(charm_dir).make_archive(fh.name) - with fh: - func = partial( - self.add_local_charm, fh, series, os.stat(fh.name).st_size) - charm_url = await self._connector.loop.run_in_executor(None, func) - - log.debug('Uploaded local charm: %s -> %s', charm_dir, charm_url) - return charm_url - - def add_local_charm(self, charm_file, series, size=None): - """Upload a local charm archive to the model. - - Returns the 'local:...' url that should be used to deploy the charm. - - :param charm_file: Path to charm zip archive - :param series: Charm series - :param size: Size of the archive, in bytes - :return str: 'local:...' url for deploying the charm - :raises: :class:`JujuError` if the upload fails - - Uses an https endpoint at the same host:port as the wss. - Supports large file uploads. - - .. warning:: - - This method will block. Consider using :meth:`add_local_charm_dir` - instead. - - """ - conn, headers, path_prefix = self.connection().https_connection() - path = "%s/charms?series=%s" % (path_prefix, series) - headers['Content-Type'] = 'application/zip' - if size: - headers['Content-Length'] = size - conn.request("POST", path, charm_file, headers) - response = conn.getresponse() - result = response.read().decode() - if not response.status == 200: - raise JujuError(result) - result = json.loads(result) - return result['charm-url'] - - def all_units_idle(self): - """Return True if all units are idle. - - """ - for unit in self.units.values(): - unit_status = unit.data['agent-status']['current'] - if unit_status != 'idle': - return False - return True - - async def reset(self, force=False): - """Reset the model to a clean state. - - :param bool force: Force-terminate machines. - - This returns only after the model has reached a clean state. "Clean" - means no applications or machines exist in the model. - - """ - log.debug('Resetting model') - for app in self.applications.values(): - await app.destroy() - for machine in self.machines.values(): - await machine.destroy(force=force) - await self.block_until( - lambda: len(self.machines) == 0 - ) - - async def block_until(self, *conditions, timeout=None, wait_period=0.5): - """Return only after all conditions are true. - - Raises `websockets.ConnectionClosed` if disconnected. - """ - def _disconnected(): - return not (self.is_connected() and self.connection().is_open) - - def done(): - return _disconnected() or all(c() for c in conditions) - - await utils.block_until(done, - timeout=timeout, - wait_period=wait_period, - loop=self.loop) - if _disconnected(): - raise websockets.ConnectionClosed(1006, 'no reason') - - @property - def applications(self): - """Return a map of application-name:Application for all applications - currently in the model. - - """ - return self.state.applications - - @property - def machines(self): - """Return a map of machine-id:Machine for all machines currently in - the model. - - """ - return self.state.machines - - @property - def units(self): - """Return a map of unit-id:Unit for all units currently in - the model. - - """ - return self.state.units - - @property - def relations(self): - """Return a list of all Relations currently in the model. - - """ - return list(self.state.relations.values()) - - async def get_info(self): - """Return a client.ModelInfo object for this Model. - - Retrieves latest info for this Model from the api server. The - return value is cached on the Model.info attribute so that the - valued may be accessed again without another api call, if - desired. - - This method is called automatically when the Model is connected, - resulting in Model.info being initialized without requiring an - explicit call to this method. - - """ - facade = client.ClientFacade.from_connection(self.connection()) - - self._info = await facade.ModelInfo() - log.debug('Got ModelInfo: %s', vars(self.info)) - - return self.info - - @property - def info(self): - """Return the cached client.ModelInfo object for this Model. - - If Model.get_info() has not been called, this will return None. - """ - return self._info - - def add_observer( - self, callable_, entity_type=None, action=None, entity_id=None, - predicate=None): - """Register an "on-model-change" callback - - Once the model is connected, ``callable_`` - will be called each time the model changes. ``callable_`` should - be Awaitable and accept the following positional arguments: - - delta - An instance of :class:`juju.delta.EntityDelta` - containing the raw delta data recv'd from the Juju - websocket. - - old_obj - If the delta modifies an existing object in the model, - old_obj will be a copy of that object, as it was before the - delta was applied. Will be None if the delta creates a new - entity in the model. - - new_obj - A copy of the new or updated object, after the delta - is applied. Will be None if the delta removes an entity - from the model. - - model - The :class:`Model` itself. - - Events for which ``callable_`` is called can be specified by passing - entity_type, action, and/or entitiy_id filter criteria, e.g.:: - - add_observer( - myfunc, - entity_type='application', action='add', entity_id='ubuntu') - - For more complex filtering conditions, pass a predicate function. It - will be called with a delta as its only argument. If the predicate - function returns True, the ``callable_`` will be called. - - """ - observer = _Observer( - callable_, entity_type, action, entity_id, predicate) - self._observers[observer] = callable_ - - def _watch(self): - """Start an asynchronous watch against this model. - - See :meth:`add_observer` to register an onchange callback. - - """ - async def _all_watcher(): - try: - allwatcher = client.AllWatcherFacade.from_connection( - self.connection()) - while not self._watch_stopping.is_set(): - try: - results = await utils.run_with_interrupt( - allwatcher.Next(), - self._watch_stopping, - loop=self._connector.loop) - except JujuAPIError as e: - if 'watcher was stopped' not in str(e): - raise - if self._watch_stopping.is_set(): - # this shouldn't ever actually happen, because - # the event should trigger before the controller - # has a chance to tell us the watcher is stopped - # but handle it gracefully, just in case - break - # controller stopped our watcher for some reason - # but we're not actually stopping, so just restart it - log.warning( - 'Watcher: watcher stopped, restarting') - del allwatcher.Id - continue - except websockets.ConnectionClosed: - monitor = self.connection().monitor - if monitor.status == monitor.ERROR: - # closed unexpectedly, try to reopen - log.warning( - 'Watcher: connection closed, reopening') - await self.connection().reconnect() - if monitor.status != monitor.CONNECTED: - # reconnect failed; abort and shutdown - log.error('Watcher: automatic reconnect ' - 'failed; stopping watcher') - break - del allwatcher.Id - continue - else: - # closed on request, go ahead and shutdown - break - if self._watch_stopping.is_set(): - try: - await allwatcher.Stop() - except websockets.ConnectionClosed: - pass # can't stop on a closed conn - break - for delta in results.deltas: - try: - delta = get_entity_delta(delta) - old_obj, new_obj = self.state.apply_delta(delta) - await self._notify_observers(delta, old_obj, new_obj) - except KeyError as e: - log.debug("unknown delta type: %s", e.args[0]) - self._watch_received.set() - except CancelledError: - pass - except Exception: - log.exception('Error in watcher') - raise - finally: - self._watch_stopped.set() - - log.debug('Starting watcher task') - self._watch_received.clear() - self._watch_stopping.clear() - self._watch_stopped.clear() - self._connector.loop.create_task(_all_watcher()) - - async def _notify_observers(self, delta, old_obj, new_obj): - """Call observing callbacks, notifying them of a change in model state - - :param delta: The raw change from the watcher - (:class:`juju.client.overrides.Delta`) - :param old_obj: The object in the model that this delta updates. - May be None. - :param new_obj: The object in the model that is created or updated - by applying this delta. - - """ - if new_obj and not old_obj: - delta.type = 'add' - - log.debug( - 'Model changed: %s %s %s', - delta.entity, delta.type, delta.get_id()) - - for o in self._observers: - if o.cares_about(delta): - asyncio.ensure_future(o(delta, old_obj, new_obj, self), - loop=self._connector.loop) - - async def _wait(self, entity_type, entity_id, action, predicate=None): - """ - Block the calling routine until a given action has happened to the - given entity - - :param entity_type: The entity's type. - :param entity_id: The entity's id. - :param action: the type of action (e.g., 'add', 'change', or 'remove') - :param predicate: optional callable that must take as an - argument a delta, and must return a boolean, indicating - whether the delta contains the specific action we're looking - for. For example, you might check to see whether a 'change' - has a 'completed' status. See the _Observer class for details. - - """ - q = asyncio.Queue(loop=self._connector.loop) - - async def callback(delta, old, new, model): - await q.put(delta.get_id()) - - self.add_observer(callback, entity_type, action, entity_id, predicate) - entity_id = await q.get() - # object might not be in the entity_map if we were waiting for a - # 'remove' action - return self.state._live_entity_map(entity_type).get(entity_id) - - async def _wait_for_new(self, entity_type, entity_id): - """Wait for a new object to appear in the Model and return it. - - Waits for an object of type ``entity_type`` with id ``entity_id`` - to appear in the model. This is similar to watching for the - object using ``block_until``, but uses the watcher rather than - polling. - - """ - # if the entity is already in the model, just return it - if entity_id in self.state._live_entity_map(entity_type): - return self.state._live_entity_map(entity_type)[entity_id] - return await self._wait(entity_type, entity_id, None) - - async def wait_for_action(self, action_id): - """Given an action, wait for it to complete.""" - - if action_id.startswith("action-"): - # if we've been passed action.tag, transform it into the - # id that the api deltas will use. - action_id = action_id[7:] - - def predicate(delta): - return delta.data['status'] in ('completed', 'failed') - - return await self._wait('action', action_id, None, predicate) - - async def add_machine( - self, spec=None, constraints=None, disks=None, series=None): - """Start a new, empty machine and optionally a container, or add a - container to a machine. - - :param str spec: Machine specification - Examples:: - - (None) - starts a new machine - 'lxd' - starts a new machine with one lxd container - 'lxd:4' - starts a new lxd container on machine 4 - 'ssh:user@10.10.0.3:/path/to/private/key' - manually provision - a machine with ssh and the private key used for authentication - 'zone=us-east-1a' - starts a machine in zone us-east-1s on AWS - 'maas2.name' - acquire machine maas2.name on MAAS - - :param dict constraints: Machine constraints, which can contain the - the following keys:: - - arch : str - container : str - cores : int - cpu_power : int - instance_type : str - mem : int - root_disk : int - spaces : list(str) - tags : list(str) - virt_type : str - - Example:: - - constraints={ - 'mem': 256 * MB, - 'tags': ['virtual'], - } - - :param list disks: List of disk constraint dictionaries, which can - contain the following keys:: - - count : int - pool : str - size : int - - Example:: - - disks=[{ - 'pool': 'rootfs', - 'size': 10 * GB, - 'count': 1, - }] - - :param str series: Series, e.g. 'xenial' - - Supported container types are: lxd, kvm - - When deploying a container to an existing machine, constraints cannot - be used. - - """ - params = client.AddMachineParams() - - if spec: - if spec.startswith("ssh:"): - placement, target, private_key_path = spec.split(":") - user, host = target.split("@") - - sshProvisioner = provisioner.SSHProvisioner( - host=host, - user=user, - private_key_path=private_key_path, - ) - - params = sshProvisioner.provision_machine() - else: - placement = parse_placement(spec) - if placement: - params.placement = placement[0] - - params.jobs = ['JobHostUnits'] - - if constraints: - params.constraints = client.Value.from_json(constraints) - - if disks: - params.disks = [ - client.Constraints.from_json(o) for o in disks] - - if series: - params.series = series - - # Submit the request. - client_facade = client.ClientFacade.from_connection(self.connection()) - results = await client_facade.AddMachines([params]) - error = results.machines[0].error - if error: - raise ValueError("Error adding machine: %s" % error.message) - machine_id = results.machines[0].machine - - if spec: - if spec.startswith("ssh:"): - # Need to run this after AddMachines has been called, - # as we need the machine_id - await sshProvisioner.install_agent( - self.connection(), - params.nonce, - machine_id, - ) - - log.debug('Added new machine %s', machine_id) - return await self._wait_for_new('machine', machine_id) - - async def add_relation(self, relation1, relation2): - """Add a relation between two applications. - - :param str relation1: '[:]' - :param str relation2: '[:]' - - """ - connection = self.connection() - app_facade = client.ApplicationFacade.from_connection(connection) - - log.debug( - 'Adding relation %s <-> %s', relation1, relation2) - - def _find_relation(*specs): - for rel in self.relations: - if rel.matches(*specs): - return rel - return None - - try: - result = await app_facade.AddRelation([relation1, relation2]) - except JujuAPIError as e: - if 'relation already exists' not in e.message: - raise - rel = _find_relation(relation1, relation2) - if rel: - return rel - raise JujuError('Relation {} {} exists but not in model'.format( - relation1, relation2)) - - specs = ['{}:{}'.format(app, data['name']) - for app, data in result.endpoints.items()] - - await self.block_until(lambda: _find_relation(*specs) is not None) - return _find_relation(*specs) - - def add_space(self, name, *cidrs): - """Add a new network space. - - Adds a new space with the given name and associates the given - (optional) list of existing subnet CIDRs with it. - - :param str name: Name of the space - :param *cidrs: Optional list of existing subnet CIDRs - - """ - raise NotImplementedError() - - async def add_ssh_key(self, user, key): - """Add a public SSH key to this model. - - :param str user: The username of the user - :param str key: The public ssh key - - """ - key_facade = client.KeyManagerFacade.from_connection(self.connection()) - return await key_facade.AddKeys([key], user) - add_ssh_keys = add_ssh_key - - def add_subnet(self, cidr_or_id, space, *zones): - """Add an existing subnet to this model. - - :param str cidr_or_id: CIDR or provider ID of the existing subnet - :param str space: Network space with which to associate - :param str *zones: Zone(s) in which the subnet resides - - """ - raise NotImplementedError() - - def get_backups(self): - """Retrieve metadata for backups in this model. - - """ - raise NotImplementedError() - - def block(self, *commands): - """Add a new block to this model. - - :param str *commands: The commands to block. Valid values are - 'all-changes', 'destroy-model', 'remove-object' - - """ - raise NotImplementedError() - - def get_blocks(self): - """List blocks for this model. - - """ - raise NotImplementedError() - - def get_cached_images(self, arch=None, kind=None, series=None): - """Return a list of cached OS images. - - :param str arch: Filter by image architecture - :param str kind: Filter by image kind, e.g. 'lxd' - :param str series: Filter by image series, e.g. 'xenial' - - """ - raise NotImplementedError() - - def create_backup(self, note=None, no_download=False): - """Create a backup of this model. - - :param str note: A note to store with the backup - :param bool no_download: Do not download the backup archive - :return str: Path to downloaded archive - - """ - raise NotImplementedError() - - def create_storage_pool(self, name, provider_type, **pool_config): - """Create or define a storage pool. - - :param str name: Name to give the storage pool - :param str provider_type: Pool provider type - :param **pool_config: key/value pool configuration pairs - - """ - raise NotImplementedError() - - def debug_log( - self, no_tail=False, exclude_module=None, include_module=None, - include=None, level=None, limit=0, lines=10, replay=False, - exclude=None): - """Get log messages for this model. - - :param bool no_tail: Stop after returning existing log messages - :param list exclude_module: Do not show log messages for these logging - modules - :param list include_module: Only show log messages for these logging - modules - :param list include: Only show log messages for these entities - :param str level: Log level to show, valid options are 'TRACE', - 'DEBUG', 'INFO', 'WARNING', 'ERROR, - :param int limit: Return this many of the most recent (possibly - filtered) lines are shown - :param int lines: Yield this many of the most recent lines, and keep - yielding - :param bool replay: Yield the entire log, and keep yielding - :param list exclude: Do not show log messages for these entities - - """ - raise NotImplementedError() - - def _get_series(self, entity_url, entity): - # try to get the series from the provided charm URL - if entity_url.startswith('cs:'): - parts = entity_url[3:].split('/') - else: - parts = entity_url.split('/') - if parts[0].startswith('~'): - parts.pop(0) - if len(parts) > 1: - # series was specified in the URL - return parts[0] - # series was not supplied at all, so use the newest - # supported series according to the charm store - ss = entity['Meta']['supported-series'] - return ss['SupportedSeries'][0] - - async def deploy( - self, entity_url, application_name=None, bind=None, budget=None, - channel=None, config=None, constraints=None, force=False, - num_units=1, plan=None, resources=None, series=None, storage=None, - to=None, devices=None): - """Deploy a new service or bundle. - - :param str entity_url: Charm or bundle url - :param str application_name: Name to give the service - :param dict bind: : pairs - :param dict budget: : pairs - :param str channel: Charm store channel from which to retrieve - the charm or bundle, e.g. 'edge' - :param dict config: Charm configuration dictionary - :param constraints: Service constraints - :type constraints: :class:`juju.Constraints` - :param bool force: Allow charm to be deployed to a machine running - an unsupported series - :param int num_units: Number of units to deploy - :param str plan: Plan under which to deploy charm - :param dict resources: : pairs - :param str series: Series on which to deploy - :param dict storage: Storage constraints TODO how do these look? - :param to: Placement directive as a string. For example: - - '23' - place on machine 23 - 'lxd:7' - place in new lxd container on machine 7 - '24/lxd/3' - place in container 3 on machine 24 - - If None, a new machine is provisioned. - - - TODO:: - - - support local resources - - """ - if storage: - storage = { - k: client.Constraints(**v) - for k, v in storage.items() - } - - entity_path = Path(entity_url.replace('local:', '')) - bundle_path = entity_path / 'bundle.yaml' - metadata_path = entity_path / 'metadata.yaml' - - is_local = ( - entity_url.startswith('local:') or - entity_path.is_dir() or - entity_path.is_file() - ) - if is_local: - entity_id = entity_url.replace('local:', '') - else: - entity = await self.charmstore.entity(entity_url, channel=channel, - include_stats=False) - entity_id = entity['Id'] - - client_facade = client.ClientFacade.from_connection(self.connection()) - - is_bundle = ((is_local and - (entity_id.endswith('.yaml') and entity_path.exists()) or - bundle_path.exists()) or - (not is_local and 'bundle/' in entity_id)) - - if is_bundle: - handler = BundleHandler(self) - await handler.fetch_plan(entity_id) - await handler.execute_plan() - extant_apps = {app for app in self.applications} - pending_apps = set(handler.applications) - extant_apps - if pending_apps: - # new apps will usually be in the model by now, but if some - # haven't made it yet we'll need to wait on them to be added - await asyncio.gather(*[ - asyncio.ensure_future( - self._wait_for_new('application', app_name), - loop=self._connector.loop) - for app_name in pending_apps - ], loop=self._connector.loop) - return [app for name, app in self.applications.items() - if name in handler.applications] - else: - if not is_local: - if not application_name: - application_name = entity['Meta']['charm-metadata']['Name'] - if not series: - series = self._get_series(entity_url, entity) - await client_facade.AddCharm(channel, entity_id) - # XXX: we're dropping local resources here, but we don't - # actually support them yet anyway - resources = await self._add_store_resources(application_name, - entity_id, - entity=entity) - else: - if not application_name: - metadata = yaml.load(metadata_path.read_text()) - application_name = metadata['name'] - # We have a local charm dir that needs to be uploaded - charm_dir = os.path.abspath( - os.path.expanduser(entity_id)) - series = series or get_charm_series(charm_dir) - if not series: - raise JujuError( - "Couldn't determine series for charm at {}. " - "Pass a 'series' kwarg to Model.deploy().".format( - charm_dir)) - entity_id = await self.add_local_charm_dir(charm_dir, series) - return await self._deploy( - charm_url=entity_id, - application=application_name, - series=series, - config=config or {}, - constraints=constraints, - endpoint_bindings=bind, - resources=resources, - storage=storage, - channel=channel, - num_units=num_units, - placement=parse_placement(to), - devices=devices, - ) - - async def _add_store_resources(self, application, entity_url, - overrides=None, entity=None): - if not entity: - # avoid extra charm store call if one was already made - entity = await self.charmstore.entity(entity_url, - include_stats=False) - resources = [ - { - 'description': resource['Description'], - 'fingerprint': resource['Fingerprint'], - 'name': resource['Name'], - 'path': resource['Path'], - 'revision': resource['Revision'], - 'size': resource['Size'], - 'type_': resource['Type'], - 'origin': 'store', - } for resource in entity['Meta']['resources'] - ] - - if overrides: - names = {r['name'] for r in resources} - unknown = overrides.keys() - names - if unknown: - raise JujuError('Unrecognized resource{}: {}'.format( - 's' if len(unknown) > 1 else '', - ', '.join(unknown))) - for resource in resources: - if resource['name'] in overrides: - resource['revision'] = overrides[resource['name']] - - if not resources: - return None - - resources_facade = client.ResourcesFacade.from_connection( - self.connection()) - response = await resources_facade.AddPendingResources( - tag.application(application), - entity_url, - [client.CharmResource(**resource) for resource in resources]) - resource_map = {resource['name']: pid - for resource, pid - in zip(resources, response.pending_ids)} - return resource_map - - async def _deploy(self, charm_url, application, series, config, - constraints, endpoint_bindings, resources, storage, - channel=None, num_units=None, placement=None, - devices=None): - """Logic shared between `Model.deploy` and `BundleHandler.deploy`. - """ - log.info('Deploying %s', charm_url) - - # stringify all config values for API, and convert to YAML - config = {k: str(v) for k, v in config.items()} - config = yaml.dump({application: config}, - default_flow_style=False) - - app_facade = client.ApplicationFacade.from_connection( - self.connection()) - - app = client.ApplicationDeploy( - charm_url=charm_url, - application=application, - series=series, - channel=channel, - config_yaml=config, - constraints=parse_constraints(constraints), - endpoint_bindings=endpoint_bindings, - num_units=num_units, - resources=resources, - storage=storage, - placement=placement, - devices=devices, - ) - result = await app_facade.Deploy([app]) - errors = [r.error.message for r in result.results if r.error] - if errors: - raise JujuError('\n'.join(errors)) - return await self._wait_for_new('application', application) - - async def destroy(self): - """Terminate all machines and resources for this model. - Is already implemented in controller.py. - """ - raise NotImplementedError() - - async def destroy_unit(self, *unit_names): - """Destroy units by name. - - """ - connection = self.connection() - app_facade = client.ApplicationFacade.from_connection(connection) - - log.debug( - 'Destroying unit%s %s', - 's' if len(unit_names) == 1 else '', - ' '.join(unit_names)) - - return await app_facade.DestroyUnits(list(unit_names)) - destroy_units = destroy_unit - - def get_backup(self, archive_id): - """Download a backup archive file. - - :param str archive_id: The id of the archive to download - :return str: Path to the archive file - - """ - raise NotImplementedError() - - def enable_ha( - self, num_controllers=0, constraints=None, series=None, to=None): - """Ensure sufficient controllers exist to provide redundancy. - - :param int num_controllers: Number of controllers to make available - :param constraints: Constraints to apply to the controller machines - :type constraints: :class:`juju.Constraints` - :param str series: Series of the controller machines - :param list to: Placement directives for controller machines, e.g.:: - - '23' - machine 23 - 'lxc:7' - new lxc container on machine 7 - '24/lxc/3' - lxc container 3 or machine 24 - - If None, a new machine is provisioned. - - """ - raise NotImplementedError() - - async def get_config(self): - """Return the configuration settings for this model. - - :returns: A ``dict`` mapping keys to `ConfigValue` instances, - which have `source` and `value` attributes. - """ - config_facade = client.ModelConfigFacade.from_connection( - self.connection() - ) - result = await config_facade.ModelGet() - config = result.config - for key, value in config.items(): - config[key] = ConfigValue.from_json(value) - return config - - async def get_constraints(self): - """Return the machine constraints for this model. - - :returns: A ``dict`` of constraints. - """ - constraints = {} - client_facade = client.ClientFacade.from_connection(self.connection()) - result = await client_facade.GetModelConstraints() - - # GetModelConstraints returns GetConstraintsResults which has a - # 'constraints' attribute. If no constraints have been set - # GetConstraintsResults.constraints is None. Otherwise - # GetConstraintsResults.constraints has an attribute for each possible - # constraint, each of these in turn will be None if they have not been - # set. - if result.constraints: - constraint_types = [a for a in dir(result.constraints) - if a in Value._toSchema.keys()] - for constraint in constraint_types: - value = getattr(result.constraints, constraint) - if value is not None: - constraints[constraint] = getattr(result.constraints, - constraint) - return constraints - - def import_ssh_key(self, identity): - """Add a public SSH key from a trusted indentity source to this model. - - :param str identity: User identity in the form : - - """ - raise NotImplementedError() - import_ssh_keys = import_ssh_key - - async def get_machines(self): - """Return list of machines in this model. - - """ - return list(self.state.machines.keys()) - - def get_shares(self): - """Return list of all users with access to this model. - - """ - raise NotImplementedError() - - def get_spaces(self): - """Return list of all known spaces, including associated subnets. - - """ - raise NotImplementedError() - - async def get_ssh_key(self, raw_ssh=False): - """Return known SSH keys for this model. - :param bool raw_ssh: if True, returns the raw ssh key, - else it's fingerprint - - """ - key_facade = client.KeyManagerFacade.from_connection(self.connection()) - entity = {'tag': tag.model(self.info.uuid)} - entities = client.Entities([entity]) - return await key_facade.ListKeys(entities, raw_ssh) - get_ssh_keys = get_ssh_key - - def get_storage(self, filesystem=False, volume=False): - """Return details of storage instances. - - :param bool filesystem: Include filesystem storage - :param bool volume: Include volume storage - - """ - raise NotImplementedError() - - def get_storage_pools(self, names=None, providers=None): - """Return list of storage pools. - - :param list names: Only include pools with these names - :param list providers: Only include pools for these providers - - """ - raise NotImplementedError() - - def get_subnets(self, space=None, zone=None): - """Return list of known subnets. - - :param str space: Only include subnets in this space - :param str zone: Only include subnets in this zone - - """ - raise NotImplementedError() - - def remove_blocks(self): - """Remove all blocks from this model. - - """ - raise NotImplementedError() - - def remove_backup(self, backup_id): - """Delete a backup. - - :param str backup_id: The id of the backup to remove - - """ - raise NotImplementedError() - - def remove_cached_images(self, arch=None, kind=None, series=None): - """Remove cached OS images. - - :param str arch: Architecture of the images to remove - :param str kind: Image kind to remove, e.g. 'lxd' - :param str series: Image series to remove, e.g. 'xenial' - - """ - raise NotImplementedError() - - def remove_machine(self, *machine_ids): - """Remove a machine from this model. - - :param str *machine_ids: Ids of the machines to remove - - """ - raise NotImplementedError() - remove_machines = remove_machine - - async def remove_ssh_key(self, user, key): - """Remove a public SSH key(s) from this model. - - :param str key: Full ssh key - :param str user: Juju user to which the key is registered - - """ - key_facade = client.KeyManagerFacade.from_connection(self.connection()) - key = base64.b64decode(bytes(key.strip().split()[1].encode('ascii'))) - key = hashlib.md5(key).hexdigest() - key = ':'.join(a + b for a, b in zip(key[::2], key[1::2])) - await key_facade.DeleteKeys([key], user) - remove_ssh_keys = remove_ssh_key - - def restore_backup( - self, bootstrap=False, constraints=None, archive=None, - backup_id=None, upload_tools=False): - """Restore a backup archive to a new controller. - - :param bool bootstrap: Bootstrap a new state machine - :param constraints: Model constraints - :type constraints: :class:`juju.Constraints` - :param str archive: Path to backup archive to restore - :param str backup_id: Id of backup to restore - :param bool upload_tools: Upload tools if bootstrapping a new machine - - """ - raise NotImplementedError() - - def retry_provisioning(self): - """Retry provisioning for failed machines. - - """ - raise NotImplementedError() - - def run(self, command, timeout=None): - """Run command on all machines in this model. - - :param str command: The command to run - :param int timeout: Time to wait before command is considered failed - - """ - raise NotImplementedError() - - async def set_config(self, config): - """Set configuration keys on this model. - - :param dict config: Mapping of config keys to either string values or - `ConfigValue` instances, as returned by `get_config`. - """ - config_facade = client.ModelConfigFacade.from_connection( - self.connection() - ) - for key, value in config.items(): - if isinstance(value, ConfigValue): - config[key] = value.value - await config_facade.ModelSet(config) - - async def set_constraints(self, constraints): - """Set machine constraints on this model. - - :param dict config: Mapping of model constraints - """ - client_facade = client.ClientFacade.from_connection(self.connection()) - await client_facade.SetModelConstraints( - application='', - constraints=constraints) - - async def get_action_output(self, action_uuid, wait=None): - """Get the results of an action by ID. - - :param str action_uuid: Id of the action - :param int wait: Time in seconds to wait for action to complete. - :return dict: Output from action - :raises: :class:`JujuError` if invalid action_uuid - """ - action_facade = client.ActionFacade.from_connection( - self.connection() - ) - entity = [{'tag': tag.action(action_uuid)}] - # Cannot use self.wait_for_action as the action event has probably - # already happened and self.wait_for_action works by processing - # model deltas and checking if they match our type. If the action - # has already occured then the delta has gone. - - async def _wait_for_action_status(): - while True: - action_output = await action_facade.Actions(entity) - if action_output.results[0].status in ('completed', 'failed'): - return - else: - await asyncio.sleep(1) - await asyncio.wait_for( - _wait_for_action_status(), - timeout=wait) - action_output = await action_facade.Actions(entity) - # ActionResult.output is None if the action produced no output - if action_output.results[0].output is None: - output = {} - else: - output = action_output.results[0].output - return output - - async def get_action_status(self, uuid_or_prefix=None, name=None): - """Get the status of all actions, filtered by ID, ID prefix, or name. - - :param str uuid_or_prefix: Filter by action uuid or prefix - :param str name: Filter by action name - - """ - results = {} - action_results = [] - action_facade = client.ActionFacade.from_connection( - self.connection() - ) - if name: - name_results = await action_facade.FindActionsByNames([name]) - action_results.extend(name_results.actions[0].actions) - if uuid_or_prefix: - # Collect list of actions matching uuid or prefix - matching_actions = await action_facade.FindActionTagsByPrefix( - [uuid_or_prefix]) - entities = [] - for actions in matching_actions.matches.values(): - entities = [{'tag': a.tag} for a in actions] - # Get action results matching action tags - uuid_results = await action_facade.Actions(entities) - action_results.extend(uuid_results.results) - for a in action_results: - results[tag.untag('action-', a.action.tag)] = a.status - return results - - def get_budget(self, budget_name): - """Get budget usage info. - - :param str budget_name: Name of budget - - """ - raise NotImplementedError() - - async def get_status(self, filters=None, utc=False): - """Return the status of the model. - - :param str filters: Optional list of applications, units, or machines - to include, which can use wildcards ('*'). - :param bool utc: Display time as UTC in RFC3339 format - - """ - client_facade = client.ClientFacade.from_connection(self.connection()) - return await client_facade.FullStatus(filters) - - def sync_tools( - self, all_=False, destination=None, dry_run=False, public=False, - source=None, stream=None, version=None): - """Copy Juju tools into this model. - - :param bool all_: Copy all versions, not just the latest - :param str destination: Path to local destination directory - :param bool dry_run: Don't do the actual copy - :param bool public: Tools are for a public cloud, so generate mirrors - information - :param str source: Path to local source directory - :param str stream: Simplestreams stream for which to sync metadata - :param str version: Copy a specific major.minor version - - """ - raise NotImplementedError() - - def unblock(self, *commands): - """Unblock an operation that would alter this model. - - :param str *commands: The commands to unblock. Valid values are - 'all-changes', 'destroy-model', 'remove-object' - - """ - raise NotImplementedError() - - def unset_config(self, *keys): - """Unset configuration on this model. - - :param str *keys: The keys to unset - - """ - raise NotImplementedError() - - def upgrade_gui(self): - """Upgrade the Juju GUI for this model. - - """ - raise NotImplementedError() - - def upgrade_juju( - self, dry_run=False, reset_previous_upgrade=False, - upload_tools=False, version=None): - """Upgrade Juju on all machines in a model. - - :param bool dry_run: Don't do the actual upgrade - :param bool reset_previous_upgrade: Clear the previous (incomplete) - upgrade status - :param bool upload_tools: Upload local version of tools - :param str version: Upgrade to a specific version - - """ - raise NotImplementedError() - - def upload_backup(self, archive_path): - """Store a backup archive remotely in Juju. - - :param str archive_path: Path to local archive - - """ - raise NotImplementedError() - - @property - def charmstore(self): - return self._charmstore - - async def get_metrics(self, *tags): - """Retrieve metrics. - - :param str *tags: Tags of entities from which to retrieve metrics. - No tags retrieves the metrics of all units in the model. - :return: Dictionary of unit_name:metrics - - """ - log.debug("Retrieving metrics for %s", - ', '.join(tags) if tags else "all units") - - metrics_facade = client.MetricsDebugFacade.from_connection( - self.connection()) - - entities = [client.Entity(tag) for tag in tags] - metrics_result = await metrics_facade.GetMetrics(entities) - - metrics = collections.defaultdict(list) - - for entity_metrics in metrics_result.results: - error = entity_metrics.error - if error: - if "is not a valid tag" in error: - raise ValueError(error.message) - else: - raise Exception(error.message) - - for metric in entity_metrics.metrics: - metrics[metric.unit].append(vars(metric)) - - return metrics - - -def get_charm_series(path): - """Inspects the charm directory at ``path`` and returns a default - series from its metadata.yaml (the first item in the 'series' list). - - Returns None if no series can be determined. - - """ - md = Path(path) / "metadata.yaml" - if not md.exists(): - return None - data = yaml.load(md.open()) - series = data.get('series') - return series[0] if series else None - - -class BundleHandler: - """ - Handle bundles by using the API to translate bundle YAML into a plan of - steps and then dispatching each of those using the API. - """ - def __init__(self, model): - self.model = model - self.charmstore = model.charmstore - self.plan = [] - self.references = {} - self._units_by_app = {} - for unit_name, unit in model.units.items(): - app_units = self._units_by_app.setdefault(unit.application, []) - app_units.append(unit_name) - self.bundle_facade = client.BundleFacade.from_connection( - model.connection()) - self.client_facade = client.ClientFacade.from_connection( - model.connection()) - self.app_facade = client.ApplicationFacade.from_connection( - model.connection()) - self.ann_facade = client.AnnotationsFacade.from_connection( - model.connection()) - - async def _handle_local_charms(self, bundle): - """Search for references to local charms (i.e. filesystem paths) - in the bundle. Upload the local charms to the model, and replace - the filesystem paths with appropriate 'local:' paths in the bundle. - - Return the modified bundle. - - :param dict bundle: Bundle dictionary - :return: Modified bundle dictionary - - """ - apps, args = [], [] - - default_series = bundle.get('series') - apps_dict = bundle.get('applications', bundle.get('services', {})) - for app_name in self.applications: - app_dict = apps_dict[app_name] - charm_dir = os.path.abspath(os.path.expanduser(app_dict['charm'])) - if not os.path.isdir(charm_dir): - continue - series = ( - app_dict.get('series') or - default_series or - get_charm_series(charm_dir) - ) - if not series: - raise JujuError( - "Couldn't determine series for charm at {}. " - "Add a 'series' key to the bundle.".format(charm_dir)) - - # Keep track of what we need to update. We keep a list of apps - # that need to be updated, and a corresponding list of args - # needed to update those apps. - apps.append(app_name) - args.append((charm_dir, series)) - - if apps: - # If we have apps to update, spawn all the coroutines concurrently - # and wait for them to finish. - charm_urls = await asyncio.gather(*[ - self.model.add_local_charm_dir(*params) - for params in args - ], loop=self.model.loop) - # Update the 'charm:' entry for each app with the new 'local:' url. - for app_name, charm_url in zip(apps, charm_urls): - apps_dict[app_name]['charm'] = charm_url - - return bundle - - async def fetch_plan(self, entity_id): - is_store_url = entity_id.startswith('cs:') - - if not is_store_url and os.path.isfile(entity_id): - bundle_yaml = Path(entity_id).read_text() - elif not is_store_url and os.path.isdir(entity_id): - bundle_yaml = (Path(entity_id) / "bundle.yaml").read_text() - else: - bundle_yaml = await self.charmstore.files(entity_id, - filename='bundle.yaml', - read_file=True) - self.bundle = yaml.safe_load(bundle_yaml) - self.bundle = await self._handle_local_charms(self.bundle) - - self.plan = await self.bundle_facade.GetChanges( - yaml.dump(self.bundle)) - - if self.plan.errors: - raise JujuError(self.plan.errors) - - async def execute_plan(self): - for step in self.plan.changes: - method = getattr(self, step.method) - result = await method(*step.args) - self.references[step.id_] = result - - @property - def applications(self): - apps_dict = self.bundle.get('applications', - self.bundle.get('services', {})) - return list(apps_dict.keys()) - - def resolve(self, reference): - if reference and reference.startswith('$'): - reference = self.references[reference[1:]] - return reference - - async def addCharm(self, charm, series): - """ - :param charm string: - Charm holds the URL of the charm to be added. - - :param series string: - Series holds the series of the charm to be added - if the charm default is not sufficient. - """ - # We don't add local charms because they've already been added - # by self._handle_local_charms - if charm.startswith('local:'): - return charm - - entity_id = await self.charmstore.entityId(charm) - log.debug('Adding %s', entity_id) - await self.client_facade.AddCharm(None, entity_id) - return entity_id - - async def addMachines(self, params=None): - """ - :param params dict: - Dictionary specifying the machine to add. All keys are optional. - Keys include: - - series: string specifying the machine OS series. - - constraints: string holding machine constraints, if any. We'll - parse this into the json friendly dict that the juju api - expects. - - container_type: string holding the type of the container (for - instance ""lxd" or kvm"). It is not specified for top level - machines. - - parent_id: string holding a placeholder pointing to another - machine change or to a unit change. This value is only - specified in the case this machine is a container, in - which case also ContainerType is set. - - """ - params = params or {} - - # Normalize keys - params = {normalize_key(k): params[k] for k in params.keys()} - - # Fix up values, as necessary. - if 'parent_id' in params: - if params['parent_id'].startswith('$addUnit'): - unit = self.resolve(params['parent_id'])[0] - params['parent_id'] = unit.machine.entity_id - else: - params['parent_id'] = self.resolve(params['parent_id']) - - params['constraints'] = parse_constraints( - params.get('constraints')) - params['jobs'] = params.get('jobs', ['JobHostUnits']) - - if params.get('container_type') == 'lxc': - log.warning('Juju 2.0 does not support lxc containers. ' - 'Converting containers to lxd.') - params['container_type'] = 'lxd' - - # Submit the request. - params = client.AddMachineParams(**params) - results = await self.client_facade.AddMachines([params]) - error = results.machines[0].error - if error: - raise ValueError("Error adding machine: %s" % error.message) - machine = results.machines[0].machine - log.debug('Added new machine %s', machine) - return machine - - async def addRelation(self, endpoint1, endpoint2): - """ - :param endpoint1 string: - :param endpoint2 string: - Endpoint1 and Endpoint2 hold relation endpoints in the - "application:interface" form, where the application is always a - placeholder pointing to an application change, and the interface is - optional. Examples are "$deploy-42:web" or just "$deploy-42". - """ - endpoints = [endpoint1, endpoint2] - # resolve indirect references - for i in range(len(endpoints)): - parts = endpoints[i].split(':') - parts[0] = self.resolve(parts[0]) - endpoints[i] = ':'.join(parts) - - log.info('Relating %s <-> %s', *endpoints) - return await self.model.add_relation(*endpoints) - - async def deploy(self, charm, series, application, options, constraints, - storage, endpoint_bindings, *args): - """ - :param charm string: - Charm holds the URL of the charm to be used to deploy this - application. - - :param series string: - Series holds the series of the application to be deployed - if the charm default is not sufficient. - - :param application string: - Application holds the application name. - - :param options map[string]interface{}: - Options holds application options. - - :param constraints string: - Constraints holds the optional application constraints. - - :param storage map[string]string: - Storage holds the optional storage constraints. - - :param endpoint_bindings map[string]string: - EndpointBindings holds the optional endpoint bindings - - :param devices map[string]string: - Devices holds the optional devices constraints. - (Only given on Juju 2.5+) - - :param resources map[string]int: - Resources identifies the revision to use for each resource - of the application's charm. - - :param num_units int: - NumUnits holds the number of units required. For IAAS models, this - will be 0 and separate AddUnitChanges will be used. For Kubernetes - models, this will be used to scale the application. - (Only given on Juju 2.5+) - """ - # resolve indirect references - charm = self.resolve(charm) - - if len(args) == 1: - # Juju 2.4 and below only sends the resources - resources = args[0] - devices, num_units = None, None - else: - # Juju 2.5+ sends devices before resources, as well as num_units - # There might be placement but we need to ignore that. - devices, resources, num_units = args[:3] - - if not charm.startswith('local:'): - resources = await self.model._add_store_resources( - application, charm, overrides=resources) - await self.model._deploy( - charm_url=charm, - application=application, - series=series, - config=options, - constraints=constraints, - endpoint_bindings=endpoint_bindings, - resources=resources, - storage=storage, - devices=devices, - num_units=num_units, - ) - return application - - async def addUnit(self, application, to): - """ - :param application string: - Application holds the application placeholder name for which a unit - is added. - - :param to string: - To holds the optional location where to add the unit, as a - placeholder pointing to another unit change or to a machine change. - """ - application = self.resolve(application) - placement = self.resolve(to) - if self._units_by_app.get(application): - # enough units for this application already exist; - # claim one, and carry on - # NB: this should probably honor placement, but the juju client - # doesn't, so we're not bothering, either - unit_name = self._units_by_app[application].pop() - log.debug('Reusing unit %s for %s', unit_name, application) - return self.model.units[unit_name] - - log.debug('Adding new unit for %s%s', application, - ' to %s' % placement if placement else '') - return await self.model.applications[application].add_unit( - count=1, - to=placement, - ) - - async def scale(self, application, scale): - """ - Handle a change of scale to a k8s application. - - :param string application: - Application holds the application placeholder name for which a unit - is added. - - :param int scale: - New scale value to use. - """ - application = self.resolve(application) - return await self.model.applications[application].scale(scale=scale) - - async def expose(self, application): - """ - :param application string: - Application holds the placeholder name of the application that must - be exposed. - """ - application = self.resolve(application) - log.info('Exposing %s', application) - return await self.model.applications[application].expose() - - async def setAnnotations(self, id_, entity_type, annotations): - """ - :param id_ string: - Id is the placeholder for the application or machine change - corresponding to the entity to be annotated. - - :param entity_type EntityType: - EntityType holds the type of the entity, "application" or - "machine". - - :param annotations map[string]string: - Annotations holds the annotations as key/value pairs. - """ - entity_id = self.resolve(id_) - try: - entity = self.model.state.get_entity(entity_type, entity_id) - except KeyError: - entity = await self.model._wait_for_new(entity_type, entity_id) - return await entity.set_annotations(annotations) - - -class CharmStore: - """ - Async wrapper around theblues.charmstore.CharmStore - """ - def __init__(self, loop, cs_timeout=20): - self.loop = loop - self._cs = theblues.charmstore.CharmStore(timeout=cs_timeout) - - def __getattr__(self, name): - """ - Wrap method calls in coroutines that use run_in_executor to make them - async. - """ - attr = getattr(self._cs, name) - if not callable(attr): - wrapper = partial(getattr, self._cs, name) - setattr(self, name, wrapper) - else: - async def coro(*args, **kwargs): - method = partial(attr, *args, **kwargs) - for attempt in range(1, 4): - try: - return await self.loop.run_in_executor(None, method) - except theblues.errors.ServerError: - if attempt == 3: - raise - await asyncio.sleep(1, loop=self.loop) - setattr(self, name, coro) - wrapper = coro - return wrapper - - -class CharmArchiveGenerator: - """ - Create a Zip archive of a local charm directory for upload to a controller. - - This is used automatically by - `Model.add_local_charm_dir <#juju.model.Model.add_local_charm_dir>`_. - """ - def __init__(self, path): - self.path = os.path.abspath(os.path.expanduser(path)) - - def make_archive(self, path): - """Create archive of directory and write to ``path``. - - :param path: Path to archive - - Ignored:: - - * build/* - This is used for packing the charm itself and any - similar tasks. - * */.* - Hidden files are all ignored for now. This will most - likely be changed into a specific ignore list - (.bzr, etc) - - """ - zf = zipfile.ZipFile(path, 'w', zipfile.ZIP_DEFLATED) - for dirpath, dirnames, filenames in os.walk(self.path): - relative_path = dirpath[len(self.path) + 1:] - if relative_path and not self._ignore(relative_path): - zf.write(dirpath, relative_path) - for name in filenames: - archive_name = os.path.join(relative_path, name) - if not self._ignore(archive_name): - real_path = os.path.join(dirpath, name) - self._check_type(real_path) - if os.path.islink(real_path): - self._check_link(real_path) - self._write_symlink( - zf, os.readlink(real_path), archive_name) - else: - zf.write(real_path, archive_name) - zf.close() - return path - - def _check_type(self, path): - """Check the path - """ - s = os.stat(path) - if stat.S_ISDIR(s.st_mode) or stat.S_ISREG(s.st_mode): - return path - raise ValueError("Invalid Charm at % %s" % ( - path, "Invalid file type for a charm")) - - def _check_link(self, path): - link_path = os.readlink(path) - if link_path[0] == "/": - raise ValueError( - "Invalid Charm at %s: %s" % ( - path, "Absolute links are invalid")) - path_dir = os.path.dirname(path) - link_path = os.path.join(path_dir, link_path) - if not link_path.startswith(os.path.abspath(self.path)): - raise ValueError( - "Invalid charm at %s %s" % ( - path, "Only internal symlinks are allowed")) - - def _write_symlink(self, zf, link_target, link_path): - """Package symlinks with appropriate zipfile metadata.""" - info = zipfile.ZipInfo() - info.filename = link_path - info.create_system = 3 - # Magic code for symlinks / py2/3 compat - # 27166663808 = (stat.S_IFLNK | 0755) << 16 - info.external_attr = 2716663808 - zf.writestr(info, link_target) - - def _ignore(self, path): - if path == "build" or path.startswith("build/"): - return True - if path.startswith('.'): - return True diff --git a/modules/libjuju/juju/placement.py b/modules/libjuju/juju/placement.py deleted file mode 100644 index d0d42f7..0000000 --- a/modules/libjuju/juju/placement.py +++ /dev/null @@ -1,58 +0,0 @@ -# -# This module allows us to parse a machine placement directive into a -# Placement object suitable for passing through the websocket API. -# -# Once https://bugs.launchpad.net/juju/+bug/1645480 is addressed, this -# module should be deprecated. -# - -from .client import client - -MACHINE_SCOPE = "#" - - -def parse(directive): - """ - Given a string in the format `scope:directive`, or simply `scope` - or `directive`, return a Placement object suitable for passing - back over the websocket API. - - """ - if not directive: - # Handle null case - return None - - if isinstance(directive, (list, tuple)): - results = [] - for d in directive: - results.extend(parse(d)) - return results - - if isinstance(directive, (dict, client.Placement)): - # We've been handed something that we can simply hand back to - # the api. (Forwards compatibility) - return [directive] - - # Juju 2.0 can't handle lxc containers. - directive = directive.replace('lxc', 'lxd') - - if ":" in directive: - # Planner has given us a scope and directive in string form - scope, directive = directive.split(":") - return [client.Placement(scope=scope, directive=directive)] - - if directive.isdigit(): - # Planner has given us a machine id (we rely on juju core to - # verify its validity.) - return [client.Placement(scope=MACHINE_SCOPE, directive=directive)] - - if "/" in directive: - # e.g. "0/lxd/0" - # https://github.com/juju/juju/blob/master/instance/placement_test.go#L29 - return [ - client.Placement(scope=MACHINE_SCOPE, directive=directive), - ] - - # Planner has probably given us a container type. Leave it up to - # juju core to verify that it is valid. - return [client.Placement(scope=directive)] diff --git a/modules/libjuju/juju/provisioner.py b/modules/libjuju/juju/provisioner.py deleted file mode 100644 index d937cad..0000000 --- a/modules/libjuju/juju/provisioner.py +++ /dev/null @@ -1,369 +0,0 @@ -# Copyright 2019 Canonical Ltd. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import os -import re -import shlex -import tempfile -import uuid -from subprocess import CalledProcessError - -import paramiko - -from .client import client - -arches = [ - [re.compile(r"amd64|x86_64"), "amd64"], - [re.compile(r"i?[3-9]86"), "i386"], - [re.compile(r"(arm$)|(armv.*)"), "armhf"], - [re.compile(r"aarch64"), "arm64"], - [re.compile(r"ppc64|ppc64el|ppc64le"), "ppc64el"], - [re.compile(r"s390x?"), "s390x"], - -] - - -def normalize_arch(rawArch): - """Normalize the architecture string.""" - for arch in arches: - if arch[0].match(rawArch): - return arch[1] - - -DETECTION_SCRIPT = """#!/bin/bash -set -e -os_id=$(grep '^ID=' /etc/os-release | tr -d '"' | cut -d= -f2) -if [ "$os_id" = 'centos' ]; then - os_version=$(grep '^VERSION_ID=' /etc/os-release | tr -d '"' | cut -d= -f2) - echo "centos$os_version" -else - lsb_release -cs -fi -uname -m -grep MemTotal /proc/meminfo -cat /proc/cpuinfo -""" - -INITIALIZE_UBUNTU_SCRIPT = """set -e -(id ubuntu &> /dev/null) || useradd -m ubuntu -s /bin/bash -umask 0077 -temp=$(mktemp) -echo 'ubuntu ALL=(ALL) NOPASSWD:ALL' > $temp -install -m 0440 $temp /etc/sudoers.d/90-juju-ubuntu -rm $temp -su ubuntu -c 'install -D -m 0600 /dev/null ~/.ssh/authorized_keys' -export authorized_keys="{}" -if [ ! -z "$authorized_keys" ]; then - su ubuntu -c 'echo $authorized_keys >> ~/.ssh/authorized_keys' -fi -""" - - -class SSHProvisioner: - """Provision a manually created machine via SSH.""" - user = "" - host = "" - private_key_path = "" - - def __init__(self, user, host, private_key_path): - self.host = host - self.user = user - self.private_key_path = private_key_path - - def _get_ssh_client(self, host, user, key): - """Return a connected Paramiko ssh object. - - :param str host: The host to connect to. - :param str user: The user to connect as. - :param str key: The private key to authenticate with. - - :return: object: A paramiko.SSHClient - :raises: :class:`paramiko.ssh_exception.SSHException` if the - connection failed - """ - - ssh = paramiko.SSHClient() - ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) - - pkey = None - - # Read the private key into a paramiko.RSAKey - if os.path.exists(key): - with open(key, 'r') as f: - pkey = paramiko.RSAKey.from_private_key(f) - - ####################################################################### - # There is a bug in some versions of OpenSSH 4.3 (CentOS/RHEL5) where # - # the server may not send the SSH_MSG_USERAUTH_BANNER message except # - # when responding to an auth_none request. For example, paramiko will # - # attempt to use password authentication when a password is set, but # - # the server could deny that, instead requesting keyboard-interactive.# - # The hack to workaround this is to attempt a reconnect, which will # - # receive the right banner, and authentication can proceed. See the # - # following for more info: # - # https://github.com/paramiko/paramiko/issues/432 # - # https://github.com/paramiko/paramiko/pull/438 # - ####################################################################### - - try: - ssh.connect(host, port=22, username=user, pkey=pkey) - except paramiko.ssh_exception.SSHException as e: - if 'Error reading SSH protocol banner' == str(e): - # Once more, with feeling - ssh.connect(host, port=22, username=user, pkey=pkey) - else: - # Reraise the original exception - raise e - - return ssh - - def _run_command(self, ssh, cmd, pty=True): - """Run a command remotely via SSH. - - :param object ssh: The SSHClient - :param str cmd: The command to execute - :param list cmd: The `shlex.split` command to execute - :param bool pty: Whether to allocate a pty - - :return: tuple: The stdout and stderr of the command execution - :raises: :class:`CalledProcessError` if the command fails - """ - - if isinstance(cmd, str): - cmd = shlex.split(cmd) - - if type(cmd) is not list: - cmd = [cmd] - - cmds = ' '.join(cmd) - stdin, stdout, stderr = ssh.exec_command(cmds, get_pty=pty) - retcode = stdout.channel.recv_exit_status() - - if retcode > 0: - output = stderr.read().strip() - raise CalledProcessError(returncode=retcode, cmd=cmd, - output=output) - return ( - stdout.read().decode('utf-8').strip(), - stderr.read().decode('utf-8').strip() - ) - - def _init_ubuntu_user(self): - """Initialize the ubuntu user. - - :return: bool: If the initialization was successful - :raises: :class:`paramiko.ssh_exception.AuthenticationException` - if the authentication fails - """ - - ssh = None - try: - # Run w/o allocating a pty, so we fail if sudo prompts for a passwd - ssh = self._get_ssh_client( - self.host, - self.user, - self.private_key_path, - ) - stdout, stderr = self._run_command(ssh, "sudo -n true", pty=False) - except paramiko.ssh_exception.AuthenticationException as e: - raise e - finally: - if ssh: - ssh.close() - - # Infer the public key - public_key = None - public_key_path = "{}.pub".format(self.private_key_path) - - if not os.path.exists(public_key_path): - raise FileNotFoundError( - "Public key '{}' doesn't exist.".format(public_key_path) - ) - - with open(public_key_path, "r") as f: - public_key = f.readline() - - script = INITIALIZE_UBUNTU_SCRIPT.format(public_key) - - try: - ssh = self._get_ssh_client( - self.host, - self.user, - self.private_key_path, - ) - - self._run_command( - ssh, - ["sudo", "/bin/bash -c " + shlex.quote(script)], - pty=True - ) - except paramiko.ssh_exception.AuthenticationException as e: - raise e - finally: - ssh.close() - - return True - - def _detect_hardware_and_os(self, ssh): - """Detect the target hardware capabilities and OS series. - - :param object ssh: The SSHClient - :return: str: A raw string containing OS and hardware information. - """ - - info = { - 'series': '', - 'arch': '', - 'cpu-cores': '', - 'mem': '', - } - - stdout, stderr = self._run_command( - ssh, - ["sudo", "/bin/bash -c " + shlex.quote(DETECTION_SCRIPT)], - pty=True, - ) - - lines = stdout.split("\n") - info['series'] = lines[0].strip() - info['arch'] = normalize_arch(lines[1].strip()) - - memKb = re.split(r'\s+', lines[2])[1] - - # Convert megabytes -> kilobytes - info['mem'] = round(int(memKb) / 1024) - - # Detect available CPUs - recorded = {} - for line in lines[3:]: - physical_id = "" - print(line) - - if line.find("physical id") == 0: - physical_id = line.split(":")[1].strip() - elif line.find("cpu cores") == 0: - cores = line.split(":")[1].strip() - - if physical_id not in recorded.keys(): - info['cpu-cores'] += cores - recorded[physical_id] = True - - return info - - def provision_machine(self): - """Perform the initial provisioning of the target machine. - - :return: bool: The client.AddMachineParams - :raises: :class:`paramiko.ssh_exception.AuthenticationException` - if the upload fails - """ - params = client.AddMachineParams() - - if self._init_ubuntu_user(): - try: - - ssh = self._get_ssh_client( - self.host, - self.user, - self.private_key_path - ) - - hw = self._detect_hardware_and_os(ssh) - params.series = hw['series'] - params.instance_id = "manual:{}".format(self.host) - params.nonce = "manual:{}:{}".format( - self.host, - str(uuid.uuid4()), # a nop for Juju w/manual machines - ) - params.hardware_characteristics = { - 'arch': hw['arch'], - 'mem': int(hw['mem']), - 'cpu-cores': int(hw['cpu-cores']), - } - params.addresses = [{ - 'value': self.host, - 'type': 'ipv4', - 'scope': 'public', - }] - - except paramiko.ssh_exception.AuthenticationException as e: - raise e - finally: - ssh.close() - - return params - - async def install_agent(self, connection, nonce, machine_id): - """ - :param object connection: Connection to Juju API - :param str nonce: The nonce machine specification - :param str machine_id: The id assigned to the machine - - :return: bool: If the initialization was successful - """ - - # The path where the Juju agent should be installed. - data_dir = "/var/lib/juju" - - # Disabling this prevents `apt-get update` from running initially, so - # charms will fail to deploy - disable_package_commands = False - - client_facade = client.ClientFacade.from_connection(connection) - results = await client_facade.ProvisioningScript( - data_dir=data_dir, - disable_package_commands=disable_package_commands, - machine_id=machine_id, - nonce=nonce, - ) - - self._run_configure_script(results.script) - - def _run_configure_script(self, script): - """Run the script to install the Juju agent on the target machine. - - :param str script: The script returned by the ProvisioningScript API - :raises: :class:`paramiko.ssh_exception.AuthenticationException` - if the upload fails - """ - - _, tmpFile = tempfile.mkstemp() - with open(tmpFile, 'w') as f: - f.write(script) - - try: - # get ssh client - ssh = self._get_ssh_client( - self.host, - "ubuntu", - self.private_key_path, - ) - - # copy the local copy of the script to the remote machine - sftp = paramiko.SFTPClient.from_transport(ssh.get_transport()) - sftp.put( - tmpFile, - tmpFile, - ) - - # run the provisioning script - stdout, stderr = self._run_command( - ssh, - "sudo /bin/bash {}".format(tmpFile), - ) - - except paramiko.ssh_exception.AuthenticationException as e: - raise e - finally: - os.remove(tmpFile) - ssh.close() diff --git a/modules/libjuju/juju/relation.py b/modules/libjuju/juju/relation.py deleted file mode 100644 index d2f2053..0000000 --- a/modules/libjuju/juju/relation.py +++ /dev/null @@ -1,123 +0,0 @@ -import logging - -from . import model - -log = logging.getLogger(__name__) - - -class Endpoint: - def __init__(self, model, data): - self.model = model - self.data = data - - def __repr__(self): - return ''.format(self.application.name, self.name) - - @property - def application(self): - return self.model.applications[self.data['application-name']] - - @property - def name(self): - return self.data['relation']['name'] - - @property - def interface(self): - return self.data['relation']['interface'] - - @property - def role(self): - return self.data['relation']['role'] - - @property - def scope(self): - return self.data['relation']['scope'] - - -class Relation(model.ModelEntity): - def __repr__(self): - return ''.format(self.entity_id, self.key) - - @property - def endpoints(self): - return [Endpoint(self.model, data) - for data in self.safe_data['endpoints']] - - @property - def provides(self): - """ - The endpoint on the provides side of this relation, or None. - """ - for endpoint in self.endpoints: - if endpoint.role == 'provider': - return endpoint - return None - - @property - def requires(self): - """ - The endpoint on the requires side of this relation, or None. - """ - for endpoint in self.endpoints: - if endpoint.role == 'requirer': - return endpoint - return None - - @property - def peers(self): - """ - The peers endpoint of this relation, or None. - """ - for endpoint in self.endpoints: - if endpoint.role == 'peer': - return endpoint - return None - - @property - def is_subordinate(self): - return any(ep.scope == 'container' for ep in self.endpoints) - - @property - def is_peer(self): - return any(ep.role == 'peer' for ep in self.endpoints) - - def matches(self, *specs): - """ - Check if this relation matches relationship specs. - - Relation specs are strings that would be given to Juju to establish a - relation, and should be in the form ``[:]`` - where the ``:`` suffix is optional. If the suffix is - omitted, this relation will match on any endpoint as long as the given - application is involved. - - In other words, this relation will match a spec if that spec could have - created this relation. - - :return: True if all specs match. - """ - for spec in specs: - if ':' in spec: - app_name, endpoint_name = spec.split(':') - else: - app_name, endpoint_name = spec, None - for endpoint in self.endpoints: - if app_name == endpoint.application.name and \ - endpoint_name in (endpoint.name, None): - # found a match for this spec, so move to next one - break - else: - # no match for this spec - return False - return True - - @property - def applications(self): - """ - All applications involved in this relation. - """ - return [ep.application for ep in self.endpoints] - - async def destroy(self): - raise NotImplementedError() - # TODO: destroy a relation diff --git a/modules/libjuju/juju/tag.py b/modules/libjuju/juju/tag.py deleted file mode 100644 index 282e0a6..0000000 --- a/modules/libjuju/juju/tag.py +++ /dev/null @@ -1,40 +0,0 @@ -# TODO: Tags should be a proper class, so that we can distinguish whether -# something is already a tag or not. For example, 'user-foo' is a valid -# username, but is ambiguous with the already-tagged username 'foo'. - - -def _prefix(prefix, s): - if s and not s.startswith(prefix): - return '{}{}'.format(prefix, s) - return s - - -def untag(prefix, s): - if s and s.startswith(prefix): - return s[len(prefix):] - return s - - -def cloud(cloud_name): - return _prefix('cloud-', cloud_name) - - -def credential(cloud, user, credential_name): - credential_string = '{}_{}_{}'.format(cloud, user, credential_name) - return _prefix('cloudcred-', credential_string) - - -def model(cloud_name): - return _prefix('model-', cloud_name) - - -def user(username): - return _prefix('user-', username) - - -def application(app_name): - return _prefix('application-', app_name) - - -def action(action_uuid): - return _prefix('action-', action_uuid) diff --git a/modules/libjuju/juju/unit.py b/modules/libjuju/juju/unit.py deleted file mode 100644 index e8ecd96..0000000 --- a/modules/libjuju/juju/unit.py +++ /dev/null @@ -1,281 +0,0 @@ -import logging - -import pyrfc3339 - -from . import model -from .client import client - -log = logging.getLogger(__name__) - - -class Unit(model.ModelEntity): - @property - def agent_status(self): - """Returns the current agent status string. - - """ - return self.safe_data['agent-status']['current'] - - @property - def agent_status_since(self): - """Get the time when the `agent_status` was last updated. - - """ - return pyrfc3339.parse(self.safe_data['agent-status']['since']) - - @property - def agent_status_message(self): - """Get the agent status message. - - """ - return self.safe_data['agent-status']['message'] - - @property - def workload_status(self): - """Returns the current workload status string. - - """ - return self.safe_data['workload-status']['current'] - - @property - def workload_status_since(self): - """Get the time when the `workload_status` was last updated. - - """ - return pyrfc3339.parse(self.safe_data['workload-status']['since']) - - @property - def workload_status_message(self): - """Get the workload status message. - - """ - return self.safe_data['workload-status']['message'] - - @property - def machine(self): - """Get the machine object for this unit. - - """ - machine_id = self.safe_data['machine-id'] - if machine_id: - return self.model.machines.get(machine_id, None) - else: - return None - - @property - def public_address(self): - """ Get the public address. - - """ - return self.safe_data['public-address'] or None - - @property - def tag(self): - return 'unit-%s' % self.name.replace('/', '-') - - def add_storage(self, name, constraints=None): - """Add unit storage dynamically. - - :param str name: Storage name, as specified by the charm - :param str constraints: Comma-separated list of constraints in the - form 'POOL,COUNT,SIZE' - - """ - raise NotImplementedError() - - def collect_metrics(self): - """Collect metrics on this unit. - - """ - raise NotImplementedError() - - async def destroy(self): - """Destroy this unit. - - """ - app_facade = client.ApplicationFacade.from_connection(self.connection) - - log.debug( - 'Destroying %s', self.name) - - return await app_facade.DestroyUnits([self.name]) - remove = destroy - - def get_resources(self, details=False): - """Return resources for this unit. - - :param bool details: Include detailed info about resources used by each - unit - - """ - raise NotImplementedError() - - def resolved(self, retry=False): - """Mark unit errors resolved. - - :param bool retry: Re-execute failed hooks - - """ - raise NotImplementedError() - - async def run(self, command, timeout=None): - """Run command on this unit. - - :param str command: The command to run - :param int timeout: Time, in seconds, to wait before command is - considered failed - :returns: A :class:`juju.action.Action` instance. - - """ - action = client.ActionFacade.from_connection(self.connection) - - log.debug( - 'Running `%s` on %s', command, self.name) - - if timeout: - # Convert seconds to nanoseconds - timeout = int(timeout * 1000000000) - - res = await action.Run( - [], - command, - [], - timeout, - [self.name], - ) - return await self.model.wait_for_action(res.results[0].action.tag) - - async def run_action(self, action_name, **params): - """Run an action on this unit. - - :param str action_name: Name of action to run - :param **params: Action parameters - :returns: A :class:`juju.action.Action` instance. - - Note that this only enqueues the action. You will need to call - ``action.wait()`` on the resulting `Action` instance if you wish - to block until the action is complete. - - """ - action_facade = client.ActionFacade.from_connection(self.connection) - - log.debug('Starting action `%s` on %s', action_name, self.name) - - res = await action_facade.Enqueue([client.Action( - name=action_name, - parameters=params, - receiver=self.tag, - )]) - action = res.results[0].action - error = res.results[0].error - if error and error.code == 'not found': - raise ValueError('Action `%s` not found on %s' % (action_name, - self.name)) - elif error: - raise Exception('Unknown action error: %s' % error.serialize()) - action_id = action.tag[len('action-'):] - log.debug('Action started as %s', action_id) - # we mustn't use wait_for_action because that blocks until the - # action is complete, rather than just being in the model - return await self.model._wait_for_new('action', action_id) - - async def scp_to(self, source, destination, user='ubuntu', proxy=False, - scp_opts=''): - """Transfer files to this unit. - - :param str source: Local path of file(s) to transfer - :param str destination: Remote destination of transferred files - :param str user: Remote username - :param bool proxy: Proxy through the Juju API server - :param scp_opts: Additional options to the `scp` command - :type scp_opts: str or list - """ - await self.machine.scp_to(source, destination, user=user, proxy=proxy, - scp_opts=scp_opts) - - async def scp_from(self, source, destination, user='ubuntu', proxy=False, - scp_opts=''): - """Transfer files from this unit. - - :param str source: Remote path of file(s) to transfer - :param str destination: Local destination of transferred files - :param str user: Remote username - :param bool proxy: Proxy through the Juju API server - :param scp_opts: Additional options to the `scp` command - :type scp_opts: str or list - """ - await self.machine.scp_from(source, destination, user=user, - proxy=proxy, scp_opts=scp_opts) - - def set_meter_status(self): - """Set the meter status on this unit. - - """ - raise NotImplementedError() - - def ssh( - self, command, user=None, proxy=False, ssh_opts=None): - """Execute a command over SSH on this unit. - - :param str command: Command to execute - :param str user: Remote username - :param bool proxy: Proxy through the Juju API server - :param str ssh_opts: Additional options to the `ssh` command - - """ - raise NotImplementedError() - - def status_history(self, num=20, utc=False): - """Get status history for this unit. - - :param int num: Size of history backlog - :param bool utc: Display time as UTC in RFC3339 format - - """ - raise NotImplementedError() - - async def is_leader_from_status(self): - """ - Check to see if this unit is the leader. Returns True if so, and - False if it is not, or if leadership does not make sense - (e.g., there is no leader in this application.) - - This method is a kluge that calls FullStatus in the - ClientFacade to get its information. Once - https://bugs.launchpad.net/juju/+bug/1643691 is resolved, we - should add a simple .is_leader property, and deprecate this - method. - - """ - app = self.name.split("/")[0] - - c = client.ClientFacade.from_connection(self.connection) - - status = await c.FullStatus(None) - - # FullStatus may be more up to date than our model, and the - # unit may have gone away, or we may be doing something silly, - # like trying to fetch leadership for a subordinate, which - # will not be filed where we expect in the model. In those - # cases, we may simply return False, as a nonexistent or - # subordinate unit is not a leader. - if not status.applications.get(app): - return False - - if not status.applications[app].get('units'): - return False - - if not status.applications[app]['units'].get(self.name): - return False - - return status.applications[app]['units'][self.name].get('leader', - False) - - async def get_metrics(self): - """Get metrics for the unit. - - :return: Dictionary of metrics for this unit. - - """ - metrics = await self.model.get_metrics(self.tag) - return metrics[self.name] diff --git a/modules/libjuju/juju/user.py b/modules/libjuju/juju/user.py deleted file mode 100644 index 389d210..0000000 --- a/modules/libjuju/juju/user.py +++ /dev/null @@ -1,86 +0,0 @@ -import logging - -import pyrfc3339 - -from . import tag - -log = logging.getLogger(__name__) - - -class User(object): - def __init__(self, controller, user_info, secret_key=None): - self.controller = controller - self._user_info = user_info - self._secret_key = secret_key - - @property - def tag(self): - return tag.user(self.username) - - @property - def username(self): - return self._user_info.username - - @property - def display_name(self): - return self._user_info.display_name - - @property - def last_connection(self): - return pyrfc3339.parse(self._user_info.last_connection) - - @property - def access(self): - return self._user_info.access - - @property - def date_created(self): - return self._user_info.date_created - - @property - def enabled(self): - return not self._user_info.disabled - - @property - def disabled(self): - return self._user_info.disabled - - @property - def created_by(self): - return self._user_info.created_by - - @property - def secret_key(self): - return self._secret_key - - async def set_password(self, password): - """Update this user's password. - """ - await self.controller.change_user_password(self.username, password) - self._user_info.password = password - - async def grant(self, acl='login'): - """Set access level of this user on the controller. - - :param str acl: Access control ('login', 'add-model', or 'superuser') - """ - if await self.controller.grant(self.username, acl): - self._user_info.access = acl - - async def revoke(self): - """Removes all access rights for this user from the controller. - """ - await self.controller.revoke(self.username) - self._user_info.access = '' - - async def disable(self): - """Disable this user. - """ - await self.controller.disable_user(self.username) - self._user_info.disabled = True - - async def enable(self): - """Re-enable this user. - """ - await self.controller.enable_user(self.username) - self._user_info.disabled = False diff --git a/modules/libjuju/juju/utils.py b/modules/libjuju/juju/utils.py deleted file mode 100644 index 1038ed1..0000000 --- a/modules/libjuju/juju/utils.py +++ /dev/null @@ -1,165 +0,0 @@ -import asyncio -import os -from collections import defaultdict -from functools import partial -from pathlib import Path -import base64 -from pyasn1.type import univ, char -from pyasn1.codec.der.encoder import encode - - -async def execute_process(*cmd, log=None, loop=None): - ''' - Wrapper around asyncio.create_subprocess_exec. - - ''' - p = await asyncio.create_subprocess_exec( - *cmd, - stdin=asyncio.subprocess.PIPE, - stdout=asyncio.subprocess.PIPE, - stderr=asyncio.subprocess.PIPE, - loop=loop) - stdout, stderr = await p.communicate() - if log: - log.debug("Exec %s -> %d", cmd, p.returncode) - if stdout: - log.debug(stdout.decode('utf-8')) - if stderr: - log.debug(stderr.decode('utf-8')) - return p.returncode == 0 - - -def _read_ssh_key(): - ''' - Inner function for read_ssh_key, suitable for passing to our - Executor. - - ''' - default_data_dir = Path(Path.home(), ".local", "share", "juju") - juju_data = os.environ.get("JUJU_DATA", default_data_dir) - ssh_key_path = Path(juju_data, 'ssh', 'juju_id_rsa.pub') - with ssh_key_path.open('r') as ssh_key_file: - ssh_key = ssh_key_file.readlines()[0].strip() - return ssh_key - - -async def read_ssh_key(loop): - ''' - Attempt to read the local juju admin's public ssh key, so that it - can be passed on to a model. - - ''' - loop = loop or asyncio.get_event_loop() - return await loop.run_in_executor(None, _read_ssh_key) - - -class IdQueue: - """ - Wrapper around asyncio.Queue that maintains a separate queue for each ID. - """ - def __init__(self, maxsize=0, *, loop=None): - self._queues = defaultdict(partial(asyncio.Queue, maxsize, loop=loop)) - - async def get(self, id): - value = await self._queues[id].get() - del self._queues[id] - if isinstance(value, Exception): - raise value - return value - - async def put(self, id, value): - await self._queues[id].put(value) - - async def put_all(self, value): - for queue in self._queues.values(): - await queue.put(value) - - -async def block_until(*conditions, timeout=None, wait_period=0.5, loop=None): - """Return only after all conditions are true. - - """ - async def _block(): - while not all(c() for c in conditions): - await asyncio.sleep(wait_period, loop=loop) - await asyncio.wait_for(_block(), timeout, loop=loop) - - -async def run_with_interrupt(task, *events, loop=None): - """ - Awaits a task while allowing it to be interrupted by one or more - `asyncio.Event`s. - - If the task finishes without the events becoming set, the results of the - task will be returned. If the event become set, the task will be cancelled - ``None`` will be returned. - - :param task: Task to run - :param events: One or more `asyncio.Event`s which, if set, will interrupt - `task` and cause it to be cancelled. - :param loop: Optional event loop to use other than the default. - """ - loop = loop or asyncio.get_event_loop() - task = asyncio.ensure_future(task, loop=loop) - event_tasks = [loop.create_task(event.wait()) for event in events] - done, pending = await asyncio.wait([task] + event_tasks, - loop=loop, - return_when=asyncio.FIRST_COMPLETED) - for f in pending: - f.cancel() # cancel unfinished tasks - for f in done: - f.exception() # prevent "exception was not retrieved" errors - if task in done: - return task.result() # may raise exception - else: - return None - - -class Addrs(univ.SequenceOf): - componentType = char.PrintableString() - - -class RegistrationInfo(univ.Sequence): - """ - ASN.1 representation of: - - type RegistrationInfo struct { - User string - - Addrs []string - - SecretKey []byte - - ControllerName string - } - """ - pass - - -def generate_user_controller_access_token(username, controller_endpoints, secret_key, controller_name): - """" Implement in python what is currently done in GO - https://github.com/juju/juju/blob/a5ab92ec9b7f5da3678d9ac603fe52d45af24412/cmd/juju/user/utils.go#L16 - - :param username: name of the user to register - :param controller_endpoints: juju controller endpoints list in the format : - :param secret_key: base64 encoded string of the secret-key generated by juju - :param controller_name: name of the controller to register to. - """ - - # Secret key is returned as base64 encoded string in: - # https://websockets.readthedocs.io/en/stable/_modules/websockets/protocol.html#WebSocketCommonProtocol.recv - # Deconding it before marshalling into the ASN.1 message - secret_key = base64.b64decode(secret_key) - addr = Addrs() - for endpoint in controller_endpoints: - addr.append(endpoint) - - registration_string = RegistrationInfo() - registration_string.setComponentByPosition(0, char.PrintableString(username)) - registration_string.setComponentByPosition(1, addr) - registration_string.setComponentByPosition(2, univ.OctetString(secret_key)) - registration_string.setComponentByPosition(3, char.PrintableString(controller_name)) - registration_string = encode(registration_string) - remainder = len(registration_string) % 3 - registration_string += b"\0" * (3 - remainder) - return base64.urlsafe_b64encode(registration_string) diff --git a/modules/libjuju/scripts/gendoc b/modules/libjuju/scripts/gendoc deleted file mode 100755 index 3ef628e..0000000 --- a/modules/libjuju/scripts/gendoc +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -packages=( - juju.action - juju.annotation - juju.application - juju.cloud - juju.constraints - juju.controller - juju.delta - juju.errors - juju.exceptions - juju.juju - juju.loop - juju.machine - juju.model - juju.placement - juju.relation - juju.tag - juju.unit - juju.utils -) - -for pkg in ${packages[@]}; do - cat < docs/api/$pkg.rst -$pkg -$(echo $pkg | sed -e 's/./=/g') - -.. rubric:: Summary - -.. automembersummary:: $pkg - -.. rubric:: Reference - -.. automodule:: $pkg - :members: - :undoc-members: - :show-inheritance: -EOD -done diff --git a/modules/libjuju/setup.py b/modules/libjuju/setup.py deleted file mode 100644 index 7134677..0000000 --- a/modules/libjuju/setup.py +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright 2016 Canonical Ltd. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from pathlib import Path -from setuptools import setup, find_packages - -here = Path(__file__).absolute().parent -readme = here / 'docs' / 'readme.rst' -changelog = here / 'docs' / 'changelog.rst' -long_description = '{}\n\n{}'.format( - readme.read_text(), - changelog.read_text() - ) -version = here / 'VERSION' - -setup( - name='juju', - version=version.read_text().strip(), - packages=find_packages( - exclude=["*.tests", "*.tests.*", "tests.*", "tests"]), - install_requires=[ - 'macaroonbakery>=1.1,<2.0', - 'pyRFC3339>=1.0,<2.0', - 'pyyaml>=3.0,<=4.2', - 'theblues>=0.3.8,<1.0', - 'websockets>=7.0,<8.0', - 'paramiko>=2.4.0,<3.0.0', - 'pyasn1>=0.4.4', - ], - include_package_data=True, - maintainer='Juju Ecosystem Engineering', - maintainer_email='juju@lists.ubuntu.com', - description=('Python library for Juju'), - long_description=long_description, - url='https://github.com/juju/python-libjuju', - license='Apache 2', - classifiers=[ - "Development Status :: 3 - Alpha", - "Intended Audience :: Developers", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.5", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", - ], - entry_points={ - 'console_scripts': [ - ], - }, -) diff --git a/modules/libjuju/tests/__init__.py b/modules/libjuju/tests/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/modules/libjuju/tests/base.py b/modules/libjuju/tests/base.py deleted file mode 100644 index 600372c..0000000 --- a/modules/libjuju/tests/base.py +++ /dev/null @@ -1,148 +0,0 @@ -import inspect -import subprocess -import uuid -from contextlib import contextmanager -from pathlib import Path - -import mock -from juju.client.jujudata import FileJujuData -from juju.controller import Controller - -import pytest - - -def is_bootstrapped(): - try: - result = subprocess.run(['juju', 'switch'], stdout=subprocess.PIPE) - return ( - result.returncode == 0 and - len(result.stdout.decode().strip()) > 0) - except FileNotFoundError: - return False - - -bootstrapped = pytest.mark.skipif( - not is_bootstrapped(), - reason='bootstrapped Juju environment required') - -test_run_nonce = uuid.uuid4().hex[-4:] - - -class CleanController(): - """ - Context manager that automatically connects and disconnects from - the currently active controller. - - Note: Unlike CleanModel, this will not create a new controller for you, - and an active controller must already be available. - """ - def __init__(self): - self._controller = None - - async def __aenter__(self): - self._controller = Controller() - await self._controller.connect() - return self._controller - - async def __aexit__(self, exc_type, exc, tb): - await self._controller.disconnect() - - -class CleanModel(): - """ - Context manager that automatically connects to the currently active - controller, adds a fresh model, returns the connection to that model, - and automatically disconnects and cleans up the model. - - The new model is also set as the current default for the controller - connection. - """ - def __init__(self, bakery_client=None): - self._controller = None - self._model = None - self._model_uuid = None - self._bakery_client = bakery_client - - async def __aenter__(self): - model_nonce = uuid.uuid4().hex[-4:] - frame = inspect.stack()[1] - test_name = frame.function.replace('_', '-') - jujudata = TestJujuData() - self._controller = Controller( - jujudata=jujudata, - bakery_client=self._bakery_client, - ) - controller_name = jujudata.current_controller() - user_name = jujudata.accounts()[controller_name]['user'] - await self._controller.connect(controller_name) - - model_name = 'test-{}-{}-{}'.format( - test_run_nonce, - test_name, - model_nonce, - ) - self._model = await self._controller.add_model(model_name) - - # Change the JujuData instance so that it will return the new - # model as the current model name, so that we'll connect - # to it by default. - jujudata.set_model( - controller_name, - user_name + "/" + model_name, - self._model.info.uuid, - ) - - # save the model UUID in case test closes model - self._model_uuid = self._model.info.uuid - - return self._model - - async def __aexit__(self, exc_type, exc, tb): - await self._model.disconnect() - await self._controller.destroy_model(self._model_uuid) - await self._controller.disconnect() - - -class TestJujuData(FileJujuData): - def __init__(self): - self.__controller_name = None - self.__model_name = None - self.__model_uuid = None - super().__init__() - - def set_model(self, controller_name, model_name, model_uuid): - self.__controller_name = controller_name - self.__model_name = model_name - self.__model_uuid = model_uuid - - def current_model(self, *args, **kwargs): - return self.__model_name or super().current_model(*args, **kwargs) - - def models(self): - all_models = super().models() - if self.__model_name is None: - return all_models - all_models.setdefault(self.__controller_name, {}) - all_models[self.__controller_name].setdefault('models', {}) - cmodels = all_models[self.__controller_name]['models'] - cmodels[self.__model_name] = {'uuid': self.__model_uuid} - return all_models - - -class AsyncMock(mock.MagicMock): - async def __call__(self, *args, **kwargs): - return super().__call__(*args, **kwargs) - - -@contextmanager -def patch_file(filename): - """ - "Patch" a file so that its current contents are automatically restored - when the context is exited. - """ - filepath = Path(filename).expanduser() - data = filepath.read_bytes() - try: - yield - finally: - filepath.write_bytes(data) diff --git a/modules/libjuju/tests/bundle/bundle.yaml b/modules/libjuju/tests/bundle/bundle.yaml deleted file mode 100644 index 19a45ec..0000000 --- a/modules/libjuju/tests/bundle/bundle.yaml +++ /dev/null @@ -1,28 +0,0 @@ -series: xenial -services: - wordpress: - charm: "cs:trusty/wordpress-2" - num_units: 1 - annotations: - "gui-x": "339.5" - "gui-y": "-171" - to: - - "0" - mysql: - charm: "cs:trusty/mysql-26" - num_units: 1 - annotations: - "gui-x": "79.5" - "gui-y": "-142" - to: - - "1" -relations: - - - "wordpress:db" - - "mysql:db" -machines: - "0": - series: trusty - constraints: "arch=amd64 cores=1 cpu-power=100 mem=1740 root-disk=8192" - "1": - series: trusty - constraints: "arch=amd64 cores=1 cpu-power=100 mem=1740 root-disk=8192" diff --git a/modules/libjuju/tests/bundle/invalid.yaml b/modules/libjuju/tests/bundle/invalid.yaml deleted file mode 100644 index 2e51c1e..0000000 --- a/modules/libjuju/tests/bundle/invalid.yaml +++ /dev/null @@ -1,7 +0,0 @@ -applications: - myapp: - charm: cs:xenial/ubuntu-0 - num_units: 1 - to: - - 0 - - 0 diff --git a/modules/libjuju/tests/bundle/mini-bundle.yaml b/modules/libjuju/tests/bundle/mini-bundle.yaml deleted file mode 100644 index 84d9a61..0000000 --- a/modules/libjuju/tests/bundle/mini-bundle.yaml +++ /dev/null @@ -1,9 +0,0 @@ -series: xenial -applications: - dummy-sink: - charm: cs:~juju-qa/dummy-sink - num_units: 1 - dummy-subordinate: - charm: cs:~juju-qa/dummy-subordinate -relations: - - ['dummy-sink', 'dummy-subordinate'] diff --git a/modules/libjuju/tests/charm/metadata.yaml b/modules/libjuju/tests/charm/metadata.yaml deleted file mode 100644 index 74eab3d..0000000 --- a/modules/libjuju/tests/charm/metadata.yaml +++ /dev/null @@ -1,5 +0,0 @@ -name: charm -series: ["xenial"] -summary: "test" -description: "test" -maintainers: ["test"] diff --git a/modules/libjuju/tests/integration/__init__.py b/modules/libjuju/tests/integration/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/modules/libjuju/tests/integration/bundle/bundle-resource-rev.yaml b/modules/libjuju/tests/integration/bundle/bundle-resource-rev.yaml deleted file mode 100644 index c8feb83..0000000 --- a/modules/libjuju/tests/integration/bundle/bundle-resource-rev.yaml +++ /dev/null @@ -1,7 +0,0 @@ -series: xenial -services: - ghost: - charm: "cs:ghost-19" - num_units: 1 - resources: - ghost-stable: 11 diff --git a/modules/libjuju/tests/integration/bundle/bundle.yaml b/modules/libjuju/tests/integration/bundle/bundle.yaml deleted file mode 100644 index d0245c5..0000000 --- a/modules/libjuju/tests/integration/bundle/bundle.yaml +++ /dev/null @@ -1,12 +0,0 @@ -series: xenial -services: - ghost: - charm: "cs:ghost-19" - num_units: 1 - mysql: - charm: "cs:trusty/mysql-57" - num_units: 1 - test: - charm: "./tests/integration/charm" -relations: - - ["ghost", "mysql"] diff --git a/modules/libjuju/tests/integration/cert.pem b/modules/libjuju/tests/integration/cert.pem deleted file mode 100644 index 684029e..0000000 --- a/modules/libjuju/tests/integration/cert.pem +++ /dev/null @@ -1,33 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFxDCCA6ygAwIBAgIJAPBHQW1VVLhYMA0GCSqGSIb3DQEBCwUAMHcxCzAJBgNV -BAYTAlVTMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTEQMA4GA1UEBwwHUmFsZWln -aDESMBAGA1UECgwJQ2Fub25pY2FsMSkwJwYDVQQDDCBweXRob24tbGlianVqdS5p -bnRlZ3JhdGlvbi50ZXN0czAeFw0xODEyMTEyMDQyMThaFw0xOTEyMTEyMDQyMTha -MHcxCzAJBgNVBAYTAlVTMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTEQMA4GA1UE -BwwHUmFsZWlnaDESMBAGA1UECgwJQ2Fub25pY2FsMSkwJwYDVQQDDCBweXRob24t -bGlianVqdS5pbnRlZ3JhdGlvbi50ZXN0czCCAiIwDQYJKoZIhvcNAQEBBQADggIP -ADCCAgoCggIBANkkfNI4Q3eIIrXZF3xxnD9Bbp06jPeoEokUSrC98L5XwCtxs9Ma -fWPqiSukPq3A0pPcRobFOu5o+pu6+1pFjcmtKICsp+CwHV52+IfozvNlhRMUFPb2 -IxU86tgpMcBAM5wLz85DoNSu4EjOku0rB8Z0GMfvvuc7aYtDQoKJSScHGWWFTaJT -mtXmmKKSPtyPZ5PCQOv2Qmg5ujs4RS3R8dq4WRAd5F8YzRBgmtPYRrjwgEjD7GTq -Xlt+COqn5+RgWFIH0pQ1xHkslBzBByzsyjLJPdV/ugNIZk6GNOzLAw3ynl/9xGGh -RAOrBsKVQPs3liZoGXVqKxHyNgWh8V58TgiFDuRZiZwQDV6cRkxOkGQIXohkS7uC -5OXrAsyyVPrRoWfQMggxM1jH3H+93PoRqEsLypLxw53h9Seep4tOggw/hgOolLFg -diAT/IU3yhESXnXpAA8G2rDKO32hw+vWuaGCbH6bShb+9ZfkAmLUiSVm9ClbkZRQ -IaXmtBwsLS2IBxW51jrjSuXvqlBZc01pIUC2CT7aTrbftpA+w6i1bZpqjCukUSAx -t4dRjzL/h/drp5xxlqXOZL9yjYl8vFul4LFKkpkJGIKESEksxULZR/3b+WA7oyiA -Ph9UgnKU730dKVSfWbi/0tsCA/4HKIJ9qucCrfxyL8hizJ+1w9NZJ3ZbAgMBAAGj -UzBRMB0GA1UdDgQWBBSv/7Fraw7XviWwlnPGc+CTJA0rKjAfBgNVHSMEGDAWgBSv -/7Fraw7XviWwlnPGc+CTJA0rKjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB -CwUAA4ICAQCluQ7qFgNoGPkAkdoDXN26OhQcfrCmjvPufurs8Fc4Yxumupz01Df+ -zu3J2pG+tfThi37sRZsxN/jhtZOVgaXPSgpgB8Tz16YCK3KTEHXil/i6wp4JGmnQ -VsOo8cGLEvcmFg98/l2Tu31IXaSm7Fc/VxVB0fhzvIa0xG+osU3Dy4GWhDQrkkJ8 -MErTvEAb8QnY1y20ThPAZ5StBZ/ZLwPksuzkvJwGN8FI00k1RCznDNArzKouuZZt -JdfjnFtT+nrP0XSAlphfI0o7Gbm6jqVLPIekp8iPJuAmk55biZ9rAJBu8DsHtBpQ -cbpH+84y/xaC9svPgD9Un6dDDYXQ4QZL393oZW1RM4apR9gOz/8NxW2bJyPVxA3M -nmHphZjyGrOLN/QjrZV93Dv65SIivzT2zYEztvK4rjui31J3VDeNEe7uMFGq5Pmq -7HRrcPY2sMSOHkzOTFmd5qwaPD9EzkM5UT5YJDEE7YUjkR8LlxP5Xvo82HXxKl8D -8Tk09HuBMWg69QjuVThBNJSWpIxTbQEfm/2j+fm1L1kE9N7+97y69eDTNdOxJK5D -zaKoAjgoneZZzZN6fblfbQuAsDdJ2xLR0DTBlxA9Gv7OYbUpXm3eAyfYL4AmqvHI -HtfgPeSH2+wQVteiVa7q0BIto75XE3m8+xIOQsAUEb04fcacEpKZlw== ------END CERTIFICATE----- diff --git a/modules/libjuju/tests/integration/charm/metadata.yaml b/modules/libjuju/tests/integration/charm/metadata.yaml deleted file mode 100644 index 74eab3d..0000000 --- a/modules/libjuju/tests/integration/charm/metadata.yaml +++ /dev/null @@ -1,5 +0,0 @@ -name: charm -series: ["xenial"] -summary: "test" -description: "test" -maintainers: ["test"] diff --git a/modules/libjuju/tests/integration/key.pem b/modules/libjuju/tests/integration/key.pem deleted file mode 100644 index 664123e..0000000 --- a/modules/libjuju/tests/integration/key.pem +++ /dev/null @@ -1,52 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQDZJHzSOEN3iCK1 -2Rd8cZw/QW6dOoz3qBKJFEqwvfC+V8ArcbPTGn1j6okrpD6twNKT3EaGxTruaPqb -uvtaRY3JrSiArKfgsB1edviH6M7zZYUTFBT29iMVPOrYKTHAQDOcC8/OQ6DUruBI -zpLtKwfGdBjH777nO2mLQ0KCiUknBxllhU2iU5rV5piikj7cj2eTwkDr9kJoObo7 -OEUt0fHauFkQHeRfGM0QYJrT2Ea48IBIw+xk6l5bfgjqp+fkYFhSB9KUNcR5LJQc -wQcs7MoyyT3Vf7oDSGZOhjTsywMN8p5f/cRhoUQDqwbClUD7N5YmaBl1aisR8jYF -ofFefE4IhQ7kWYmcEA1enEZMTpBkCF6IZEu7guTl6wLMslT60aFn0DIIMTNYx9x/ -vdz6EahLC8qS8cOd4fUnnqeLToIMP4YDqJSxYHYgE/yFN8oREl516QAPBtqwyjt9 -ocPr1rmhgmx+m0oW/vWX5AJi1IklZvQpW5GUUCGl5rQcLC0tiAcVudY640rl76pQ -WXNNaSFAtgk+2k6237aQPsOotW2aaowrpFEgMbeHUY8y/4f3a6eccZalzmS/co2J -fLxbpeCxSpKZCRiChEhJLMVC2Uf92/lgO6MogD4fVIJylO99HSlUn1m4v9LbAgP+ -ByiCfarnAq38ci/IYsyftcPTWSd2WwIDAQABAoICAFbe9Rz5K2ynxxMvbej4XsUj -vUgjw3/U+s1ik9sPsj/ERXpb+9BJ+b4+d3BBPl4vFU/YQVLrlv8IerJQ5PwhdW8o -2lpYOLV4X9eKCzX8WscfZ1TRpO2EXVbCz0V5fZDnXn5gb1uazL4p1ErscfV2UJ8B -lWRvstU5fKkdWH92wxBdE7j80qlNf1Vx8sCfd4yvxoVjoquEEt81sR6+DVcedf7F -38PF4bZ16pxRub9k+C5G8VurHmjlJqi9zH1sfSZtsQfoX0OyGw9LWVoDk4ZSmTYm -Mpm2hsmHbn6dzJCrS2aKGPhYQve4F8jL5GF2as/WVji5Tu4dcmu0lg480p61ZlXf -Q58qw4uXMU2KfiuLKyTV8MlmktMhDiHAmzAbIXskdmV2BNlIwyudsVXT1QD0BKH5 -I+8edW1OPLK72/kt9VT1paRbTiCL0NWk99QCL1VxPB4FupQQm1Hk2KnMrUfjFUOm -9cuOP1S0HcHCMHN4+y0UCmn3phrWmfI/KlDZCxmSd8gvNwKkPSW5ONuYmZlpE5Wm -s7FwRoAGGvSsjXOC3N6m48b0dQNLnMvSXQIRiDbnTzChNJ3q7y9u0o/dqATCtelx -S7ouVKxHqSdy9G8WK0XQAFqny2dcoHZiiuxWboF9p1zEia43pdFVy/7g08KjSBQ1 -vzVGhUDYtquqq0MociWBAoIBAQD6C8ZDBU8VWwOIPL+zX8/4MNp0PfcJrOwk1vF0 -J0aPRRvqx0g6yhzjrCtWNrQnHV6Oc9FBg/NPAthAAQWYEwQr77RJWRtle/n7cH2A -qFkAL0nYokti7TdFMe82a8hlnuo9GQl340t95j03/HDAtrqQ0xFi32Rpp54MgHLU -FW2AYTv7CLV18p7yHIMdn0ESORPxlc/hYuuyL6ZPm/7DF/bbieY1+ZVAzn1ls17m -dQctagpInRC2EDL17lQK86Mh7PGdVTIaJMFvzdyuIn8qswe1n3FA0OCL7VBfMjE8 -caUZ3kfGfeNKtkUvGALoXploZhDTmfDs5XQFIoMvwi87lClBAoIBAQDeUCQMyPUC -TcfDKmeKAiGjm4Amtb+rvA3SbPSJvteOaohyqKFswUf9fNCrJim1QVpQ+PtArlAx -WK9X8g44+OOWx2moLxlptzjzsYEXJYzUtIjuFE10xiGJEvthmWAZ+EB7Gexu7696 -M4LcWkAivCAwcM5e2Gr3DtMMS4E9fxNZfEn7RNFtTs6Cit/R2VITlbYnECSU13FY -DI37g8umCR01pTZ/7VVUwVMeq/irFKwTfkHoF2Fyxbp8CT91ydRsYCBs395xcEH1 -2rblBXUlGj01eVZtTX2HVSS78o/ak+Q3WJQvh1Hds8yS7QdirkOpmGGzvwpIhjzB -ztHsgjbFt3ybAoIBAA1HAsgcSA7CPnXFhAhqVgi/z1nM0Ila/U8XesrIKx8AdHML -EfLNOKt+QO7bCMXq8VJvI/VupETVydXcOAfTOq16lQAwExxYcPXBC2kBh3hTCoDO -XWJrZjvuYt1o68M5pQaJhc8v6ppM14NZjEMvcMiv7IRriFFz7RiM2YwZdy8R+rVh -yQDyWS5SBURVaIcnML/rTJaTQiC8FwCzL9v8MceGkwrareo7DL2RwMBMBo2Ky/D/ -JhwE0C/u79eFCGyMwGeyVm689OiS7dzxR/9kckxaoxDmBoZnm5TyfVrQTgwJmZYY -qTEWbKYLiFv+afb5NHuH+RsbNAXxxzWKAigPvgECggEAYD8H7HUQBchQxMDWBJy5 -nZBT4e5rpdkLjt9W20/BGMosep9hC6l+FlN0L7Sc9/jsNgQlGrKcy1Be0U9dMvMl -7QA2UPbbJLaLNI3TmobKOshSQ+iMRBMHL8YFCRMS1QtyNxlZEAo6yUgFzopQG/mg -YfhkkBFX9c/4NOl3cX1TjjlN+jeoB4/HviKLldllPE9jhfPqMno3euwsiAheIWru -t2vodWf1unTcHHpNdRvFB8dwlx+QM9VA0DRcwgz4J1dSknA1aJ02IU9oQSyks8Rx -XXZDoZybzPxio+/2saW3dvKlbRJDsh0GY1G1EdbqOkFbgyshM5bSNQHqRl91gRHY -IwKCAQEApF790G7J1IgNrLBxLlzEkVcv2Az8QDHviC8MxdVerGj62E5fGUb44Z+p -SM2vjjtL7yeTPuH0K7bbVtDMZoj3l81BHY6OnmFTLPSlMnUYXs7aVjbIK3EMQtHa -EyNOiwNtIOAUMqQ3C/KXWxdO0J8/kY6b7cvZwj5zDLYt+4j8BN8w8EL0Kgxw9Bd/ -DL++Nz3IqoOoPF0aK7hVTklVzONIdaGL2OjlyESKZOWJR1pypLC9+nUAAFbtPN5Q -8xyG3Rqoo7j697M50LP4ZMCE8WK/uZth4LPU9KWJAJ3FHrKki0qB1zbYXS4OMFbj -hg+Fb1z8af0WL9PCAwsWQMTaSx88tQ== ------END PRIVATE KEY----- diff --git a/modules/libjuju/tests/integration/test_application.py b/modules/libjuju/tests/integration/test_application.py deleted file mode 100644 index b705832..0000000 --- a/modules/libjuju/tests/integration/test_application.py +++ /dev/null @@ -1,134 +0,0 @@ -import asyncio - -import pytest - -from .. import base - -MB = 1 - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_action(event_loop): - async with base.CleanModel() as model: - ubuntu_app = await model.deploy( - 'percona-cluster', - application_name='mysql', - series='xenial', - channel='stable', - config={ - 'tuning-level': 'safest', - }, - constraints={ - 'mem': 256 * MB, - }, - ) - - # update and check app config - await ubuntu_app.set_config({'tuning-level': 'fast'}) - config = await ubuntu_app.get_config() - assert config['tuning-level']['value'] == 'fast' - - # Restore config back to default - await ubuntu_app.reset_config(['tuning-level']) - config = await ubuntu_app.get_config() - assert config['tuning-level']['value'] == 'safest' - - # update and check app constraints - await ubuntu_app.set_constraints({'mem': 512 * MB}) - constraints = await ubuntu_app.get_constraints() - assert constraints['mem'] == 512 * MB - - # check action definitions - actions = await ubuntu_app.get_actions() - assert 'backup' in actions.keys() - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_add_units(event_loop): - from juju.unit import Unit - - async with base.CleanModel() as model: - app = await model.deploy( - 'ubuntu-0', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - units = await app.add_units(count=2) - - assert len(units) == 2 - for unit in units: - assert isinstance(unit, Unit) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_upgrade_charm(event_loop): - async with base.CleanModel() as model: - app = await model.deploy('ubuntu-0') - assert app.data['charm-url'] == 'cs:ubuntu-0' - await app.upgrade_charm() - assert app.data['charm-url'].startswith('cs:ubuntu-') - assert app.data['charm-url'] != 'cs:ubuntu-0' - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_upgrade_charm_channel(event_loop): - async with base.CleanModel() as model: - app = await model.deploy('ubuntu-0') - assert app.data['charm-url'] == 'cs:ubuntu-0' - await app.upgrade_charm(channel='stable') - assert app.data['charm-url'].startswith('cs:ubuntu-') - assert app.data['charm-url'] != 'cs:ubuntu-0' - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_upgrade_charm_revision(event_loop): - async with base.CleanModel() as model: - app = await model.deploy('ubuntu-0') - assert app.data['charm-url'] == 'cs:ubuntu-0' - await app.upgrade_charm(revision=8) - assert app.data['charm-url'] == 'cs:ubuntu-8' - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_upgrade_charm_switch(event_loop): - async with base.CleanModel() as model: - app = await model.deploy('ubuntu-0') - assert app.data['charm-url'] == 'cs:ubuntu-0' - await app.upgrade_charm(switch='ubuntu-8') - assert app.data['charm-url'] == 'cs:ubuntu-8' - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_upgrade_charm_resource(event_loop): - async with base.CleanModel() as model: - app = await model.deploy('cs:~cynerva/upgrade-charm-resource-test-1') - - def units_ready(): - if not app.units: - return False - unit = app.units[0] - return unit.workload_status == 'active' and \ - unit.agent_status == 'idle' - - await asyncio.wait_for(model.block_until(units_ready), timeout=480) - unit = app.units[0] - expected_message = 'I have no resource.' - assert unit.workload_status_message == expected_message - - await app.upgrade_charm(revision=2) - await asyncio.wait_for( - model.block_until( - lambda: unit.workload_status_message != 'I have no resource.' - ), - timeout=60 - ) - expected_message = 'My resource: I am the resource.' - assert app.units[0].workload_status_message == expected_message diff --git a/modules/libjuju/tests/integration/test_client.py b/modules/libjuju/tests/integration/test_client.py deleted file mode 100644 index 240c471..0000000 --- a/modules/libjuju/tests/integration/test_client.py +++ /dev/null @@ -1,21 +0,0 @@ -from juju.client import client - -import pytest - -from .. import base - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_user_info(event_loop): - async with base.CleanModel() as model: - controller_conn = await model.connection().controller() - - um = client.UserManagerFacade.from_connection(controller_conn) - result = await um.UserInfo( - [client.Entity('user-admin')], True) - await controller_conn.close() - - assert isinstance(result, client.UserInfoResults) - for r in result.results: - assert isinstance(r, client.UserInfoResult) diff --git a/modules/libjuju/tests/integration/test_connection.py b/modules/libjuju/tests/integration/test_connection.py deleted file mode 100644 index 6647a03..0000000 --- a/modules/libjuju/tests/integration/test_connection.py +++ /dev/null @@ -1,236 +0,0 @@ -import asyncio -import http -import logging -import socket -import ssl -from contextlib import closing -from pathlib import Path - -from juju.client import client -from juju.client.connection import Connection -from juju.controller import Controller -from juju.utils import run_with_interrupt - -import pytest -import websockets - -from .. import base - - -logger = logging.getLogger(__name__) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_monitor(event_loop): - async with base.CleanModel() as model: - conn = model.connection() - assert conn.monitor.status == 'connected' - await conn.close() - - assert conn.monitor.status == 'disconnected' - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_monitor_catches_error(event_loop): - - async with base.CleanModel() as model: - conn = model.connection() - - assert conn.monitor.status == 'connected' - try: - async with conn.monitor.reconnecting: - await conn.ws.close() - await asyncio.sleep(1) - assert conn.monitor.status == 'error' - finally: - await conn.close() - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_full_status(event_loop): - async with base.CleanModel() as model: - await model.deploy( - 'ubuntu-0', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - - c = client.ClientFacade.from_connection(model.connection()) - - await c.FullStatus(None) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_reconnect(event_loop): - async with base.CleanModel() as model: - kwargs = model.connection().connect_params() - conn = await Connection.connect(**kwargs) - try: - await asyncio.sleep(0.1) - assert conn.is_open - await conn.ws.close() - assert not conn.is_open - await model.block_until(lambda: conn.is_open, timeout=3) - finally: - await conn.close() - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_redirect(event_loop): - controller = Controller() - await controller.connect() - kwargs = controller.connection().connect_params() - await controller.disconnect() - - # websockets.server.logger.setLevel(logging.DEBUG) - # websockets.client.logger.setLevel(logging.DEBUG) - # # websockets.protocol.logger.setLevel(logging.DEBUG) - # logger.setLevel(logging.DEBUG) - - destination = 'wss://{}/api'.format(kwargs['endpoint']) - redirect_statuses = [ - http.HTTPStatus.MOVED_PERMANENTLY, - http.HTTPStatus.FOUND, - http.HTTPStatus.SEE_OTHER, - http.HTTPStatus.TEMPORARY_REDIRECT, - http.HTTPStatus.PERMANENT_REDIRECT, - ] - test_server_cert = Path(__file__).with_name('cert.pem') - kwargs['cacert'] += '\n' + test_server_cert.read_text() - server = RedirectServer(destination, event_loop) - try: - for status in redirect_statuses: - logger.debug('test: starting {}'.format(status)) - server.start(status) - await run_with_interrupt(server.running.wait(), - server.terminated) - if server.exception: - raise server.exception - assert not server.terminated.is_set() - logger.debug('test: started') - kwargs_copy = dict(kwargs, - endpoint='localhost:{}'.format(server.port)) - logger.debug('test: connecting') - conn = await Connection.connect(**kwargs_copy) - logger.debug('test: connected') - await conn.close() - logger.debug('test: stopping') - server.stop() - await server.stopped.wait() - logger.debug('test: stopped') - finally: - server.terminate() - await server.terminated.wait() - - -class RedirectServer: - def __init__(self, destination, loop): - self.destination = destination - self.loop = loop - self._start = asyncio.Event() - self._stop = asyncio.Event() - self._terminate = asyncio.Event() - self.running = asyncio.Event() - self.stopped = asyncio.Event() - self.terminated = asyncio.Event() - if hasattr(ssl, 'PROTOCOL_TLS_SERVER'): - # python 3.6+ - protocol = ssl.PROTOCOL_TLS_SERVER - elif hasattr(ssl, 'PROTOCOL_TLS'): - # python 3.5.3+ - protocol = ssl.PROTOCOL_TLS - else: - # python 3.5.2 - protocol = ssl.PROTOCOL_TLSv1_2 - self.ssl_context = ssl.SSLContext(protocol) - crt_file = Path(__file__).with_name('cert.pem') - key_file = Path(__file__).with_name('key.pem') - self.ssl_context.load_cert_chain(str(crt_file), str(key_file)) - self.status = None - self.port = None - self._task = self.loop.create_task(self.run()) - - def start(self, status): - self.status = status - self.port = self._find_free_port() - self._start.set() - - def stop(self): - self._stop.set() - - def terminate(self): - self._terminate.set() - self.stop() - - @property - def exception(self): - try: - return self._task.exception() - except (asyncio.CancelledError, asyncio.InvalidStateError): - return None - - async def run(self): - logger.debug('server: active') - - async def hello(websocket, path): - await websocket.send('hello') - - async def redirect(path, request_headers): - return self.status, {'Location': self.destination}, b"" - - try: - while not self._terminate.is_set(): - await run_with_interrupt(self._start.wait(), - self._terminate, - loop=self.loop) - if self._terminate.is_set(): - break - self._start.clear() - logger.debug('server: starting {}'.format(self.status)) - try: - async with websockets.serve(ws_handler=hello, - process_request=redirect, - host='localhost', - port=self.port, - ssl=self.ssl_context, - loop=self.loop): - self.stopped.clear() - self.running.set() - logger.debug('server: started') - while not self._stop.is_set(): - await run_with_interrupt( - asyncio.sleep(1, loop=self.loop), - self._stop, - loop=self.loop) - logger.debug('server: tick') - logger.debug('server: stopping') - except asyncio.CancelledError: - break - finally: - self.stopped.set() - self._stop.clear() - self.running.clear() - logger.debug('server: stopped') - logger.debug('server: terminating') - except asyncio.CancelledError: - pass - finally: - self._start.clear() - self._stop.clear() - self._terminate.clear() - self.stopped.set() - self.running.clear() - self.terminated.set() - logger.debug('server: terminated') - - def _find_free_port(self): - with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as s: - s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) - s.bind(('', 0)) - return s.getsockname()[1] diff --git a/modules/libjuju/tests/integration/test_controller.py b/modules/libjuju/tests/integration/test_controller.py deleted file mode 100644 index 6423a98..0000000 --- a/modules/libjuju/tests/integration/test_controller.py +++ /dev/null @@ -1,228 +0,0 @@ -import asyncio -import subprocess -import uuid - -from juju.client.connection import Connection -from juju.client.jujudata import FileJujuData -from juju.controller import Controller -from juju.errors import JujuAPIError - -import pytest - -from .. import base - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_add_remove_user(event_loop): - async with base.CleanController() as controller: - username = 'test{}'.format(uuid.uuid4()) - user = await controller.get_user(username) - assert user is None - user = await controller.add_user(username) - assert user is not None - assert user.secret_key is not None - assert user.username == username - users = await controller.get_users() - assert any(u.username == username for u in users) - await controller.remove_user(username) - user = await controller.get_user(username) - assert user is None - users = await controller.get_users() - assert not any(u.username == username for u in users) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_disable_enable_user(event_loop): - async with base.CleanController() as controller: - username = 'test-disable{}'.format(uuid.uuid4()) - user = await controller.add_user(username) - - await user.disable() - assert not user.enabled - assert user.disabled - - fresh = await controller.get_user(username) # fetch fresh copy - assert not fresh.enabled - assert fresh.disabled - - await user.enable() - assert user.enabled - assert not user.disabled - - fresh = await controller.get_user(username) # fetch fresh copy - assert fresh.enabled - assert not fresh.disabled - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_change_user_password(event_loop): - async with base.CleanController() as controller: - username = 'test-password{}'.format(uuid.uuid4()) - user = await controller.add_user(username) - await user.set_password('password') - # Check that we can connect with the new password. - new_connection = None - try: - kwargs = controller.connection().connect_params() - kwargs['username'] = username - kwargs['password'] = 'password' - new_connection = await Connection.connect(**kwargs) - except JujuAPIError: - raise AssertionError('Unable to connect with new password') - finally: - if new_connection: - await new_connection.close() - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_reset_user_password(event_loop): - async with base.CleanController() as controller: - username = 'test{}'.format(uuid.uuid4()) - user = await controller.add_user(username) - origin_secret_key = user.secret_key - await user.set_password('password') - await controller.reset_user_password(username) - user = await controller.get_user(username) - new_secret_key = user.secret_key - # Check secret key is different after the reset. - assert origin_secret_key != new_secret_key - # Check that we can't connect with the old password. - new_connection = None - try: - kwargs = controller.connection().connect_params() - kwargs['username'] = username - kwargs['password'] = 'password' - new_connection = await Connection.connect(**kwargs) - except JujuAPIError: - pass - finally: - # No connection with old password - assert new_connection is None - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_grant_revoke(event_loop): - async with base.CleanController() as controller: - username = 'test-grant{}'.format(uuid.uuid4()) - user = await controller.add_user(username) - await user.grant('superuser') - assert user.access == 'superuser' - fresh = await controller.get_user(username) # fetch fresh copy - assert fresh.access == 'superuser' - await user.grant('login') # already has 'superuser', so no-op - assert user.access == 'superuser' - fresh = await controller.get_user(username) # fetch fresh copy - assert fresh.access == 'superuser' - await user.revoke() - assert user.access == '' - fresh = await controller.get_user(username) # fetch fresh copy - assert fresh.access == '' - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_list_models(event_loop): - async with base.CleanController() as controller: - async with base.CleanModel() as model: - result = await controller.list_models() - assert model.info.name in result - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_get_model(event_loop): - async with base.CleanController() as controller: - by_name, by_uuid = None, None - model_name = 'test-{}'.format(uuid.uuid4()) - model = await controller.add_model(model_name) - model_uuid = model.info.uuid - await model.disconnect() - try: - by_name = await controller.get_model(model_name) - by_uuid = await controller.get_model(model_uuid) - assert by_name.info.name == model_name - assert by_name.info.uuid == model_uuid - assert by_uuid.info.name == model_name - assert by_uuid.info.uuid == model_uuid - finally: - if by_name: - await by_name.disconnect() - if by_uuid: - await by_uuid.disconnect() - await controller.destroy_model(model_name) - - -async def _wait_for_model(controller, model_name): - while model_name not in await controller.list_models(): - await asyncio.sleep(0.5, loop=controller.loop) - - -async def _wait_for_model_gone(controller, model_name): - while model_name in await controller.list_models(): - await asyncio.sleep(0.5, loop=controller.loop) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_destroy_model_by_name(event_loop): - async with base.CleanController() as controller: - model_name = 'test-{}'.format(uuid.uuid4()) - model = await controller.add_model(model_name) - await model.disconnect() - await asyncio.wait_for(_wait_for_model(controller, - model_name), - timeout=60) - await controller.destroy_model(model_name) - await asyncio.wait_for(_wait_for_model_gone(controller, - model_name), - timeout=60) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_add_destroy_model_by_uuid(event_loop): - async with base.CleanController() as controller: - model_name = 'test-{}'.format(uuid.uuid4()) - model = await controller.add_model(model_name) - model_uuid = model.info.uuid - await model.disconnect() - await asyncio.wait_for(_wait_for_model(controller, - model_name), - timeout=60) - await controller.destroy_model(model_uuid) - await asyncio.wait_for(_wait_for_model_gone(controller, - model_name), - timeout=60) - - -# this test must be run serially because it modifies the login password -@pytest.mark.serial -@base.bootstrapped -@pytest.mark.asyncio -async def test_macaroon_auth(event_loop): - jujudata = FileJujuData() - account = jujudata.accounts()[jujudata.current_controller()] - with base.patch_file('~/.local/share/juju/accounts.yaml'): - if 'password' in account: - # force macaroon auth by "changing" password to current password - result = subprocess.run( - ['juju', 'change-user-password'], - input='{0}\n{0}\n'.format(account['password']), - universal_newlines=True, - stderr=subprocess.PIPE) - assert result.returncode == 0, ('Failed to change password: ' - '{}'.format(result.stderr)) - controller = Controller() - try: - await controller.connect() - assert controller.is_connected() - finally: - if controller.is_connected(): - await controller.disconnect() - async with base.CleanModel(): - pass # create and login to model works diff --git a/modules/libjuju/tests/integration/test_errors.py b/modules/libjuju/tests/integration/test_errors.py deleted file mode 100644 index b10dd06..0000000 --- a/modules/libjuju/tests/integration/test_errors.py +++ /dev/null @@ -1,68 +0,0 @@ -import pytest - -from .. import base - -MB = 1 -GB = 1024 - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_juju_api_error(event_loop): - ''' - Verify that we raise a JujuAPIError for responses with an error in - a top level key (for completely invalid requests). - - ''' - from juju.errors import JujuAPIError - - async with base.CleanModel() as model: - with pytest.raises(JujuAPIError): - await model.add_machine(constraints={'mem': 'foo'}) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_juju_error_in_results_list(event_loop): - ''' - Replicate the code that caused - https://github.com/juju/python-libjuju/issues/67, and verify that - we get a JujuError instead of passing silently by the failure. - - (We don't raise a JujuAPIError, because the request isn't - completely invalid -- it's just passing a tag that doesn't exist.) - - This also verifies that we will raise a JujuError any time there - is an error in one of a list of results. - - ''' - from juju.errors import JujuError - from juju.client import client - - async with base.CleanModel() as model: - ann_facade = client.AnnotationsFacade.from_connection(model.connection()) - - ann = client.EntityAnnotations( - entity='badtag', - annotations={'gui-x': '1', 'gui-y': '1'}, - ) - with pytest.raises(JujuError): - return await ann_facade.Set([ann]) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_juju_error_in_result(event_loop): - ''' - Verify that we raise a JujuError when appropraite when we are - looking at a single result coming back. - - ''' - from juju.errors import JujuError - from juju.client import client - - async with base.CleanModel() as model: - app_facade = client.ApplicationFacade.from_connection(model.connection()) - - with pytest.raises(JujuError): - return await app_facade.GetCharmURL('foo') diff --git a/modules/libjuju/tests/integration/test_macaroon_auth.py b/modules/libjuju/tests/integration/test_macaroon_auth.py deleted file mode 100644 index 9911c41..0000000 --- a/modules/libjuju/tests/integration/test_macaroon_auth.py +++ /dev/null @@ -1,108 +0,0 @@ -import logging -import os - -import macaroonbakery.bakery as bakery -import macaroonbakery.httpbakery as httpbakery -import macaroonbakery.httpbakery.agent as agent -from juju.errors import JujuAPIError -from juju.model import Model - -import pytest - -from .. import base - -log = logging.getLogger(__name__) - - -@base.bootstrapped -@pytest.mark.asyncio -@pytest.mark.xfail -async def test_macaroon_auth(event_loop): - auth_info, username = agent_auth_info() - # Create a bakery client that can do agent authentication. - client = httpbakery.Client( - key=auth_info.key, - interaction_methods=[agent.AgentInteractor(auth_info)], - ) - - async with base.CleanModel(bakery_client=client) as m: - async with await m.get_controller() as c: - await c.grant_model(username, m.info.uuid, 'admin') - async with Model( - jujudata=NoAccountsJujuData(m._connector.jujudata), - bakery_client=client, - ): - pass - - -@base.bootstrapped -@pytest.mark.asyncio -@pytest.mark.xfail -async def test_macaroon_auth_with_bad_key(event_loop): - auth_info, username = agent_auth_info() - # Use a random key rather than the correct key. - auth_info = auth_info._replace(key=bakery.generate_key()) - # Create a bakery client can do agent authentication. - client = httpbakery.Client( - key=auth_info.key, - interaction_methods=[agent.AgentInteractor(auth_info)], - ) - - async with base.CleanModel(bakery_client=client) as m: - async with await m.get_controller() as c: - await c.grant_model(username, m.info.uuid, 'admin') - try: - async with Model( - jujudata=NoAccountsJujuData(m._connector.jujudata), - bakery_client=client, - ): - pytest.fail('Should not be able to connect with invalid key') - except httpbakery.BakeryException: - # We're expecting this because we're using the - # wrong key. - pass - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_macaroon_auth_with_unauthorized_user(event_loop): - auth_info, username = agent_auth_info() - # Create a bakery client can do agent authentication. - client = httpbakery.Client( - key=auth_info.key, - interaction_methods=[agent.AgentInteractor(auth_info)], - ) - async with base.CleanModel(bakery_client=client) as m: - # Note: no grant of rights to the agent user. - try: - async with Model( - jujudata=NoAccountsJujuData(m._connector.jujudata), - bakery_client=client, - ): - pytest.fail('Should not be able to connect without grant') - except (JujuAPIError, httpbakery.DischargeError): - # We're expecting this because we're using the - # wrong user name. - pass - - -def agent_auth_info(): - agent_data = os.environ.get('TEST_AGENTS') - if agent_data is None: - pytest.skip('skipping macaroon_auth because no TEST_AGENTS ' - 'environment variable is set') - auth_info = agent.read_auth_info(agent_data) - if len(auth_info.agents) != 1: - raise Exception('TEST_AGENTS agent data requires exactly one agent') - return auth_info, auth_info.agents[0].username - - -class NoAccountsJujuData: - def __init__(self, jujudata): - self.__jujudata = jujudata - - def __getattr__(self, name): - return getattr(self.__jujudata, name) - - def accounts(self): - return {} diff --git a/modules/libjuju/tests/integration/test_machine.py b/modules/libjuju/tests/integration/test_machine.py deleted file mode 100644 index 070208a..0000000 --- a/modules/libjuju/tests/integration/test_machine.py +++ /dev/null @@ -1,65 +0,0 @@ -import asyncio -from tempfile import NamedTemporaryFile - -import pytest - -from .. import base - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_status(event_loop): - async with base.CleanModel() as model: - await model.deploy( - 'ubuntu-0', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - - await asyncio.wait_for( - model.block_until(lambda: len(model.machines)), - timeout=240) - machine = model.machines['0'] - - assert machine.status in ('allocating', 'pending') - assert machine.agent_status == 'pending' - assert not machine.agent_version - - # there is some inconsistency in the capitalization of status_message - # between different providers - await asyncio.wait_for( - model.block_until( - lambda: (machine.status == 'running' and - machine.status_message.lower() == 'running' and - machine.agent_status == 'started')), - timeout=480) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_scp(event_loop): - # ensure that asyncio.subprocess will work; - try: - asyncio.get_child_watcher().attach_loop(event_loop) - except RuntimeError: - pytest.skip('test_scp will always fail outside of MainThread') - async with base.CleanModel() as model: - await model.add_machine() - await asyncio.wait_for( - model.block_until(lambda: model.machines), - timeout=240) - machine = model.machines['0'] - await asyncio.wait_for( - model.block_until(lambda: (machine.status == 'running' and - machine.agent_status == 'started')), - timeout=480) - - with NamedTemporaryFile() as f: - f.write(b'testcontents') - f.flush() - await machine.scp_to(f.name, 'testfile', scp_opts='-p') - - with NamedTemporaryFile() as f: - await machine.scp_from('testfile', f.name, scp_opts='-p') - assert f.read() == b'testcontents' diff --git a/modules/libjuju/tests/integration/test_model.py b/modules/libjuju/tests/integration/test_model.py deleted file mode 100644 index 58766b4..0000000 --- a/modules/libjuju/tests/integration/test_model.py +++ /dev/null @@ -1,485 +0,0 @@ -import asyncio -import mock -from concurrent.futures import ThreadPoolExecutor -from pathlib import Path -import paramiko - -from juju.client.client import ConfigValue, ApplicationFacade -from juju.model import Model, ModelObserver -from juju.utils import block_until, run_with_interrupt -from juju.errors import JujuError - -import os -import pylxd -import time -import uuid - -import pytest - -from .. import base - - -MB = 1 -GB = 1024 -SSH_KEY = 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsYMJGNGG74HAJha3n2CFmWYsOOaORnJK6VqNy86pj0MIpvRXBzFzVy09uPQ66GOQhTEoJHEqE77VMui7+62AcMXT+GG7cFHcnU8XVQsGM6UirCcNyWNysfiEMoAdZScJf/GvoY87tMEszhZIUV37z8PUBx6twIqMdr31W1J0IaPa+sV6FEDadeLaNTvancDcHK1zuKsL39jzAg7+LYjKJfEfrsQP+lj/EQcjtKqlhVS5kzsJVfx8ZEd0xhW5G7N6bCdKNalS8mKCMaBXJpijNQ82AiyqCIDCRrre2To0/i7pTjRiL0U9f9mV3S4NJaQaokR050w/ZLySFf6F7joJT mathijs@Qrama-Mathijs' # noqa - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_deploy_local_bundle_dir(event_loop): - tests_dir = Path(__file__).absolute().parent.parent - bundle_path = tests_dir / 'bundle' - mini_bundle_file_path = bundle_path / 'mini-bundle.yaml' - - async with base.CleanModel() as model: - await model.deploy(str(bundle_path)) - await model.deploy(str(mini_bundle_file_path)) - - wordpress = model.applications.get('wordpress') - mysql = model.applications.get('mysql') - assert wordpress and mysql - await block_until(lambda: (len(wordpress.units) == 1 and - len(mysql.units) == 1), - timeout=60 * 4) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_deploy_local_bundle_file(event_loop): - tests_dir = Path(__file__).absolute().parent.parent - bundle_path = tests_dir / 'bundle' - mini_bundle_file_path = bundle_path / 'mini-bundle.yaml' - - async with base.CleanModel() as model: - await model.deploy(str(mini_bundle_file_path)) - - dummy_sink = model.applications.get('dummy-sink') - dummy_subordinate = model.applications.get('dummy-subordinate') - assert dummy_sink and dummy_subordinate - await block_until(lambda: (len(dummy_sink.units) == 1 and - len(dummy_subordinate.units) == 1), - timeout=60 * 4) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_deploy_invalid_bundle(event_loop): - tests_dir = Path(__file__).absolute().parent.parent - bundle_path = tests_dir / 'bundle' / 'invalid.yaml' - async with base.CleanModel() as model: - with pytest.raises(JujuError): - await model.deploy(str(bundle_path)) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_deploy_local_charm(event_loop): - from pathlib import Path - tests_dir = Path(__file__).absolute().parent.parent - charm_path = tests_dir / 'charm' - - async with base.CleanModel() as model: - await model.deploy(str(charm_path)) - assert 'charm' in model.applications - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_deploy_invalid_bundle(event_loop): - tests_dir = Path(__file__).absolute().parent.parent - bundle_path = tests_dir / 'bundle' / 'invalid.yaml' - async with base.CleanModel() as model: - with pytest.raises(JujuError): - await model.deploy(str(bundle_path)) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_deploy_local_charm(event_loop): - from pathlib import Path - tests_dir = Path(__file__).absolute().parent.parent - charm_path = tests_dir / 'charm' - - async with base.CleanModel() as model: - await model.deploy(str(charm_path)) - assert 'charm' in model.applications - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_deploy_bundle(event_loop): - async with base.CleanModel() as model: - await model.deploy('bundle/wiki-simple') - - for app in ('wiki', 'mysql'): - assert app in model.applications - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_deploy_channels_revs(event_loop): - async with base.CleanModel() as model: - charm = 'cs:~johnsca/libjuju-test' - stable = await model.deploy(charm, 'a1') - edge = await model.deploy(charm, 'a2', channel='edge') - rev = await model.deploy(charm + '-2', 'a3') - - assert [a.charm_url for a in (stable, edge, rev)] == [ - 'cs:~johnsca/libjuju-test-1', - 'cs:~johnsca/libjuju-test-2', - 'cs:~johnsca/libjuju-test-2', - ] - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_add_machine(event_loop): - from juju.machine import Machine - - async with base.CleanModel() as model: - # add a new default machine - machine1 = await model.add_machine() - - # add a machine with constraints, disks, and series - machine2 = await model.add_machine( - constraints={ - 'mem': 256 * MB, - }, - disks=[{ - 'pool': 'rootfs', - 'size': 10 * GB, - 'count': 1, - }], - series='xenial', - ) - - # add a lxd container to machine2 - machine3 = await model.add_machine( - 'lxd:{}'.format(machine2.id)) - - for m in (machine1, machine2, machine3): - assert isinstance(m, Machine) - - assert len(model.machines) == 3 - - await machine3.destroy(force=True) - await machine2.destroy(force=True) - res = await machine1.destroy(force=True) - - assert res is None - assert len(model.machines) == 0 - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_add_manual_machine_ssh(event_loop): - - # Verify controller is localhost - async with base.CleanController() as controller: - cloud = await controller.get_cloud() - if cloud != "localhost": - pytest.skip('Skipping because test requires lxd.') - - async with base.CleanModel() as model: - private_key_path = os.path.expanduser( - "~/.local/share/juju/ssh/juju_id_rsa" - ) - public_key_path = os.path.expanduser( - "~/.local/share/juju/ssh/juju_id_rsa.pub" - ) - - # connect using the local unix socket - client = pylxd.Client() - - test_name = "test-{}-add-manual-machine-ssh".format( - uuid.uuid4().hex[-4:] - ) - - # create profile w/cloud-init and juju ssh key - public_key = "" - with open(public_key_path, "r") as f: - public_key = f.readline() - - profile = client.profiles.create( - test_name, - config={'user.user-data': '#cloud-config\n' - 'ssh_authorized_keys:\n' - '- {}'.format(public_key)}, - devices={ - 'root': {'path': '/', 'pool': 'default', 'type': 'disk'}, - 'eth0': { - 'nictype': 'bridged', - 'parent': 'lxdbr0', - 'type': 'nic' - } - } - ) - - # create lxc machine - config = { - 'name': test_name, - 'source': { - 'type': 'image', - 'alias': 'xenial', - 'mode': 'pull', - 'protocol': 'simplestreams', - 'server': 'https://cloud-images.ubuntu.com/releases', - }, - 'profiles': [test_name], - } - container = client.containers.create(config, wait=True) - container.start(wait=True) - - def wait_for_network(container, timeout=30): - """Wait for eth0 to have an ipv4 address.""" - starttime = time.time() - while(time.time() < starttime + timeout): - time.sleep(1) - if 'eth0' in container.state().network: - addresses = container.state().network['eth0']['addresses'] - if len(addresses) > 0: - if addresses[0]['family'] == 'inet': - return addresses[0] - return None - - host = wait_for_network(container) - assert host, 'Failed to get address for machine' - - # HACK: We need to give sshd a chance to bind to the interface, - # and pylxd's container.execute seems to be broken and fails and/or - # hangs trying to properly check if the service is up. - time.sleep(5) - - for attempt in range(1, 4): - try: - # add a new manual machine - machine1 = await model.add_machine(spec='ssh:{}@{}:{}'.format( - "ubuntu", - host['address'], - private_key_path, - )) - except paramiko.ssh_exception.NoValidConnectionsError: - if attempt == 3: - raise - # retry the ssh connection a few times if it fails - time.sleep(attempt * 5) - else: - break - - assert len(model.machines) == 1 - - res = await machine1.destroy(force=True) - - assert res is None - assert len(model.machines) == 0 - - container.stop(wait=True) - container.delete(wait=True) - - profile.delete() - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_relate(event_loop): - from juju.relation import Relation - - async with base.CleanModel() as model: - await model.deploy( - 'ubuntu', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - await model.deploy( - 'nrpe', - application_name='nrpe', - series='trusty', - channel='stable', - # subordinates must be deployed without units - num_units=0, - ) - - relation_added = asyncio.Event() - timeout = asyncio.Event() - - class TestObserver(ModelObserver): - async def on_relation_add(self, delta, old, new, model): - if set(new.key.split()) == {'nrpe:general-info', - 'ubuntu:juju-info'}: - relation_added.set() - event_loop.call_later(2, timeout.set) - - model.add_observer(TestObserver()) - - real_app_facade = ApplicationFacade.from_connection(model.connection()) - mock_app_facade = mock.MagicMock() - - async def mock_AddRelation(*args): - # force response delay from AddRelation to test race condition - # (see https://github.com/juju/python-libjuju/issues/191) - result = await real_app_facade.AddRelation(*args) - await relation_added.wait() - return result - - mock_app_facade.AddRelation = mock_AddRelation - - with mock.patch.object(ApplicationFacade, 'from_connection', - return_value=mock_app_facade): - my_relation = await run_with_interrupt(model.add_relation( - 'ubuntu', - 'nrpe', - ), timeout, loop=event_loop) - - assert isinstance(my_relation, Relation) - - -async def _deploy_in_loop(new_loop, model_name, jujudata): - new_model = Model(new_loop, jujudata=jujudata) - await new_model.connect(model_name) - try: - await new_model.deploy('cs:xenial/ubuntu') - assert 'ubuntu' in new_model.applications - finally: - await new_model.disconnect() - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_explicit_loop_threaded(event_loop): - async with base.CleanModel() as model: - model_name = model.info.name - new_loop = asyncio.new_event_loop() - with ThreadPoolExecutor(1) as executor: - f = executor.submit( - new_loop.run_until_complete, - _deploy_in_loop(new_loop, - model_name, - model._connector.jujudata)) - f.result() - await model._wait_for_new('application', 'ubuntu') - assert 'ubuntu' in model.applications - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_store_resources_charm(event_loop): - async with base.CleanModel() as model: - ghost = await model.deploy('cs:ghost-19') - assert 'ghost' in model.applications - terminal_statuses = ('active', 'error', 'blocked') - await model.block_until( - lambda: ( - len(ghost.units) > 0 and - ghost.units[0].workload_status in terminal_statuses) - ) - # ghost will go in to blocked (or error, for older - # charm revs) if the resource is missing - assert ghost.units[0].workload_status == 'active' - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_store_resources_bundle(event_loop): - async with base.CleanModel() as model: - bundle = str(Path(__file__).parent / 'bundle') - await model.deploy(bundle) - assert 'ghost' in model.applications - ghost = model.applications['ghost'] - terminal_statuses = ('active', 'error', 'blocked') - await model.block_until( - lambda: ( - len(ghost.units) > 0 and - ghost.units[0].workload_status in terminal_statuses) - ) - # ghost will go in to blocked (or error, for older - # charm revs) if the resource is missing - assert ghost.units[0].workload_status == 'active' - resources = await ghost.get_resources() - assert resources['ghost-stable'].revision >= 12 - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_store_resources_bundle_revs(event_loop): - async with base.CleanModel() as model: - bundle = str(Path(__file__).parent / 'bundle/bundle-resource-rev.yaml') - await model.deploy(bundle) - assert 'ghost' in model.applications - ghost = model.applications['ghost'] - terminal_statuses = ('active', 'error', 'blocked') - await model.block_until( - lambda: ( - len(ghost.units) > 0 and - ghost.units[0].workload_status in terminal_statuses) - ) - # ghost will go in to blocked (or error, for older - # charm revs) if the resource is missing - assert ghost.units[0].workload_status == 'active' - resources = await ghost.get_resources() - assert resources['ghost-stable'].revision == 11 - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_ssh_key(event_loop): - async with base.CleanModel() as model: - await model.add_ssh_key('admin', SSH_KEY) - result = await model.get_ssh_key(True) - result = result.serialize()['results'][0].serialize()['result'] - assert SSH_KEY in result - await model.remove_ssh_key('admin', SSH_KEY) - result = await model.get_ssh_key(True) - result = result.serialize()['results'][0].serialize()['result'] - assert result is None - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_get_machines(event_loop): - async with base.CleanModel() as model: - result = await model.get_machines() - assert isinstance(result, list) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_watcher_reconnect(event_loop): - async with base.CleanModel() as model: - await model.connection().ws.close() - await block_until(model.is_connected, timeout=3) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_config(event_loop): - async with base.CleanModel() as model: - await model.set_config({ - 'extra-info': 'booyah', - 'test-mode': ConfigValue(value=True), - }) - result = await model.get_config() - assert 'extra-info' in result - assert result['extra-info'].source == 'model' - assert result['extra-info'].value == 'booyah' - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_set_constraints(event_loop): - async with base.CleanModel() as model: - await model.set_constraints({'cpu-power': 1}) - cons = await model.get_constraints() - assert cons['cpu_power'] == 1 - -# @base.bootstrapped -# @pytest.mark.asyncio -# async def test_grant(event_loop) -# async with base.CleanController() as controller: -# await controller.add_user('test-model-grant') -# await controller.grant('test-model-grant', 'superuser') -# async with base.CleanModel() as model: -# await model.grant('test-model-grant', 'admin') -# assert model.get_user('test-model-grant')['access'] == 'admin' -# await model.grant('test-model-grant', 'login') -# assert model.get_user('test-model-grant')['access'] == 'login' diff --git a/modules/libjuju/tests/integration/test_unit.py b/modules/libjuju/tests/integration/test_unit.py deleted file mode 100644 index bb34969..0000000 --- a/modules/libjuju/tests/integration/test_unit.py +++ /dev/null @@ -1,99 +0,0 @@ -import asyncio -from tempfile import NamedTemporaryFile - -import pytest - -from .. import base - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_run(event_loop): - from juju.action import Action - - async with base.CleanModel() as model: - app = await model.deploy( - 'ubuntu-0', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - - for unit in app.units: - action = await unit.run('unit-get public-address') - assert isinstance(action, Action) - assert 'Stdout' in action.results - break - - for unit in app.units: - action = await unit.run('sleep 1', timeout=0.5) - assert isinstance(action, Action) - assert action.status == 'failed' - break - - for unit in app.units: - action = await unit.run('sleep 0.5', timeout=2) - assert isinstance(action, Action) - assert action.status == 'completed' - break - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_run_action(event_loop): - async def run_action(unit): - # unit.run() returns a juju.action.Action instance - action = await unit.run_action('add-repo', repo='myrepo') - # wait for the action to complete - return await action.wait() - - async with base.CleanModel() as model: - app = await model.deploy( - 'git', - application_name='git', - series='trusty', - channel='stable', - ) - - for unit in app.units: - action = await run_action(unit) - assert action.results == {'dir': '/var/git/myrepo.git'} - out = await model.get_action_output(action.entity_id, wait=5) - assert out == {'dir': '/var/git/myrepo.git'} - status = await model.get_action_status(uuid_or_prefix=action.entity_id) - assert status[action.entity_id] == 'completed' - break - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_scp(event_loop): - # ensure that asyncio.subprocess will work; - try: - asyncio.get_child_watcher().attach_loop(event_loop) - except RuntimeError: - pytest.skip('test_scp will always fail outside of MainThread') - async with base.CleanModel() as model: - app = await model.deploy('ubuntu') - - await asyncio.wait_for( - model.block_until(lambda: app.units), - timeout=60) - unit = app.units[0] - await asyncio.wait_for( - model.block_until(lambda: unit.machine), - timeout=60) - machine = unit.machine - await asyncio.wait_for( - model.block_until(lambda: (machine.status == 'running' and - machine.agent_status == 'started')), - timeout=480) - - with NamedTemporaryFile() as f: - f.write(b'testcontents') - f.flush() - await unit.scp_to(f.name, 'testfile') - - with NamedTemporaryFile() as f: - await unit.scp_from('testfile', f.name) - assert f.read() == b'testcontents' diff --git a/modules/libjuju/tests/unit/__init__.py b/modules/libjuju/tests/unit/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/modules/libjuju/tests/unit/test_client.py b/modules/libjuju/tests/unit/test_client.py deleted file mode 100644 index 1d18bf9..0000000 --- a/modules/libjuju/tests/unit/test_client.py +++ /dev/null @@ -1,26 +0,0 @@ -""" -Tests for generated client code - -""" - -import mock -from juju.client import client - - -def test_basics(): - assert client.CLIENTS - for i in range(1, 5): # Assert versions 1-4 in client dict - assert str(i) in client.CLIENTS - - -def test_from_connection(): - connection = mock.Mock() - connection.facades = {"Action": 2} - action_facade = client.ActionFacade.from_connection(connection) - assert action_facade - - -def test_to_json(): - uml = client.UserModelList([client.UserModel()]) - assert uml.to_json() == ('{"user-models": [{"last-connection": null, ' - '"model": null}]}') diff --git a/modules/libjuju/tests/unit/test_connection.py b/modules/libjuju/tests/unit/test_connection.py deleted file mode 100644 index 0925d84..0000000 --- a/modules/libjuju/tests/unit/test_connection.py +++ /dev/null @@ -1,65 +0,0 @@ -import asyncio -import json -from collections import deque - -import mock -from juju.client.connection import Connection -from websockets.exceptions import ConnectionClosed - -import pytest - -from .. import base - - -class WebsocketMock: - def __init__(self, responses): - super().__init__() - self.responses = deque(responses) - self.open = True - - async def send(self, message): - pass - - async def recv(self): - if not self.responses: - await asyncio.sleep(1) # delay to give test time to finish - raise ConnectionClosed(0, 'ran out of responses') - return json.dumps(self.responses.popleft()) - - async def close(self): - self.open = False - - -@pytest.mark.asyncio -async def test_out_of_order(event_loop): - ws = WebsocketMock([ - {'request-id': 1}, - {'request-id': 3}, - {'request-id': 2}, - ]) - expected_responses = [ - {'request-id': 1}, - {'request-id': 2}, - {'request-id': 3}, - ] - minimal_facades = [{'name': 'Pinger', 'versions': [1]}] - con = None - try: - with \ - mock.patch('websockets.connect', base.AsyncMock(return_value=ws)), \ - mock.patch( - 'juju.client.connection.Connection.login', - base.AsyncMock(return_value={'response': { - 'facades': minimal_facades, - }}), - ), \ - mock.patch('juju.client.connection.Connection._get_ssl'), \ - mock.patch('juju.client.connection.Connection._pinger', base.AsyncMock()): - con = await Connection.connect('0.1.2.3:999') - actual_responses = [] - for i in range(3): - actual_responses.append(await con.rpc({'version': 1})) - assert actual_responses == expected_responses - finally: - if con: - await con.close() diff --git a/modules/libjuju/tests/unit/test_constraints.py b/modules/libjuju/tests/unit/test_constraints.py deleted file mode 100644 index 3c52090..0000000 --- a/modules/libjuju/tests/unit/test_constraints.py +++ /dev/null @@ -1,57 +0,0 @@ -# -# Test our constraints parser -# - -import unittest - -from juju import constraints - - -class TestConstraints(unittest.TestCase): - - def test_mem_regex(self): - m = constraints.MEM - self.assertTrue(m.match("10G")) - self.assertTrue(m.match("1G")) - self.assertFalse(m.match("1Gb")) - self.assertFalse(m.match("a1G")) - self.assertFalse(m.match("1000")) - - def test_normalize_key(self): - _ = constraints.normalize_key - - self.assertEqual(_("test-key"), "test_key") - self.assertEqual(_("test-key "), "test_key") - self.assertEqual(_(" test-key"), "test_key") - self.assertEqual(_("TestKey"), "test_key") - self.assertEqual(_("testKey"), "test_key") - - def test_normalize_val(self): - _ = constraints.normalize_value - - self.assertEqual(_("10G"), 10 * 1024) - self.assertEqual(_("10M"), 10) - self.assertEqual(_("10"), 10) - self.assertEqual(_("foo,bar"), "foo,bar") - - def test_normalize_list_val(self): - _ = constraints.normalize_list_value - - self.assertEqual(_("foo"), ["foo"]) - self.assertEqual(_("foo,bar"), ["foo", "bar"]) - - def test_parse_constraints(self): - _ = constraints.parse - - self.assertEqual( - _("mem=10G"), - {"mem": 10 * 1024} - ) - - self.assertEqual( - _("mem=10G foo=bar,baz tags=tag1 spaces=space1,space2"), - {"mem": 10 * 1024, - "foo": "bar,baz", - "tags": ["tag1"], - "spaces": ["space1", "space2"]} - ) diff --git a/modules/libjuju/tests/unit/test_controller.py b/modules/libjuju/tests/unit/test_controller.py deleted file mode 100644 index b95b5ee..0000000 --- a/modules/libjuju/tests/unit/test_controller.py +++ /dev/null @@ -1,140 +0,0 @@ -import asynctest -import mock -from pathlib import Path -from tempfile import NamedTemporaryFile - -from juju.controller import Controller -from juju.client import client - -from .. import base - - -class TestControllerConnect(asynctest.TestCase): - @asynctest.patch('juju.client.connector.Connector.connect_controller') - async def test_no_args(self, mock_connect_controller): - c = Controller() - await c.connect() - mock_connect_controller.assert_called_once_with(None) - - @asynctest.patch('juju.client.connector.Connector.connect_controller') - async def test_with_controller_name(self, mock_connect_controller): - c = Controller() - await c.connect(controller_name='foo') - mock_connect_controller.assert_called_once_with('foo') - - @asynctest.patch('juju.client.connector.Connector.connect') - async def test_with_endpoint_and_no_auth(self, mock_connect): - c = Controller() - with self.assertRaises(TypeError): - await c.connect(endpoint='0.1.2.3:4566') - self.assertEqual(mock_connect.call_count, 0) - - @asynctest.patch('juju.client.connector.Connector.connect') - async def test_with_endpoint_and_userpass(self, mock_connect): - c = Controller() - with self.assertRaises(TypeError): - await c.connect(endpoint='0.1.2.3:4566', username='dummy') - await c.connect(endpoint='0.1.2.3:4566', - username='user', - password='pass') - mock_connect.assert_called_once_with(endpoint='0.1.2.3:4566', - username='user', - password='pass') - - @asynctest.patch('juju.client.connector.Connector.connect') - async def test_with_endpoint_and_bakery_client(self, mock_connect): - c = Controller() - await c.connect(endpoint='0.1.2.3:4566', bakery_client='bakery') - mock_connect.assert_called_once_with(endpoint='0.1.2.3:4566', - bakery_client='bakery') - - @asynctest.patch('juju.client.connector.Connector.connect') - async def test_with_endpoint_and_macaroons(self, mock_connect): - c = Controller() - await c.connect(endpoint='0.1.2.3:4566', - macaroons=['macaroon']) - mock_connect.assert_called_with(endpoint='0.1.2.3:4566', - macaroons=['macaroon']) - await c.connect(endpoint='0.1.2.3:4566', - bakery_client='bakery', - macaroons=['macaroon']) - mock_connect.assert_called_with(endpoint='0.1.2.3:4566', - bakery_client='bakery', - macaroons=['macaroon']) - - @asynctest.patch('juju.client.connector.Connector.connect_controller') - @asynctest.patch('juju.client.connector.Connector.connect') - async def test_with_posargs(self, mock_connect, mock_connect_controller): - c = Controller() - await c.connect('foo') - mock_connect_controller.assert_called_once_with('foo') - with self.assertRaises(TypeError): - await c.connect('endpoint', 'user') - await c.connect('endpoint', 'user', 'pass') - mock_connect.assert_called_once_with(endpoint='endpoint', - username='user', - password='pass') - await c.connect('endpoint', 'user', 'pass', 'cacert', 'bakery', - 'macaroons', 'loop', 'max_frame_size') - mock_connect.assert_called_with(endpoint='endpoint', - username='user', - password='pass', - cacert='cacert', - bakery_client='bakery', - macaroons='macaroons', - loop='loop', - max_frame_size='max_frame_size') - - @asynctest.patch('juju.client.client.CloudFacade') - async def test_file_cred_v2(self, mock_cf): - with NamedTemporaryFile() as tempfile: - tempfile.close() - temppath = Path(tempfile.name) - temppath.write_text('cred-test') - cred = client.CloudCredential(auth_type='jsonfile', - attrs={'file': tempfile.name}) - jujudata = mock.MagicMock() - c = Controller(jujudata=jujudata) - c._connector = base.AsyncMock() - up_creds = base.AsyncMock() - cloud_facade = mock_cf.from_connection() - cloud_facade.version = 2 - cloud_facade.UpdateCredentials = up_creds - await c.add_credential( - name='name', - credential=cred, - cloud='cloud', - owner='owner', - ) - assert up_creds.called - new_cred = up_creds.call_args[0][0][0].credential - assert cred.attrs['file'] == tempfile.name - assert new_cred.attrs['file'] == 'cred-test' - - @asynctest.patch('juju.client.client.CloudFacade') - async def test_file_cred_v3(self, mock_cf): - with NamedTemporaryFile() as tempfile: - tempfile.close() - temppath = Path(tempfile.name) - temppath.write_text('cred-test') - cred = client.CloudCredential(auth_type='jsonfile', - attrs={'file': tempfile.name}) - jujudata = mock.MagicMock() - c = Controller(jujudata=jujudata) - c._connector = base.AsyncMock() - up_creds = base.AsyncMock() - cloud_facade = mock_cf.from_connection() - cloud_facade.version = 3 - cloud_facade.UpdateCredentialsCheckModels = up_creds - await c.add_credential( - name='name', - credential=cred, - cloud='cloud', - owner='owner', - force=True, - ) - assert up_creds.called - assert up_creds.call_args[1]['force'] - new_cred = up_creds.call_args[1]['credentials'][0].credential - assert cred.attrs['file'] == tempfile.name - assert new_cred.attrs['file'] == 'cred-test' diff --git a/modules/libjuju/tests/unit/test_gocookies.py b/modules/libjuju/tests/unit/test_gocookies.py deleted file mode 100644 index 033a0e9..0000000 --- a/modules/libjuju/tests/unit/test_gocookies.py +++ /dev/null @@ -1,244 +0,0 @@ -""" -Tests for the gocookies code. -""" -import os -import shutil -import tempfile -import unittest -import urllib.request - -import pyrfc3339 -from juju.client.gocookies import GoCookieJar - -# cookie_content holds the JSON contents of a Go-produced -# cookie file (reformatted so it's not all on one line but -# otherwise unchanged). -cookie_content = """ -[ - { - "CanonicalHost": "bar.com", - "Creation": "2017-11-17T08:53:55.088820092Z", - "Domain": "bar.com", - "Expires": "2345-11-15T18:16:08Z", - "HostOnly": true, - "HttpOnly": false, - "LastAccess": "2017-11-17T08:53:55.088822562Z", - "Name": "bar", - "Path": "/", - "Persistent": true, - "Secure": false, - "Updated": "2017-11-17T08:53:55.088822562Z", - "Value": "bar-value" - }, - { - "CanonicalHost": "x.foo.com", - "Creation": "2017-11-17T08:53:55.088814857Z", - "Domain": "x.foo.com", - "Expires": "2345-11-15T18:16:05Z", - "HostOnly": true, - "HttpOnly": false, - "LastAccess": "2017-11-17T08:53:55.088884015Z", - "Name": "foo", - "Path": "/path", - "Persistent": true, - "Secure": false, - "Updated": "2017-11-17T08:53:55.088814857Z", - "Value": "foo-path-value" - }, - { - "CanonicalHost": "x.foo.com", - "Creation": "2017-11-17T08:53:55.088814857Z", - "Domain": "foo.com", - "Expires": "2345-11-15T18:16:06Z", - "HostOnly": false, - "HttpOnly": false, - "LastAccess": "2017-11-17T08:53:55.088919437Z", - "Name": "foo4", - "Path": "/path", - "Persistent": true, - "Secure": false, - "Updated": "2017-11-17T08:53:55.088814857Z", - "Value": "foo4-value" - }, - { - "CanonicalHost": "x.foo.com", - "Creation": "2017-11-17T08:53:55.088790709Z", - "Domain": "x.foo.com", - "Expires": "2345-11-15T18:16:01Z", - "HostOnly": true, - "HttpOnly": false, - "LastAccess": "2017-11-17T08:53:55.088884015Z", - "Name": "foo", - "Path": "/", - "Persistent": true, - "Secure": false, - "Updated": "2017-11-17T08:53:55.088790709Z", - "Value": "foo-value" - }, - { - "CanonicalHost": "x.foo.com", - "Creation": "2017-11-17T08:53:55.088790709Z", - "Domain": "foo.com", - "Expires": "2345-11-15T18:16:02Z", - "HostOnly": false, - "HttpOnly": false, - "LastAccess": "2017-11-17T08:53:55.088919437Z", - "Name": "foo1", - "Path": "/", - "Persistent": true, - "Secure": false, - "Updated": "2017-11-17T08:53:55.088790709Z", - "Value": "foo1-value" - }, - { - "CanonicalHost": "x.foo.com", - "Creation": "2017-11-17T08:53:55.088790709Z", - "Domain": "x.foo.com", - "Expires": "2345-11-15T18:16:03Z", - "HostOnly": true, - "HttpOnly": false, - "LastAccess": "2017-11-17T08:53:55.088850252Z", - "Name": "foo2", - "Path": "/", - "Persistent": true, - "Secure": true, - "Updated": "2017-11-17T08:53:55.088790709Z", - "Value": "foo2-value" - }, - { - "CanonicalHost": "x.foo.com", - "Creation": "2017-11-17T08:53:55.088790709Z", - "Domain": "foo.com", - "Expires": "2345-11-15T18:16:04Z", - "HostOnly": false, - "HttpOnly": false, - "LastAccess": "2017-11-17T08:53:55.088919437Z", - "Name": "foo3", - "Path": "/", - "Persistent": true, - "Secure": false, - "Updated": "2017-11-17T08:53:55.088790709Z", - "Value": "foo3-value" - } -] -""" - -# cookie_content_queries holds a set of queries -# that were automatically generated by running -# the queries on the above cookie_content data -# and printing the results. -cookie_content_queries = [ - ('http://x.foo.com', [ - ('foo', 'foo-value'), - ('foo1', 'foo1-value'), - ('foo3', 'foo3-value'), - ]), - ('https://x.foo.com', [ - ('foo', 'foo-value'), - ('foo1', 'foo1-value'), - ('foo2', 'foo2-value'), - ('foo3', 'foo3-value'), - ]), - ('http://arble.foo.com', [ - ('foo1', 'foo1-value'), - ('foo3', 'foo3-value'), - ]), - ('http://arble.com', [ - ]), - ('http://x.foo.com/path/x', [ - ('foo', 'foo-path-value'), - ('foo4', 'foo4-value'), - ('foo', 'foo-value'), - ('foo1', 'foo1-value'), - ('foo3', 'foo3-value'), - ]), - ('http://arble.foo.com/path/x', [ - ('foo4', 'foo4-value'), - ('foo1', 'foo1-value'), - ('foo3', 'foo3-value'), - ]), - ('http://foo.com/path/x', [ - ('foo4', 'foo4-value'), - ('foo1', 'foo1-value'), - ('foo3', 'foo3-value'), - ]), -] - - -class TestGoCookieJar(unittest.TestCase): - def setUp(self): - self.dir = tempfile.mkdtemp() - - def tearDown(self): - shutil.rmtree(self.dir) - - def test_readcookies(self): - jar = self.load_jar(cookie_content) - self.assert_jar_queries(jar, cookie_content_queries) - - def test_roundtrip(self): - jar = self.load_jar(cookie_content) - filename2 = os.path.join(self.dir, 'cookies2') - jar.save(filename=filename2) - jar = GoCookieJar() - jar.load(filename=filename2) - self.assert_jar_queries(jar, cookie_content_queries) - - def test_expiry_time(self): - content = '''[ - { - "CanonicalHost": "bar.com", - "Creation": "2017-11-17T08:53:55.088820092Z", - "Domain": "bar.com", - "Expires": "2345-11-15T18:16:08Z", - "HostOnly": true, - "HttpOnly": false, - "LastAccess": "2017-11-17T08:53:55.088822562Z", - "Name": "bar", - "Path": "/", - "Persistent": true, - "Secure": false, - "Updated": "2017-11-17T08:53:55.088822562Z", - "Value": "bar-value" - } - ]''' - jar = self.load_jar(content) - got_expires = tuple(jar)[0].expires - want_expires = int(pyrfc3339.parse('2345-11-15T18:16:08Z').timestamp()) - self.assertEqual(got_expires, want_expires) - - def load_jar(self, content): - filename = os.path.join(self.dir, 'cookies') - with open(filename, 'x') as f: - f.write(content) - jar = GoCookieJar() - jar.load(filename=filename) - return jar - - def assert_jar_queries(self, jar, queries): - '''Assert that all the given queries (see cookie_content_queries) - are satisfied when run on the given cookie jar. - :param jar CookieJar: the cookie jar to query - :param queries: the queries to run. - ''' - for url, want_cookies in queries: - req = urllib.request.Request(url) - jar.add_cookie_header(req) - # We can't use SimpleCookie to find out what cookies - # have been presented, because SimpleCookie - # only allows one cookie with a given name, - # so we naively parse the cookies ourselves, which - # is OK because we know we don't have to deal - # with any complex cases. - - cookie_header = req.get_header('Cookie') - got_cookies = [] - if cookie_header is not None: - got_cookies = [ - tuple(part.split('=')) - for part in cookie_header.split('; ') - ] - got_cookies.sort() - want_cookies = list(want_cookies) - want_cookies.sort() - self.assertEqual(got_cookies, want_cookies, msg='query {}; got {}; want {}'.format(url, got_cookies, want_cookies)) diff --git a/modules/libjuju/tests/unit/test_loop.py b/modules/libjuju/tests/unit/test_loop.py deleted file mode 100644 index 9043df6..0000000 --- a/modules/libjuju/tests/unit/test_loop.py +++ /dev/null @@ -1,32 +0,0 @@ -import asyncio -import unittest - -import juju.loop - - -class TestLoop(unittest.TestCase): - def setUp(self): - # new event loop for each test - policy = asyncio.get_event_loop_policy() - self.loop = policy.new_event_loop() - policy.set_event_loop(self.loop) - - def tearDown(self): - self.loop.close() - - def test_run(self): - assert asyncio.get_event_loop() == self.loop - - async def _test(): - return 'success' - self.assertEqual(juju.loop.run(_test()), 'success') - - def test_run_interrupt(self): - async def _test(): - juju.loop.run._sigint = True - self.assertRaises(KeyboardInterrupt, juju.loop.run, _test()) - - def test_run_exception(self): - async def _test(): - raise ValueError() - self.assertRaises(ValueError, juju.loop.run, _test()) diff --git a/modules/libjuju/tests/unit/test_model.py b/modules/libjuju/tests/unit/test_model.py deleted file mode 100644 index 2753d85..0000000 --- a/modules/libjuju/tests/unit/test_model.py +++ /dev/null @@ -1,264 +0,0 @@ -import unittest - -import mock - -import asynctest - -from juju.client.jujudata import FileJujuData -from juju.model import Model - - -def _make_delta(entity, type_, data=None): - from juju.client.client import Delta - from juju.delta import get_entity_delta - - delta = Delta([entity, type_, data]) - return get_entity_delta(delta) - - -class TestObserver(unittest.TestCase): - def _make_observer(self, *args): - from juju.model import _Observer - return _Observer(*args) - - def test_cares_about_id(self): - id_ = 'foo' - - o = self._make_observer( - None, None, None, id_, None) - - delta = _make_delta( - 'application', 'change', dict(name=id_)) - - self.assertTrue(o.cares_about(delta)) - - def test_cares_about_type(self): - type_ = 'application' - - o = self._make_observer( - None, type_, None, None, None) - - delta = _make_delta( - type_, 'change', dict(name='foo')) - - self.assertTrue(o.cares_about(delta)) - - def test_cares_about_action(self): - action = 'change' - - o = self._make_observer( - None, None, action, None, None) - - delta = _make_delta( - 'application', action, dict(name='foo')) - - self.assertTrue(o.cares_about(delta)) - - def test_cares_about_predicate(self): - def predicate(delta): - return delta.data.get('fizz') == 'bang' - - o = self._make_observer( - None, None, None, None, predicate) - - delta = _make_delta( - 'application', 'change', dict(fizz='bang')) - - self.assertTrue(o.cares_about(delta)) - - -class TestModelState(unittest.TestCase): - def test_apply_delta(self): - from juju.model import Model - from juju.application import Application - - model = Model() - model._connector = mock.MagicMock() - delta = _make_delta('application', 'add', dict(name='foo')) - - # test add - prev, new = model.state.apply_delta(delta) - self.assertEqual( - len(model.state.state[delta.entity][delta.get_id()]), 1) - self.assertIsNone(prev) - self.assertIsInstance(new, Application) - - # test remove - delta.type = 'remove' - prev, new = model.state.apply_delta(delta) - # length of the entity history deque is now 3: - # - 1 for the first delta - # - 1 for the second delta - # - 1 for the None sentinel appended after the 'remove' - self.assertEqual( - len(model.state.state[delta.entity][delta.get_id()]), 3) - self.assertIsInstance(new, Application) - # new object is falsy because its data is None - self.assertFalse(new) - self.assertIsInstance(prev, Application) - self.assertTrue(prev) - - -def test_get_series(): - from juju.model import Model - model = Model() - entity = { - 'Meta': { - 'supported-series': { - 'SupportedSeries': [ - 'xenial', - 'trusty', - ], - }, - }, - } - assert model._get_series('cs:trusty/ubuntu', entity) == 'trusty' - assert model._get_series('xenial/ubuntu', entity) == 'xenial' - assert model._get_series('~foo/xenial/ubuntu', entity) == 'xenial' - assert model._get_series('~foo/ubuntu', entity) == 'xenial' - assert model._get_series('ubuntu', entity) == 'xenial' - assert model._get_series('cs:ubuntu', entity) == 'xenial' - - -class TestContextManager(asynctest.TestCase): - @asynctest.patch('juju.model.Model.disconnect') - @asynctest.patch('juju.model.Model.connect') - async def test_normal_use(self, mock_connect, mock_disconnect): - from juju.model import Model - - async with Model() as model: - self.assertTrue(isinstance(model, Model)) - - self.assertTrue(mock_connect.called) - self.assertTrue(mock_disconnect.called) - - @asynctest.patch('juju.model.Model.disconnect') - @asynctest.patch('juju.model.Model.connect') - async def test_exception(self, mock_connect, mock_disconnect): - from juju.model import Model - - class SomeException(Exception): - pass - - with self.assertRaises(SomeException): - async with Model(): - raise SomeException() - - self.assertTrue(mock_connect.called) - self.assertTrue(mock_disconnect.called) - - async def test_no_current_connection(self): - from juju.model import Model - from juju.errors import JujuConnectionError - - class NoControllerJujuData(FileJujuData): - def current_controller(self): - return "" - - with self.assertRaises(JujuConnectionError): - async with Model(jujudata=NoControllerJujuData()): - pass - - -@asynctest.patch('juju.model.Model._after_connect') -class TestModelConnect(asynctest.TestCase): - @asynctest.patch('juju.client.connector.Connector.connect_model') - async def test_no_args(self, mock_connect_model, _): - m = Model() - await m.connect() - mock_connect_model.assert_called_once_with(None) - - @asynctest.patch('juju.client.connector.Connector.connect_model') - async def test_with_model_name(self, mock_connect_model, _): - m = Model() - await m.connect(model_name='foo') - mock_connect_model.assert_called_once_with('foo') - - @asynctest.patch('juju.client.connector.Connector.connect_model') - async def test_with_endpoint_but_no_uuid(self, mock_connect_model, _): - m = Model() - with self.assertRaises(TypeError): - await m.connect(endpoint='0.1.2.3:4566') - self.assertEqual(mock_connect_model.call_count, 0) - - @asynctest.patch('juju.client.connector.Connector.connect') - async def test_with_endpoint_and_uuid_no_auth(self, mock_connect, _): - m = Model() - with self.assertRaises(TypeError): - await m.connect(endpoint='0.1.2.3:4566', uuid='some-uuid') - self.assertEqual(mock_connect.call_count, 0) - - @asynctest.patch('juju.client.connector.Connector.connect') - async def test_with_endpoint_and_uuid_with_userpass(self, mock_connect, _): - m = Model() - with self.assertRaises(TypeError): - await m.connect(endpoint='0.1.2.3:4566', - uuid='some-uuid', - username='user') - await m.connect(endpoint='0.1.2.3:4566', - uuid='some-uuid', - username='user', - password='pass') - mock_connect.assert_called_once_with(endpoint='0.1.2.3:4566', - uuid='some-uuid', - username='user', - password='pass') - - @asynctest.patch('juju.client.connector.Connector.connect') - async def test_with_endpoint_and_uuid_with_bakery(self, mock_connect, _): - m = Model() - await m.connect(endpoint='0.1.2.3:4566', - uuid='some-uuid', - bakery_client='bakery') - mock_connect.assert_called_once_with(endpoint='0.1.2.3:4566', - uuid='some-uuid', - bakery_client='bakery') - - @asynctest.patch('juju.client.connector.Connector.connect') - async def test_with_endpoint_and_uuid_with_macaroon(self, mock_connect, _): - m = Model() - with self.assertRaises(TypeError): - await m.connect(endpoint='0.1.2.3:4566', - uuid='some-uuid', - username='user') - await m.connect(endpoint='0.1.2.3:4566', - uuid='some-uuid', - macaroons=['macaroon']) - mock_connect.assert_called_with(endpoint='0.1.2.3:4566', - uuid='some-uuid', - macaroons=['macaroon']) - await m.connect(endpoint='0.1.2.3:4566', - uuid='some-uuid', - bakery_client='bakery', - macaroons=['macaroon']) - mock_connect.assert_called_with(endpoint='0.1.2.3:4566', - uuid='some-uuid', - bakery_client='bakery', - macaroons=['macaroon']) - - @asynctest.patch('juju.client.connector.Connector.connect_model') - @asynctest.patch('juju.client.connector.Connector.connect') - async def test_with_posargs(self, mock_connect, mock_connect_model, _): - m = Model() - await m.connect('foo') - mock_connect_model.assert_called_once_with('foo') - with self.assertRaises(TypeError): - await m.connect('endpoint', 'uuid') - with self.assertRaises(TypeError): - await m.connect('endpoint', 'uuid', 'user') - await m.connect('endpoint', 'uuid', 'user', 'pass') - mock_connect.assert_called_once_with(endpoint='endpoint', - uuid='uuid', - username='user', - password='pass') - await m.connect('endpoint', 'uuid', 'user', 'pass', 'cacert', 'bakery', - 'macaroons', 'loop', 'max_frame_size') - mock_connect.assert_called_with(endpoint='endpoint', - uuid='uuid', - username='user', - password='pass', - cacert='cacert', - bakery_client='bakery', - macaroons='macaroons', - loop='loop', - max_frame_size='max_frame_size') diff --git a/modules/libjuju/tests/unit/test_overrides.py b/modules/libjuju/tests/unit/test_overrides.py deleted file mode 100644 index a5835ff..0000000 --- a/modules/libjuju/tests/unit/test_overrides.py +++ /dev/null @@ -1,76 +0,0 @@ -from juju.client.overrides import Binary, Number # noqa - -import pytest - - -# test cases ported from: -# https://github.com/juju/version/blob/master/version_test.go -@pytest.mark.parametrize("input,expected", ( - (None, Number(major=0, minor=0, patch=0, tag='', build=0)), - (Number(major=1, minor=0, patch=0), Number(major=1, minor=0, patch=0)), - ({'major': 1, 'minor': 0, 'patch': 0}, Number(major=1, minor=0, patch=0)), - ("0.0.1", Number(major=0, minor=0, patch=1)), - ("0.0.2", Number(major=0, minor=0, patch=2)), - ("0.1.0", Number(major=0, minor=1, patch=0)), - ("0.2.3", Number(major=0, minor=2, patch=3)), - ("1.0.0", Number(major=1, minor=0, patch=0)), - ("10.234.3456", Number(major=10, minor=234, patch=3456)), - ("10.234.3456.1", Number(major=10, minor=234, patch=3456, build=1)), - ("10.234.3456.64", Number(major=10, minor=234, patch=3456, build=64)), - ("10.235.3456", Number(major=10, minor=235, patch=3456)), - ("1.21-alpha1", Number(major=1, minor=21, patch=1, tag="alpha")), - ("1.21-alpha1.1", Number(major=1, minor=21, patch=1, tag="alpha", - build=1)), - ("1.21-alpha10", Number(major=1, minor=21, patch=10, tag="alpha")), - ("1.21.0", Number(major=1, minor=21)), - ("1234567890.2.1", TypeError), - ("0.2..1", TypeError), - ("1.21.alpha1", TypeError), - ("1.21-alpha", TypeError), - ("1.21-alpha1beta", TypeError), - ("1.21-alpha-dev", TypeError), - ("1.21-alpha_dev3", TypeError), - ("1.21-alpha123dev3", TypeError), -)) -def test_number(input, expected): - if expected is TypeError: - with pytest.raises(expected): - Number.from_json(input) - else: - result = Number.from_json(input) - assert result == expected - if isinstance(input, str): - assert result.to_json() == input - - -# test cases ported from: -# https://github.com/juju/version/blob/master/version_test.go -@pytest.mark.parametrize("input,expected", ( - (None, Binary(Number(), None, None)), - (Binary(Number(1), 'trusty', 'amd64'), Binary(Number(1), - 'trusty', 'amd64')), - ({'number': {'major': 1}, - 'series': 'trusty', - 'arch': 'amd64'}, Binary(Number(1), 'trusty', 'amd64')), - ("1.2.3-trusty-amd64", Binary(Number(1, 2, 3, "", 0), - "trusty", "amd64")), - ("1.2.3.4-trusty-amd64", Binary(Number(1, 2, 3, "", 4), - "trusty", "amd64")), - ("1.2-alpha3-trusty-amd64", Binary(Number(1, 2, 3, "alpha", 0), - "trusty", "amd64")), - ("1.2-alpha3.4-trusty-amd64", Binary(Number(1, 2, 3, "alpha", 4), - "trusty", "amd64")), - ("1.2.3", TypeError), - ("1.2-beta1", TypeError), - ("1.2.3--amd64", TypeError), - ("1.2.3-trusty-", TypeError), -)) -def test_binary(input, expected): - if expected is TypeError: - with pytest.raises(expected): - Binary.from_json(input) - else: - result = Binary.from_json(input) - assert result == expected - if isinstance(input, str): - assert result.to_json() == input diff --git a/modules/libjuju/tests/unit/test_placement.py b/modules/libjuju/tests/unit/test_placement.py deleted file mode 100644 index 5a933ec..0000000 --- a/modules/libjuju/tests/unit/test_placement.py +++ /dev/null @@ -1,20 +0,0 @@ -# -# Test our placement helper -# - -import unittest - -from juju import placement - - -class TestPlacement(unittest.TestCase): - - def test_parse_both_specified(self): - res = placement.parse("foo:bar") - self.assertEqual(res[0].scope, "foo") - self.assertEqual(res[0].directive, "bar") - - def test_parse_machine(self): - res = placement.parse("22") - self.assertEqual(res[0].scope, "#") - self.assertEqual(res[0].directive, "22") diff --git a/modules/libjuju/tests/unit/test_registration_string.py b/modules/libjuju/tests/unit/test_registration_string.py deleted file mode 100644 index f4fea44..0000000 --- a/modules/libjuju/tests/unit/test_registration_string.py +++ /dev/null @@ -1,18 +0,0 @@ -# -# Test our placement helper -# - -import unittest - -from juju.utils import generate_user_controller_access_token - - -class TestRegistrationString(unittest.TestCase): - def test_generate_user_controller_access_token(self): - controller_name = "localhost-localhost" - endpoints = ["192.168.1.1:17070", "192.168.1.2:17070", "192.168.1.3:17070"] - username = "test-01234" - secret_key = "paNZrqOw51ONk1kTER6rkm4hdPcg5VgC/dzXYxtUZaM=" - reg_string = generate_user_controller_access_token(username, endpoints, secret_key, controller_name) - assert reg_string == b"MH4TCnRlc3QtMDEyMzQwORMRMTkyLjE2OC4xLjE6MTcwNzATETE5Mi4xNjguMS4yOjE3MDcwExExOTIuMTY4" \ - b"LjEuMzoxNzA3MAQgpaNZrqOw51ONk1kTER6rkm4hdPcg5VgC_dzXYxtUZaMTE2xvY2FsaG9zdC1sb2NhbGhvc3QA" diff --git a/modules/libjuju/tox.ini b/modules/libjuju/tox.ini deleted file mode 100644 index 350a1fc..0000000 --- a/modules/libjuju/tox.ini +++ /dev/null @@ -1,66 +0,0 @@ -# Tox (http://tox.testrun.org/) is a tool for running tests -# in multiple virtualenvs. This configuration file will run the -# test suite on all supported python versions. To use it, "pip install tox" -# and then run "tox" from this directory. - -[tox] -envlist = lint,py3 -skipsdist=True - -[pytest] -markers = - serial: mark a test that must run by itself - -[testenv] -basepython=python3 -usedevelop=True -# for testing with other python versions -commands = py.test --tb native -ra -v -s -n auto -k 'not integration' -m 'not serial' {posargs} -passenv = - HOME - TEST_AGENTS -deps = - asynctest - ipdb - mock - pytest - pytest-asyncio - pytest-xdist - Twine - # use fork to pick up fix for https://github.com/aaugustin/websockets/pull/528 - git+https://github.com/johnsca/websockets@bug/client-redirects#egg=websockets - -[testenv:py3] -# default tox env excludes integration and serial tests -commands = - # These need to be installed in a specific order - pip install urllib3==1.22 - pip install pylxd - py.test --tb native -ra -v -s -n auto -k 'not integration' -m 'not serial' {posargs} - -[testenv:lint] -envdir = {toxworkdir}/py3 -commands = - flake8 --ignore E501,W504 {posargs} juju tests -deps = - flake8 - -[testenv:integration] -envdir = {toxworkdir}/py3 -commands = - # These need to be installed in a specific order - pip install urllib3==1.22 - pip install pylxd - py.test --tb native -ra -v -s -n auto -k 'integration' -m 'not serial' {posargs} - -[testenv:serial] -# tests that can't be run in parallel -envdir = {toxworkdir}/py3 -commands = py.test --tb native -ra -v -s {posargs:-m 'serial'} - -[testenv:example] -envdir = {toxworkdir}/py3 -commands = python {posargs} - -[flake8] -exclude = juju/client/_* -- 2.17.1 From e2051cca7dac12aa09f6ed33555dcc4548c4b52b Mon Sep 17 00:00:00 2001 From: israelad Date: Thu, 21 Nov 2019 16:46:28 +0100 Subject: [PATCH 07/16] Revert "Remove vendored libjuju" This reverts commit 9d18c22a0dc9e295adda50601fc5e2f45d2c9b8a. Change-Id: I7dbf291ccd750c5f836ff80c642be492434ab3ac Signed-off-by: Adam Israel --- Jenkinsfile | 15 - juju | 1 + modules/libjuju/.gitignore | 15 + modules/libjuju/.travis.yml | 48 + modules/libjuju/CONTRIBUTORS | 4 + modules/libjuju/LICENSE | 201 + modules/libjuju/MANIFEST.in | 5 + modules/libjuju/Makefile | 46 + modules/libjuju/TODO | 5 + modules/libjuju/VERSION | 1 + modules/libjuju/docs/Makefile | 230 + .../docs/_extensions/automembersummary.py | 112 + modules/libjuju/docs/_static/custom.css | 5 + modules/libjuju/docs/api/juju.action.rst | 13 + modules/libjuju/docs/api/juju.annotation.rst | 13 + modules/libjuju/docs/api/juju.application.rst | 13 + modules/libjuju/docs/api/juju.client.rst | 120 + modules/libjuju/docs/api/juju.cloud.rst | 13 + modules/libjuju/docs/api/juju.constraints.rst | 13 + modules/libjuju/docs/api/juju.controller.rst | 13 + modules/libjuju/docs/api/juju.delta.rst | 13 + modules/libjuju/docs/api/juju.errors.rst | 13 + modules/libjuju/docs/api/juju.exceptions.rst | 13 + modules/libjuju/docs/api/juju.juju.rst | 13 + modules/libjuju/docs/api/juju.loop.rst | 13 + modules/libjuju/docs/api/juju.machine.rst | 13 + modules/libjuju/docs/api/juju.model.rst | 13 + modules/libjuju/docs/api/juju.placement.rst | 13 + modules/libjuju/docs/api/juju.relation.rst | 13 + modules/libjuju/docs/api/juju.tag.rst | 13 + modules/libjuju/docs/api/juju.unit.rst | 13 + modules/libjuju/docs/api/juju.utils.rst | 13 + modules/libjuju/docs/api/modules.rst | 31 + modules/libjuju/docs/changelog.rst | 290 + modules/libjuju/docs/conf.py | 303 + modules/libjuju/docs/index.rst | 45 + .../libjuju/docs/narrative/application.rst | 136 + modules/libjuju/docs/narrative/controller.rst | 92 + modules/libjuju/docs/narrative/index.rst | 10 + modules/libjuju/docs/narrative/model.rst | 290 + modules/libjuju/docs/narrative/unit.rst | 65 + modules/libjuju/docs/readme.rst | 103 + modules/libjuju/docs/requirements.txt | 5 + .../libjuju/docs/upstream-updates/index.rst | 114 + modules/libjuju/examples/action.py | 49 + modules/libjuju/examples/add_machine.py | 70 + modules/libjuju/examples/add_model.py | 67 + modules/libjuju/examples/allwatcher.py | 31 + modules/libjuju/examples/config.py | 54 + .../libjuju/examples/connect_current_model.py | 27 + modules/libjuju/examples/controller.py | 41 + modules/libjuju/examples/credential.py | 47 + modules/libjuju/examples/deploy.py | 41 + modules/libjuju/examples/fullstatus.py | 23 + modules/libjuju/examples/future.py | 47 + modules/libjuju/examples/leadership.py | 28 + modules/libjuju/examples/livemodel.py | 31 + modules/libjuju/examples/localcharm.py | 34 + modules/libjuju/examples/relate.py | 102 + modules/libjuju/examples/unitrun.py | 46 + modules/libjuju/juju/__init__.py | 0 modules/libjuju/juju/action.py | 10 + modules/libjuju/juju/annotation.py | 9 + modules/libjuju/juju/application.py | 533 + modules/libjuju/juju/client/__init__.py | 0 modules/libjuju/juju/client/_client.py | 454 + modules/libjuju/juju/client/_client1.py | 11068 +++++ modules/libjuju/juju/client/_client2.py | 7535 ++++ modules/libjuju/juju/client/_client3.py | 6749 +++ modules/libjuju/juju/client/_client4.py | 4626 ++ modules/libjuju/juju/client/_client5.py | 5322 +++ modules/libjuju/juju/client/_client7.py | 1770 + modules/libjuju/juju/client/_client8.py | 1278 + modules/libjuju/juju/client/_client9.py | 2385 + modules/libjuju/juju/client/_definitions.py | 11058 +++++ modules/libjuju/juju/client/client.py | 33 + modules/libjuju/juju/client/codegen.py | 52 + modules/libjuju/juju/client/connection.py | 601 + modules/libjuju/juju/client/connector.py | 156 + modules/libjuju/juju/client/facade.py | 818 + modules/libjuju/juju/client/gocookies.py | 102 + modules/libjuju/juju/client/jujudata.py | 219 + modules/libjuju/juju/client/overrides.py | 365 + modules/libjuju/juju/client/runner.py | 21 + .../juju/client/schemas-juju-2.0.0.json | 24533 ++++++++++ .../juju/client/schemas-juju-2.0.1.json | 24799 +++++++++++ .../juju/client/schemas-juju-2.0.2.json | 24799 +++++++++++ .../juju/client/schemas-juju-2.0.3.json | 24799 +++++++++++ .../juju/client/schemas-juju-2.1.0.json | 25652 +++++++++++ .../juju/client/schemas-juju-2.1.1.json | 25730 +++++++++++ .../juju/client/schemas-juju-2.1.2.json | 25730 +++++++++++ .../juju/client/schemas-juju-2.2-alpha1.json | 25974 +++++++++++ .../juju/client/schemas-juju-2.2-beta1.json | 26135 +++++++++++ .../juju/client/schemas-juju-2.2-beta2.json | 26150 +++++++++++ .../juju/client/schemas-juju-2.2-rc1.json | 26295 +++++++++++ .../juju/client/schemas-juju-2.3-alpha1.json | 26050 +++++++++++ .../juju/client/schemas-juju-2.5-rc1.json | 37036 ++++++++++++++++ modules/libjuju/juju/cloud.py | 81 + modules/libjuju/juju/constraints.py | 87 + modules/libjuju/juju/controller.py | 653 + modules/libjuju/juju/credential.py | 0 modules/libjuju/juju/delta.py | 79 + modules/libjuju/juju/errors.py | 49 + modules/libjuju/juju/exceptions.py | 2 + modules/libjuju/juju/juju.py | 118 + modules/libjuju/juju/loop.py | 42 + modules/libjuju/juju/machine.py | 284 + modules/libjuju/juju/model.py | 2328 + modules/libjuju/juju/placement.py | 58 + modules/libjuju/juju/provisioner.py | 369 + modules/libjuju/juju/relation.py | 123 + modules/libjuju/juju/tag.py | 40 + modules/libjuju/juju/unit.py | 281 + modules/libjuju/juju/user.py | 86 + modules/libjuju/juju/utils.py | 165 + modules/libjuju/scripts/gendoc | 39 + modules/libjuju/setup.py | 61 + modules/libjuju/tests/__init__.py | 0 modules/libjuju/tests/base.py | 148 + modules/libjuju/tests/bundle/bundle.yaml | 28 + modules/libjuju/tests/bundle/invalid.yaml | 7 + modules/libjuju/tests/bundle/mini-bundle.yaml | 9 + modules/libjuju/tests/charm/metadata.yaml | 5 + modules/libjuju/tests/integration/__init__.py | 0 .../bundle/bundle-resource-rev.yaml | 7 + .../tests/integration/bundle/bundle.yaml | 12 + modules/libjuju/tests/integration/cert.pem | 33 + .../tests/integration/charm/metadata.yaml | 5 + modules/libjuju/tests/integration/key.pem | 52 + .../tests/integration/test_application.py | 134 + .../libjuju/tests/integration/test_client.py | 21 + .../tests/integration/test_connection.py | 236 + .../tests/integration/test_controller.py | 228 + .../libjuju/tests/integration/test_errors.py | 68 + .../tests/integration/test_macaroon_auth.py | 108 + .../libjuju/tests/integration/test_machine.py | 65 + .../libjuju/tests/integration/test_model.py | 485 + .../libjuju/tests/integration/test_unit.py | 99 + modules/libjuju/tests/unit/__init__.py | 0 modules/libjuju/tests/unit/test_client.py | 26 + modules/libjuju/tests/unit/test_connection.py | 65 + .../libjuju/tests/unit/test_constraints.py | 57 + modules/libjuju/tests/unit/test_controller.py | 140 + modules/libjuju/tests/unit/test_gocookies.py | 244 + modules/libjuju/tests/unit/test_loop.py | 32 + modules/libjuju/tests/unit/test_model.py | 264 + modules/libjuju/tests/unit/test_overrides.py | 76 + modules/libjuju/tests/unit/test_placement.py | 20 + .../tests/unit/test_registration_string.py | 18 + modules/libjuju/tox.ini | 66 + 150 files changed, 409798 insertions(+), 15 deletions(-) create mode 120000 juju create mode 100644 modules/libjuju/.gitignore create mode 100644 modules/libjuju/.travis.yml create mode 100644 modules/libjuju/CONTRIBUTORS create mode 100644 modules/libjuju/LICENSE create mode 100644 modules/libjuju/MANIFEST.in create mode 100644 modules/libjuju/Makefile create mode 100644 modules/libjuju/TODO create mode 100644 modules/libjuju/VERSION create mode 100644 modules/libjuju/docs/Makefile create mode 100644 modules/libjuju/docs/_extensions/automembersummary.py create mode 100644 modules/libjuju/docs/_static/custom.css create mode 100644 modules/libjuju/docs/api/juju.action.rst create mode 100644 modules/libjuju/docs/api/juju.annotation.rst create mode 100644 modules/libjuju/docs/api/juju.application.rst create mode 100644 modules/libjuju/docs/api/juju.client.rst create mode 100644 modules/libjuju/docs/api/juju.cloud.rst create mode 100644 modules/libjuju/docs/api/juju.constraints.rst create mode 100644 modules/libjuju/docs/api/juju.controller.rst create mode 100644 modules/libjuju/docs/api/juju.delta.rst create mode 100644 modules/libjuju/docs/api/juju.errors.rst create mode 100644 modules/libjuju/docs/api/juju.exceptions.rst create mode 100644 modules/libjuju/docs/api/juju.juju.rst create mode 100644 modules/libjuju/docs/api/juju.loop.rst create mode 100644 modules/libjuju/docs/api/juju.machine.rst create mode 100644 modules/libjuju/docs/api/juju.model.rst create mode 100644 modules/libjuju/docs/api/juju.placement.rst create mode 100644 modules/libjuju/docs/api/juju.relation.rst create mode 100644 modules/libjuju/docs/api/juju.tag.rst create mode 100644 modules/libjuju/docs/api/juju.unit.rst create mode 100644 modules/libjuju/docs/api/juju.utils.rst create mode 100644 modules/libjuju/docs/api/modules.rst create mode 100644 modules/libjuju/docs/changelog.rst create mode 100644 modules/libjuju/docs/conf.py create mode 100644 modules/libjuju/docs/index.rst create mode 100644 modules/libjuju/docs/narrative/application.rst create mode 100644 modules/libjuju/docs/narrative/controller.rst create mode 100644 modules/libjuju/docs/narrative/index.rst create mode 100644 modules/libjuju/docs/narrative/model.rst create mode 100644 modules/libjuju/docs/narrative/unit.rst create mode 100644 modules/libjuju/docs/readme.rst create mode 100644 modules/libjuju/docs/requirements.txt create mode 100644 modules/libjuju/docs/upstream-updates/index.rst create mode 100644 modules/libjuju/examples/action.py create mode 100755 modules/libjuju/examples/add_machine.py create mode 100644 modules/libjuju/examples/add_model.py create mode 100644 modules/libjuju/examples/allwatcher.py create mode 100644 modules/libjuju/examples/config.py create mode 100644 modules/libjuju/examples/connect_current_model.py create mode 100644 modules/libjuju/examples/controller.py create mode 100644 modules/libjuju/examples/credential.py create mode 100644 modules/libjuju/examples/deploy.py create mode 100644 modules/libjuju/examples/fullstatus.py create mode 100644 modules/libjuju/examples/future.py create mode 100644 modules/libjuju/examples/leadership.py create mode 100644 modules/libjuju/examples/livemodel.py create mode 100644 modules/libjuju/examples/localcharm.py create mode 100644 modules/libjuju/examples/relate.py create mode 100644 modules/libjuju/examples/unitrun.py create mode 100644 modules/libjuju/juju/__init__.py create mode 100644 modules/libjuju/juju/action.py create mode 100644 modules/libjuju/juju/annotation.py create mode 100644 modules/libjuju/juju/application.py create mode 100644 modules/libjuju/juju/client/__init__.py create mode 100644 modules/libjuju/juju/client/_client.py create mode 100644 modules/libjuju/juju/client/_client1.py create mode 100644 modules/libjuju/juju/client/_client2.py create mode 100644 modules/libjuju/juju/client/_client3.py create mode 100644 modules/libjuju/juju/client/_client4.py create mode 100644 modules/libjuju/juju/client/_client5.py create mode 100644 modules/libjuju/juju/client/_client7.py create mode 100644 modules/libjuju/juju/client/_client8.py create mode 100644 modules/libjuju/juju/client/_client9.py create mode 100644 modules/libjuju/juju/client/_definitions.py create mode 100644 modules/libjuju/juju/client/client.py create mode 100644 modules/libjuju/juju/client/codegen.py create mode 100644 modules/libjuju/juju/client/connection.py create mode 100644 modules/libjuju/juju/client/connector.py create mode 100644 modules/libjuju/juju/client/facade.py create mode 100644 modules/libjuju/juju/client/gocookies.py create mode 100644 modules/libjuju/juju/client/jujudata.py create mode 100644 modules/libjuju/juju/client/overrides.py create mode 100644 modules/libjuju/juju/client/runner.py create mode 100644 modules/libjuju/juju/client/schemas-juju-2.0.0.json create mode 100644 modules/libjuju/juju/client/schemas-juju-2.0.1.json create mode 100644 modules/libjuju/juju/client/schemas-juju-2.0.2.json create mode 100644 modules/libjuju/juju/client/schemas-juju-2.0.3.json create mode 100644 modules/libjuju/juju/client/schemas-juju-2.1.0.json create mode 100644 modules/libjuju/juju/client/schemas-juju-2.1.1.json create mode 100644 modules/libjuju/juju/client/schemas-juju-2.1.2.json create mode 100644 modules/libjuju/juju/client/schemas-juju-2.2-alpha1.json create mode 100644 modules/libjuju/juju/client/schemas-juju-2.2-beta1.json create mode 100644 modules/libjuju/juju/client/schemas-juju-2.2-beta2.json create mode 100644 modules/libjuju/juju/client/schemas-juju-2.2-rc1.json create mode 100644 modules/libjuju/juju/client/schemas-juju-2.3-alpha1.json create mode 100644 modules/libjuju/juju/client/schemas-juju-2.5-rc1.json create mode 100644 modules/libjuju/juju/cloud.py create mode 100644 modules/libjuju/juju/constraints.py create mode 100644 modules/libjuju/juju/controller.py create mode 100644 modules/libjuju/juju/credential.py create mode 100644 modules/libjuju/juju/delta.py create mode 100644 modules/libjuju/juju/errors.py create mode 100644 modules/libjuju/juju/exceptions.py create mode 100644 modules/libjuju/juju/juju.py create mode 100644 modules/libjuju/juju/loop.py create mode 100644 modules/libjuju/juju/machine.py create mode 100644 modules/libjuju/juju/model.py create mode 100644 modules/libjuju/juju/placement.py create mode 100644 modules/libjuju/juju/provisioner.py create mode 100644 modules/libjuju/juju/relation.py create mode 100644 modules/libjuju/juju/tag.py create mode 100644 modules/libjuju/juju/unit.py create mode 100644 modules/libjuju/juju/user.py create mode 100644 modules/libjuju/juju/utils.py create mode 100755 modules/libjuju/scripts/gendoc create mode 100644 modules/libjuju/setup.py create mode 100644 modules/libjuju/tests/__init__.py create mode 100644 modules/libjuju/tests/base.py create mode 100644 modules/libjuju/tests/bundle/bundle.yaml create mode 100644 modules/libjuju/tests/bundle/invalid.yaml create mode 100644 modules/libjuju/tests/bundle/mini-bundle.yaml create mode 100644 modules/libjuju/tests/charm/metadata.yaml create mode 100644 modules/libjuju/tests/integration/__init__.py create mode 100644 modules/libjuju/tests/integration/bundle/bundle-resource-rev.yaml create mode 100644 modules/libjuju/tests/integration/bundle/bundle.yaml create mode 100644 modules/libjuju/tests/integration/cert.pem create mode 100644 modules/libjuju/tests/integration/charm/metadata.yaml create mode 100644 modules/libjuju/tests/integration/key.pem create mode 100644 modules/libjuju/tests/integration/test_application.py create mode 100644 modules/libjuju/tests/integration/test_client.py create mode 100644 modules/libjuju/tests/integration/test_connection.py create mode 100644 modules/libjuju/tests/integration/test_controller.py create mode 100644 modules/libjuju/tests/integration/test_errors.py create mode 100644 modules/libjuju/tests/integration/test_macaroon_auth.py create mode 100644 modules/libjuju/tests/integration/test_machine.py create mode 100644 modules/libjuju/tests/integration/test_model.py create mode 100644 modules/libjuju/tests/integration/test_unit.py create mode 100644 modules/libjuju/tests/unit/__init__.py create mode 100644 modules/libjuju/tests/unit/test_client.py create mode 100644 modules/libjuju/tests/unit/test_connection.py create mode 100644 modules/libjuju/tests/unit/test_constraints.py create mode 100644 modules/libjuju/tests/unit/test_controller.py create mode 100644 modules/libjuju/tests/unit/test_gocookies.py create mode 100644 modules/libjuju/tests/unit/test_loop.py create mode 100644 modules/libjuju/tests/unit/test_model.py create mode 100644 modules/libjuju/tests/unit/test_overrides.py create mode 100644 modules/libjuju/tests/unit/test_placement.py create mode 100644 modules/libjuju/tests/unit/test_registration_string.py create mode 100644 modules/libjuju/tox.ini diff --git a/Jenkinsfile b/Jenkinsfile index e384cbd..ed9e879 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,18 +1,3 @@ -/* - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - properties([ parameters([ string(defaultValue: env.BRANCH_NAME, description: '', name: 'GERRIT_BRANCH'), diff --git a/juju b/juju new file mode 120000 index 0000000..1d37c18 --- /dev/null +++ b/juju @@ -0,0 +1 @@ +modules/libjuju/juju \ No newline at end of file diff --git a/modules/libjuju/.gitignore b/modules/libjuju/.gitignore new file mode 100644 index 0000000..6d00fec --- /dev/null +++ b/modules/libjuju/.gitignore @@ -0,0 +1,15 @@ +*.sw[mnop] +.venv/ +*.pyc +*.py~ +docs/_build/ +__pycache__/ +.tox/ +*.egg-info/ +.cache/ +.\#* +dist/ +dev/ +.pytest_cache +pytestdebug.log +.vscode/ diff --git a/modules/libjuju/.travis.yml b/modules/libjuju/.travis.yml new file mode 100644 index 0000000..5edfef5 --- /dev/null +++ b/modules/libjuju/.travis.yml @@ -0,0 +1,48 @@ +dist: xenial +sudo: required +language: python +cache: pip +before_install: + - if [[ $TRAVIS_PYTHON_VERSION == '3.6' ]]; then sudo add-apt-repository -y ppa:jonathonf/python-3.6; fi + - if [[ $TRAVIS_PYTHON_VERSION == '3.7-dev' ]]; then sudo add-apt-repository -y ppa:deadsnakes/ppa; fi + - sudo apt-get update -q + - sudo apt-get remove -qy lxd lxd-client + - sudo apt-get install snapd libsodium-dev -y +install: + - sudo snap install lxd || true # ignore failures so that unit tests will still run, at least + - sudo sh -c 'echo PATH=/snap/bin:$PATH >> /etc/environment'; + - sudo snap install jq || true + - sudo snap install juju --classic --$JUJU_CHANNEL || true + - sudo snap install juju-wait --classic || true + - pip install tox-travis +env: + global: > + TEST_AGENTS='{"agents":[{"url":"https://api.staging.jujucharms.com/identity","username":"libjuju-ci@yellow"}],"key":{"private":"88OOCxIHQNguRG7zFg2y2Hx5Ob0SeVKKBRnjyehverc=","public":"fDn20+5FGyN2hYO7z0rFUyoHGUnfrleslUNtoYsjNSs="}}' + PATH="/snap/bin:$PATH" + +matrix: + include: + - python: 3.6 + env: JUJU_CHANNEL=edge + - python: 3.6 + env: JUJU_CHANNEL=stable + - python: 3.7-dev + env: JUJU_CHANNEL=stable + - python: 3.7-dev + env: JUJU_CHANNEL=edge +before_script: + # Run lint before performing more expensive operations (fail fast/early) + - tox -e lint + + # init lxd for tests + - sudo lxd waitready --timeout 30 + - sudo chmod 666 /var/snap/lxd/common/lxd/unix.socket + - lxd init --auto --network-address='[::]' --network-port=8443 --storage-backend=dir + + # Horrible workaround to LP Bug #1738614 + - sudo mkdir /var/snap/lxd/common/lxd/storage-pools/juju-zfs + - lxc storage create juju-zfs dir source=/var/snap/lxd/common/lxd/storage-pools/juju-zfs + +script: + - juju bootstrap localhost test --config 'identity-url=https://api.staging.jujucharms.com/identity' --config 'allow-model-access=true' + - tox -e py3,integration,serial diff --git a/modules/libjuju/CONTRIBUTORS b/modules/libjuju/CONTRIBUTORS new file mode 100644 index 0000000..3895eaa --- /dev/null +++ b/modules/libjuju/CONTRIBUTORS @@ -0,0 +1,4 @@ +Benjamin Saller +Tim Van Steenburgh +Cory Johns +Pete VanderGiessen diff --git a/modules/libjuju/LICENSE b/modules/libjuju/LICENSE new file mode 100644 index 0000000..8dada3e --- /dev/null +++ b/modules/libjuju/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/modules/libjuju/MANIFEST.in b/modules/libjuju/MANIFEST.in new file mode 100644 index 0000000..c14d3fc --- /dev/null +++ b/modules/libjuju/MANIFEST.in @@ -0,0 +1,5 @@ +include *.py CONTRIBUTORS LICENSE README.rst VERSION +recursive-include juju *.py +recursive-include examples *.py +recursive-include docs *.rst +exclude Makefile diff --git a/modules/libjuju/Makefile b/modules/libjuju/Makefile new file mode 100644 index 0000000..38dcc11 --- /dev/null +++ b/modules/libjuju/Makefile @@ -0,0 +1,46 @@ +BIN := .tox/py3/bin +PY := $(BIN)/python +PIP := $(BIN)/pip +SCHEMAGEN := $(shell which schemagen) +VERSION=$(shell cat VERSION) + +clean: + find . -name __pycache__ -type d -exec rm -r {} + + find . -name *.pyc -delete + rm -rf .tox + rm -rf docs/_build/ + +.tox: + tox -r --notest + +client: .tox +ifndef SCHEMAGEN + $(error "schemagen is not available, please install from https://github.com/juju/schemagen") +endif + $(PY) -m juju.client.facade -s "juju/client/schemas*" -o juju/client/ + +test: + tox + +.PHONY: lint +lint: + tox -e lint --notest + +docs: .tox + $(PIP) install -r docs/requirements.txt + rm -rf docs/_build/ + $(BIN)/sphinx-build -b html docs/ docs/_build/ + cd docs/_build/ && zip -r docs.zip * + +release: + git fetch --tags + rm dist/*.tar.gz + $(PY) setup.py sdist + $(BIN)/twine upload --repository-url https://upload.pypi.org/legacy/ dist/* + git tag ${VERSION} + git push --tags + +upload: release + + +.PHONY: clean client test docs upload release diff --git a/modules/libjuju/TODO b/modules/libjuju/TODO new file mode 100644 index 0000000..94fc342 --- /dev/null +++ b/modules/libjuju/TODO @@ -0,0 +1,5 @@ +TODO +==== + +- Add a LogWatcher coroutine that yields from debug-log api +- Add a way to exit the event loop when a Model matches a bundle yaml diff --git a/modules/libjuju/VERSION b/modules/libjuju/VERSION new file mode 100644 index 0000000..1a96df1 --- /dev/null +++ b/modules/libjuju/VERSION @@ -0,0 +1 @@ +0.11.3 diff --git a/modules/libjuju/docs/Makefile b/modules/libjuju/docs/Makefile new file mode 100644 index 0000000..2869eb4 --- /dev/null +++ b/modules/libjuju/docs/Makefile @@ -0,0 +1,230 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = _build + +# User-friendly check for sphinx-build +ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) + $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don\'t have Sphinx installed, grab it from http://sphinx-doc.org/) +endif + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . +# the i18n builder cannot share the environment and doctrees with the others +I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . + +.PHONY: help +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " applehelp to make an Apple Help Book" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " epub3 to make an epub3" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " texinfo to make Texinfo files" + @echo " info to make Texinfo files and run them through makeinfo" + @echo " gettext to make PO message catalogs" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " xml to make Docutils-native XML files" + @echo " pseudoxml to make pseudoxml-XML files for display purposes" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + @echo " coverage to run coverage check of the documentation (if enabled)" + @echo " dummy to check syntax errors of document sources" + +.PHONY: clean +clean: + rm -rf $(BUILDDIR)/* + +.PHONY: html +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +.PHONY: dirhtml +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +.PHONY: singlehtml +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +.PHONY: pickle +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +.PHONY: json +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +.PHONY: htmlhelp +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +.PHONY: qthelp +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/libjuju.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/libjuju.qhc" + +.PHONY: applehelp +applehelp: + $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp + @echo + @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." + @echo "N.B. You won't be able to view it unless you put it in" \ + "~/Library/Documentation/Help or install it in your application" \ + "bundle." + +.PHONY: devhelp +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/libjuju" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/libjuju" + @echo "# devhelp" + +.PHONY: epub +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +.PHONY: epub3 +epub3: + $(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3 + @echo + @echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3." + +.PHONY: latex +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +.PHONY: latexpdf +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +.PHONY: latexpdfja +latexpdfja: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through platex and dvipdfmx..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +.PHONY: text +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +.PHONY: man +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +.PHONY: texinfo +texinfo: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo + @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." + @echo "Run \`make' in that directory to run these through makeinfo" \ + "(use \`make info' here to do that automatically)." + +.PHONY: info +info: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo "Running Texinfo files through makeinfo..." + make -C $(BUILDDIR)/texinfo info + @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." + +.PHONY: gettext +gettext: + $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale + @echo + @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." + +.PHONY: changes +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +.PHONY: linkcheck +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +.PHONY: doctest +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." + +.PHONY: coverage +coverage: + $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage + @echo "Testing of coverage in the sources finished, look at the " \ + "results in $(BUILDDIR)/coverage/python.txt." + +.PHONY: xml +xml: + $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml + @echo + @echo "Build finished. The XML files are in $(BUILDDIR)/xml." + +.PHONY: pseudoxml +pseudoxml: + $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml + @echo + @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." + +.PHONY: dummy +dummy: + $(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy + @echo + @echo "Build finished. Dummy builder generates no files." diff --git a/modules/libjuju/docs/_extensions/automembersummary.py b/modules/libjuju/docs/_extensions/automembersummary.py new file mode 100644 index 0000000..cfe0b84 --- /dev/null +++ b/modules/libjuju/docs/_extensions/automembersummary.py @@ -0,0 +1,112 @@ +# Copyright 2014-2015 Canonical Limited. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import importlib +import inspect +import textwrap + +from docutils import nodes +from docutils.statemachine import ViewList +from sphinx.errors import SphinxError +from sphinx.util.compat import Directive +from sphinx.util.nodes import nested_parse_with_titles + + +class AutoMemberSummary(Directive): + required_arguments = 1 + + def run(self): + module_name = self.arguments[0] + + try: + module = importlib.import_module(module_name) + except ImportError: + raise SphinxError("Unable to generate reference docs for %s, " + "could not import" % (module_name)) + + divider = '+{:-<80}+'.format('') + row = '| {:<78} |'.format + lines = [] + for member_name, member in inspect.getmembers(module): + if not self._filter(module_name, member_name, member): + continue + summary = textwrap.wrap(self._get_summary(member), 78) or [''] + link = '`{} <#{}>`_'.format(member_name, + '.'.join([module_name, + member_name])) + methods = ['* `{} <#{}>`_'.format(n, + '.'.join([module_name, + member_name, + n])) + for n, m in inspect.getmembers(member) + if not n.startswith('_') and inspect.isfunction(m)] + + lines.append(divider) + lines.append(row(link)) + lines.append(divider) + for line in summary: + lines.append(row(line)) + if methods: + lines.append(row('')) + lines.append(row('Methods:')) + lines.append(row('')) + for i, method in enumerate(methods): + lines.append(row(method)) + lines.append(divider) + content = '\n'.join(lines) + + result = self._parse(content, '') + return result + + def _get_summary(self, member): + doc = (member.__doc__ or '').splitlines() + + # strip any leading blank lines + while doc and not doc[0].strip(): + doc.pop(0) + + # strip anything after the first blank line + for i, piece in enumerate(doc): + if not piece.strip(): + doc = doc[:i] + break + + return " ".join(doc).strip() + + def _filter(self, module_name, member_name, member): + if member_name.startswith('_'): + return False + if hasattr(member, '__module__'): + # skip imported classes & functions + return member.__module__.startswith(module_name) + elif hasattr(member, '__name__'): + # skip imported modules + return member.__name__.startswith(module_name) + else: + return False # skip instances + return True + + def _parse(self, rst_text, annotation): + result = ViewList() + for line in rst_text.split("\n"): + result.append(line, annotation) + node = nodes.paragraph() + node.document = self.state.document + nested_parse_with_titles(self.state, result, node) + return node.children + + +def setup(app): + app.add_directive('automembersummary', AutoMemberSummary) diff --git a/modules/libjuju/docs/_static/custom.css b/modules/libjuju/docs/_static/custom.css new file mode 100644 index 0000000..333cd74 --- /dev/null +++ b/modules/libjuju/docs/_static/custom.css @@ -0,0 +1,5 @@ +.wy-table-responsive table td, +.wy-table-responsive table th +{ + white-space: normal !important; +} diff --git a/modules/libjuju/docs/api/juju.action.rst b/modules/libjuju/docs/api/juju.action.rst new file mode 100644 index 0000000..cc86af2 --- /dev/null +++ b/modules/libjuju/docs/api/juju.action.rst @@ -0,0 +1,13 @@ +juju.action +=========== + +.. rubric:: Summary + +.. automembersummary:: juju.action + +.. rubric:: Reference + +.. automodule:: juju.action + :members: + :undoc-members: + :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.annotation.rst b/modules/libjuju/docs/api/juju.annotation.rst new file mode 100644 index 0000000..ec31344 --- /dev/null +++ b/modules/libjuju/docs/api/juju.annotation.rst @@ -0,0 +1,13 @@ +juju.annotation +=============== + +.. rubric:: Summary + +.. automembersummary:: juju.annotation + +.. rubric:: Reference + +.. automodule:: juju.annotation + :members: + :undoc-members: + :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.application.rst b/modules/libjuju/docs/api/juju.application.rst new file mode 100644 index 0000000..dba9177 --- /dev/null +++ b/modules/libjuju/docs/api/juju.application.rst @@ -0,0 +1,13 @@ +juju.application +================ + +.. rubric:: Summary + +.. automembersummary:: juju.application + +.. rubric:: Reference + +.. automodule:: juju.application + :members: + :undoc-members: + :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.client.rst b/modules/libjuju/docs/api/juju.client.rst new file mode 100644 index 0000000..dad691f --- /dev/null +++ b/modules/libjuju/docs/api/juju.client.rst @@ -0,0 +1,120 @@ +Internal APIs +============= + +These packages are for internal use in communicating with the low-level +API. You should use the object oriented API instead. They are documented +here for developer reference. + + +juju\.client\.client module +--------------------------- + +.. automodule:: juju.client.client + :members: + :undoc-members: + :show-inheritance: + +juju\.client\._definitions module +--------------------------------- + +.. automodule:: juju.client._definitions + :members: + :undoc-members: + :show-inheritance: + +juju\.client\._client module +---------------------------- + +.. automodule:: juju.client._client + :members: + :undoc-members: + :show-inheritance: + +juju\.client\._client1 module +----------------------------- + +.. automodule:: juju.client._client1 + :members: + :undoc-members: + :show-inheritance: + +juju\.client\._client2 module +----------------------------- + +.. automodule:: juju.client._client2 + :members: + :undoc-members: + :show-inheritance: + +juju\.client\._client3 module +----------------------------- + +.. automodule:: juju.client._client3 + :members: + :undoc-members: + :show-inheritance: + +juju\.client\._client4 module +----------------------------- + +.. automodule:: juju.client._client4 + :members: + :undoc-members: + :show-inheritance: + +juju\.client\._client5 module +----------------------------- + +.. automodule:: juju.client._client5 + :members: + :undoc-members: + :show-inheritance: + +juju\.client\.codegen module +---------------------------- + +.. automodule:: juju.client.codegen + :members: + :undoc-members: + :show-inheritance: + +juju\.client\.connection module +------------------------------- + +.. automodule:: juju.client.connection + :members: + :undoc-members: + :show-inheritance: + +juju\.client\.facade module +--------------------------- + +.. automodule:: juju.client.facade + :members: + :undoc-members: + :show-inheritance: + +juju\.client\.overrides module +------------------------------ + +.. automodule:: juju.client.overrides + :members: + :undoc-members: + :show-inheritance: + +juju\.client\.runner module +--------------------------- + +.. automodule:: juju.client.runner + :members: + :undoc-members: + :show-inheritance: + + +Module contents +--------------- + +.. automodule:: juju.client + :members: + :undoc-members: + :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.cloud.rst b/modules/libjuju/docs/api/juju.cloud.rst new file mode 100644 index 0000000..39021e0 --- /dev/null +++ b/modules/libjuju/docs/api/juju.cloud.rst @@ -0,0 +1,13 @@ +juju.cloud +========== + +.. rubric:: Summary + +.. automembersummary:: juju.cloud + +.. rubric:: Reference + +.. automodule:: juju.cloud + :members: + :undoc-members: + :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.constraints.rst b/modules/libjuju/docs/api/juju.constraints.rst new file mode 100644 index 0000000..5fcbd31 --- /dev/null +++ b/modules/libjuju/docs/api/juju.constraints.rst @@ -0,0 +1,13 @@ +juju.constraints +================ + +.. rubric:: Summary + +.. automembersummary:: juju.constraints + +.. rubric:: Reference + +.. automodule:: juju.constraints + :members: + :undoc-members: + :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.controller.rst b/modules/libjuju/docs/api/juju.controller.rst new file mode 100644 index 0000000..4484fd5 --- /dev/null +++ b/modules/libjuju/docs/api/juju.controller.rst @@ -0,0 +1,13 @@ +juju.controller +=============== + +.. rubric:: Summary + +.. automembersummary:: juju.controller + +.. rubric:: Reference + +.. automodule:: juju.controller + :members: + :undoc-members: + :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.delta.rst b/modules/libjuju/docs/api/juju.delta.rst new file mode 100644 index 0000000..9924f8c --- /dev/null +++ b/modules/libjuju/docs/api/juju.delta.rst @@ -0,0 +1,13 @@ +juju.delta +========== + +.. rubric:: Summary + +.. automembersummary:: juju.delta + +.. rubric:: Reference + +.. automodule:: juju.delta + :members: + :undoc-members: + :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.errors.rst b/modules/libjuju/docs/api/juju.errors.rst new file mode 100644 index 0000000..7c77574 --- /dev/null +++ b/modules/libjuju/docs/api/juju.errors.rst @@ -0,0 +1,13 @@ +juju.errors +=========== + +.. rubric:: Summary + +.. automembersummary:: juju.errors + +.. rubric:: Reference + +.. automodule:: juju.errors + :members: + :undoc-members: + :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.exceptions.rst b/modules/libjuju/docs/api/juju.exceptions.rst new file mode 100644 index 0000000..85be2fb --- /dev/null +++ b/modules/libjuju/docs/api/juju.exceptions.rst @@ -0,0 +1,13 @@ +juju.exceptions +=============== + +.. rubric:: Summary + +.. automembersummary:: juju.exceptions + +.. rubric:: Reference + +.. automodule:: juju.exceptions + :members: + :undoc-members: + :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.juju.rst b/modules/libjuju/docs/api/juju.juju.rst new file mode 100644 index 0000000..68698c3 --- /dev/null +++ b/modules/libjuju/docs/api/juju.juju.rst @@ -0,0 +1,13 @@ +juju.juju +========= + +.. rubric:: Summary + +.. automembersummary:: juju.juju + +.. rubric:: Reference + +.. automodule:: juju.juju + :members: + :undoc-members: + :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.loop.rst b/modules/libjuju/docs/api/juju.loop.rst new file mode 100644 index 0000000..4f175e9 --- /dev/null +++ b/modules/libjuju/docs/api/juju.loop.rst @@ -0,0 +1,13 @@ +juju.loop +========= + +.. rubric:: Summary + +.. automembersummary:: juju.loop + +.. rubric:: Reference + +.. automodule:: juju.loop + :members: + :undoc-members: + :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.machine.rst b/modules/libjuju/docs/api/juju.machine.rst new file mode 100644 index 0000000..edb5b6c --- /dev/null +++ b/modules/libjuju/docs/api/juju.machine.rst @@ -0,0 +1,13 @@ +juju.machine +============ + +.. rubric:: Summary + +.. automembersummary:: juju.machine + +.. rubric:: Reference + +.. automodule:: juju.machine + :members: + :undoc-members: + :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.model.rst b/modules/libjuju/docs/api/juju.model.rst new file mode 100644 index 0000000..dfb735d --- /dev/null +++ b/modules/libjuju/docs/api/juju.model.rst @@ -0,0 +1,13 @@ +juju.model +========== + +.. rubric:: Summary + +.. automembersummary:: juju.model + +.. rubric:: Reference + +.. automodule:: juju.model + :members: + :undoc-members: + :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.placement.rst b/modules/libjuju/docs/api/juju.placement.rst new file mode 100644 index 0000000..67cde0c --- /dev/null +++ b/modules/libjuju/docs/api/juju.placement.rst @@ -0,0 +1,13 @@ +juju.placement +============== + +.. rubric:: Summary + +.. automembersummary:: juju.placement + +.. rubric:: Reference + +.. automodule:: juju.placement + :members: + :undoc-members: + :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.relation.rst b/modules/libjuju/docs/api/juju.relation.rst new file mode 100644 index 0000000..90e3130 --- /dev/null +++ b/modules/libjuju/docs/api/juju.relation.rst @@ -0,0 +1,13 @@ +juju.relation +============= + +.. rubric:: Summary + +.. automembersummary:: juju.relation + +.. rubric:: Reference + +.. automodule:: juju.relation + :members: + :undoc-members: + :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.tag.rst b/modules/libjuju/docs/api/juju.tag.rst new file mode 100644 index 0000000..9b3a29f --- /dev/null +++ b/modules/libjuju/docs/api/juju.tag.rst @@ -0,0 +1,13 @@ +juju.tag +======== + +.. rubric:: Summary + +.. automembersummary:: juju.tag + +.. rubric:: Reference + +.. automodule:: juju.tag + :members: + :undoc-members: + :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.unit.rst b/modules/libjuju/docs/api/juju.unit.rst new file mode 100644 index 0000000..4a7d167 --- /dev/null +++ b/modules/libjuju/docs/api/juju.unit.rst @@ -0,0 +1,13 @@ +juju.unit +========= + +.. rubric:: Summary + +.. automembersummary:: juju.unit + +.. rubric:: Reference + +.. automodule:: juju.unit + :members: + :undoc-members: + :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.utils.rst b/modules/libjuju/docs/api/juju.utils.rst new file mode 100644 index 0000000..9220a1b --- /dev/null +++ b/modules/libjuju/docs/api/juju.utils.rst @@ -0,0 +1,13 @@ +juju.utils +========== + +.. rubric:: Summary + +.. automembersummary:: juju.utils + +.. rubric:: Reference + +.. automodule:: juju.utils + :members: + :undoc-members: + :show-inheritance: diff --git a/modules/libjuju/docs/api/modules.rst b/modules/libjuju/docs/api/modules.rst new file mode 100644 index 0000000..9722a6a --- /dev/null +++ b/modules/libjuju/docs/api/modules.rst @@ -0,0 +1,31 @@ +Public APIs +=========== + +It is recommended that you start with :doc:`juju.model` or :doc:`juju.controller`. +If you need helpers to manage the asyncio loop, try :doc:`juju.loop`. + +.. toctree:: + + juju.action + juju.annotation + juju.application + juju.cloud + juju.constraints + juju.controller + juju.delta + juju.errors + juju.exceptions + juju.juju + juju.loop + juju.machine + juju.model + juju.placement + juju.relation + juju.tag + juju.unit + juju.utils + +.. automodule:: juju + :members: + :undoc-members: + :show-inheritance: diff --git a/modules/libjuju/docs/changelog.rst b/modules/libjuju/docs/changelog.rst new file mode 100644 index 0000000..d5e13ba --- /dev/null +++ b/modules/libjuju/docs/changelog.rst @@ -0,0 +1,290 @@ +Changelog +--------- + +0.11.3 +^^^^^^ +Wednesday March 13 2019 + +* k8s bundles no longer have application placement (#293) +* Add retry for connection if all endpoints fail (#288) +* Support generation of registration string for model sharing. (#279) +* Add Twine for dist upload on release (#284) + + +0.11.2 +^^^^^^ +Wednesday January 16 2019 + +* update facade methods for Juju 2.5-rc2 (#281) +* Add test case for redirect during connect (#275) +* Implement App.get_resources and pinned resources in bundles (#278) + + +0.11.1 +^^^^^^ +Thursday December 13 2018 + +* Fix bundles with subordinates for Juju <2.5 (#277) + + +0.11.0 +^^^^^^ +Tuesday December 11 2018 + +* Updates for new Juju version (#274) +* Fix wrong variable name in revoke_model function (#271) + + +0.10.2 +^^^^^^ +Tuesday September 18 2018 + +* set include_stats to false to reduce request time (#266) + + +0.10.1 +^^^^^^ +Monday September 17 2018 + +* Retry ssh in manual provision test (#265) +* Clean up lint and add lint coverage to travis config (#263) +* Increase the timeout for charmstore connections (#262) +* Fix log level of `Driver connected to juju` message (#258) + + +0.10.0 +^^^^^^ +Thursday August 16 2018 + +* Fix error due to scp extra opts order (#260) +* Implement set/get model constraints (#253) + + +>>>>>>> b8a8281b1785358bd5632a119c016f21811172c6 +0.9.1 +^^^^^ +Monday July 16 2018 + +* Update websockets to 6.0 to fix OS X support due to Brew update to Py3.7 (#254) + + +0.9.0 +^^^^^ +Friday June 29 2018 + +* python3.7 compatibility updates (#251) +* Handle juju not installed in is_bootstrapped for tests (#250) +* Add app.reset_config(list). (#249) +* Implement model.get_action_status (#248) +* Fix `make client` in Python 3.6 (#247) + + +0.8.0 +^^^^^ +Thursday June 14 2018 + +* Add support for adding a manual (ssh) machine (#240) +* Backwards compatibility fixes (#213) +* Implement model.get_action_output (#242) +* Fix JSON serialization error for bundle with lxd to unit placement (#243) +* Fix reference in docs to connect_current (#239) +* Wrap machine agent status workaround in version check (#238) +* Convert seconds to nanoseconds for juju.unit.run (#237) +* Fix spurious intermittent failure in test_machines.py::test_status (#236) +* Define an unused juju-zfs lxd storage pool for Travis (#235) +* Add support for Application get_actions (#234) + + +0.7.5 +^^^^^ +Friday May 18 2018 + +* Surface errors from bundle plan (#233) +* Always send auth-tag even with macaroon auth (#217) +* Inline jsonfile credential when sending to controller (#231) + +0.7.4 +^^^^^ +Tuesday Apr 24 2018 + +* Always parse tags and spaces constraints to lists (#228) +* Doc index improvements (#211) +* Add doc req to force newer pymacaroons to fix RTD builds +* Fix dependency conflict for building docs + +0.7.3 +^^^^^ +Tuesday Feb 20 2018 + +* Full macaroon bakery support (#206) +* Fix regression with deploying local charm, add test case (#209) +* Expose a machines series (#208) +* Automated test runner fixes (#205) + +0.7.2 +^^^^^ +Friday Feb 9 2018 + +* Support deploying bundle YAML file directly (rather than just directory) (#202) + +0.7.1 +^^^^^ +Monday Dec 18 2017 + +* Fix missed renames of model_uuids (#197) + +0.7.0 +^^^^^ +Fri Dec 15 2017 + +* Fix race condition in adding relations (#192) +* Fix race condition in connection monitor test (#183) +* Fix example in README (#178) +* Fix rare hang during Unit.run (#177) +* Fix licensing quirks (#176) +* Refactor model handling (#171) +* Refactor users handling, add get_users (#170) +* Upload credential to controller when adding model (#168) +* Support 'applications' key in bundles (#165) +* Improve handling of thread error handling for loop.run() (#169) +* Fix encoding when using to_json() (#166) +* Fix intermittent test failures (#167) + +0.6.1 +^^^^^ +Fri Sept 29 2017 + +* Fix failure when controller supports newer facade version (#145) +* Fix test failures (#163) +* Fix SSH key handling when adding a new model (#161) +* Make Application.upgrade_charm upgrade resources (#158) +* Expand integration tests to use stable/edge versions of juju (#155) +* Move docs to ReadTheDocs (https://pythonlibjuju.readthedocs.io/en/latest/) + +0.6.0 +^^^^^ +Thu June 29 2017 + +* Implement scp functionality (#149) +* Add Unit.public_address property (#153) +* Adds support for getting/setting config on a model (#152) + +0.5.3 +^^^^^ +Thu June 22 2017 + +* Improve handling of closed connections (#148) +* Configurable and larger max message size (#146) + +0.5.2 +^^^^^ +Wed June 14 2017 + +* Fix deploying non-stable channels and explicit revs (#144) + +0.5.1 +^^^^^ +Tue June 13 2017 + +* Update schema for Juju 2.3 alpha1 (#142) +* Improve API doc navigation and coverage (#141) +* Add type info to Model.add_machine docs (#138) + +0.5.0 +^^^^^ +Thu June 8 2017 + +* Add machine status properties (#133) +* Add model context manager (#128) +* Implement Application.upgrade_charm method (#132) + +0.4.3 +^^^^^ +Thu June 1 2017 + +* Accept new / unknown API fields gracefully (#131) +* Add support for new agent-version field in ModelInfo (#131) +* Replace pip with pip3 in install instructions (#129) +* Strip local:-prefix from local charm urls (#121) + +0.4.2 +^^^^^ +Wed May 10 2017 + +* Support (and prefer) per-controller macaroon files (#125) + +0.4.1 +^^^^^ +Wed Apr 27 2017 + +* Remove VERSION_MAP and rely on facade list from controller (#118) +* Refactor connection task management to avoid cancels (#117) +* Refactored login code to better handle redirects (#116) + +0.4.0 +^^^^^ +Wed Apr 19 2017 + +* Feature/api version support (#109) +* Expanding controller.py with basic user functions, get_models and + destroy (#89) +* Added Monitor class to Connection. (#105) +* Support placement lists (#103) +* Include resources from store when deploying (#102) +* Allow underscore to dash translation when accessing model + attributes (#101) +* Added controller to ssh fix. (#100) +* Regen schema to pick up missing APIs +* Improve error handling +* Fix issue where we do not check to make sure that we are receiving the + correct response. +* Retry calls to charmstore and increase timeout to 5s +* Make connect_model and deploy a bit more friendly +* Fix model name not including user +* Implement Model.get_status +* Add integration tests. + +0.3.0 +^^^^^ +Mon Feb 27 2017 + +* Fix docstrings for placement directives. +* Implement Model.add_machine() +* Bug fix - "to" parameter to Model.deploy() was broken +* Add docs and examples for adding machines and containers and deploying + charms to them. +* Make Machine.destroy() block the current coroutine, returning only after + the machine is actually removed from the remote model. This is more + consistent with the way the other apis work (e.g. Model.deploy(), + Application.add_unit(), etc). +* Raise NotImplementedError in all unimplemented method stubs instead of + silently passing. + +0.2.0 +^^^^^ +Thu Feb 16 2017 + +* Add default ssh key to newly created model. +* Add loop helpers and simplify examples/deploy.py +* Add support for deploying local charms, and bundles containing local charm paths. +* Add ability to get cloud name for controller. +* Bug fix - fix wrong api used in Model.destroy_unit() +* Add error detection in bundle deploy. + +0.1.2 +^^^^^ +Thu Dec 22 2016 + +* Bug fix - Include docs in package + +0.1.1 +^^^^^ +Thu Dec 22 2016 + +* Bug fix - Include VERSION file in package + +0.1.0 +^^^^^ +Wed Dec 21 2016 + +* Initial Release diff --git a/modules/libjuju/docs/conf.py b/modules/libjuju/docs/conf.py new file mode 100644 index 0000000..a95ec04 --- /dev/null +++ b/modules/libjuju/docs/conf.py @@ -0,0 +1,303 @@ +# -*- coding: utf-8 -*- +# +# libjuju documentation build configuration file, created by +# sphinx-quickstart on Thu May 19 11:21:38 2016. +# +# This file is execfile()d with the current directory set to its +# containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys +import os + +from pathlib import Path + +here = Path(__file__).absolute().parent +version = (here.parent / 'VERSION').read_text().strip() + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +sys.path.insert(0, os.path.abspath('..')) + +# -- General configuration ------------------------------------------------ + +# If your documentation needs a minimal Sphinx version, state it here. +#needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +sys.path.append(os.path.abspath('_extensions/')) +extensions = [ + 'sphinx.ext.autodoc', + 'sphinx.ext.autosummary', + 'sphinx.ext.intersphinx', + 'sphinx.ext.todo', + 'sphinx.ext.viewcode', + 'sphinxcontrib.asyncio', + 'automembersummary', +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +# source_suffix = ['.rst', '.md'] +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'juju' +copyright = u'2016, Canonical Ltd.' +author = u'Canonical' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = version +# The full version, including alpha/beta/rc tags. +release = version + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This patterns also effect to html_static_path and html_extra_path +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +# The reST default role (used for this markup: `text`) to use for all +# documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + +# If true, keep warnings as "system message" paragraphs in the built documents. +#keep_warnings = False + +# If true, `todo` and `todoList` produce output, else they produce nothing. +todo_include_todos = True + + +# -- Options for HTML output ---------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +html_theme = 'sphinx_rtd_theme' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +#html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = [] + +# The name for this set of Sphinx documents. +# " v documentation" by default. +#html_title = u'libjuju v0.0.0' + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# The name of an image file (relative to this directory) to use as a favicon of +# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# Add any extra paths that contain custom files (such as robots.txt or +# .htaccess) here, relative to this directory. These files are copied +# directly to the root of the documentation. +#html_extra_path = [] + +# If not None, a 'Last updated on:' timestamp is inserted at every page +# bottom, using the given strftime format. +# The empty string is equivalent to '%b %d, %Y'. +#html_last_updated_fmt = None + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_domain_indices = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +#html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +#html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = None + +# Language to be used for generating the HTML full-text search index. +# Sphinx supports the following languages: +# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' +# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr', 'zh' +#html_search_language = 'en' + +# A dictionary with options for the search language support, empty by default. +# 'ja' uses this config value. +# 'zh' user can custom change `jieba` dictionary path. +#html_search_options = {'type': 'default'} + +# The name of a javascript file (relative to the configuration directory) that +# implements a search results scorer. If empty, the default will be used. +#html_search_scorer = 'scorer.js' + +# Output file base name for HTML help builder. +htmlhelp_basename = 'libjujudoc' + +# -- Options for LaTeX output --------------------------------------------- + +latex_elements = { +# The paper size ('letterpaper' or 'a4paper'). +#'papersize': 'letterpaper', + +# The font size ('10pt', '11pt' or '12pt'). +#'pointsize': '10pt', + +# Additional stuff for the LaTeX preamble. +#'preamble': '', + +# Latex figure (float) alignment +#'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + (master_doc, 'libjuju.tex', u'libjuju Documentation', + u'Canonical', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +#latex_show_pagerefs = False + +# If true, show URL addresses after external links. +#latex_show_urls = False + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_domain_indices = True + + +# -- Options for manual page output --------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + (master_doc, 'libjuju', u'libjuju Documentation', + [author], 1) +] + +# If true, show URL addresses after external links. +#man_show_urls = False + + +# -- Options for Texinfo output ------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (master_doc, 'libjuju', u'libjuju Documentation', + author, 'libjuju', 'One line description of project.', + 'Miscellaneous'), +] + +# Documents to append as an appendix to all manuals. +#texinfo_appendices = [] + +# If false, no module index is generated. +#texinfo_domain_indices = True + +# How to display URL addresses: 'footnote', 'no', or 'inline'. +#texinfo_show_urls = 'footnote' + +# If true, do not generate a @detailmenu in the "Top" node's menu. +#texinfo_no_detailmenu = False + +def setup(app): + app.add_stylesheet('custom.css') diff --git a/modules/libjuju/docs/index.rst b/modules/libjuju/docs/index.rst new file mode 100644 index 0000000..2dd55cb --- /dev/null +++ b/modules/libjuju/docs/index.rst @@ -0,0 +1,45 @@ +.. libjuju documentation master file, created by + sphinx-quickstart on Thu May 19 11:21:38 2016. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + + +.. include:: readme.rst + + +Table of Contents +----------------- + +.. toctree:: + :caption: Overview + :glob: + :maxdepth: 3 + + narrative/index + + +.. toctree:: + :caption: API Documentation + :glob: + :maxdepth: 3 + + api/modules + api/juju.client + +.. toctree:: + :caption: Project + :glob: + :maxdepth: 3 + + upstream-updates/index + changelog + + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff --git a/modules/libjuju/docs/narrative/application.rst b/modules/libjuju/docs/narrative/application.rst new file mode 100644 index 0000000..1565e5f --- /dev/null +++ b/modules/libjuju/docs/narrative/application.rst @@ -0,0 +1,136 @@ +Applications +============ +For api docs, see :class:`juju.application.Application`. + + +Deploying +--------- +To deploy a new application, connect a model and then call its +:meth:`~juju.model.Model.deploy` method. An +:class:`~juju.application.Application` instance is returned. + +.. code:: python + + from juju.model import Model + + model = Model() + await model.connect_current() + + mysql_app = await model.deploy( + # If a revision number is not included in the charm url, + # the latest revision from the Charm Store will be used. + 'cs:mysql-55', + application_name='mysql', + series='trusty', + channel='stable', + config={ + 'tuning-level': 'safest', + }, + constraints={ + 'mem': 256 * MB, + }, + ) + + +Deploying a Local Charm +----------------------- +To deploy a local charm, pass the charm directory path to +`Model.deploy()`. + +.. code:: python + + from juju.model import Model + + model = Model() + await model.connect_current() + + # Deploy a local charm using a path to the charm directory + await model.deploy( + '/home/tvansteenburgh/src/charms/ubuntu', + application_name='ubuntu', + series='trusty', + ) + + +Adding Units +------------ +To add units to a deployed application, use the +:meth:`juju.application.Application.add_units` method. A list of the newly +added units (:class:`~juju.unit.Unit` objects) is returned. + +.. code:: python + + ubuntu_app = await model.deploy( + 'ubuntu', + application_name='ubuntu', + series='trusty', + channel='stable', + ) + + unit_a, unit_b = await ubuntu_app.add_units(count=2) + + +Updating Config and Constraints +------------------------------- +Example showing how to update configuration and constraints on a deployed +application. The `mysql_app` object is an instance of +:class:`juju.application.Application`. + +.. code:: python + + MB = 1024 * 1024 + + # Update and check app config + await mysql_app.set_config({'tuning-level': 'fast'}) + config = await mysql_app.get_config() + + assert(config['tuning-level']['value'] == 'fast') + + # update and check app constraints + await mysql_app.set_constraints({'mem': 512 * MB}) + constraints = await mysql_app.get_constraints() + + assert(constraints['mem'] == 512 * MB) + + +Adding and Removing Relations +----------------------------- +The :meth:`juju.application.Application.add_relation` method returns a +:class:`juju.relation.Relation` instance. + +.. code:: python + + from juju.model import Model + + model = Model() + await model.connect_current() + + # Deploy mysql-master application + mysql_master = await model.deploy( + 'cs:mysql-55', + application_name='mysql-master', + series='trusty', + channel='stable', + ) + + # Deploy mysql-slave application + mysql_slave = await model.deploy( + 'cs:mysql-55', + application_name='mysql-slave', + series='trusty', + channel='stable', + ) + + # Add the master-slave relation + relation = await mysql_master.add_relation( + # Name of the relation on the local (mysql-master) side + 'master', + # Name of the app:relation on the remote side + 'mysql-slave:slave', + ) + + # Remove the relation + await mysql_master.remove_relation( + 'master', + 'mysql-slave:slave', + ) diff --git a/modules/libjuju/docs/narrative/controller.rst b/modules/libjuju/docs/narrative/controller.rst new file mode 100644 index 0000000..1d86321 --- /dev/null +++ b/modules/libjuju/docs/narrative/controller.rst @@ -0,0 +1,92 @@ +Controllers +=========== +A Juju controller provides websocket endpoints for itself and each of its +models. In order to do anything useful, the juju lib must connect to one of +these endpoints. + +Connecting to the controller endpoint is useful if you want to programmatically +create a new model. If the model you want to use already exists, you can +connect directly to it (see py:doc:`model`). + +For API docs, see py:class:`juju.controller.Controller`. + + +Connecting to the Current Controller +------------------------------------ +Connect to the currently active Juju controller (the one returned by +`juju switch`). This only works if you have the Juju CLI client installed. + +.. code:: python + + from juju.controller import Controller + + controller = Controller() + await controller.connect() + + +Connecting to a Named Controller +-------------------------------- +Connect to a controller by name. + +.. code:: python + + from juju.controller import Controller + + controller = Controller() + await controller.connect('mycontroller') + + +Connecting with Authentication +------------------------------ +You can control what user you are connecting with by specifying either a +username/password pair, or a macaroon or bakery client that can provide +a macaroon. + + +.. code:: python + + controller = Controller() + await controller.connect(username='admin', + password='f53f08cfc32a2e257fe5393271d89d62') + + # or with a macaroon + await controller.connect(macaroons=[ + { + "Name": "macaroon-218d87053ad19626bcd5a0eef0bc9ba8bd4fbd80a968f52a5fd430b2aa8660df", + "Value": "W3siY2F2ZWF0cyI6 ... jBkZiJ9XQ==", + "Domain": "10.130.48.27", + "Path": "/auth", + "Secure": false, + "HostOnly": true, + "Expires": "2018-03-07T22:07:23Z", + }, + ]) + + # or with a bakery client + from macaroonbakery.httpbakery import Client + from http.cookiejar import FileCookieJar + + bakery_client=Client() + bakery_client.cookies = FileCookieJar('cookies.txt') + controller = Controller() + await controller.connect(bakery_client=bakery_client) + + + +Connecting with an Explicit Endpoint +------------------------------------ +The most flexible, but also most verbose, way to connect is using the API +endpoint url and credentials directly. This method does NOT require the +Juju CLI client to be installed. + +.. code:: python + + controller = Controller() + await controller.connect( + endpoint='10.0.4.171:17070', + username='admin', + password='f53f08cfc32a2e257fe5393271d89d62', + cacert=None, # Left out for brevity, but if you have a cert string you + # should pass it in. You can get the cert from the output + # of The `juju show-controller` command. + ) diff --git a/modules/libjuju/docs/narrative/index.rst b/modules/libjuju/docs/narrative/index.rst new file mode 100644 index 0000000..b1684a0 --- /dev/null +++ b/modules/libjuju/docs/narrative/index.rst @@ -0,0 +1,10 @@ +**Overview** + +.. toctree:: + :glob: + :maxdepth: 2 + + controller + model + application + unit diff --git a/modules/libjuju/docs/narrative/model.rst b/modules/libjuju/docs/narrative/model.rst new file mode 100644 index 0000000..42633a1 --- /dev/null +++ b/modules/libjuju/docs/narrative/model.rst @@ -0,0 +1,290 @@ +Models +====== +A Juju controller provides websocket endpoints for each of its +models. In order to do anything useful with a model, the juju lib must +connect to one of these endpoints. There are several ways to do this. + +For api docs, see py:class:`juju.model.Model`. + + +Connecting to the Current Model +------------------------------- +Connect to the currently active Juju model (the one returned by +`juju switch`). This only works if you have the Juju CLI client installed. + +.. code:: python + + model = Model() + await model.connect() + + +Connecting to a Named Model +--------------------------- +Connect to a model by name, using the same format as that returned from the +`juju switch` command. The accepted format is '[controller:][user/]model'. +This only works if you have the Juju CLI client installed. + +.. code:: python + + model = Model() + await model.connect('juju-2.0.1:admin/libjuju') + + +Connecting with Authentication +------------------------------ +You can control what user you are connecting with by specifying either a +username/password pair, or a macaroon or bakery client that can provide +a macaroon. + + +.. code:: python + + model = Model() + await model.connect(username='admin', + password='f53f08cfc32a2e257fe5393271d89d62') + + # or with a macaroon + await model.connect(macaroons=[ + { + "Name": "macaroon-218d87053ad19626bcd5a0eef0bc9ba8bd4fbd80a968f52a5fd430b2aa8660df", + "Value": "W3siY2F2ZWF0cyI6 ... jBkZiJ9XQ==", + "Domain": "10.130.48.27", + "Path": "/auth", + "Secure": false, + "HostOnly": true, + "Expires": "2018-03-07T22:07:23Z", + }, + ]) + + # or with a bakery client + from macaroonbakery.httpbakery import Client + from http.cookiejar import FileCookieJar + + bakery_client=Client() + bakery_client.cookies = FileCookieJar('cookies.txt') + model = Model() + await model.connect(bakery_client=bakery_client) + + + +Connecting with an Explicit Endpoint +------------------------------------ +The most flexible, but also most verbose, way to connect is using the API +endpoint url, model UUID, and credentials directly. This method does NOT +require the Juju CLI client to be installed. + +.. code:: python + + from juju.model import Model + + model = Model() + await model.connect( + endpoint='10.0.4.171:17070', + uuid='e8399ac7-078c-4817-8e5e-32316d55b083', + username='admin', + password='f53f08cfc32a2e257fe5393271d89d62', + cacert=None, # Left out for brevity, but if you have a cert string you + # should pass it in. You can get the cert from the output + # of The `juju show-controller` command. + ) + + +Creating and Destroying a Model +------------------------------- +Example of creating a new model and then destroying it. See +py:method:`juju.controller.Controller.add_model` and +py:method:`juju.controller.Controller.destroy_model` for more info. + +.. code:: python + + from juju.controller import Controller + + controller = Controller() + await controller.connect_current() + + # Create our new model + model = await controller.add_model( + 'mymodel', # name of your new model + ) + + # Do stuff with our model... + + # Destroy the model + await model.disconnect() + await controller.destroy_model(model.info.uuid) + model = None + + +Adding Machines and Containers +------------------------------ +To add a machine or container, connect to a model and then call its +py:method:`~juju.model.Model.add_machine` method. A +py:class:`~juju.machine.Machine` instance is returned. The machine id +can be used to deploy a charm to a specific machine or container. + +.. code:: python + + from juju.model import Model + + MB = 1 + GB = 1024 + + + model = Model() + await model.connect_current() + + # add a new default machine + machine1 = await model.add_machine() + + # add a machine with constraints, disks, and series specified + machine2 = await model.add_machine( + constraints={ + 'mem': 256 * MB, + }, + disks=[{ + 'pool': 'rootfs', + 'size': 10 * GB, + 'count': 1, + }], + series='xenial', + ) + + # add a lxd container to machine2 + machine3 = await model.add_machine( + 'lxd:{}'.format(machine2.id)) + + # deploy charm to the lxd container + application = await model.deploy( + 'ubuntu-10', + application_name='ubuntu', + series='xenial', + channel='stable', + to=machine3.id + ) + + # remove application + await application.remove() + + # destroy machines - note that machine3 must be destroyed before machine2 + # since it's a container on machine2 + await machine3.destroy(force=True) + await machine2.destroy(force=True) + await machine1.destroy(force=True) + + +Reacting to Changes in a Model +------------------------------ +To watch for and respond to changes in a model, register an observer with the +model. The easiest way to do this is by creating a +py:class:`juju.model.ModelObserver` subclass. + +.. code:: python + + from juju.model import Model, ModelObserver + + class MyModelObserver(ModelObserver): + async def on_change(self, delta, old, new, model): + # The raw change data (dict) from the websocket. + print(delta.data) + + # The entity type (str) affected by this change. + # One of ('action', 'application', 'annotation', 'machine', + # 'unit', 'relation') + print(delta.entity) + + # The type (str) of change. + # One of ('add', 'change', 'remove') + print(delta.type) + + # The 'old' and 'new' parameters are juju.model.ModelEntity + # instances which represent an entity in the model both before + # this change was applied (old) and after (new). + + # If an entity is being added to the model, the 'old' param + # will be None. + if delta.type == 'add': + assert(old is None) + + # If an entity is being removed from the model, the 'new' param + # will be None. + if delta.type == 'remove': + assert(new is None) + + # The 'old' and 'new' parameters, when not None, will be instances + # of a juju.model.ModelEntity subclass. The type of the subclass + # depends on the value of 'delta.entity', for example: + # + # delta.entity type + # ------------ ---- + # 'action' -> juju.action.Action + # 'application' -> juju.application.Application + # 'annotation' -> juju.annotation.Annotation + # 'machine' -> juju.machine.Machine + # 'unit' -> juju.unit.Unit + # 'relation' -> juju.relation.Relation + + # Finally, the 'model' parameter is a reference to the + # juju.model.Model instance to which this observer is attached. + print(id(model)) + + + model = Model() + await model.connect_current() + + model.add_observer(MyModelObserver()) + + +Every change in the model will result in a call to the `on_change()` +method of your observer(s). + +To target your code more precisely, define method names that correspond +to the entity and type of change that you wish to handle. + +.. code:: python + + from juju.model import Model, ModelObserver + + class MyModelObserver(ModelObserver): + async def on_application_change(self, delta, old, new, model): + # Both 'old' and 'new' params will be instances of + # juju.application.Application + pass + + async def on_unit_remove(self, delta, old, new, model): + # Since a unit is being removed, the 'new' param will always + # be None in this handler. The 'old' param will be an instance + # of juju.unit.Unit - the state of the unit before it was removed. + pass + + async def on_machine_add(self, delta, old, new, model): + # Since a machine is being added, the 'old' param will always be + # None in this handler. The 'new' param will be an instance of + # juju.machine.Machine. + pass + + async def on_change(self, delta, old, new, model): + # The catch-all handler - will be called whenever a more + # specific handler method is not defined. + + +Any py:class:`juju.model.ModelEntity` object can be observed directly by +registering callbacks on the object itself. + +.. code:: python + + import logging + + async def on_app_change(delta, old, new, model): + logging.debug('App changed: %r', new) + + async def on_app_remove(delta, old, new, model): + logging.debug('App removed: %r', old) + + ubuntu_app = await model.deploy( + 'ubuntu', + application_name='ubuntu', + series='trusty', + channel='stable', + ) + ubuntu_app.on_change(on_app_change) + ubuntu_app.on_remove(on_app_remove) diff --git a/modules/libjuju/docs/narrative/unit.rst b/modules/libjuju/docs/narrative/unit.rst new file mode 100644 index 0000000..5d6b48d --- /dev/null +++ b/modules/libjuju/docs/narrative/unit.rst @@ -0,0 +1,65 @@ +Units +===== +For api docs, see :class:`juju.unit.Unit`. + + +Running Commands +---------------- +Run arbitrary commands on a unit with the +:meth:`juju.unit.Unit.run` method. This method blocks +the current coroutine until a result is available, and +returns a :class:`juju.action.Action` instance. + + +.. code:: python + + from juju.model import Model + + model = Model() + await model.connect_current() + + app = await model.deploy( + 'ubuntu', + application_name='ubuntu', + series='trusty', + channel='stable', + ) + + for unit in app.units: + action = await unit.run('unit-get public-address') + print(action.results) + + action = await unit.run('uname -a') + print(action.results) + + +Running Actions +--------------- +Run actions on a unit with the +:meth:`juju.unit.Unit.run_action` method. This method +returns a :class:`juju.action.Action` instance immediately. To block until +the action completes, use the :meth:`juju.action.Action.wait` method, as +in the example below. + + +.. code:: python + + from juju.model import Model + + model = Model() + await model.connect_current() + + app = await model.deploy( + 'git', + application_name='git', + series='trusty', + channel='stable', + ) + + for unit in app.units: + # run the 'add-repo' action, passing a 'repo' param + action = await unit.run_action('add-repo', repo='myrepo') + # wait for the action to complete + action = await action.wait() + + print(action.results) diff --git a/modules/libjuju/docs/readme.rst b/modules/libjuju/docs/readme.rst new file mode 100644 index 0000000..87666d0 --- /dev/null +++ b/modules/libjuju/docs/readme.rst @@ -0,0 +1,103 @@ +A Python library for Juju +========================= + +Source code: https://github.com/juju/python-libjuju + +Bug reports: https://github.com/juju/python-libjuju/issues + +Documentation: https://pythonlibjuju.readthedocs.io/en/latest/ + + +Requirements +------------ + +* Python 3.5+ +* Juju 2.0+ + + +Design Notes +------------ + +* Asynchronous - uses asyncio and async/await features of python 3.5 +* Websocket-level bindings are programmatically generated (indirectly) from the + Juju golang code, ensuring full api coverage +* Provides an OO layer which encapsulates much of the websocket api and + provides familiar nouns and verbs (e.g. Model.deploy(), Application.add_unit(), + etc.) + + +Installation +------------ + +.. code:: bash + + pip3 install juju + + +Quickstart +---------- +Here's a simple example that shows basic usage of the library. The example +connects to the currently active Juju model, deploys a single unit of the +ubuntu charm, then exits: + + +.. code:: python + + #!/usr/bin/python3 + + import logging + import sys + + from juju import loop + from juju.model import Model + + + async def deploy(): + # Create a Model instance. We need to connect our Model to a Juju api + # server before we can use it. + model = Model() + + # Connect to the currently active Juju model + await model.connect_current() + + try: + # Deploy a single unit of the ubuntu charm, using the latest revision + # from the stable channel of the Charm Store. + ubuntu_app = await model.deploy( + 'ubuntu', + application_name='ubuntu', + series='xenial', + channel='stable', + ) + + if '--wait' in sys.argv: + # optionally block until the application is ready + await model.block_until(lambda: ubuntu_app.status == 'active') + finally: + # Disconnect from the api server and cleanup. + await model.disconnect() + + + def main(): + logging.basicConfig(level=logging.INFO) + + # If you want to see everything sent over the wire, set this to DEBUG. + ws_logger = logging.getLogger('websockets.protocol') + ws_logger.setLevel(logging.INFO) + + # Run the deploy coroutine in an asyncio event loop, using a helper + # that abstracts loop creation and teardown. + loop.run(deploy()) + + + if __name__ == '__main__': + main() + + +More examples can be found in the docs, as well as in the ``examples/`` +directory of the source tree which can be run using ``tox``. For +example, to run ``examples/connect_current_model.py``, use: + +.. code:: bash + + tox -e example -- examples/connect_current_model.py diff --git a/modules/libjuju/docs/requirements.txt b/modules/libjuju/docs/requirements.txt new file mode 100644 index 0000000..dabf3a0 --- /dev/null +++ b/modules/libjuju/docs/requirements.txt @@ -0,0 +1,5 @@ +pytz<2018.0,>=2017.2 # conflict between sphinx and macaroonbakery +pymacaroons>=0.13.0,<1.0 # force new version with pynacl instead of libnacl +sphinx==1.6.5 +sphinxcontrib-asyncio +sphinx_rtd_theme diff --git a/modules/libjuju/docs/upstream-updates/index.rst b/modules/libjuju/docs/upstream-updates/index.rst new file mode 100644 index 0000000..41f448a --- /dev/null +++ b/modules/libjuju/docs/upstream-updates/index.rst @@ -0,0 +1,114 @@ +Syncing Upstream Updates +======================== + +Updating the facade and definitions code generated from the schema +to reflect changes in upstream Juju consists of two steps: + +* Creating a new `schemas-juju-.json` file from the Juju code-base +* Generating the libjuju Python code from that schema + +Rarely, you may also have to add or update an override. + + +Creating a Schema File +---------------------- + +First, you will need to fetch SchemaGen_ and a copy of the Juju source. +Once your copy of the Juju source is at the version you want to update to +(probably the `develop` branch, or a release tag) and you have updated +and reinstalled SchemaGen to reflect those changes, you just need to send +the output into a file in the libjuju repository: + +.. code:: bash + + schemagen > juju/client/schemas-juju-2.2-rc1.json + +The version number you use in the filename should match the upstream +version of Juju. You should then also move the `latest` pointer to +the new file: + +.. code:: bash + + rm juju/client/schemas-juju-latest.json + ln -s schemas-juju-2.2-rc1.json juju/client/schemas-juju-latest.json + + +Generating the Python Code +-------------------------- + +Once you have a new schema file, you can update the Python code +using the `client` make target: + +.. code:: bash + + make client + +You should expect to see updates to the `juju/client/_definitions.py` file, +as well as one or more of the `juju/client/_clientX.py` files, depending on +which facades were touched. + + +Integrating into the Object Layer +--------------------------------- + +Once the raw client APIs are synced, you may need to integrate any new or +changed API calls into the object layer, to provide a clean, Pythonic way +to interact with the model. This may be as simple as adding an optional +parameter to an existing model method, tweaking what manipulations, if any +the model method does to the data before it is sent to the API, or it may +require adding an entirely new model method to capture the new functionality. + +In general, the approach should be to make the interactions with the model +layer use the same patterns as when you use the CLI, just with Python idioms +and OO approaches. + +When trying to determine what client calls need to be made and what data to +be sent for a given Juju CLI action, it is very useful to add +`--debug --logging-config TRACE` to any Juju CLI command to view the full +conversation between the CLI client and the API server. For example: + +``` +[johnsca@murdoch:~] $ juju deploy --debug --logging-config TRACE ./builds/test +11:51:20 INFO juju.cmd supercommand.go:56 running juju [2.3.5 gc go1.10] +11:51:20 DEBUG juju.cmd supercommand.go:57 args: []string{"/snap/juju/3884/bin/juju", "deploy", "--debug", "--logging-config", "TRACE", "./builds/test"} +11:51:20 INFO juju.juju api.go:67 connecting to API addresses: [35.172.119.191:17070 172.31.94.16:17070 252.94.16.1:17070] +11:51:20 TRACE juju.api certpool.go:49 cert dir "/etc/juju/certs.d" does not exist +11:51:20 DEBUG juju.api apiclient.go:843 successfully dialed "wss://35.172.119.191:17070/model/a7317969-6dab-4ba4-844b-af3d661c228d/api" +11:51:20 INFO juju.api apiclient.go:597 connection established to "wss://35.172.119.191:17070/model/a7317969-6dab-4ba4-844b-af3d661c228d/api" +... +11:51:20 INFO juju.cmd.juju.application series_selector.go:71 with the configured model default series "xenial" +11:51:20 DEBUG httpbakery client.go:244 client do POST https://35.172.119.191:17070/model/a7317969-6dab-4ba4-844b-af3d661c228d/charms?revision=0&schema=local&series=xenial { +11:51:21 DEBUG httpbakery client.go:246 } -> error +11:51:21 INFO cmd deploy.go:1096 Deploying charm "local:xenial/test-0". +11:51:21 TRACE juju.rpc.jsoncodec codec.go:225 -> {"request-id":3,"type":"Charms","version":2,"request":"CharmInfo","params":{"url":"local:xenial/test-0"}} +11:51:21 TRACE juju.rpc.jsoncodec codec.go:120 <- {"request-id":3,"response":{"revision":0,"url":"local:xenial/test-0","config":{"test":{"type":"string","default":""}},"meta":{"name":"test","summary":"test","description":"test","subordinate":false,"series":["xenial"],"resources":{"dummy":{"name":"dummy","type":"file","path":"dummy.snap","description":"dummy snap"}},"min-juju-version":"0.0.0"},"actions":{}}} +11:51:21 TRACE juju.rpc.jsoncodec codec.go:225 -> {"request-id":4,"type":"Charms","version":2,"request":"IsMetered","params":{"url":"local:xenial/test-0"}} +11:51:21 TRACE juju.rpc.jsoncodec codec.go:120 <- {"request-id":4,"response":{"metered":false}} +11:51:21 TRACE juju.rpc.jsoncodec codec.go:225 -> {"request-id":5,"type":"Resources","version":1,"request":"AddPendingResources","params":{"tag":"application-test","url":"local:xenial/test-0","channel":"","macaroon":null,"resources":[{"name":"dummy","type":"file","path":"dummy.snap","description":"dummy snap","origin":"store","revision":-1,"fingerprint":"","size":0}]}} +11:51:21 TRACE juju.rpc.jsoncodec codec.go:120 <- {"request-id":5,"response":{"pending-ids":["c0ffdd92-da23-4fb2-8d41-d82d58423447"]}} +11:51:21 TRACE juju.rpc.jsoncodec codec.go:225 -> {"request-id":6,"type":"Application","version":5,"request":"Deploy","params":{"applications":[{"application":"test","series":"xenial","charm-url":"local:xenial/test-0","channel":"","num-units":1,"config-yaml":"","constraints":{},"resources":{"dummy":"c0ffdd92-da23-4fb2-8d41-d82d58423447"}}]}} +11:51:21 TRACE juju.rpc.jsoncodec codec.go:120 <- {"request-id":6,"response":{"results":[{}]}} +11:51:21 TRACE juju.rpc.jsoncodec codec.go:123 <- error: read tcp 192.168.1.102:52168->35.172.119.191:17070: use of closed network connection (closing true) +11:51:21 DEBUG juju.api monitor.go:35 RPC connection died +11:51:21 INFO cmd supercommand.go:465 command finished +``` + +Note that this will contain login information (which has been removed from the above). + + +Overrides +--------- + +It should be quite rare, but occasionally the generated Python code does +not capture all of the logic needed to properly parse the output from the API +or may otherwise need some small amount of tweaking. This is what the +`juju/client/overrides.py` file is for. An example of this is the `Number` +type, which isn't standard JSON and must be parsed slightly differently. + +At the top of that file are two lists, `__all__` and `__patches__`. The +former replaces entire class implementations, while the latter patches +the attributes of the override classes into the matching generated class, +leaving the rest of the generated class untouched. + + +.. _SchemaGen: https://github.com/juju/schemagen diff --git a/modules/libjuju/examples/action.py b/modules/libjuju/examples/action.py new file mode 100644 index 0000000..f839f11 --- /dev/null +++ b/modules/libjuju/examples/action.py @@ -0,0 +1,49 @@ +""" +This example: + +1. Connects to current model and resets it. +2. Deploys a git unit. +3. Runs an action against the unit. +4. Waits for the action results to come back, then exits. + +""" +import logging + +from juju import loop +from juju.model import Model + + +async def run_action(unit): + logging.debug('Running action on unit %s', unit.name) + + # unit.run() returns a juju.action.Action instance + action = await unit.run_action('add-repo', repo='myrepo') + # wait for the action to complete + action = await action.wait() + + logging.debug("Action results: %s", action.results) + + +async def main(): + model = Model() + # connect to current model with current user, per Juju CLI + await model.connect() + + app = await model.deploy( + 'git', + application_name='git', + series='trusty', + channel='stable', + ) + + for unit in app.units: + await run_action(unit) + + await model.disconnect() + + +if __name__ == '__main__': + logging.basicConfig(level=logging.DEBUG) + ws_logger = logging.getLogger('websockets.protocol') + ws_logger.setLevel(logging.INFO) + loop.run(main()) diff --git a/modules/libjuju/examples/add_machine.py b/modules/libjuju/examples/add_machine.py new file mode 100755 index 0000000..33d0c34 --- /dev/null +++ b/modules/libjuju/examples/add_machine.py @@ -0,0 +1,70 @@ +#!/usr/bin/env python3.5 + +""" +This example: + +1. Connects to the current model +2. Creates two machines and a lxd container +3. Deploys charm to the lxd container + +""" +import logging + +from juju import loop +from juju.model import Model + +MB = 1 +GB = 1024 + + +async def main(): + model = Model() + await model.connect() + + try: + # add a new default machine + machine1 = await model.add_machine() + # add a machine with constraints, disks, and series + machine2 = await model.add_machine( + constraints={ + 'mem': 256 * MB, + }, + disks=[{ + 'pool': 'rootfs', + 'size': 10 * GB, + 'count': 1, + }], + series='xenial', + ) + # add a lxd container to machine2 + machine3 = await model.add_machine( + 'lxd:{}'.format(machine2.id)) + + # deploy charm to the lxd container + application = await model.deploy( + 'ubuntu-10', + application_name='ubuntu', + series='xenial', + channel='stable', + to=machine3.id + ) + + await model.block_until( + lambda: all(unit.workload_status == 'active' + for unit in application.units)) + + await application.remove() + + await machine3.destroy(force=True) + await machine2.destroy(force=True) + await machine1.destroy(force=True) + finally: + await model.disconnect() + + +if __name__ == '__main__': + logging.basicConfig(level=logging.DEBUG) + ws_logger = logging.getLogger('websockets.protocol') + ws_logger.setLevel(logging.INFO) + + loop.run(main()) diff --git a/modules/libjuju/examples/add_model.py b/modules/libjuju/examples/add_model.py new file mode 100644 index 0000000..88766f1 --- /dev/null +++ b/modules/libjuju/examples/add_model.py @@ -0,0 +1,67 @@ +""" +This example: + +1. Creates a model on the current controller +2. Deploys a charm to it. +3. Attempts to ssh into the charm + +""" +from juju import loop +from juju import utils +from juju.controller import Controller +import asyncio +from logging import getLogger +import uuid + +LOG = getLogger(__name__) + + +async def main(): + controller = Controller() + print("Connecting to controller") + # connect to current controller with current user, per Juju CLI + await controller.connect() + + try: + model_name = "addmodeltest-{}".format(uuid.uuid4()) + print("Adding model {}".format(model_name)) + model = await controller.add_model(model_name) + + print('Deploying ubuntu') + application = await model.deploy( + 'ubuntu-10', + application_name='ubuntu', + series='trusty', + channel='stable', + ) + + print('Waiting for active') + await asyncio.sleep(10) + await model.block_until( + lambda: all(unit.workload_status == 'active' + for unit in application.units)) + + print("Verifying that we can ssh into the created model") + ret = await utils.execute_process( + 'juju', 'ssh', '-m', model_name, 'ubuntu/0', 'ls /', log=LOG) + assert ret + + print('Removing ubuntu') + await application.remove() + + print("Destroying model") + await controller.destroy_model(model.info.uuid) + + except Exception: + LOG.exception( + "Test failed! Model {} may not be cleaned up".format(model_name)) + + finally: + print('Disconnecting from controller') + if model: + await model.disconnect() + await controller.disconnect() + + +if __name__ == '__main__': + loop.run(main()) diff --git a/modules/libjuju/examples/allwatcher.py b/modules/libjuju/examples/allwatcher.py new file mode 100644 index 0000000..884230b --- /dev/null +++ b/modules/libjuju/examples/allwatcher.py @@ -0,0 +1,31 @@ +""" +This example: + +1. Connects to the current model +2. Starts an AllWatcher +3. Prints all changes received from the AllWatcher +4. Runs forever (kill with Ctrl-C) + +""" +import asyncio +import logging + +from juju.client.connection import Connection +from juju.client import client +from juju import loop + + +async def watch(): + conn = await Connection.connect() + allwatcher = client.AllWatcherFacade.from_connection(conn) + while True: + change = await allwatcher.Next() + for delta in change.deltas: + print(delta.deltas) + + +if __name__ == '__main__': + logging.basicConfig(level=logging.DEBUG) + # Run loop until the process is manually stopped (watch will loop + # forever). + loop.run(watch()) diff --git a/modules/libjuju/examples/config.py b/modules/libjuju/examples/config.py new file mode 100644 index 0000000..c7580f6 --- /dev/null +++ b/modules/libjuju/examples/config.py @@ -0,0 +1,54 @@ +""" +This example: + +1. Connects to the current model +2. Resets it +3. Deploys a charm and prints its config and constraints + +""" +import logging + +from juju.model import Model +from juju import loop + +log = logging.getLogger(__name__) + +MB = 1 + + +async def main(): + model = Model() + # connect to current model with current user, per Juju CLI + await model.connect() + + ubuntu_app = await model.deploy( + 'mysql', + application_name='mysql', + series='trusty', + channel='stable', + config={ + 'tuning-level': 'safest', + }, + constraints={ + 'mem': 256 * MB, + }, + ) + + # update and check app config + await ubuntu_app.set_config({'tuning-level': 'fast'}) + config = await ubuntu_app.get_config() + assert(config['tuning-level']['value'] == 'fast') + + # update and check app constraints + await ubuntu_app.set_constraints({'mem': 512 * MB}) + constraints = await ubuntu_app.get_constraints() + assert(constraints['mem'] == 512 * MB) + + await model.disconnect() + + +if __name__ == '__main__': + logging.basicConfig(level=logging.DEBUG) + ws_logger = logging.getLogger('websockets.protocol') + ws_logger.setLevel(logging.INFO) + loop.run(main()) diff --git a/modules/libjuju/examples/connect_current_model.py b/modules/libjuju/examples/connect_current_model.py new file mode 100644 index 0000000..b46a09c --- /dev/null +++ b/modules/libjuju/examples/connect_current_model.py @@ -0,0 +1,27 @@ +""" +This is a very basic example that connects to the currently selected model +and prints the number of applications deployed to it. +""" +import logging + +from juju import loop +from juju.model import Model + +log = logging.getLogger(__name__) + + +async def main(): + model = Model() + try: + # connect to the current model with the current user, per the Juju CLI + await model.connect() + print('There are {} applications'.format(len(model.applications))) + finally: + if model.is_connected(): + print('Disconnecting from model') + await model.disconnect() + + +if __name__ == '__main__': + logging.basicConfig(level=logging.INFO) + loop.run(main()) diff --git a/modules/libjuju/examples/controller.py b/modules/libjuju/examples/controller.py new file mode 100644 index 0000000..b61a6f6 --- /dev/null +++ b/modules/libjuju/examples/controller.py @@ -0,0 +1,41 @@ +""" +This example: + +1. Connects to current controller. +2. Creates a new model. +3. Deploys an application on the new model. +4. Disconnects from the model +5. Destroys the model + +""" +import logging + +from juju.controller import Controller +from juju import loop + + +async def main(): + controller = Controller() + # connect to current controller with current user, per Juju CLI + await controller.connect() + model = await controller.add_model( + 'my-test-model', + 'aws', + 'aws-tim', + ) + await model.deploy( + 'ubuntu-0', + application_name='ubuntu', + series='trusty', + channel='stable', + ) + await model.disconnect() + await controller.destroy_model(model.info.uuid) + await controller.disconnect() + + +if __name__ == '__main__': + logging.basicConfig(level=logging.DEBUG) + ws_logger = logging.getLogger('websockets.protocol') + ws_logger.setLevel(logging.INFO) + loop.run(main()) diff --git a/modules/libjuju/examples/credential.py b/modules/libjuju/examples/credential.py new file mode 100644 index 0000000..e653536 --- /dev/null +++ b/modules/libjuju/examples/credential.py @@ -0,0 +1,47 @@ +import sys +from juju import loop +from juju.controller import Controller + + +async def main(cloud_name, credential_name): + controller = Controller() + model = None + print('Connecting to controller') + # connect to current controller with current user, per Juju CLI + await controller.connect() + try: + print('Adding model') + model = await controller.add_model( + 'test', + cloud_name=cloud_name, + credential_name=credential_name) + + # verify credential + print("Verify model's credential: {}".format( + model.info.cloud_credential_tag)) + + # verify we can deploy + print('Deploying ubuntu') + app = await model.deploy('ubuntu-10') + + print('Waiting for active') + await model.block_until( + lambda: app.units and all(unit.workload_status == 'active' + for unit in app.units)) + + print('Removing ubuntu') + await app.remove() + finally: + print('Cleaning up') + if model: + print('Removing model') + model_uuid = model.info.uuid + await model.disconnect() + await controller.destroy_model(model_uuid) + print('Disconnecting') + await controller.disconnect() + + +if __name__ == '__main__': + assert len(sys.argv) > 2, 'Please provide a cloud and credential name' + loop.run(main(sys.argv[1], sys.argv[2])) diff --git a/modules/libjuju/examples/deploy.py b/modules/libjuju/examples/deploy.py new file mode 100644 index 0000000..43764d7 --- /dev/null +++ b/modules/libjuju/examples/deploy.py @@ -0,0 +1,41 @@ +""" +This example: + +1. Connects to the current model +2. Deploy a charm and waits until it reports itself active +3. Destroys the unit and application + +""" +from juju import loop +from juju.model import Model + + +async def main(): + model = Model() + print('Connecting to model') + # connect to current model with current user, per Juju CLI + await model.connect() + + try: + print('Deploying ubuntu') + application = await model.deploy( + 'ubuntu-10', + application_name='ubuntu', + series='trusty', + channel='stable', + ) + + print('Waiting for active') + await model.block_until( + lambda: all(unit.workload_status == 'active' + for unit in application.units)) + + print('Removing ubuntu') + await application.remove() + finally: + print('Disconnecting from model') + await model.disconnect() + + +if __name__ == '__main__': + loop.run(main()) diff --git a/modules/libjuju/examples/fullstatus.py b/modules/libjuju/examples/fullstatus.py new file mode 100644 index 0000000..5548423 --- /dev/null +++ b/modules/libjuju/examples/fullstatus.py @@ -0,0 +1,23 @@ +import asyncio + +from juju.client.connection import Connection +from juju.client.client import ClientFacade +from juju import loop + +async def status(): + conn = await Connection.connect() + client = ClientFacade.from_connection(conn) + + patterns = None + status = await client.FullStatus(patterns) + await conn.close() + + print('Applications:', list(status.applications.keys())) + print('Machines:', list(status.machines.keys())) + print('Relations:', status.relations) + + return status + +if __name__ == '__main__': + loop.run(status()) + diff --git a/modules/libjuju/examples/future.py b/modules/libjuju/examples/future.py new file mode 100644 index 0000000..5e974cf --- /dev/null +++ b/modules/libjuju/examples/future.py @@ -0,0 +1,47 @@ +""" +This example doesn't work - it demonstrates features that don't exist yet. + +""" +import logging + +from juju.model import Model +from juju import loop + + +async def main(): + model = Model() + # connect to current model with current user, per Juju CLI + await model.connect() + + goal_state = Model.from_yaml('bundle-like-thing') + ubuntu_app = await model.deploy( + 'ubuntu-0', + application_name='ubuntu', + series='trusty', + channel='stable', + ) + ubuntu_app.on_unit_added(callback=lambda unit: True) + + await model.deploy( + 'nrpe-11', + application_name='nrpe', + series='trusty', + channel='stable', + num_units=0, + ) + await model.add_relation( + 'ubuntu', + 'nrpe', + ) + + result, ok = await model.block_until( + lambda: model.matches(goal_state), + timeout=600 + ) + + +if __name__ == '__main__': + logging.basicConfig(level=logging.DEBUG) + ws_logger = logging.getLogger('websockets.protocol') + ws_logger.setLevel(logging.INFO) + loop.run(main()) diff --git a/modules/libjuju/examples/leadership.py b/modules/libjuju/examples/leadership.py new file mode 100644 index 0000000..dbd1b6e --- /dev/null +++ b/modules/libjuju/examples/leadership.py @@ -0,0 +1,28 @@ +""" +This example: + +1. Connects to the current model. +2. Prints out leadership status for all deployed units in the model. +3. Cleanly disconnects. + +""" +import asyncio + +from juju.model import Model +from juju import loop + +async def report_leadership(): + model = Model() + await model.connect() + + print("Leadership: ") + for app in model.applications.values(): + for unit in app.units: + print("{}: {}".format( + unit.name, await unit.is_leader_from_status())) + + await model.disconnect() + + +if __name__ == '__main__': + loop.run(report_leadership()) diff --git a/modules/libjuju/examples/livemodel.py b/modules/libjuju/examples/livemodel.py new file mode 100644 index 0000000..1b10ac9 --- /dev/null +++ b/modules/libjuju/examples/livemodel.py @@ -0,0 +1,31 @@ +""" +This example: + +1. Connects to the current model +2. Watches the model and prints all changes +3. Runs forever (kill with Ctrl-C) + +""" +from juju.model import Model +from juju import loop + + +async def on_model_change(delta, old, new, model): + print(delta.entity, delta.type, delta.data) + print(old) + print(new) + print(model) + + +async def watch_model(): + model = Model() + # connect to current model with current user, per Juju CLI + await model.connect() + + model.add_observer(on_model_change) + + +if __name__ == '__main__': + # Run loop until the process is manually stopped (watch_model will loop + # forever). + loop.run(watch_model()) diff --git a/modules/libjuju/examples/localcharm.py b/modules/libjuju/examples/localcharm.py new file mode 100644 index 0000000..b9481d4 --- /dev/null +++ b/modules/libjuju/examples/localcharm.py @@ -0,0 +1,34 @@ +""" +This example shows how to deploy a local charm. It: + +1. Connects to current model. +2. Uploads a local charm (directory on filesystem) to the model. +3. Deploys the uploaded charm. + +""" +import asyncio +import logging + +from juju.model import Model +from juju import loop + + +async def main(): + model = Model() + await model.connect() + + # Deploy a local charm using a path to the charm directory + await model.deploy( + '/home/tvansteenburgh/src/charms/ubuntu', + application_name='ubuntu', + series='trusty', + ) + + await model.disconnect() + + +if __name__ == '__main__': + logging.basicConfig(level=logging.DEBUG) + ws_logger = logging.getLogger('websockets.protocol') + ws_logger.setLevel(logging.INFO) + loop.run(main()) diff --git a/modules/libjuju/examples/relate.py b/modules/libjuju/examples/relate.py new file mode 100644 index 0000000..347e021 --- /dev/null +++ b/modules/libjuju/examples/relate.py @@ -0,0 +1,102 @@ +""" +This example: + +1. Connects to the current model +2. Resets it +3. Deploys two charms and relates them +4. Waits for units to be idle, then exits + +""" +import asyncio +import logging + +from juju.model import Model, ModelObserver +from juju import loop + + +class MyRemoveObserver(ModelObserver): + async def on_change(self, delta, old, new, model): + if delta.type == 'remove': + assert(new.latest() == new) + assert(new.next() is None) + assert(new.dead) + assert(new.current) + assert(new.connected) + assert(new.previous().dead) + assert(not new.previous().current) + assert(not new.previous().connected) + + +class MyModelObserver(ModelObserver): + _shutting_down = False + + async def on_change(self, delta, old, new, model): + if model.units and model.all_units_idle() and not self._shutting_down: + self._shutting_down = True + logging.debug('All units idle, disconnecting') + await model.reset(force=True) + await model.disconnect() + + +async def main(): + model = Model() + # connect to current model with current user, per Juju CLI + await model.connect() + + try: + model.add_observer(MyRemoveObserver()) + await model.reset(force=True) + model.add_observer(MyModelObserver()) + + ubuntu_app = await model.deploy( + 'ubuntu', + application_name='ubuntu', + series='trusty', + channel='stable', + ) + ubuntu_app.on_change(asyncio.coroutine( + lambda delta, old_app, new_app, model: + print('App changed: {}'.format(new_app.entity_id)) + )) + ubuntu_app.on_remove(asyncio.coroutine( + lambda delta, old_app, new_app, model: + print('App removed: {}'.format(old_app.entity_id)) + )) + ubuntu_app.on_unit_add(asyncio.coroutine( + lambda delta, old_unit, new_unit, model: + print('Unit added: {}'.format(new_unit.entity_id)) + )) + ubuntu_app.on_unit_remove(asyncio.coroutine( + lambda delta, old_unit, new_unit, model: + print('Unit removed: {}'.format(old_unit.entity_id)) + )) + unit_a, unit_b = await ubuntu_app.add_units(count=2) + unit_a.on_change(asyncio.coroutine( + lambda delta, old_unit, new_unit, model: + print('Unit changed: {}'.format(new_unit.entity_id)) + )) + await model.deploy( + 'nrpe', + application_name='nrpe', + series='trusty', + channel='stable', + # subordinates must be deployed without units + num_units=0, + ) + my_relation = await model.add_relation( + 'ubuntu', + 'nrpe', + ) + my_relation.on_remove(asyncio.coroutine( + lambda delta, old_rel, new_rel, model: + print('Relation removed: {}'.format(old_rel.endpoints)) + )) + finally: + await model.disconnect() + + +if __name__ == '__main__': + logging.basicConfig(level=logging.INFO) + ws_logger = logging.getLogger('websockets.protocol') + ws_logger.setLevel(logging.INFO) + loop.run(main()) diff --git a/modules/libjuju/examples/unitrun.py b/modules/libjuju/examples/unitrun.py new file mode 100644 index 0000000..805f0ae --- /dev/null +++ b/modules/libjuju/examples/unitrun.py @@ -0,0 +1,46 @@ +""" +This example: + +1. Connects to current model and resets it. +2. Deploys one ubuntu unit. +3. Runs an action against the unit. +4. Waits for the action results to come back, then exits. + +""" +import logging + +from juju.model import Model +from juju import loop + + +async def run_command(unit): + logging.debug('Running command on unit %s', unit.name) + + # unit.run() returns a juju.action.Action instance + action = await unit.run('unit-get public-address') + logging.debug("Action results: %s", action.results) + + +async def main(): + model = Model() + # connect to current model with current user, per Juju CLI + await model.connect() + + app = await model.deploy( + 'ubuntu-0', + application_name='ubuntu', + series='trusty', + channel='stable', + ) + + for unit in app.units: + await run_command(unit) + + await model.disconnect() + + +if __name__ == '__main__': + logging.basicConfig(level=logging.DEBUG) + ws_logger = logging.getLogger('websockets.protocol') + ws_logger.setLevel(logging.INFO) + loop.run(main()) diff --git a/modules/libjuju/juju/__init__.py b/modules/libjuju/juju/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/modules/libjuju/juju/action.py b/modules/libjuju/juju/action.py new file mode 100644 index 0000000..7a136a7 --- /dev/null +++ b/modules/libjuju/juju/action.py @@ -0,0 +1,10 @@ +from . import model + + +class Action(model.ModelEntity): + @property + def status(self): + return self.data['status'] + + async def wait(self): + return await self.model.wait_for_action(self.id) diff --git a/modules/libjuju/juju/annotation.py b/modules/libjuju/juju/annotation.py new file mode 100644 index 0000000..73c9b1c --- /dev/null +++ b/modules/libjuju/juju/annotation.py @@ -0,0 +1,9 @@ +import logging + +from . import model + +log = logging.getLogger(__name__) + + +class Annotation(model.ModelEntity): + pass diff --git a/modules/libjuju/juju/application.py b/modules/libjuju/juju/application.py new file mode 100644 index 0000000..3f7f02e --- /dev/null +++ b/modules/libjuju/juju/application.py @@ -0,0 +1,533 @@ +# Copyright 2016 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import asyncio +import logging + +from . import model +from .client import client +from .errors import JujuError +from .placement import parse as parse_placement + +log = logging.getLogger(__name__) + + +class Application(model.ModelEntity): + @property + def _unit_match_pattern(self): + return r'^{}.*$'.format(self.entity_id) + + def on_unit_add(self, callable_): + """Add a "unit added" observer to this entity, which will be called + whenever a unit is added to this application. + + """ + self.model.add_observer( + callable_, 'unit', 'add', self._unit_match_pattern) + + def on_unit_remove(self, callable_): + """Add a "unit removed" observer to this entity, which will be called + whenever a unit is removed from this application. + + """ + self.model.add_observer( + callable_, 'unit', 'remove', self._unit_match_pattern) + + @property + def units(self): + return [ + unit for unit in self.model.units.values() + if unit.application == self.name + ] + + @property + def relations(self): + return [rel for rel in self.model.relations if rel.matches(self.name)] + + def related_applications(self, endpoint_name=None): + apps = {} + for rel in self.relations: + if rel.is_peer: + local_ep, remote_ep = rel.endpoints[0] + else: + def is_us(ep): + return ep.application.name == self.name + local_ep, remote_ep = sorted(rel.endpoints, key=is_us) + if endpoint_name is not None and endpoint_name != local_ep.name: + continue + apps[remote_ep.application.name] = remote_ep.application + return apps + + @property + def status(self): + """Get the application status, as set by the charm's leader. + + """ + return self.safe_data['status']['current'] + + @property + def status_message(self): + """Get the application status message, as set by the charm's leader. + + """ + return self.safe_data['status']['message'] + + @property + def tag(self): + return 'application-%s' % self.name + + async def add_relation(self, local_relation, remote_relation): + """Add a relation to another application. + + :param str local_relation: Name of relation on this application + :param str remote_relation: Name of relation on the other + application in the form '[:]' + + """ + if ':' not in local_relation: + local_relation = '{}:{}'.format(self.name, local_relation) + + return await self.model.add_relation(local_relation, remote_relation) + + async def add_unit(self, count=1, to=None): + """Add one or more units to this application. + + :param int count: Number of units to add + :param str to: Placement directive, e.g.:: + '23' - machine 23 + 'lxc:7' - new lxc container on machine 7 + '24/lxc/3' - lxc container 3 or machine 24 + + If None, a new machine is provisioned. + + """ + app_facade = client.ApplicationFacade.from_connection(self.connection) + + log.debug( + 'Adding %s unit%s to %s', + count, '' if count == 1 else 's', self.name) + + result = await app_facade.AddUnits( + application=self.name, + placement=parse_placement(to) if to else None, + num_units=count, + ) + + return await asyncio.gather(*[ + asyncio.ensure_future(self.model._wait_for_new('unit', unit_id)) + for unit_id in result.units + ]) + + add_units = add_unit + + async def scale(self, scale=None, scale_change=None): + """ + Set or adjust the scale of this (K8s) application. + + One or the other of scale or scale_change must be provided. + + :param int scale: Scale to which to set this application. + :param int scale_change: Amount by which to adjust the scale of this + application (can be positive or negative). + """ + app_facade = client.ApplicationFacade.from_connection(self.connection) + + if (scale, scale_change) == (None, None): + raise ValueError('Must provide either scale or scale_change') + + log.debug( + 'Scaling application %s %s %s', + self.name, 'to' if scale else 'by', scale or scale_change) + + await app_facade.ScaleApplications([ + client.ScaleApplicationParam(application_tag=self.tag, + scale=scale, + scale_change=scale_change) + ]) + + def allocate(self, budget, value): + """Allocate budget to this application. + + :param str budget: Name of budget + :param int value: Budget limit + + """ + raise NotImplementedError() + + def attach(self, resource_name, file_path): + """Upload a file as a resource for this application. + + :param str resource: Name of the resource + :param str file_path: Path to the file to upload + + """ + raise NotImplementedError() + + def collect_metrics(self): + """Collect metrics on this application. + + """ + raise NotImplementedError() + + async def destroy_relation(self, local_relation, remote_relation): + """Remove a relation to another application. + + :param str local_relation: Name of relation on this application + :param str remote_relation: Name of relation on the other + application in the form '[:]' + + """ + if ':' not in local_relation: + local_relation = '{}:{}'.format(self.name, local_relation) + + app_facade = client.ApplicationFacade.from_connection(self.connection) + + log.debug( + 'Destroying relation %s <-> %s', local_relation, remote_relation) + + return await app_facade.DestroyRelation([ + local_relation, remote_relation]) + remove_relation = destroy_relation + + async def destroy_unit(self, *unit_names): + """Destroy units by name. + + """ + return await self.model.destroy_units(*unit_names) + destroy_units = destroy_unit + + async def destroy(self): + """Remove this application from the model. + + """ + app_facade = client.ApplicationFacade.from_connection(self.connection) + + log.debug( + 'Destroying %s', self.name) + + return await app_facade.Destroy(self.name) + remove = destroy + + async def expose(self): + """Make this application publicly available over the network. + + """ + app_facade = client.ApplicationFacade.from_connection(self.connection) + + log.debug( + 'Exposing %s', self.name) + + return await app_facade.Expose(self.name) + + async def get_config(self): + """Return the configuration settings dict for this application. + + """ + app_facade = client.ApplicationFacade.from_connection(self.connection) + + log.debug( + 'Getting config for %s', self.name) + + return (await app_facade.Get(self.name)).config + + async def get_constraints(self): + """Return the machine constraints dict for this application. + + """ + app_facade = client.ApplicationFacade.from_connection(self.connection) + + log.debug( + 'Getting constraints for %s', self.name) + + result = (await app_facade.Get(self.name)).constraints + return vars(result) if result else result + + async def get_actions(self, schema=False): + """Get actions defined for this application. + + :param bool schema: Return the full action schema + :return dict: The charms actions, empty dict if none are defined. + """ + actions = {} + entity = [{"tag": self.tag}] + action_facade = client.ActionFacade.from_connection(self.connection) + results = ( + await action_facade.ApplicationsCharmsActions(entity)).results + for result in results: + if result.application_tag == self.tag and result.actions: + actions = result.actions + break + if not schema: + actions = {k: v['description'] for k, v in actions.items()} + return actions + + async def get_resources(self): + """Return resources for this application. + + Returns a dict mapping resource name to + :class:`~juju._definitions.CharmResource` instances. + """ + facade = client.ResourcesFacade.from_connection(self.connection) + response = await facade.ListResources([client.Entity(self.tag)]) + + resources = dict() + for result in response.results: + for resource in result.charm_store_resources or []: + resources[resource.name] = resource + for resource in result.resources or []: + if resource.charmresource: + resource = resource.charmresource + resources[resource.name] = resource + return resources + + async def run(self, command, timeout=None): + """Run command on all units for this application. + + :param str command: The command to run + :param int timeout: Time to wait before command is considered failed + + """ + action = client.ActionFacade.from_connection(self.connection) + + log.debug( + 'Running `%s` on all units of %s', command, self.name) + + # TODO this should return a list of Actions + return await action.Run( + [self.name], + command, + [], + timeout, + [], + ) + + async def set_annotations(self, annotations): + """Set annotations on this application. + + :param annotations map[string]string: the annotations as key/value + pairs. + + """ + log.debug('Updating annotations on application %s', self.name) + + self.ann_facade = client.AnnotationsFacade.from_connection( + self.connection) + + ann = client.EntityAnnotations( + entity=self.tag, + annotations=annotations, + ) + return await self.ann_facade.Set([ann]) + + async def set_config(self, config): + """Set configuration options for this application. + + :param config: Dict of configuration to set + """ + app_facade = client.ApplicationFacade.from_connection(self.connection) + + log.debug( + 'Setting config for %s: %s', self.name, config) + + return await app_facade.Set(self.name, config) + + async def reset_config(self, to_default): + """ + Restore application config to default values. + + :param list to_default: A list of config options to be reset to their + default value. + """ + app_facade = client.ApplicationFacade.from_connection(self.connection) + + log.debug( + 'Restoring default config for %s: %s', self.name, to_default) + + return await app_facade.Unset(self.name, to_default) + + async def set_constraints(self, constraints): + """Set machine constraints for this application. + + :param dict constraints: Dict of machine constraints + + """ + app_facade = client.ApplicationFacade.from_connection(self.connection) + + log.debug( + 'Setting constraints for %s: %s', self.name, constraints) + + return await app_facade.SetConstraints(self.name, constraints) + + def set_meter_status(self, status, info=None): + """Set the meter status on this status. + + :param str status: Meter status, e.g. 'RED', 'AMBER' + :param str info: Extra info message + + """ + raise NotImplementedError() + + def set_plan(self, plan_name): + """Set the plan for this application, effective immediately. + + :param str plan_name: Name of plan + + """ + raise NotImplementedError() + + async def unexpose(self): + """Remove public availability over the network for this application. + + """ + app_facade = client.ApplicationFacade.from_connection(self.connection) + + log.debug( + 'Unexposing %s', self.name) + + return await app_facade.Unexpose(self.name) + + def update_allocation(self, allocation): + """Update existing allocation for this application. + + :param int allocation: The allocation to set + + """ + raise NotImplementedError() + + async def upgrade_charm( + self, channel=None, force_series=False, force_units=False, + path=None, resources=None, revision=None, switch=None): + """Upgrade the charm for this application. + + :param str channel: Channel to use when getting the charm from the + charm store, e.g. 'development' + :param bool force_series: Upgrade even if series of deployed + application is not supported by the new charm + :param bool force_units: Upgrade all units immediately, even if in + error state + :param str path: Uprade to a charm located at path + :param dict resources: Dictionary of resource name/filepath pairs + :param int revision: Explicit upgrade revision + :param str switch: Crossgrade charm url + + """ + # TODO: Support local upgrades + if path is not None: + raise NotImplementedError("path option is not implemented") + if resources is not None: + raise NotImplementedError("resources option is not implemented") + + if switch is not None and revision is not None: + raise ValueError("switch and revision are mutually exclusive") + + client_facade = client.ClientFacade.from_connection(self.connection) + resources_facade = client.ResourcesFacade.from_connection( + self.connection) + app_facade = client.ApplicationFacade.from_connection(self.connection) + + charmstore = self.model.charmstore + charmstore_entity = None + + if switch is not None: + charm_url = switch + if not charm_url.startswith('cs:'): + charm_url = 'cs:' + charm_url + else: + charm_url = self.data['charm-url'] + charm_url = charm_url.rpartition('-')[0] + if revision is not None: + charm_url = "%s-%d" % (charm_url, revision) + else: + charmstore_entity = await charmstore.entity(charm_url, + channel=channel) + charm_url = charmstore_entity['Id'] + + if charm_url == self.data['charm-url']: + raise JujuError('already running charm "%s"' % charm_url) + + # Update charm + await client_facade.AddCharm( + url=charm_url, + channel=channel + ) + + # Update resources + if not charmstore_entity: + charmstore_entity = await charmstore.entity(charm_url, + channel=channel) + store_resources = charmstore_entity['Meta']['resources'] + + request_data = [client.Entity(self.tag)] + response = await resources_facade.ListResources(request_data) + existing_resources = { + resource.name: resource + for resource in response.results[0].resources + } + + resources_to_update = [ + resource for resource in store_resources + if resource['Name'] not in existing_resources or + existing_resources[resource['Name']].origin != 'upload' + ] + + if resources_to_update: + request_data = [ + client.CharmResource( + description=resource.get('Description'), + fingerprint=resource['Fingerprint'], + name=resource['Name'], + path=resource['Path'], + revision=resource['Revision'], + size=resource['Size'], + type_=resource['Type'], + origin='store', + ) for resource in resources_to_update + ] + response = await resources_facade.AddPendingResources( + self.tag, + charm_url, + request_data + ) + pending_ids = response.pending_ids + resource_ids = { + resource['Name']: id + for resource, id in zip(resources_to_update, pending_ids) + } + else: + resource_ids = None + + # Update application + await app_facade.SetCharm( + application=self.entity_id, + channel=channel, + charm_url=charm_url, + config_settings=None, + config_settings_yaml=None, + force_series=force_series, + force_units=force_units, + resource_ids=resource_ids, + storage_constraints=None + ) + + await self.model.block_until( + lambda: self.data['charm-url'] == charm_url + ) + + async def get_metrics(self): + """Get metrics for this application's units. + + :return: Dictionary of unit_name:metrics + + """ + return await self.model.get_metrics(self.tag) diff --git a/modules/libjuju/juju/client/__init__.py b/modules/libjuju/juju/client/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/modules/libjuju/juju/client/_client.py b/modules/libjuju/juju/client/_client.py new file mode 100644 index 0000000..bfa9e6f --- /dev/null +++ b/modules/libjuju/juju/client/_client.py @@ -0,0 +1,454 @@ +# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. +# Changes will be overwritten/lost when the file is regenerated. + +from juju.client._definitions import * + +from juju.client import _client2, _client1, _client3, _client4, _client5, _client8, _client7, _client9 + + +CLIENTS = { + "2": _client2, + "1": _client1, + "3": _client3, + "4": _client4, + "5": _client5, + "8": _client8, + "7": _client7, + "9": _client9 +} + + +def lookup_facade(name, version): + """ + Given a facade name and version, attempt to pull that facade out + of the correct client.py file. + + """ + for _version in range(int(version), 0, -1): + try: + facade = getattr(CLIENTS[str(_version)], name) + return facade + except (KeyError, AttributeError): + continue + else: + raise ImportError("No supported version for facade: " + "{}".format(name)) + + +class TypeFactory: + @classmethod + def from_connection(cls, connection): + """ + Given a connected Connection object, return an initialized and + connected instance of an API Interface matching the name of + this class. + + @param connection: initialized Connection object. + + """ + facade_name = cls.__name__ + if not facade_name.endswith('Facade'): + raise TypeError('Unexpected class name: {}'.format(facade_name)) + facade_name = facade_name[:-len('Facade')] + version = connection.facades.get(facade_name) + if version is None: + raise Exception('No facade {} in facades {}'.format(facade_name, + connection.facades)) + + c = lookup_facade(cls.__name__, version) + c = c() + c.connect(connection) + + return c + + +class ActionFacade(TypeFactory): + pass + + +class ActionPrunerFacade(TypeFactory): + pass + + +class AgentFacade(TypeFactory): + pass + + +class AgentToolsFacade(TypeFactory): + pass + + +class AllModelWatcherFacade(TypeFactory): + pass + + +class AllWatcherFacade(TypeFactory): + pass + + +class AnnotationsFacade(TypeFactory): + pass + + +class ApplicationFacade(TypeFactory): + pass + + +class ApplicationOffersFacade(TypeFactory): + pass + + +class ApplicationRelationsWatcherFacade(TypeFactory): + pass + + +class ApplicationScalerFacade(TypeFactory): + pass + + +class BackupsFacade(TypeFactory): + pass + + +class BlockFacade(TypeFactory): + pass + + +class BundleFacade(TypeFactory): + pass + + +class CAASAgentFacade(TypeFactory): + pass + + +class CAASFirewallerFacade(TypeFactory): + pass + + +class CAASOperatorFacade(TypeFactory): + pass + + +class CAASOperatorProvisionerFacade(TypeFactory): + pass + + +class CAASUnitProvisionerFacade(TypeFactory): + pass + + +class CharmRevisionUpdaterFacade(TypeFactory): + pass + + +class CharmsFacade(TypeFactory): + pass + + +class CleanerFacade(TypeFactory): + pass + + +class ClientFacade(TypeFactory): + pass + + +class CloudFacade(TypeFactory): + pass + + +class ControllerFacade(TypeFactory): + pass + + +class CredentialManagerFacade(TypeFactory): + pass + + +class CredentialValidatorFacade(TypeFactory): + pass + + +class CrossControllerFacade(TypeFactory): + pass + + +class CrossModelRelationsFacade(TypeFactory): + pass + + +class DeployerFacade(TypeFactory): + pass + + +class DiscoverSpacesFacade(TypeFactory): + pass + + +class DiskManagerFacade(TypeFactory): + pass + + +class EntityWatcherFacade(TypeFactory): + pass + + +class ExternalControllerUpdaterFacade(TypeFactory): + pass + + +class FanConfigurerFacade(TypeFactory): + pass + + +class FilesystemAttachmentsWatcherFacade(TypeFactory): + pass + + +class FirewallRulesFacade(TypeFactory): + pass + + +class FirewallerFacade(TypeFactory): + pass + + +class HighAvailabilityFacade(TypeFactory): + pass + + +class HostKeyReporterFacade(TypeFactory): + pass + + +class ImageManagerFacade(TypeFactory): + pass + + +class ImageMetadataFacade(TypeFactory): + pass + + +class InstancePollerFacade(TypeFactory): + pass + + +class KeyManagerFacade(TypeFactory): + pass + + +class KeyUpdaterFacade(TypeFactory): + pass + + +class LeadershipServiceFacade(TypeFactory): + pass + + +class LifeFlagFacade(TypeFactory): + pass + + +class LogForwardingFacade(TypeFactory): + pass + + +class LoggerFacade(TypeFactory): + pass + + +class MachineActionsFacade(TypeFactory): + pass + + +class MachineManagerFacade(TypeFactory): + pass + + +class MachineUndertakerFacade(TypeFactory): + pass + + +class MachinerFacade(TypeFactory): + pass + + +class MeterStatusFacade(TypeFactory): + pass + + +class MetricsAdderFacade(TypeFactory): + pass + + +class MetricsDebugFacade(TypeFactory): + pass + + +class MetricsManagerFacade(TypeFactory): + pass + + +class MigrationFlagFacade(TypeFactory): + pass + + +class MigrationMasterFacade(TypeFactory): + pass + + +class MigrationMinionFacade(TypeFactory): + pass + + +class MigrationStatusWatcherFacade(TypeFactory): + pass + + +class MigrationTargetFacade(TypeFactory): + pass + + +class ModelConfigFacade(TypeFactory): + pass + + +class ModelManagerFacade(TypeFactory): + pass + + +class ModelUpgraderFacade(TypeFactory): + pass + + +class NotifyWatcherFacade(TypeFactory): + pass + + +class OfferStatusWatcherFacade(TypeFactory): + pass + + +class PayloadsFacade(TypeFactory): + pass + + +class PayloadsHookContextFacade(TypeFactory): + pass + + +class PingerFacade(TypeFactory): + pass + + +class ProvisionerFacade(TypeFactory): + pass + + +class ProxyUpdaterFacade(TypeFactory): + pass + + +class RebootFacade(TypeFactory): + pass + + +class RelationStatusWatcherFacade(TypeFactory): + pass + + +class RelationUnitsWatcherFacade(TypeFactory): + pass + + +class RemoteApplicationWatcherFacade(TypeFactory): + pass + + +class RemoteRelationsFacade(TypeFactory): + pass + + +class RemoteRelationsWatcherFacade(TypeFactory): + pass + + +class ResourcesFacade(TypeFactory): + pass + + +class ResourcesHookContextFacade(TypeFactory): + pass + + +class ResumerFacade(TypeFactory): + pass + + +class RetryStrategyFacade(TypeFactory): + pass + + +class SSHClientFacade(TypeFactory): + pass + + +class SingularFacade(TypeFactory): + pass + + +class SpacesFacade(TypeFactory): + pass + + +class StatusHistoryFacade(TypeFactory): + pass + + +class StorageFacade(TypeFactory): + pass + + +class StorageProvisionerFacade(TypeFactory): + pass + + +class StringsWatcherFacade(TypeFactory): + pass + + +class SubnetsFacade(TypeFactory): + pass + + +class UndertakerFacade(TypeFactory): + pass + + +class UnitAssignerFacade(TypeFactory): + pass + + +class UniterFacade(TypeFactory): + pass + + +class UpgradeSeriesFacade(TypeFactory): + pass + + +class UpgraderFacade(TypeFactory): + pass + + +class UserManagerFacade(TypeFactory): + pass + + +class VolumeAttachmentPlansWatcherFacade(TypeFactory): + pass + + +class VolumeAttachmentsWatcherFacade(TypeFactory): + pass diff --git a/modules/libjuju/juju/client/_client1.py b/modules/libjuju/juju/client/_client1.py new file mode 100644 index 0000000..83437bc --- /dev/null +++ b/modules/libjuju/juju/client/_client1.py @@ -0,0 +1,11068 @@ +# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. +# Changes will be overwritten/lost when the file is regenerated. + +from juju.client._definitions import * +from juju.client.facade import ReturnMapping, Type + + +class ActionPrunerFacade(Type): + name = 'ActionPruner' + version = 1 + schema = {'definitions': {'ActionPruneArgs': {'additionalProperties': False, + 'properties': {'max-history-mb': {'type': 'integer'}, + 'max-history-time': {'type': 'integer'}}, + 'required': ['max-history-time', + 'max-history-mb'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'ModelConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}}, + 'properties': {'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, + 'type': 'object'}, + 'Prune': {'properties': {'Params': {'$ref': '#/definitions/ActionPruneArgs'}}, + 'type': 'object'}, + 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ModelConfigResult) + async def ModelConfig(self): + ''' + + Returns -> typing.Mapping[str, typing.Any] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ActionPruner', + request='ModelConfig', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Prune(self, max_history_mb, max_history_time): + ''' + max_history_mb : int + max_history_time : int + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ActionPruner', + request='Prune', + version=1, + params=_params) + _params['max-history-mb'] = max_history_mb + _params['max-history-time'] = max_history_time + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchForModelConfigChanges(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ActionPruner', + request='WatchForModelConfigChanges', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class AgentToolsFacade(Type): + name = 'AgentTools' + version = 1 + schema = {'properties': {'UpdateToolsAvailable': {'type': 'object'}}, 'type': 'object'} + + + @ReturnMapping(None) + async def UpdateToolsAvailable(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='AgentTools', + request='UpdateToolsAvailable', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class AllWatcherFacade(Type): + name = 'AllWatcher' + version = 1 + schema = {'definitions': {'AllWatcherNextResults': {'additionalProperties': False, + 'properties': {'deltas': {'items': {'$ref': '#/definitions/Delta'}, + 'type': 'array'}}, + 'required': ['deltas'], + 'type': 'object'}, + 'Delta': {'additionalProperties': False, + 'properties': {'entity': {'additionalProperties': True, + 'type': 'object'}, + 'removed': {'type': 'boolean'}}, + 'required': ['removed', 'entity'], + 'type': 'object'}}, + 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherNextResults'}}, + 'type': 'object'}, + 'Stop': {'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(AllWatcherNextResults) + async def Next(self): + ''' + + Returns -> typing.Sequence[~Delta] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='AllWatcher', + request='Next', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Stop(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='AllWatcher', + request='Stop', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class ApplicationRelationsWatcherFacade(Type): + name = 'ApplicationRelationsWatcher' + version = 1 + schema = {'definitions': {'ApplicationRelationsChange': {'additionalProperties': False, + 'properties': {'changed': {'items': {'$ref': '#/definitions/RelationChange'}, + 'type': 'array'}, + 'removed': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ApplicationRelationsWatchResult': {'additionalProperties': False, + 'properties': {'ApplicationRelationsWatcherId': {'type': 'string'}, + 'changes': {'$ref': '#/definitions/ApplicationRelationsChange'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['ApplicationRelationsWatcherId'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'RelationChange': {'additionalProperties': False, + 'properties': {'changedunits': {'patternProperties': {'.*': {'$ref': '#/definitions/RelationUnitChange'}}, + 'type': 'object'}, + 'departedunits': {'items': {'type': 'string'}, + 'type': 'array'}, + 'id': {'type': 'integer'}, + 'life': {'type': 'string'}}, + 'required': ['id', 'life'], + 'type': 'object'}, + 'RelationUnitChange': {'additionalProperties': False, + 'properties': {'settings': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'type': 'object'}}, + 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/ApplicationRelationsWatchResult'}}, + 'type': 'object'}, + 'Stop': {'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ApplicationRelationsWatchResult) + async def Next(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('ApplicationRelationsChange'), _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ApplicationRelationsWatcher', + request='Next', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Stop(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ApplicationRelationsWatcher', + request='Stop', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class ApplicationScalerFacade(Type): + name = 'ApplicationScaler' + version = 1 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}}, + 'properties': {'Rescale': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Watch': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResults) + async def Rescale(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ApplicationScaler', + request='Rescale', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResult) + async def Watch(self): + ''' + + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ApplicationScaler', + request='Watch', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class BackupsFacade(Type): + name = 'Backups' + version = 1 + schema = {'definitions': {'BackupsCreateArgs': {'additionalProperties': False, + 'properties': {'notes': {'type': 'string'}}, + 'required': ['notes'], + 'type': 'object'}, + 'BackupsInfoArgs': {'additionalProperties': False, + 'properties': {'id': {'type': 'string'}}, + 'required': ['id'], + 'type': 'object'}, + 'BackupsListArgs': {'additionalProperties': False, + 'type': 'object'}, + 'BackupsListResult': {'additionalProperties': False, + 'properties': {'list': {'items': {'$ref': '#/definitions/BackupsMetadataResult'}, + 'type': 'array'}}, + 'required': ['list'], + 'type': 'object'}, + 'BackupsMetadataResult': {'additionalProperties': False, + 'properties': {'ca-cert': {'type': 'string'}, + 'ca-private-key': {'type': 'string'}, + 'checksum': {'type': 'string'}, + 'checksum-format': {'type': 'string'}, + 'finished': {'format': 'date-time', + 'type': 'string'}, + 'hostname': {'type': 'string'}, + 'id': {'type': 'string'}, + 'machine': {'type': 'string'}, + 'model': {'type': 'string'}, + 'notes': {'type': 'string'}, + 'series': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'started': {'format': 'date-time', + 'type': 'string'}, + 'stored': {'format': 'date-time', + 'type': 'string'}, + 'version': {'$ref': '#/definitions/Number'}}, + 'required': ['id', + 'checksum', + 'checksum-format', + 'size', + 'stored', + 'started', + 'finished', + 'notes', + 'model', + 'machine', + 'hostname', + 'version', + 'series', + 'ca-cert', + 'ca-private-key'], + 'type': 'object'}, + 'BackupsRemoveArgs': {'additionalProperties': False, + 'properties': {'id': {'type': 'string'}}, + 'required': ['id'], + 'type': 'object'}, + 'Number': {'additionalProperties': False, + 'properties': {'Build': {'type': 'integer'}, + 'Major': {'type': 'integer'}, + 'Minor': {'type': 'integer'}, + 'Patch': {'type': 'integer'}, + 'Tag': {'type': 'string'}}, + 'required': ['Major', + 'Minor', + 'Tag', + 'Patch', + 'Build'], + 'type': 'object'}, + 'RestoreArgs': {'additionalProperties': False, + 'properties': {'backup-id': {'type': 'string'}}, + 'required': ['backup-id'], + 'type': 'object'}}, + 'properties': {'Create': {'properties': {'Params': {'$ref': '#/definitions/BackupsCreateArgs'}, + 'Result': {'$ref': '#/definitions/BackupsMetadataResult'}}, + 'type': 'object'}, + 'FinishRestore': {'type': 'object'}, + 'Info': {'properties': {'Params': {'$ref': '#/definitions/BackupsInfoArgs'}, + 'Result': {'$ref': '#/definitions/BackupsMetadataResult'}}, + 'type': 'object'}, + 'List': {'properties': {'Params': {'$ref': '#/definitions/BackupsListArgs'}, + 'Result': {'$ref': '#/definitions/BackupsListResult'}}, + 'type': 'object'}, + 'PrepareRestore': {'type': 'object'}, + 'Remove': {'properties': {'Params': {'$ref': '#/definitions/BackupsRemoveArgs'}}, + 'type': 'object'}, + 'Restore': {'properties': {'Params': {'$ref': '#/definitions/RestoreArgs'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(BackupsMetadataResult) + async def Create(self, notes): + ''' + notes : str + Returns -> typing.Union[str, int, _ForwardRef('Number')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Backups', + request='Create', + version=1, + params=_params) + _params['notes'] = notes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def FinishRestore(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Backups', + request='FinishRestore', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(BackupsMetadataResult) + async def Info(self, id_): + ''' + id_ : str + Returns -> typing.Union[str, int, _ForwardRef('Number')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Backups', + request='Info', + version=1, + params=_params) + _params['id'] = id_ + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(BackupsListResult) + async def List(self): + ''' + + Returns -> typing.Sequence[~BackupsMetadataResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Backups', + request='List', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def PrepareRestore(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Backups', + request='PrepareRestore', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Remove(self, id_): + ''' + id_ : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Backups', + request='Remove', + version=1, + params=_params) + _params['id'] = id_ + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Restore(self, backup_id): + ''' + backup_id : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Backups', + request='Restore', + version=1, + params=_params) + _params['backup-id'] = backup_id + reply = await self.rpc(msg) + return reply + + + +class BundleFacade(Type): + name = 'Bundle' + version = 1 + schema = {'definitions': {'BundleChange': {'additionalProperties': False, + 'properties': {'args': {'items': {'additionalProperties': True, + 'type': 'object'}, + 'type': 'array'}, + 'id': {'type': 'string'}, + 'method': {'type': 'string'}, + 'requires': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['id', + 'method', + 'args', + 'requires'], + 'type': 'object'}, + 'BundleChangesParams': {'additionalProperties': False, + 'properties': {'yaml': {'type': 'string'}}, + 'required': ['yaml'], + 'type': 'object'}, + 'BundleChangesResults': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/BundleChange'}, + 'type': 'array'}, + 'errors': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}}, + 'properties': {'GetChanges': {'properties': {'Params': {'$ref': '#/definitions/BundleChangesParams'}, + 'Result': {'$ref': '#/definitions/BundleChangesResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(BundleChangesResults) + async def GetChanges(self, yaml): + ''' + yaml : str + Returns -> typing.Union[typing.Sequence[~BundleChange], typing.Sequence[str]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Bundle', + request='GetChanges', + version=1, + params=_params) + _params['yaml'] = yaml + reply = await self.rpc(msg) + return reply + + + +class CAASAgentFacade(Type): + name = 'CAASAgent' + version = 1 + schema = {'definitions': {'CloudCredential': {'additionalProperties': False, + 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'auth-type': {'type': 'string'}, + 'redacted': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['auth-type'], + 'type': 'object'}, + 'CloudSpec': {'additionalProperties': False, + 'properties': {'cacertificates': {'items': {'type': 'string'}, + 'type': 'array'}, + 'credential': {'$ref': '#/definitions/CloudCredential'}, + 'endpoint': {'type': 'string'}, + 'identity-endpoint': {'type': 'string'}, + 'name': {'type': 'string'}, + 'region': {'type': 'string'}, + 'storage-endpoint': {'type': 'string'}, + 'type': {'type': 'string'}}, + 'required': ['type', 'name'], + 'type': 'object'}, + 'CloudSpecResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/CloudSpec'}}, + 'type': 'object'}, + 'CloudSpecResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/CloudSpecResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'ModelConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ModelTag': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}}, + 'properties': {'CloudSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/CloudSpecResults'}}, + 'type': 'object'}, + 'GetCloudSpec': {'properties': {'Params': {'$ref': '#/definitions/ModelTag'}, + 'Result': {'$ref': '#/definitions/CloudSpecResult'}}, + 'type': 'object'}, + 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, + 'type': 'object'}, + 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(CloudSpecResults) + async def CloudSpec(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~CloudSpecResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASAgent', + request='CloudSpec', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(CloudSpecResult) + async def GetCloudSpec(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASAgent', + request='GetCloudSpec', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelConfigResult) + async def ModelConfig(self): + ''' + + Returns -> typing.Mapping[str, typing.Any] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASAgent', + request='ModelConfig', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchForModelConfigChanges(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASAgent', + request='WatchForModelConfigChanges', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class CAASFirewallerFacade(Type): + name = 'CAASFirewaller' + version = 1 + schema = {'definitions': {'ApplicationGetConfigResults': {'additionalProperties': False, + 'properties': {'Results': {'items': {'$ref': '#/definitions/ConfigResult'}, + 'type': 'array'}}, + 'required': ['Results'], + 'type': 'object'}, + 'BoolResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'boolean'}}, + 'required': ['result'], + 'type': 'object'}, + 'BoolResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['config'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'LifeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'life': {'type': 'string'}}, + 'required': ['life'], + 'type': 'object'}, + 'LifeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}}, + 'properties': {'ApplicationsConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ApplicationGetConfigResults'}}, + 'type': 'object'}, + 'IsExposed': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/BoolResults'}}, + 'type': 'object'}, + 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/LifeResults'}}, + 'type': 'object'}, + 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchApplications': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ApplicationGetConfigResults) + async def ApplicationsConfig(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ConfigResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASFirewaller', + request='ApplicationsConfig', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(BoolResults) + async def IsExposed(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~BoolResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASFirewaller', + request='IsExposed', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(LifeResults) + async def Life(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~LifeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASFirewaller', + request='Life', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def Watch(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASFirewaller', + request='Watch', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResult) + async def WatchApplications(self): + ''' + + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASFirewaller', + request='WatchApplications', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class CAASOperatorFacade(Type): + name = 'CAASOperator' + version = 1 + schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, + 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, + 'type': 'array'}, + 'type': 'array'}}, + 'required': ['servers'], + 'type': 'object'}, + 'Address': {'additionalProperties': False, + 'properties': {'scope': {'type': 'string'}, + 'space-name': {'type': 'string'}, + 'type': {'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['value', 'type', 'scope'], + 'type': 'object'}, + 'ApplicationCharm': {'additionalProperties': False, + 'properties': {'charm-modified-version': {'type': 'integer'}, + 'force-upgrade': {'type': 'boolean'}, + 'sha256': {'type': 'string'}, + 'url': {'type': 'string'}}, + 'required': ['url', + 'sha256', + 'charm-modified-version'], + 'type': 'object'}, + 'ApplicationCharmResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/ApplicationCharm'}}, + 'type': 'object'}, + 'ApplicationCharmResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationCharmResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Binary': {'additionalProperties': False, + 'properties': {'Arch': {'type': 'string'}, + 'Number': {'$ref': '#/definitions/Number'}, + 'Series': {'type': 'string'}}, + 'required': ['Number', 'Series', 'Arch'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'EntitiesVersion': {'additionalProperties': False, + 'properties': {'agent-tools': {'items': {'$ref': '#/definitions/EntityVersion'}, + 'type': 'array'}}, + 'required': ['agent-tools'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityStatusArgs': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'status': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', + 'status', + 'info', + 'data'], + 'type': 'object'}, + 'EntityString': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['tag', 'value'], + 'type': 'object'}, + 'EntityVersion': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}, + 'tools': {'$ref': '#/definitions/Version'}}, + 'required': ['tag', 'tools'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'HostPort': {'additionalProperties': False, + 'properties': {'Address': {'$ref': '#/definitions/Address'}, + 'port': {'type': 'integer'}}, + 'required': ['Address', 'port'], + 'type': 'object'}, + 'LifeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'life': {'type': 'string'}}, + 'required': ['life'], + 'type': 'object'}, + 'LifeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'ModelResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'name': {'type': 'string'}, + 'type': {'type': 'string'}, + 'uuid': {'type': 'string'}}, + 'required': ['name', 'uuid', 'type'], + 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Number': {'additionalProperties': False, + 'properties': {'Build': {'type': 'integer'}, + 'Major': {'type': 'integer'}, + 'Minor': {'type': 'integer'}, + 'Patch': {'type': 'integer'}, + 'Tag': {'type': 'string'}}, + 'required': ['Major', + 'Minor', + 'Tag', + 'Patch', + 'Build'], + 'type': 'object'}, + 'SetPodSpecParams': {'additionalProperties': False, + 'properties': {'specs': {'items': {'$ref': '#/definitions/EntityString'}, + 'type': 'array'}}, + 'required': ['specs'], + 'type': 'object'}, + 'SetStatus': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'StringsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}, + 'StringsWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Version': {'additionalProperties': False, + 'properties': {'version': {'$ref': '#/definitions/Binary'}}, + 'required': ['version'], + 'type': 'object'}}, + 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, + 'type': 'object'}, + 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, + 'type': 'object'}, + 'Charm': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ApplicationCharmResults'}}, + 'type': 'object'}, + 'CurrentModel': {'properties': {'Result': {'$ref': '#/definitions/ModelResult'}}, + 'type': 'object'}, + 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/LifeResults'}}, + 'type': 'object'}, + 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'Remove': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetPodSpec': {'properties': {'Params': {'$ref': '#/definitions/SetPodSpecParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetTools': {'properties': {'Params': {'$ref': '#/definitions/EntitiesVersion'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}, + 'WatchUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(StringsResult) + async def APIAddresses(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASOperator', + request='APIAddresses', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(APIHostPortsResult) + async def APIHostPorts(self): + ''' + + Returns -> typing.Sequence[~HostPort] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASOperator', + request='APIHostPorts', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ApplicationCharmResults) + async def Charm(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ApplicationCharmResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASOperator', + request='Charm', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelResult) + async def CurrentModel(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASOperator', + request='CurrentModel', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(LifeResults) + async def Life(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~LifeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASOperator', + request='Life', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def ModelUUID(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASOperator', + request='ModelUUID', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Remove(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASOperator', + request='Remove', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetPodSpec(self, specs): + ''' + specs : typing.Sequence[~EntityString] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASOperator', + request='SetPodSpec', + version=1, + params=_params) + _params['specs'] = specs + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASOperator', + request='SetStatus', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetTools(self, agent_tools): + ''' + agent_tools : typing.Sequence[~EntityVersion] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASOperator', + request='SetTools', + version=1, + params=_params) + _params['agent-tools'] = agent_tools + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def Watch(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASOperator', + request='Watch', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchAPIHostPorts(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASOperator', + request='WatchAPIHostPorts', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchUnits(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASOperator', + request='WatchUnits', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class CAASOperatorProvisionerFacade(Type): + name = 'CAASOperatorProvisioner' + version = 1 + schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, + 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, + 'type': 'array'}, + 'type': 'array'}}, + 'required': ['servers'], + 'type': 'object'}, + 'Address': {'additionalProperties': False, + 'properties': {'scope': {'type': 'string'}, + 'space-name': {'type': 'string'}, + 'type': {'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['value', 'type', 'scope'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityPassword': {'additionalProperties': False, + 'properties': {'password': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'password'], + 'type': 'object'}, + 'EntityPasswords': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'}, + 'type': 'array'}}, + 'required': ['changes'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'HostPort': {'additionalProperties': False, + 'properties': {'Address': {'$ref': '#/definitions/Address'}, + 'port': {'type': 'integer'}}, + 'required': ['Address', 'port'], + 'type': 'object'}, + 'KubernetesFilesystemAttachmentParams': {'additionalProperties': False, + 'properties': {'mount-point': {'type': 'string'}, + 'provider': {'type': 'string'}, + 'read-only': {'type': 'boolean'}}, + 'required': ['provider'], + 'type': 'object'}, + 'KubernetesFilesystemParams': {'additionalProperties': False, + 'properties': {'attachment': {'$ref': '#/definitions/KubernetesFilesystemAttachmentParams'}, + 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'provider': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'storagename': {'type': 'string'}, + 'tags': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'required': ['storagename', + 'size', + 'provider'], + 'type': 'object'}, + 'LifeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'life': {'type': 'string'}}, + 'required': ['life'], + 'type': 'object'}, + 'LifeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'Number': {'additionalProperties': False, + 'properties': {'Build': {'type': 'integer'}, + 'Major': {'type': 'integer'}, + 'Minor': {'type': 'integer'}, + 'Patch': {'type': 'integer'}, + 'Tag': {'type': 'string'}}, + 'required': ['Major', + 'Minor', + 'Tag', + 'Patch', + 'Build'], + 'type': 'object'}, + 'OperatorProvisioningInfo': {'additionalProperties': False, + 'properties': {'api-addresses': {'items': {'type': 'string'}, + 'type': 'array'}, + 'charm-storage': {'$ref': '#/definitions/KubernetesFilesystemParams'}, + 'image-path': {'type': 'string'}, + 'tags': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'version': {'$ref': '#/definitions/Number'}}, + 'required': ['image-path', + 'version', + 'api-addresses', + 'charm-storage'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'StringsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}}, + 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, + 'type': 'object'}, + 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, + 'type': 'object'}, + 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/LifeResults'}}, + 'type': 'object'}, + 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'OperatorProvisioningInfo': {'properties': {'Result': {'$ref': '#/definitions/OperatorProvisioningInfo'}}, + 'type': 'object'}, + 'SetPasswords': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}, + 'WatchApplications': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(StringsResult) + async def APIAddresses(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASOperatorProvisioner', + request='APIAddresses', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(APIHostPortsResult) + async def APIHostPorts(self): + ''' + + Returns -> typing.Sequence[~HostPort] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASOperatorProvisioner', + request='APIHostPorts', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(LifeResults) + async def Life(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~LifeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASOperatorProvisioner', + request='Life', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def ModelUUID(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASOperatorProvisioner', + request='ModelUUID', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(OperatorProvisioningInfo) + async def OperatorProvisioningInfo(self): + ''' + + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('KubernetesFilesystemParams'), str, typing.Mapping[str, str], _ForwardRef('Number')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASOperatorProvisioner', + request='OperatorProvisioningInfo', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetPasswords(self, changes): + ''' + changes : typing.Sequence[~EntityPassword] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASOperatorProvisioner', + request='SetPasswords', + version=1, + params=_params) + _params['changes'] = changes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchAPIHostPorts(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASOperatorProvisioner', + request='WatchAPIHostPorts', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResult) + async def WatchApplications(self): + ''' + + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASOperatorProvisioner', + request='WatchApplications', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class CAASUnitProvisionerFacade(Type): + name = 'CAASUnitProvisioner' + version = 1 + schema = {'definitions': {'Address': {'additionalProperties': False, + 'properties': {'scope': {'type': 'string'}, + 'space-name': {'type': 'string'}, + 'type': {'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['value', 'type', 'scope'], + 'type': 'object'}, + 'ApplicationGetConfigResults': {'additionalProperties': False, + 'properties': {'Results': {'items': {'$ref': '#/definitions/ConfigResult'}, + 'type': 'array'}}, + 'required': ['Results'], + 'type': 'object'}, + 'ApplicationUnitParams': {'additionalProperties': False, + 'properties': {'address': {'type': 'string'}, + 'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'filesystem-info': {'items': {'$ref': '#/definitions/KubernetesFilesystemInfo'}, + 'type': 'array'}, + 'info': {'type': 'string'}, + 'ports': {'items': {'type': 'string'}, + 'type': 'array'}, + 'provider-id': {'type': 'string'}, + 'status': {'type': 'string'}, + 'unit-tag': {'type': 'string'}}, + 'required': ['provider-id', + 'unit-tag', + 'address', + 'ports', + 'status', + 'info'], + 'type': 'object'}, + 'ConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['config'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityStatusArgs': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'status': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', + 'status', + 'info', + 'data'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'IntResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'integer'}}, + 'required': ['result'], + 'type': 'object'}, + 'IntResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/IntResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'KubernetesDeviceParams': {'additionalProperties': False, + 'properties': {'Attributes': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'Count': {'type': 'integer'}, + 'Type': {'type': 'string'}}, + 'required': ['Type', + 'Count', + 'Attributes'], + 'type': 'object'}, + 'KubernetesFilesystemAttachmentParams': {'additionalProperties': False, + 'properties': {'mount-point': {'type': 'string'}, + 'provider': {'type': 'string'}, + 'read-only': {'type': 'boolean'}}, + 'required': ['provider'], + 'type': 'object'}, + 'KubernetesFilesystemInfo': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'filesystem-id': {'type': 'string'}, + 'info': {'type': 'string'}, + 'mount-point': {'type': 'string'}, + 'pool': {'type': 'string'}, + 'read-only': {'type': 'boolean'}, + 'size': {'type': 'integer'}, + 'status': {'type': 'string'}, + 'storagename': {'type': 'string'}, + 'volume': {'$ref': '#/definitions/KubernetesVolumeInfo'}}, + 'required': ['storagename', + 'pool', + 'size', + 'filesystem-id', + 'status', + 'info', + 'volume'], + 'type': 'object'}, + 'KubernetesFilesystemParams': {'additionalProperties': False, + 'properties': {'attachment': {'$ref': '#/definitions/KubernetesFilesystemAttachmentParams'}, + 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'provider': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'storagename': {'type': 'string'}, + 'tags': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'required': ['storagename', + 'size', + 'provider'], + 'type': 'object'}, + 'KubernetesProvisioningInfo': {'additionalProperties': False, + 'properties': {'constraints': {'$ref': '#/definitions/Value'}, + 'devices': {'items': {'$ref': '#/definitions/KubernetesDeviceParams'}, + 'type': 'array'}, + 'filesystems': {'items': {'$ref': '#/definitions/KubernetesFilesystemParams'}, + 'type': 'array'}, + 'placement': {'type': 'string'}, + 'pod-spec': {'type': 'string'}, + 'tags': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'volumes': {'items': {'$ref': '#/definitions/KubernetesVolumeParams'}, + 'type': 'array'}}, + 'required': ['pod-spec', + 'constraints'], + 'type': 'object'}, + 'KubernetesProvisioningInfoResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/KubernetesProvisioningInfo'}}, + 'required': ['result'], + 'type': 'object'}, + 'KubernetesProvisioningInfoResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/KubernetesProvisioningInfoResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'KubernetesVolumeAttachmentParams': {'additionalProperties': False, + 'properties': {'provider': {'type': 'string'}, + 'read-only': {'type': 'boolean'}}, + 'required': ['provider'], + 'type': 'object'}, + 'KubernetesVolumeInfo': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'persistent': {'type': 'boolean'}, + 'pool': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'status': {'type': 'string'}, + 'volume-id': {'type': 'string'}}, + 'required': ['volume-id', + 'size', + 'persistent', + 'status', + 'info'], + 'type': 'object'}, + 'KubernetesVolumeParams': {'additionalProperties': False, + 'properties': {'attachment': {'$ref': '#/definitions/KubernetesVolumeAttachmentParams'}, + 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'provider': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'storagename': {'type': 'string'}, + 'tags': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'required': ['storagename', + 'size', + 'provider'], + 'type': 'object'}, + 'LifeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'life': {'type': 'string'}}, + 'required': ['life'], + 'type': 'object'}, + 'LifeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'SetStatus': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}, + 'UpdateApplicationServiceArg': {'additionalProperties': False, + 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, + 'type': 'array'}, + 'application-tag': {'type': 'string'}, + 'provider-id': {'type': 'string'}}, + 'required': ['application-tag', + 'provider-id', + 'addresses'], + 'type': 'object'}, + 'UpdateApplicationServiceArgs': {'additionalProperties': False, + 'properties': {'args': {'items': {'$ref': '#/definitions/UpdateApplicationServiceArg'}, + 'type': 'array'}}, + 'required': ['args'], + 'type': 'object'}, + 'UpdateApplicationUnitArgs': {'additionalProperties': False, + 'properties': {'args': {'items': {'$ref': '#/definitions/UpdateApplicationUnits'}, + 'type': 'array'}}, + 'required': ['args'], + 'type': 'object'}, + 'UpdateApplicationUnits': {'additionalProperties': False, + 'properties': {'application-tag': {'type': 'string'}, + 'units': {'items': {'$ref': '#/definitions/ApplicationUnitParams'}, + 'type': 'array'}}, + 'required': ['application-tag', + 'units'], + 'type': 'object'}, + 'Value': {'additionalProperties': False, + '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': {'items': {'type': 'string'}, + 'type': 'array'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}, + 'virt-type': {'type': 'string'}, + 'zones': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}}, + 'properties': {'ApplicationsConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ApplicationGetConfigResults'}}, + 'type': 'object'}, + 'ApplicationsScale': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/IntResults'}}, + 'type': 'object'}, + 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/LifeResults'}}, + 'type': 'object'}, + 'ProvisioningInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/KubernetesProvisioningInfoResults'}}, + 'type': 'object'}, + 'SetOperatorStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'UpdateApplicationsService': {'properties': {'Params': {'$ref': '#/definitions/UpdateApplicationServiceArgs'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'UpdateApplicationsUnits': {'properties': {'Params': {'$ref': '#/definitions/UpdateApplicationUnitArgs'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'WatchApplications': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, + 'type': 'object'}, + 'WatchApplicationsScale': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchPodSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ApplicationGetConfigResults) + async def ApplicationsConfig(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ConfigResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASUnitProvisioner', + request='ApplicationsConfig', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(IntResults) + async def ApplicationsScale(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~IntResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASUnitProvisioner', + request='ApplicationsScale', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(LifeResults) + async def Life(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~LifeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASUnitProvisioner', + request='Life', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(KubernetesProvisioningInfoResults) + async def ProvisioningInfo(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~KubernetesProvisioningInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASUnitProvisioner', + request='ProvisioningInfo', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetOperatorStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASUnitProvisioner', + request='SetOperatorStatus', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def UpdateApplicationsService(self, args): + ''' + args : typing.Sequence[~UpdateApplicationServiceArg] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASUnitProvisioner', + request='UpdateApplicationsService', + version=1, + params=_params) + _params['args'] = args + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def UpdateApplicationsUnits(self, args): + ''' + args : typing.Sequence[~UpdateApplicationUnits] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASUnitProvisioner', + request='UpdateApplicationsUnits', + version=1, + params=_params) + _params['args'] = args + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResult) + async def WatchApplications(self): + ''' + + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASUnitProvisioner', + request='WatchApplications', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchApplicationsScale(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASUnitProvisioner', + request='WatchApplicationsScale', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchPodSpec(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CAASUnitProvisioner', + request='WatchPodSpec', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class ClientFacade(Type): + name = 'Client' + version = 1 + schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, + 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, + 'type': 'array'}, + 'type': 'array'}}, + 'required': ['servers'], + 'type': 'object'}, + 'AddCharm': {'additionalProperties': False, + 'properties': {'channel': {'type': 'string'}, + 'url': {'type': 'string'}}, + 'required': ['url', 'channel'], + 'type': 'object'}, + 'AddCharmWithAuthorization': {'additionalProperties': False, + 'properties': {'channel': {'type': 'string'}, + 'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'url': {'type': 'string'}}, + 'required': ['url', + 'channel', + 'macaroon'], + 'type': 'object'}, + 'AddMachineParams': {'additionalProperties': False, + 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, + 'type': 'array'}, + 'constraints': {'$ref': '#/definitions/Value'}, + 'container-type': {'type': 'string'}, + 'disks': {'items': {'$ref': '#/definitions/Constraints'}, + 'type': 'array'}, + 'hardware-characteristics': {'$ref': '#/definitions/HardwareCharacteristics'}, + 'instance-id': {'type': 'string'}, + 'jobs': {'items': {'type': 'string'}, + 'type': 'array'}, + 'nonce': {'type': 'string'}, + 'parent-id': {'type': 'string'}, + 'placement': {'$ref': '#/definitions/Placement'}, + 'series': {'type': 'string'}}, + 'required': ['series', + 'constraints', + 'jobs', + 'parent-id', + 'container-type', + 'instance-id', + 'nonce', + 'hardware-characteristics', + 'addresses'], + 'type': 'object'}, + 'AddMachines': {'additionalProperties': False, + 'properties': {'params': {'items': {'$ref': '#/definitions/AddMachineParams'}, + 'type': 'array'}}, + 'required': ['params'], + 'type': 'object'}, + 'AddMachinesResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'machine': {'type': 'string'}}, + 'required': ['machine'], + 'type': 'object'}, + 'AddMachinesResults': {'additionalProperties': False, + 'properties': {'machines': {'items': {'$ref': '#/definitions/AddMachinesResult'}, + 'type': 'array'}}, + 'required': ['machines'], + 'type': 'object'}, + 'Address': {'additionalProperties': False, + 'properties': {'scope': {'type': 'string'}, + 'space-name': {'type': 'string'}, + 'type': {'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['value', 'type', 'scope'], + 'type': 'object'}, + 'AgentVersionResult': {'additionalProperties': False, + 'properties': {'version': {'$ref': '#/definitions/Number'}}, + 'required': ['version'], + 'type': 'object'}, + 'AllWatcherId': {'additionalProperties': False, + 'properties': {'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}, + 'ApplicationStatus': {'additionalProperties': False, + 'properties': {'can-upgrade-to': {'type': 'string'}, + 'charm': {'type': 'string'}, + 'err': {'additionalProperties': True, + 'type': 'object'}, + 'exposed': {'type': 'boolean'}, + 'life': {'type': 'string'}, + 'meter-statuses': {'patternProperties': {'.*': {'$ref': '#/definitions/MeterStatus'}}, + 'type': 'object'}, + 'relations': {'patternProperties': {'.*': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'series': {'type': 'string'}, + 'status': {'$ref': '#/definitions/DetailedStatus'}, + 'subordinate-to': {'items': {'type': 'string'}, + 'type': 'array'}, + 'units': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitStatus'}}, + 'type': 'object'}, + 'workload-version': {'type': 'string'}}, + 'required': ['charm', + 'series', + 'exposed', + 'life', + 'relations', + 'can-upgrade-to', + 'subordinate-to', + 'units', + 'meter-statuses', + 'status', + 'workload-version'], + 'type': 'object'}, + 'Binary': {'additionalProperties': False, + 'properties': {'Arch': {'type': 'string'}, + 'Number': {'$ref': '#/definitions/Number'}, + 'Series': {'type': 'string'}}, + 'required': ['Number', 'Series', 'Arch'], + 'type': 'object'}, + 'BundleChange': {'additionalProperties': False, + 'properties': {'args': {'items': {'additionalProperties': True, + 'type': 'object'}, + 'type': 'array'}, + 'id': {'type': 'string'}, + 'method': {'type': 'string'}, + 'requires': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['id', + 'method', + 'args', + 'requires'], + 'type': 'object'}, + 'BundleChangesParams': {'additionalProperties': False, + 'properties': {'yaml': {'type': 'string'}}, + 'required': ['yaml'], + 'type': 'object'}, + 'BundleChangesResults': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/BundleChange'}, + 'type': 'array'}, + 'errors': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'BytesResult': {'additionalProperties': False, + 'properties': {'result': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['result'], + 'type': 'object'}, + 'ConfigValue': {'additionalProperties': False, + 'properties': {'source': {'type': 'string'}, + 'value': {'additionalProperties': True, + 'type': 'object'}}, + 'required': ['value', 'source'], + 'type': 'object'}, + 'Constraints': {'additionalProperties': False, + 'properties': {'Count': {'type': 'integer'}, + 'Pool': {'type': 'string'}, + 'Size': {'type': 'integer'}}, + 'required': ['Pool', 'Size', 'Count'], + 'type': 'object'}, + 'DestroyMachines': {'additionalProperties': False, + 'properties': {'force': {'type': 'boolean'}, + 'machine-names': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['machine-names', 'force'], + 'type': 'object'}, + 'DetailedStatus': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'err': {'additionalProperties': True, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'kind': {'type': 'string'}, + 'life': {'type': 'string'}, + 'since': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}, + 'version': {'type': 'string'}}, + 'required': ['status', + 'info', + 'data', + 'since', + 'kind', + 'version', + 'life'], + 'type': 'object'}, + 'EndpointStatus': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'name': {'type': 'string'}, + 'role': {'type': 'string'}, + 'subordinate': {'type': 'boolean'}}, + 'required': ['application', + 'name', + 'role', + 'subordinate'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityStatus': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'since': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['status', 'info', 'since'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'FindToolsParams': {'additionalProperties': False, + 'properties': {'arch': {'type': 'string'}, + 'major': {'type': 'integer'}, + 'minor': {'type': 'integer'}, + 'number': {'$ref': '#/definitions/Number'}, + 'series': {'type': 'string'}}, + 'required': ['number', + 'major', + 'minor', + 'arch', + 'series'], + 'type': 'object'}, + 'FindToolsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'list': {'items': {'$ref': '#/definitions/Tools'}, + 'type': 'array'}}, + 'required': ['list'], + 'type': 'object'}, + 'FullStatus': {'additionalProperties': False, + 'properties': {'applications': {'patternProperties': {'.*': {'$ref': '#/definitions/ApplicationStatus'}}, + 'type': 'object'}, + 'machines': {'patternProperties': {'.*': {'$ref': '#/definitions/MachineStatus'}}, + 'type': 'object'}, + 'model': {'$ref': '#/definitions/ModelStatusInfo'}, + 'relations': {'items': {'$ref': '#/definitions/RelationStatus'}, + 'type': 'array'}, + 'remote-applications': {'patternProperties': {'.*': {'$ref': '#/definitions/RemoteApplicationStatus'}}, + 'type': 'object'}}, + 'required': ['model', + 'machines', + 'applications', + 'remote-applications', + 'relations'], + 'type': 'object'}, + 'GetConstraintsResults': {'additionalProperties': False, + 'properties': {'constraints': {'$ref': '#/definitions/Value'}}, + 'required': ['constraints'], + 'type': 'object'}, + 'HardwareCharacteristics': {'additionalProperties': False, + 'properties': {'arch': {'type': 'string'}, + 'availability-zone': {'type': 'string'}, + 'cpu-cores': {'type': 'integer'}, + 'cpu-power': {'type': 'integer'}, + 'mem': {'type': 'integer'}, + 'root-disk': {'type': 'integer'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'History': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'statuses': {'items': {'$ref': '#/definitions/DetailedStatus'}, + 'type': 'array'}}, + 'required': ['statuses'], + 'type': 'object'}, + 'HostPort': {'additionalProperties': False, + 'properties': {'Address': {'$ref': '#/definitions/Address'}, + 'port': {'type': 'integer'}}, + 'required': ['Address', 'port'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MachineHardware': {'additionalProperties': False, + 'properties': {'arch': {'type': 'string'}, + 'availability-zone': {'type': 'string'}, + 'cores': {'type': 'integer'}, + 'cpu-power': {'type': 'integer'}, + 'mem': {'type': 'integer'}, + 'root-disk': {'type': 'integer'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'MachineStatus': {'additionalProperties': False, + 'properties': {'agent-status': {'$ref': '#/definitions/DetailedStatus'}, + 'constraints': {'type': 'string'}, + 'containers': {'patternProperties': {'.*': {'$ref': '#/definitions/MachineStatus'}}, + 'type': 'object'}, + 'dns-name': {'type': 'string'}, + 'hardware': {'type': 'string'}, + 'has-vote': {'type': 'boolean'}, + 'id': {'type': 'string'}, + 'instance-id': {'type': 'string'}, + 'instance-status': {'$ref': '#/definitions/DetailedStatus'}, + 'ip-addresses': {'items': {'type': 'string'}, + 'type': 'array'}, + 'jobs': {'items': {'type': 'string'}, + 'type': 'array'}, + 'network-interfaces': {'patternProperties': {'.*': {'$ref': '#/definitions/NetworkInterface'}}, + 'type': 'object'}, + 'series': {'type': 'string'}, + 'wants-vote': {'type': 'boolean'}}, + 'required': ['agent-status', + 'instance-status', + 'dns-name', + 'instance-id', + 'series', + 'id', + 'containers', + 'constraints', + 'hardware', + 'jobs', + 'has-vote', + 'wants-vote'], + 'type': 'object'}, + 'MeterStatus': {'additionalProperties': False, + 'properties': {'color': {'type': 'string'}, + 'message': {'type': 'string'}}, + 'required': ['color', 'message'], + 'type': 'object'}, + 'ModelConfigResults': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ModelInfo': {'additionalProperties': False, + 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, + 'cloud-credential-tag': {'type': 'string'}, + 'cloud-region': {'type': 'string'}, + 'cloud-tag': {'type': 'string'}, + 'controller-uuid': {'type': 'string'}, + 'default-series': {'type': 'string'}, + 'life': {'type': 'string'}, + 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, + 'type': 'array'}, + 'migration': {'$ref': '#/definitions/ModelMigrationStatus'}, + 'name': {'type': 'string'}, + 'owner-tag': {'type': 'string'}, + 'provider-type': {'type': 'string'}, + 'sla': {'$ref': '#/definitions/ModelSLAInfo'}, + 'status': {'$ref': '#/definitions/EntityStatus'}, + 'users': {'items': {'$ref': '#/definitions/ModelUserInfo'}, + 'type': 'array'}, + 'uuid': {'type': 'string'}}, + 'required': ['name', + 'uuid', + 'controller-uuid', + 'cloud-tag', + 'owner-tag', + 'life', + 'users', + 'machines', + 'sla', + 'agent-version'], + 'type': 'object'}, + 'ModelMachineInfo': {'additionalProperties': False, + 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'}, + 'has-vote': {'type': 'boolean'}, + 'id': {'type': 'string'}, + 'instance-id': {'type': 'string'}, + 'status': {'type': 'string'}, + 'wants-vote': {'type': 'boolean'}}, + 'required': ['id'], + 'type': 'object'}, + 'ModelMigrationStatus': {'additionalProperties': False, + 'properties': {'end': {'format': 'date-time', + 'type': 'string'}, + 'start': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['status', 'start'], + 'type': 'object'}, + 'ModelSLA': {'additionalProperties': False, + 'properties': {'ModelSLAInfo': {'$ref': '#/definitions/ModelSLAInfo'}, + 'creds': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['ModelSLAInfo', 'creds'], + 'type': 'object'}, + 'ModelSLAInfo': {'additionalProperties': False, + 'properties': {'level': {'type': 'string'}, + 'owner': {'type': 'string'}}, + 'required': ['level', 'owner'], + 'type': 'object'}, + 'ModelSet': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ModelStatusInfo': {'additionalProperties': False, + 'properties': {'available-version': {'type': 'string'}, + 'cloud-tag': {'type': 'string'}, + 'meter-status': {'$ref': '#/definitions/MeterStatus'}, + 'model-status': {'$ref': '#/definitions/DetailedStatus'}, + 'name': {'type': 'string'}, + 'region': {'type': 'string'}, + 'sla': {'type': 'string'}, + 'version': {'type': 'string'}}, + 'required': ['name', + 'cloud-tag', + 'version', + 'available-version', + 'model-status', + 'meter-status', + 'sla'], + 'type': 'object'}, + 'ModelUnset': {'additionalProperties': False, + 'properties': {'keys': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['keys'], + 'type': 'object'}, + 'ModelUserInfo': {'additionalProperties': False, + 'properties': {'access': {'type': 'string'}, + 'display-name': {'type': 'string'}, + 'last-connection': {'format': 'date-time', + 'type': 'string'}, + 'user': {'type': 'string'}}, + 'required': ['user', + 'display-name', + 'last-connection', + 'access'], + 'type': 'object'}, + 'ModelUserInfoResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/ModelUserInfo'}}, + 'type': 'object'}, + 'ModelUserInfoResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ModelUserInfoResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'NetworkInterface': {'additionalProperties': False, + 'properties': {'dns-nameservers': {'items': {'type': 'string'}, + 'type': 'array'}, + 'gateway': {'type': 'string'}, + 'ip-addresses': {'items': {'type': 'string'}, + 'type': 'array'}, + 'is-up': {'type': 'boolean'}, + 'mac-address': {'type': 'string'}, + 'space': {'type': 'string'}}, + 'required': ['ip-addresses', + 'mac-address', + 'is-up'], + 'type': 'object'}, + 'Number': {'additionalProperties': False, + 'properties': {'Build': {'type': 'integer'}, + 'Major': {'type': 'integer'}, + 'Minor': {'type': 'integer'}, + 'Patch': {'type': 'integer'}, + 'Tag': {'type': 'string'}}, + 'required': ['Major', + 'Minor', + 'Tag', + 'Patch', + 'Build'], + 'type': 'object'}, + 'Placement': {'additionalProperties': False, + 'properties': {'directive': {'type': 'string'}, + 'scope': {'type': 'string'}}, + 'required': ['scope', 'directive'], + 'type': 'object'}, + 'PrivateAddress': {'additionalProperties': False, + 'properties': {'target': {'type': 'string'}}, + 'required': ['target'], + 'type': 'object'}, + 'PrivateAddressResults': {'additionalProperties': False, + 'properties': {'private-address': {'type': 'string'}}, + 'required': ['private-address'], + 'type': 'object'}, + 'ProvisioningScriptParams': {'additionalProperties': False, + 'properties': {'data-dir': {'type': 'string'}, + 'disable-package-commands': {'type': 'boolean'}, + 'machine-id': {'type': 'string'}, + 'nonce': {'type': 'string'}}, + 'required': ['machine-id', + 'nonce', + 'data-dir', + 'disable-package-commands'], + 'type': 'object'}, + 'ProvisioningScriptResult': {'additionalProperties': False, + 'properties': {'script': {'type': 'string'}}, + 'required': ['script'], + 'type': 'object'}, + 'PublicAddress': {'additionalProperties': False, + 'properties': {'target': {'type': 'string'}}, + 'required': ['target'], + 'type': 'object'}, + 'PublicAddressResults': {'additionalProperties': False, + 'properties': {'public-address': {'type': 'string'}}, + 'required': ['public-address'], + 'type': 'object'}, + 'RelationStatus': {'additionalProperties': False, + 'properties': {'endpoints': {'items': {'$ref': '#/definitions/EndpointStatus'}, + 'type': 'array'}, + 'id': {'type': 'integer'}, + 'interface': {'type': 'string'}, + 'key': {'type': 'string'}, + 'scope': {'type': 'string'}}, + 'required': ['id', + 'key', + 'interface', + 'scope', + 'endpoints'], + 'type': 'object'}, + 'RemoteApplicationStatus': {'additionalProperties': False, + 'properties': {'application-name': {'type': 'string'}, + 'application-url': {'type': 'string'}, + 'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'}, + 'type': 'array'}, + 'err': {'additionalProperties': True, + 'type': 'object'}, + 'life': {'type': 'string'}, + 'relations': {'patternProperties': {'.*': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'status': {'$ref': '#/definitions/DetailedStatus'}}, + 'required': ['application-url', + 'application-name', + 'endpoints', + 'life', + 'relations', + 'status'], + 'type': 'object'}, + 'RemoteEndpoint': {'additionalProperties': False, + 'properties': {'interface': {'type': 'string'}, + 'limit': {'type': 'integer'}, + 'name': {'type': 'string'}, + 'role': {'type': 'string'}, + 'scope': {'type': 'string'}}, + 'required': ['name', + 'role', + 'interface', + 'limit', + 'scope'], + 'type': 'object'}, + 'ResolveCharmResult': {'additionalProperties': False, + 'properties': {'error': {'type': 'string'}, + 'url': {'type': 'string'}}, + 'type': 'object'}, + 'ResolveCharmResults': {'additionalProperties': False, + 'properties': {'urls': {'items': {'$ref': '#/definitions/ResolveCharmResult'}, + 'type': 'array'}}, + 'required': ['urls'], + 'type': 'object'}, + 'ResolveCharms': {'additionalProperties': False, + 'properties': {'references': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['references'], + 'type': 'object'}, + 'Resolved': {'additionalProperties': False, + 'properties': {'retry': {'type': 'boolean'}, + 'unit-name': {'type': 'string'}}, + 'required': ['unit-name', 'retry'], + 'type': 'object'}, + 'SetConstraints': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'constraints': {'$ref': '#/definitions/Value'}}, + 'required': ['application', 'constraints'], + 'type': 'object'}, + 'SetModelAgentVersion': {'additionalProperties': False, + 'properties': {'version': {'$ref': '#/definitions/Number'}}, + 'required': ['version'], + 'type': 'object'}, + 'StatusHistoryFilter': {'additionalProperties': False, + 'properties': {'date': {'format': 'date-time', + 'type': 'string'}, + 'delta': {'type': 'integer'}, + 'exclude': {'items': {'type': 'string'}, + 'type': 'array'}, + 'size': {'type': 'integer'}}, + 'required': ['size', + 'date', + 'delta', + 'exclude'], + 'type': 'object'}, + 'StatusHistoryRequest': {'additionalProperties': False, + 'properties': {'filter': {'$ref': '#/definitions/StatusHistoryFilter'}, + 'historyKind': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'tag': {'type': 'string'}}, + 'required': ['historyKind', + 'size', + 'filter', + 'tag'], + 'type': 'object'}, + 'StatusHistoryRequests': {'additionalProperties': False, + 'properties': {'requests': {'items': {'$ref': '#/definitions/StatusHistoryRequest'}, + 'type': 'array'}}, + 'required': ['requests'], + 'type': 'object'}, + 'StatusHistoryResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'history': {'$ref': '#/definitions/History'}}, + 'required': ['history'], + 'type': 'object'}, + 'StatusHistoryResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StatusHistoryResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StatusParams': {'additionalProperties': False, + 'properties': {'patterns': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['patterns'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'Tools': {'additionalProperties': False, + 'properties': {'sha256': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'url': {'type': 'string'}, + 'version': {'$ref': '#/definitions/Binary'}}, + 'required': ['version', 'url', 'size'], + 'type': 'object'}, + 'UnitStatus': {'additionalProperties': False, + 'properties': {'agent-status': {'$ref': '#/definitions/DetailedStatus'}, + 'charm': {'type': 'string'}, + 'leader': {'type': 'boolean'}, + 'machine': {'type': 'string'}, + 'opened-ports': {'items': {'type': 'string'}, + 'type': 'array'}, + 'public-address': {'type': 'string'}, + 'subordinates': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitStatus'}}, + 'type': 'object'}, + 'workload-status': {'$ref': '#/definitions/DetailedStatus'}, + 'workload-version': {'type': 'string'}}, + 'required': ['agent-status', + 'workload-status', + 'workload-version', + 'machine', + 'opened-ports', + 'public-address', + 'charm', + 'subordinates'], + 'type': 'object'}, + 'Value': {'additionalProperties': False, + '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': {'items': {'type': 'string'}, + 'type': 'array'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}, + 'virt-type': {'type': 'string'}}, + 'type': 'object'}}, + 'properties': {'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, + 'type': 'object'}, + 'AbortCurrentUpgrade': {'type': 'object'}, + 'AddCharm': {'properties': {'Params': {'$ref': '#/definitions/AddCharm'}}, + 'type': 'object'}, + 'AddCharmWithAuthorization': {'properties': {'Params': {'$ref': '#/definitions/AddCharmWithAuthorization'}}, + 'type': 'object'}, + 'AddMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, + 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, + 'type': 'object'}, + 'AddMachinesV2': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, + 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, + 'type': 'object'}, + 'AgentVersion': {'properties': {'Result': {'$ref': '#/definitions/AgentVersionResult'}}, + 'type': 'object'}, + 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, + 'type': 'object'}, + 'DestroyMachines': {'properties': {'Params': {'$ref': '#/definitions/DestroyMachines'}}, + 'type': 'object'}, + 'FindTools': {'properties': {'Params': {'$ref': '#/definitions/FindToolsParams'}, + 'Result': {'$ref': '#/definitions/FindToolsResult'}}, + 'type': 'object'}, + 'FullStatus': {'properties': {'Params': {'$ref': '#/definitions/StatusParams'}, + 'Result': {'$ref': '#/definitions/FullStatus'}}, + 'type': 'object'}, + 'GetBundleChanges': {'properties': {'Params': {'$ref': '#/definitions/BundleChangesParams'}, + 'Result': {'$ref': '#/definitions/BundleChangesResults'}}, + 'type': 'object'}, + 'GetModelConstraints': {'properties': {'Result': {'$ref': '#/definitions/GetConstraintsResults'}}, + 'type': 'object'}, + 'InjectMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, + 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, + 'type': 'object'}, + 'ModelGet': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}}, + 'type': 'object'}, + 'ModelInfo': {'properties': {'Result': {'$ref': '#/definitions/ModelInfo'}}, + 'type': 'object'}, + 'ModelSet': {'properties': {'Params': {'$ref': '#/definitions/ModelSet'}}, + 'type': 'object'}, + 'ModelUnset': {'properties': {'Params': {'$ref': '#/definitions/ModelUnset'}}, + 'type': 'object'}, + 'ModelUserInfo': {'properties': {'Result': {'$ref': '#/definitions/ModelUserInfoResults'}}, + 'type': 'object'}, + 'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/PrivateAddress'}, + 'Result': {'$ref': '#/definitions/PrivateAddressResults'}}, + 'type': 'object'}, + 'ProvisioningScript': {'properties': {'Params': {'$ref': '#/definitions/ProvisioningScriptParams'}, + 'Result': {'$ref': '#/definitions/ProvisioningScriptResult'}}, + 'type': 'object'}, + 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/PublicAddress'}, + 'Result': {'$ref': '#/definitions/PublicAddressResults'}}, + 'type': 'object'}, + 'ResolveCharms': {'properties': {'Params': {'$ref': '#/definitions/ResolveCharms'}, + 'Result': {'$ref': '#/definitions/ResolveCharmResults'}}, + 'type': 'object'}, + 'Resolved': {'properties': {'Params': {'$ref': '#/definitions/Resolved'}}, + 'type': 'object'}, + 'RetryProvisioning': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'SetModelAgentVersion': {'properties': {'Params': {'$ref': '#/definitions/SetModelAgentVersion'}}, + 'type': 'object'}, + 'SetModelConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, + 'type': 'object'}, + 'SetSLALevel': {'properties': {'Params': {'$ref': '#/definitions/ModelSLA'}}, + 'type': 'object'}, + 'StatusHistory': {'properties': {'Params': {'$ref': '#/definitions/StatusHistoryRequests'}, + 'Result': {'$ref': '#/definitions/StatusHistoryResults'}}, + 'type': 'object'}, + 'WatchAll': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherId'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(APIHostPortsResult) + async def APIHostPorts(self): + ''' + + Returns -> typing.Sequence[~HostPort] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='APIHostPorts', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def AbortCurrentUpgrade(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='AbortCurrentUpgrade', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def AddCharm(self, channel, url): + ''' + channel : str + url : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='AddCharm', + version=1, + params=_params) + _params['channel'] = channel + _params['url'] = url + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def AddCharmWithAuthorization(self, channel, macaroon, url): + ''' + channel : str + macaroon : Macaroon + url : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='AddCharmWithAuthorization', + version=1, + params=_params) + _params['channel'] = channel + _params['macaroon'] = macaroon + _params['url'] = url + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(AddMachinesResults) + async def AddMachines(self, params): + ''' + params : typing.Sequence[~AddMachineParams] + Returns -> typing.Sequence[~AddMachinesResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='AddMachines', + version=1, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(AddMachinesResults) + async def AddMachinesV2(self, params): + ''' + params : typing.Sequence[~AddMachineParams] + Returns -> typing.Sequence[~AddMachinesResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='AddMachinesV2', + version=1, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(AgentVersionResult) + async def AgentVersion(self): + ''' + + Returns -> Number + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='AgentVersion', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(BytesResult) + async def CACert(self): + ''' + + Returns -> typing.Sequence[int] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='CACert', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def DestroyMachines(self, force, machine_names): + ''' + force : bool + machine_names : typing.Sequence[str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='DestroyMachines', + version=1, + params=_params) + _params['force'] = force + _params['machine-names'] = machine_names + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(FindToolsResult) + async def FindTools(self, arch, major, minor, number, series): + ''' + arch : str + major : int + minor : int + number : Number + series : str + Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[~Tools]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='FindTools', + version=1, + params=_params) + _params['arch'] = arch + _params['major'] = major + _params['minor'] = minor + _params['number'] = number + _params['series'] = series + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(FullStatus) + async def FullStatus(self, patterns): + ''' + patterns : typing.Sequence[str] + Returns -> typing.Union[typing.Mapping[str, ~ApplicationStatus], str, typing.Mapping[str, ~MachineStatus], _ForwardRef('ModelStatusInfo'), typing.Mapping[str, ~ApplicationOfferStatus], typing.Sequence[~RelationStatus], typing.Mapping[str, ~RemoteApplicationStatus]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='FullStatus', + version=1, + params=_params) + _params['patterns'] = patterns + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(BundleChangesResults) + async def GetBundleChanges(self, yaml): + ''' + yaml : str + Returns -> typing.Union[typing.Sequence[~BundleChange], typing.Sequence[str]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='GetBundleChanges', + version=1, + params=_params) + _params['yaml'] = yaml + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(GetConstraintsResults) + async def GetModelConstraints(self): + ''' + + Returns -> Value + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='GetModelConstraints', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(AddMachinesResults) + async def InjectMachines(self, params): + ''' + params : typing.Sequence[~AddMachineParams] + Returns -> typing.Sequence[~AddMachinesResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='InjectMachines', + version=1, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelConfigResults) + async def ModelGet(self): + ''' + + Returns -> typing.Mapping[str, ~ConfigValue] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='ModelGet', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelInfo) + async def ModelInfo(self): + ''' + + Returns -> typing.Union[_ForwardRef('Number'), str, typing.Sequence[~ModelMachineInfo], _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence[~ModelUserInfo]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='ModelInfo', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def ModelSet(self, config): + ''' + config : typing.Mapping[str, typing.Any] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='ModelSet', + version=1, + params=_params) + _params['config'] = config + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def ModelUnset(self, keys): + ''' + keys : typing.Sequence[str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='ModelUnset', + version=1, + params=_params) + _params['keys'] = keys + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelUserInfoResults) + async def ModelUserInfo(self): + ''' + + Returns -> typing.Sequence[~ModelUserInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='ModelUserInfo', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(PrivateAddressResults) + async def PrivateAddress(self, target): + ''' + target : str + Returns -> str + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='PrivateAddress', + version=1, + params=_params) + _params['target'] = target + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ProvisioningScriptResult) + async def ProvisioningScript(self, data_dir, disable_package_commands, machine_id, nonce): + ''' + data_dir : str + disable_package_commands : bool + machine_id : str + nonce : str + Returns -> str + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='ProvisioningScript', + version=1, + params=_params) + _params['data-dir'] = data_dir + _params['disable-package-commands'] = disable_package_commands + _params['machine-id'] = machine_id + _params['nonce'] = nonce + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(PublicAddressResults) + async def PublicAddress(self, target): + ''' + target : str + Returns -> str + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='PublicAddress', + version=1, + params=_params) + _params['target'] = target + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ResolveCharmResults) + async def ResolveCharms(self, references): + ''' + references : typing.Sequence[str] + Returns -> typing.Sequence[~ResolveCharmResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='ResolveCharms', + version=1, + params=_params) + _params['references'] = references + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Resolved(self, retry, unit_name): + ''' + retry : bool + unit_name : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='Resolved', + version=1, + params=_params) + _params['retry'] = retry + _params['unit-name'] = unit_name + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def RetryProvisioning(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='RetryProvisioning', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def SLALevel(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='SLALevel', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetModelAgentVersion(self, version): + ''' + version : Number + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='SetModelAgentVersion', + version=1, + params=_params) + _params['version'] = version + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetModelConstraints(self, application, constraints): + ''' + application : str + constraints : Value + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='SetModelConstraints', + version=1, + params=_params) + _params['application'] = application + _params['constraints'] = constraints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetSLALevel(self, creds, level): + ''' + creds : typing.Sequence[int] + level : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='SetSLALevel', + version=1, + params=_params) + _params['creds'] = creds + _params['level'] = level + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StatusHistoryResults) + async def StatusHistory(self, requests): + ''' + requests : typing.Sequence[~StatusHistoryRequest] + Returns -> typing.Sequence[~StatusHistoryResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='StatusHistory', + version=1, + params=_params) + _params['requests'] = requests + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(AllWatcherId) + async def WatchAll(self): + ''' + + Returns -> str + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='WatchAll', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class CloudFacade(Type): + name = 'Cloud' + version = 1 + schema = {'definitions': {'Cloud': {'additionalProperties': False, + 'properties': {'auth-types': {'items': {'type': 'string'}, + 'type': 'array'}, + 'endpoint': {'type': 'string'}, + 'identity-endpoint': {'type': 'string'}, + 'regions': {'items': {'$ref': '#/definitions/CloudRegion'}, + 'type': 'array'}, + 'storage-endpoint': {'type': 'string'}, + 'type': {'type': 'string'}}, + 'required': ['type'], + 'type': 'object'}, + 'CloudCredential': {'additionalProperties': False, + 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'auth-type': {'type': 'string'}, + 'redacted': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['auth-type'], + 'type': 'object'}, + 'CloudCredentialResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/CloudCredential'}}, + 'type': 'object'}, + 'CloudCredentialResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/CloudCredentialResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'CloudInstanceTypesConstraint': {'additionalProperties': False, + 'properties': {'cloud-tag': {'type': 'string'}, + 'constraints': {'$ref': '#/definitions/Value'}, + 'region': {'type': 'string'}}, + 'required': ['cloud-tag', + 'region'], + 'type': 'object'}, + 'CloudInstanceTypesConstraints': {'additionalProperties': False, + 'properties': {'constraints': {'items': {'$ref': '#/definitions/CloudInstanceTypesConstraint'}, + 'type': 'array'}}, + 'required': ['constraints'], + 'type': 'object'}, + 'CloudRegion': {'additionalProperties': False, + 'properties': {'endpoint': {'type': 'string'}, + 'identity-endpoint': {'type': 'string'}, + 'name': {'type': 'string'}, + 'storage-endpoint': {'type': 'string'}}, + 'required': ['name'], + 'type': 'object'}, + 'CloudResult': {'additionalProperties': False, + 'properties': {'cloud': {'$ref': '#/definitions/Cloud'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'CloudResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/CloudResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'CloudsResult': {'additionalProperties': False, + 'properties': {'clouds': {'patternProperties': {'.*': {'$ref': '#/definitions/Cloud'}}, + 'type': 'object'}}, + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'InstanceType': {'additionalProperties': False, + 'properties': {'arches': {'items': {'type': 'string'}, + 'type': 'array'}, + 'cost': {'type': 'integer'}, + 'cpu-cores': {'type': 'integer'}, + 'deprecated': {'type': 'boolean'}, + 'memory': {'type': 'integer'}, + 'name': {'type': 'string'}, + 'root-disk': {'type': 'integer'}, + 'virt-type': {'type': 'string'}}, + 'required': ['arches', 'cpu-cores', 'memory'], + 'type': 'object'}, + 'InstanceTypesResult': {'additionalProperties': False, + 'properties': {'cost-currency': {'type': 'string'}, + 'cost-divisor': {'type': 'integer'}, + 'cost-unit': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}, + 'instance-types': {'items': {'$ref': '#/definitions/InstanceType'}, + 'type': 'array'}}, + 'type': 'object'}, + 'InstanceTypesResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/InstanceTypesResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'StringsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StringsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'UpdateCloudCredential': {'additionalProperties': False, + 'properties': {'credential': {'$ref': '#/definitions/CloudCredential'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'credential'], + 'type': 'object'}, + 'UpdateCloudCredentials': {'additionalProperties': False, + 'properties': {'credentials': {'items': {'$ref': '#/definitions/UpdateCloudCredential'}, + 'type': 'array'}}, + 'type': 'object'}, + 'UserCloud': {'additionalProperties': False, + 'properties': {'cloud-tag': {'type': 'string'}, + 'user-tag': {'type': 'string'}}, + 'required': ['user-tag', 'cloud-tag'], + 'type': 'object'}, + 'UserClouds': {'additionalProperties': False, + 'properties': {'user-clouds': {'items': {'$ref': '#/definitions/UserCloud'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Value': {'additionalProperties': False, + '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': {'items': {'type': 'string'}, + 'type': 'array'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}, + 'virt-type': {'type': 'string'}}, + 'type': 'object'}}, + 'properties': {'Cloud': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/CloudResults'}}, + 'type': 'object'}, + 'Clouds': {'properties': {'Result': {'$ref': '#/definitions/CloudsResult'}}, + 'type': 'object'}, + 'Credential': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/CloudCredentialResults'}}, + 'type': 'object'}, + 'DefaultCloud': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'InstanceTypes': {'properties': {'Params': {'$ref': '#/definitions/CloudInstanceTypesConstraints'}, + 'Result': {'$ref': '#/definitions/InstanceTypesResults'}}, + 'type': 'object'}, + 'RevokeCredentials': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'UpdateCredentials': {'properties': {'Params': {'$ref': '#/definitions/UpdateCloudCredentials'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'UserCredentials': {'properties': {'Params': {'$ref': '#/definitions/UserClouds'}, + 'Result': {'$ref': '#/definitions/StringsResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(CloudResults) + async def Cloud(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~CloudResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='Cloud', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(CloudsResult) + async def Clouds(self): + ''' + + Returns -> typing.Mapping[str, ~Cloud] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='Clouds', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(CloudCredentialResults) + async def Credential(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~CloudCredentialResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='Credential', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def DefaultCloud(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='DefaultCloud', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(InstanceTypesResults) + async def InstanceTypes(self, constraints): + ''' + constraints : typing.Sequence[~CloudInstanceTypesConstraint] + Returns -> typing.Sequence[~InstanceTypesResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='InstanceTypes', + version=1, + params=_params) + _params['constraints'] = constraints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def RevokeCredentials(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='RevokeCredentials', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def UpdateCredentials(self, credentials): + ''' + credentials : typing.Sequence[~UpdateCloudCredential] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='UpdateCredentials', + version=1, + params=_params) + _params['credentials'] = credentials + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsResults) + async def UserCredentials(self, user_clouds): + ''' + user_clouds : typing.Sequence[~UserCloud] + Returns -> typing.Sequence[~StringsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='UserCredentials', + version=1, + params=_params) + _params['user-clouds'] = user_clouds + reply = await self.rpc(msg) + return reply + + + +class CredentialManagerFacade(Type): + name = 'CredentialManager' + version = 1 + schema = {'definitions': {'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'InvalidateCredentialArg': {'additionalProperties': False, + 'properties': {'reason': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, + 'properties': {'InvalidateModelCredential': {'properties': {'Params': {'$ref': '#/definitions/InvalidateCredentialArg'}, + 'Result': {'$ref': '#/definitions/ErrorResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResult) + async def InvalidateModelCredential(self, reason): + ''' + reason : str + Returns -> Error + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CredentialManager', + request='InvalidateModelCredential', + version=1, + params=_params) + _params['reason'] = reason + reply = await self.rpc(msg) + return reply + + + +class CrossControllerFacade(Type): + name = 'CrossController' + version = 1 + schema = {'definitions': {'ControllerAPIInfoResult': {'additionalProperties': False, + 'properties': {'addresses': {'items': {'type': 'string'}, + 'type': 'array'}, + 'cacert': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['addresses', + 'cacert'], + 'type': 'object'}, + 'ControllerAPIInfoResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ControllerAPIInfoResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'ControllerInfo': {'properties': {'Result': {'$ref': '#/definitions/ControllerAPIInfoResults'}}, + 'type': 'object'}, + 'WatchControllerInfo': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ControllerAPIInfoResults) + async def ControllerInfo(self): + ''' + + Returns -> typing.Sequence[~ControllerAPIInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CrossController', + request='ControllerInfo', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchControllerInfo(self): + ''' + + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CrossController', + request='WatchControllerInfo', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class CrossModelRelationsFacade(Type): + name = 'CrossModelRelations' + version = 1 + schema = {'definitions': {'EntityStatus': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'since': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['status', 'info', 'since'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'IngressNetworksChangeEvent': {'additionalProperties': False, + 'properties': {'application-token': {'type': 'string'}, + 'ingress-required': {'type': 'boolean'}, + 'macaroons': {'items': {'$ref': '#/definitions/Macaroon'}, + 'type': 'array'}, + 'networks': {'items': {'type': 'string'}, + 'type': 'array'}, + 'relation-token': {'type': 'string'}}, + 'required': ['relation-token', + 'application-token', + 'ingress-required'], + 'type': 'object'}, + 'IngressNetworksChanges': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/IngressNetworksChangeEvent'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'OfferArg': {'additionalProperties': False, + 'properties': {'macaroons': {'items': {'$ref': '#/definitions/Macaroon'}, + 'type': 'array'}, + 'offer-uuid': {'type': 'string'}}, + 'required': ['offer-uuid'], + 'type': 'object'}, + 'OfferArgs': {'additionalProperties': False, + 'properties': {'args': {'items': {'$ref': '#/definitions/OfferArg'}, + 'type': 'array'}}, + 'required': ['args'], + 'type': 'object'}, + 'OfferStatusChange': {'additionalProperties': False, + 'properties': {'offer-name': {'type': 'string'}, + 'status': {'$ref': '#/definitions/EntityStatus'}}, + 'required': ['offer-name', 'status'], + 'type': 'object'}, + 'OfferStatusWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/OfferStatusChange'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id', + 'changes'], + 'type': 'object'}, + 'OfferStatusWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/OfferStatusWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'RegisterRemoteRelationArg': {'additionalProperties': False, + 'properties': {'application-token': {'type': 'string'}, + 'local-endpoint-name': {'type': 'string'}, + 'macaroons': {'items': {'$ref': '#/definitions/Macaroon'}, + 'type': 'array'}, + 'offer-uuid': {'type': 'string'}, + 'relation-token': {'type': 'string'}, + 'remote-endpoint': {'$ref': '#/definitions/RemoteEndpoint'}, + 'remote-space': {'$ref': '#/definitions/RemoteSpace'}, + 'source-model-tag': {'type': 'string'}}, + 'required': ['application-token', + 'source-model-tag', + 'relation-token', + 'remote-endpoint', + 'remote-space', + 'offer-uuid', + 'local-endpoint-name'], + 'type': 'object'}, + 'RegisterRemoteRelationArgs': {'additionalProperties': False, + 'properties': {'relations': {'items': {'$ref': '#/definitions/RegisterRemoteRelationArg'}, + 'type': 'array'}}, + 'required': ['relations'], + 'type': 'object'}, + 'RegisterRemoteRelationResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/RemoteRelationDetails'}}, + 'type': 'object'}, + 'RegisterRemoteRelationResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/RegisterRemoteRelationResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'RelationLifeSuspendedStatusChange': {'additionalProperties': False, + 'properties': {'key': {'type': 'string'}, + 'life': {'type': 'string'}, + 'suspended': {'type': 'boolean'}, + 'suspended-reason': {'type': 'string'}}, + 'required': ['key', + 'life', + 'suspended', + 'suspended-reason'], + 'type': 'object'}, + 'RelationLifeSuspendedStatusWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/RelationLifeSuspendedStatusChange'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id', + 'changes'], + 'type': 'object'}, + 'RelationStatusWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/RelationLifeSuspendedStatusWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'RelationUnitsChange': {'additionalProperties': False, + 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}}, + 'type': 'object'}, + 'departed': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['changed'], + 'type': 'object'}, + 'RelationUnitsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'$ref': '#/definitions/RelationUnitsChange'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id', + 'changes'], + 'type': 'object'}, + 'RelationUnitsWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/RelationUnitsWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'RemoteEndpoint': {'additionalProperties': False, + 'properties': {'interface': {'type': 'string'}, + 'limit': {'type': 'integer'}, + 'name': {'type': 'string'}, + 'role': {'type': 'string'}}, + 'required': ['name', + 'role', + 'interface', + 'limit'], + 'type': 'object'}, + 'RemoteEntityArg': {'additionalProperties': False, + 'properties': {'macaroons': {'items': {'$ref': '#/definitions/Macaroon'}, + 'type': 'array'}, + 'relation-token': {'type': 'string'}}, + 'required': ['relation-token'], + 'type': 'object'}, + 'RemoteEntityArgs': {'additionalProperties': False, + 'properties': {'args': {'items': {'$ref': '#/definitions/RemoteEntityArg'}, + 'type': 'array'}}, + 'required': ['args'], + 'type': 'object'}, + 'RemoteRelationChangeEvent': {'additionalProperties': False, + 'properties': {'application-token': {'type': 'string'}, + 'changed-units': {'items': {'$ref': '#/definitions/RemoteRelationUnitChange'}, + 'type': 'array'}, + 'departed-units': {'items': {'type': 'integer'}, + 'type': 'array'}, + 'force-cleanup': {'type': 'boolean'}, + 'life': {'type': 'string'}, + 'macaroons': {'items': {'$ref': '#/definitions/Macaroon'}, + 'type': 'array'}, + 'relation-token': {'type': 'string'}, + 'suspended': {'type': 'boolean'}, + 'suspended-reason': {'type': 'string'}}, + 'required': ['relation-token', + 'application-token', + 'life'], + 'type': 'object'}, + 'RemoteRelationDetails': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'relation-token': {'type': 'string'}}, + 'required': ['relation-token'], + 'type': 'object'}, + 'RemoteRelationUnit': {'additionalProperties': False, + 'properties': {'macaroons': {'items': {'$ref': '#/definitions/Macaroon'}, + 'type': 'array'}, + 'relation-token': {'type': 'string'}, + 'unit': {'type': 'string'}}, + 'required': ['relation-token', 'unit'], + 'type': 'object'}, + 'RemoteRelationUnitChange': {'additionalProperties': False, + 'properties': {'settings': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'unit-id': {'type': 'integer'}}, + 'required': ['unit-id'], + 'type': 'object'}, + 'RemoteRelationUnits': {'additionalProperties': False, + 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RemoteRelationUnit'}, + 'type': 'array'}}, + 'required': ['relation-units'], + 'type': 'object'}, + 'RemoteRelationsChanges': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/RemoteRelationChangeEvent'}, + 'type': 'array'}}, + 'type': 'object'}, + 'RemoteSpace': {'additionalProperties': False, + 'properties': {'cloud-type': {'type': 'string'}, + 'name': {'type': 'string'}, + 'provider-attributes': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'provider-id': {'type': 'string'}, + 'subnets': {'items': {'$ref': '#/definitions/Subnet'}, + 'type': 'array'}}, + 'required': ['cloud-type', + 'name', + 'provider-id', + 'provider-attributes', + 'subnets'], + 'type': 'object'}, + 'SettingsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'required': ['settings'], + 'type': 'object'}, + 'SettingsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/SettingsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}, + 'StringsWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Subnet': {'additionalProperties': False, + 'properties': {'cidr': {'type': 'string'}, + 'life': {'type': 'string'}, + 'provider-id': {'type': 'string'}, + 'provider-network-id': {'type': 'string'}, + 'provider-space-id': {'type': 'string'}, + 'space-tag': {'type': 'string'}, + 'status': {'type': 'string'}, + 'vlan-tag': {'type': 'integer'}, + 'zones': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['cidr', + 'vlan-tag', + 'life', + 'space-tag', + 'zones'], + 'type': 'object'}, + 'UnitSettings': {'additionalProperties': False, + 'properties': {'version': {'type': 'integer'}}, + 'required': ['version'], + 'type': 'object'}}, + 'properties': {'PublishIngressNetworkChanges': {'properties': {'Params': {'$ref': '#/definitions/IngressNetworksChanges'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'PublishRelationChanges': {'properties': {'Params': {'$ref': '#/definitions/RemoteRelationsChanges'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'RegisterRemoteRelations': {'properties': {'Params': {'$ref': '#/definitions/RegisterRemoteRelationArgs'}, + 'Result': {'$ref': '#/definitions/RegisterRemoteRelationResults'}}, + 'type': 'object'}, + 'RelationUnitSettings': {'properties': {'Params': {'$ref': '#/definitions/RemoteRelationUnits'}, + 'Result': {'$ref': '#/definitions/SettingsResults'}}, + 'type': 'object'}, + 'WatchEgressAddressesForRelations': {'properties': {'Params': {'$ref': '#/definitions/RemoteEntityArgs'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WatchOfferStatus': {'properties': {'Params': {'$ref': '#/definitions/OfferArgs'}, + 'Result': {'$ref': '#/definitions/OfferStatusWatchResults'}}, + 'type': 'object'}, + 'WatchRelationUnits': {'properties': {'Params': {'$ref': '#/definitions/RemoteEntityArgs'}, + 'Result': {'$ref': '#/definitions/RelationUnitsWatchResults'}}, + 'type': 'object'}, + 'WatchRelationsSuspendedStatus': {'properties': {'Params': {'$ref': '#/definitions/RemoteEntityArgs'}, + 'Result': {'$ref': '#/definitions/RelationStatusWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResults) + async def PublishIngressNetworkChanges(self, changes): + ''' + changes : typing.Sequence[~IngressNetworksChangeEvent] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CrossModelRelations', + request='PublishIngressNetworkChanges', + version=1, + params=_params) + _params['changes'] = changes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def PublishRelationChanges(self, changes): + ''' + changes : typing.Sequence[~RemoteRelationChangeEvent] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CrossModelRelations', + request='PublishRelationChanges', + version=1, + params=_params) + _params['changes'] = changes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(RegisterRemoteRelationResults) + async def RegisterRemoteRelations(self, relations): + ''' + relations : typing.Sequence[~RegisterRemoteRelationArg] + Returns -> typing.Sequence[~RegisterRemoteRelationResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CrossModelRelations', + request='RegisterRemoteRelations', + version=1, + params=_params) + _params['relations'] = relations + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(SettingsResults) + async def RelationUnitSettings(self, relation_units): + ''' + relation_units : typing.Sequence[~RemoteRelationUnit] + Returns -> typing.Sequence[~SettingsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CrossModelRelations', + request='RelationUnitSettings', + version=1, + params=_params) + _params['relation-units'] = relation_units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchEgressAddressesForRelations(self, args): + ''' + args : typing.Sequence[~RemoteEntityArg] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CrossModelRelations', + request='WatchEgressAddressesForRelations', + version=1, + params=_params) + _params['args'] = args + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(OfferStatusWatchResults) + async def WatchOfferStatus(self, args): + ''' + args : typing.Sequence[~OfferArg] + Returns -> typing.Sequence[~OfferStatusWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CrossModelRelations', + request='WatchOfferStatus', + version=1, + params=_params) + _params['args'] = args + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(RelationUnitsWatchResults) + async def WatchRelationUnits(self, args): + ''' + args : typing.Sequence[~RemoteEntityArg] + Returns -> typing.Sequence[~RelationUnitsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CrossModelRelations', + request='WatchRelationUnits', + version=1, + params=_params) + _params['args'] = args + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(RelationStatusWatchResults) + async def WatchRelationsSuspendedStatus(self, args): + ''' + args : typing.Sequence[~RemoteEntityArg] + Returns -> typing.Sequence[~RelationLifeSuspendedStatusWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CrossModelRelations', + request='WatchRelationsSuspendedStatus', + version=1, + params=_params) + _params['args'] = args + reply = await self.rpc(msg) + return reply + + + +class DeployerFacade(Type): + name = 'Deployer' + version = 1 + schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, + 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, + 'type': 'array'}, + 'type': 'array'}}, + 'required': ['servers'], + 'type': 'object'}, + 'Address': {'additionalProperties': False, + 'properties': {'scope': {'type': 'string'}, + 'space-name': {'type': 'string'}, + 'type': {'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['value', 'type', 'scope'], + 'type': 'object'}, + 'DeployerConnectionValues': {'additionalProperties': False, + 'properties': {'api-addresses': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['api-addresses'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityPassword': {'additionalProperties': False, + 'properties': {'password': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'password'], + 'type': 'object'}, + 'EntityPasswords': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'}, + 'type': 'array'}}, + 'required': ['changes'], + 'type': 'object'}, + 'EntityStatusArgs': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'status': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', + 'status', + 'info', + 'data'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'HostPort': {'additionalProperties': False, + 'properties': {'Address': {'$ref': '#/definitions/Address'}, + 'port': {'type': 'integer'}}, + 'required': ['Address', 'port'], + 'type': 'object'}, + 'LifeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'life': {'type': 'string'}}, + 'required': ['life'], + 'type': 'object'}, + 'LifeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'SetStatus': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'StringsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}, + 'StringsWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, + 'type': 'object'}, + 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, + 'type': 'object'}, + 'ConnectionInfo': {'properties': {'Result': {'$ref': '#/definitions/DeployerConnectionValues'}}, + 'type': 'object'}, + 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/LifeResults'}}, + 'type': 'object'}, + 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'Remove': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetPasswords': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}, + 'WatchUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(StringsResult) + async def APIAddresses(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Deployer', + request='APIAddresses', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(APIHostPortsResult) + async def APIHostPorts(self): + ''' + + Returns -> typing.Sequence[~HostPort] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Deployer', + request='APIHostPorts', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(DeployerConnectionValues) + async def ConnectionInfo(self): + ''' + + Returns -> typing.Sequence[str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Deployer', + request='ConnectionInfo', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(LifeResults) + async def Life(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~LifeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Deployer', + request='Life', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def ModelUUID(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Deployer', + request='ModelUUID', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Remove(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Deployer', + request='Remove', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetPasswords(self, changes): + ''' + changes : typing.Sequence[~EntityPassword] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Deployer', + request='SetPasswords', + version=1, + params=_params) + _params['changes'] = changes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Deployer', + request='SetStatus', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def UpdateStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Deployer', + request='UpdateStatus', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchAPIHostPorts(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Deployer', + request='WatchAPIHostPorts', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchUnits(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Deployer', + request='WatchUnits', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class ExternalControllerUpdaterFacade(Type): + name = 'ExternalControllerUpdater' + version = 1 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ExternalControllerInfo': {'additionalProperties': False, + 'properties': {'addrs': {'items': {'type': 'string'}, + 'type': 'array'}, + 'ca-cert': {'type': 'string'}, + 'controller-alias': {'type': 'string'}, + 'controller-tag': {'type': 'string'}}, + 'required': ['controller-tag', + 'controller-alias', + 'addrs', + 'ca-cert'], + 'type': 'object'}, + 'ExternalControllerInfoResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/ExternalControllerInfo'}}, + 'required': ['result', + 'error'], + 'type': 'object'}, + 'ExternalControllerInfoResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ExternalControllerInfoResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'SetExternalControllerInfoParams': {'additionalProperties': False, + 'properties': {'info': {'$ref': '#/definitions/ExternalControllerInfo'}}, + 'required': ['info'], + 'type': 'object'}, + 'SetExternalControllersInfoParams': {'additionalProperties': False, + 'properties': {'controllers': {'items': {'$ref': '#/definitions/SetExternalControllerInfoParams'}, + 'type': 'array'}}, + 'required': ['controllers'], + 'type': 'object'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}, + 'StringsWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'ExternalControllerInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ExternalControllerInfoResults'}}, + 'type': 'object'}, + 'SetExternalControllerInfo': {'properties': {'Params': {'$ref': '#/definitions/SetExternalControllersInfoParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'WatchExternalControllers': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ExternalControllerInfoResults) + async def ExternalControllerInfo(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ExternalControllerInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ExternalControllerUpdater', + request='ExternalControllerInfo', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetExternalControllerInfo(self, controllers): + ''' + controllers : typing.Sequence[~SetExternalControllerInfoParams] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ExternalControllerUpdater', + request='SetExternalControllerInfo', + version=1, + params=_params) + _params['controllers'] = controllers + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchExternalControllers(self): + ''' + + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ExternalControllerUpdater', + request='WatchExternalControllers', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class FanConfigurerFacade(Type): + name = 'FanConfigurer' + version = 1 + schema = {'definitions': {'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'FanConfigEntry': {'additionalProperties': False, + 'properties': {'overlay': {'type': 'string'}, + 'underlay': {'type': 'string'}}, + 'required': ['underlay', 'overlay'], + 'type': 'object'}, + 'FanConfigResult': {'additionalProperties': False, + 'properties': {'fans': {'items': {'$ref': '#/definitions/FanConfigEntry'}, + 'type': 'array'}}, + 'required': ['fans'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}}, + 'properties': {'FanConfig': {'properties': {'Result': {'$ref': '#/definitions/FanConfigResult'}}, + 'type': 'object'}, + 'WatchForFanConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(FanConfigResult) + async def FanConfig(self): + ''' + + Returns -> typing.Sequence[~FanConfigEntry] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='FanConfigurer', + request='FanConfig', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchForFanConfigChanges(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='FanConfigurer', + request='WatchForFanConfigChanges', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class FirewallRulesFacade(Type): + name = 'FirewallRules' + version = 1 + schema = {'definitions': {'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'FirewallRule': {'additionalProperties': False, + 'properties': {'known-service': {'type': 'string'}, + 'whitelist-cidrs': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['known-service'], + 'type': 'object'}, + 'FirewallRuleArgs': {'additionalProperties': False, + 'properties': {'args': {'items': {'$ref': '#/definitions/FirewallRule'}, + 'type': 'array'}}, + 'required': ['args'], + 'type': 'object'}, + 'ListFirewallRulesResults': {'additionalProperties': False, + 'properties': {'Rules': {'items': {'$ref': '#/definitions/FirewallRule'}, + 'type': 'array'}}, + 'required': ['Rules'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, + 'properties': {'ListFirewallRules': {'properties': {'Result': {'$ref': '#/definitions/ListFirewallRulesResults'}}, + 'type': 'object'}, + 'SetFirewallRules': {'properties': {'Params': {'$ref': '#/definitions/FirewallRuleArgs'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ListFirewallRulesResults) + async def ListFirewallRules(self): + ''' + + Returns -> typing.Sequence[~FirewallRule] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='FirewallRules', + request='ListFirewallRules', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetFirewallRules(self, args): + ''' + args : typing.Sequence[~FirewallRule] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='FirewallRules', + request='SetFirewallRules', + version=1, + params=_params) + _params['args'] = args + reply = await self.rpc(msg) + return reply + + + +class HostKeyReporterFacade(Type): + name = 'HostKeyReporter' + version = 1 + schema = {'definitions': {'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'SSHHostKeySet': {'additionalProperties': False, + 'properties': {'entity-keys': {'items': {'$ref': '#/definitions/SSHHostKeys'}, + 'type': 'array'}}, + 'required': ['entity-keys'], + 'type': 'object'}, + 'SSHHostKeys': {'additionalProperties': False, + 'properties': {'public-keys': {'items': {'type': 'string'}, + 'type': 'array'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'public-keys'], + 'type': 'object'}}, + 'properties': {'ReportKeys': {'properties': {'Params': {'$ref': '#/definitions/SSHHostKeySet'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResults) + async def ReportKeys(self, entity_keys): + ''' + entity_keys : typing.Sequence[~SSHHostKeys] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='HostKeyReporter', + request='ReportKeys', + version=1, + params=_params) + _params['entity-keys'] = entity_keys + reply = await self.rpc(msg) + return reply + + + +class KeyManagerFacade(Type): + name = 'KeyManager' + version = 1 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ListSSHKeys': {'additionalProperties': False, + 'properties': {'entities': {'$ref': '#/definitions/Entities'}, + 'mode': {'type': 'boolean'}}, + 'required': ['entities', 'mode'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'ModifyUserSSHKeys': {'additionalProperties': False, + 'properties': {'ssh-keys': {'items': {'type': 'string'}, + 'type': 'array'}, + 'user': {'type': 'string'}}, + 'required': ['user', 'ssh-keys'], + 'type': 'object'}, + 'StringsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StringsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'AddKeys': {'properties': {'Params': {'$ref': '#/definitions/ModifyUserSSHKeys'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'DeleteKeys': {'properties': {'Params': {'$ref': '#/definitions/ModifyUserSSHKeys'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'ImportKeys': {'properties': {'Params': {'$ref': '#/definitions/ModifyUserSSHKeys'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'ListKeys': {'properties': {'Params': {'$ref': '#/definitions/ListSSHKeys'}, + 'Result': {'$ref': '#/definitions/StringsResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResults) + async def AddKeys(self, ssh_keys, user): + ''' + ssh_keys : typing.Sequence[str] + user : str + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='KeyManager', + request='AddKeys', + version=1, + params=_params) + _params['ssh-keys'] = ssh_keys + _params['user'] = user + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def DeleteKeys(self, ssh_keys, user): + ''' + ssh_keys : typing.Sequence[str] + user : str + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='KeyManager', + request='DeleteKeys', + version=1, + params=_params) + _params['ssh-keys'] = ssh_keys + _params['user'] = user + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def ImportKeys(self, ssh_keys, user): + ''' + ssh_keys : typing.Sequence[str] + user : str + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='KeyManager', + request='ImportKeys', + version=1, + params=_params) + _params['ssh-keys'] = ssh_keys + _params['user'] = user + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsResults) + async def ListKeys(self, entities, mode): + ''' + entities : Entities + mode : bool + Returns -> typing.Sequence[~StringsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='KeyManager', + request='ListKeys', + version=1, + params=_params) + _params['entities'] = entities + _params['mode'] = mode + reply = await self.rpc(msg) + return reply + + + +class KeyUpdaterFacade(Type): + name = 'KeyUpdater' + version = 1 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StringsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'AuthorisedKeys': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsResults'}}, + 'type': 'object'}, + 'WatchAuthorisedKeys': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(StringsResults) + async def AuthorisedKeys(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='KeyUpdater', + request='AuthorisedKeys', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchAuthorisedKeys(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='KeyUpdater', + request='WatchAuthorisedKeys', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class LifeFlagFacade(Type): + name = 'LifeFlag' + version = 1 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'LifeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'life': {'type': 'string'}}, + 'required': ['life'], + 'type': 'object'}, + 'LifeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/LifeResults'}}, + 'type': 'object'}, + 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(LifeResults) + async def Life(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~LifeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='LifeFlag', + request='Life', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def Watch(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='LifeFlag', + request='Watch', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class LogForwardingFacade(Type): + name = 'LogForwarding' + version = 1 + schema = {'definitions': {'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'LogForwardingGetLastSentParams': {'additionalProperties': False, + 'properties': {'ids': {'items': {'$ref': '#/definitions/LogForwardingID'}, + 'type': 'array'}}, + 'required': ['ids'], + 'type': 'object'}, + 'LogForwardingGetLastSentResult': {'additionalProperties': False, + 'properties': {'err': {'$ref': '#/definitions/Error'}, + 'record-id': {'type': 'integer'}, + 'record-timestamp': {'type': 'integer'}}, + 'required': ['record-id', + 'record-timestamp', + 'err'], + 'type': 'object'}, + 'LogForwardingGetLastSentResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/LogForwardingGetLastSentResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'LogForwardingID': {'additionalProperties': False, + 'properties': {'model': {'type': 'string'}, + 'sink': {'type': 'string'}}, + 'required': ['model', 'sink'], + 'type': 'object'}, + 'LogForwardingSetLastSentParam': {'additionalProperties': False, + 'properties': {'LogForwardingID': {'$ref': '#/definitions/LogForwardingID'}, + 'record-id': {'type': 'integer'}, + 'record-timestamp': {'type': 'integer'}}, + 'required': ['LogForwardingID', + 'record-id', + 'record-timestamp'], + 'type': 'object'}, + 'LogForwardingSetLastSentParams': {'additionalProperties': False, + 'properties': {'params': {'items': {'$ref': '#/definitions/LogForwardingSetLastSentParam'}, + 'type': 'array'}}, + 'required': ['params'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, + 'properties': {'GetLastSent': {'properties': {'Params': {'$ref': '#/definitions/LogForwardingGetLastSentParams'}, + 'Result': {'$ref': '#/definitions/LogForwardingGetLastSentResults'}}, + 'type': 'object'}, + 'SetLastSent': {'properties': {'Params': {'$ref': '#/definitions/LogForwardingSetLastSentParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(LogForwardingGetLastSentResults) + async def GetLastSent(self, ids): + ''' + ids : typing.Sequence[~LogForwardingID] + Returns -> typing.Sequence[~LogForwardingGetLastSentResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='LogForwarding', + request='GetLastSent', + version=1, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetLastSent(self, params): + ''' + params : typing.Sequence[~LogForwardingSetLastSentParam] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='LogForwarding', + request='SetLastSent', + version=1, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + +class LoggerFacade(Type): + name = 'Logger' + version = 1 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'StringResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'LoggingConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'WatchLoggingConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(StringResults) + async def LoggingConfig(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Logger', + request='LoggingConfig', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchLoggingConfig(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Logger', + request='WatchLoggingConfig', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class MachineActionsFacade(Type): + name = 'MachineActions' + version = 1 + schema = {'definitions': {'Action': {'additionalProperties': False, + 'properties': {'name': {'type': 'string'}, + 'parameters': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'receiver': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'receiver', 'name'], + 'type': 'object'}, + 'ActionExecutionResult': {'additionalProperties': False, + 'properties': {'action-tag': {'type': 'string'}, + 'message': {'type': 'string'}, + 'results': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'status': {'type': 'string'}}, + 'required': ['action-tag', 'status'], + 'type': 'object'}, + 'ActionExecutionResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ActionExecutionResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ActionResult': {'additionalProperties': False, + 'properties': {'action': {'$ref': '#/definitions/Action'}, + 'completed': {'format': 'date-time', + 'type': 'string'}, + 'enqueued': {'format': 'date-time', + 'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}, + 'message': {'type': 'string'}, + 'output': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'started': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'type': 'object'}, + 'ActionResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ActionsByReceiver': {'additionalProperties': False, + 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionResult'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'receiver': {'type': 'string'}}, + 'type': 'object'}, + 'ActionsByReceivers': {'additionalProperties': False, + 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionsByReceiver'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}, + 'StringsWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionResults'}}, + 'type': 'object'}, + 'BeginActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'FinishActions': {'properties': {'Params': {'$ref': '#/definitions/ActionExecutionResults'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'RunningActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, + 'type': 'object'}, + 'WatchActionNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ActionResults) + async def Actions(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineActions', + request='Actions', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def BeginActions(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineActions', + request='BeginActions', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def FinishActions(self, results): + ''' + results : typing.Sequence[~ActionExecutionResult] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineActions', + request='FinishActions', + version=1, + params=_params) + _params['results'] = results + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionsByReceivers) + async def RunningActions(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionsByReceiver] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineActions', + request='RunningActions', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchActionNotifications(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineActions', + request='WatchActionNotifications', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class MachineUndertakerFacade(Type): + name = 'MachineUndertaker' + version = 1 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'EntitiesResult': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['entities'], + 'type': 'object'}, + 'EntitiesResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/EntitiesResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ProviderInterfaceInfo': {'additionalProperties': False, + 'properties': {'interface-name': {'type': 'string'}, + 'mac-address': {'type': 'string'}, + 'provider-id': {'type': 'string'}}, + 'required': ['interface-name', + 'mac-address', + 'provider-id'], + 'type': 'object'}, + 'ProviderInterfaceInfoResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'interfaces': {'items': {'$ref': '#/definitions/ProviderInterfaceInfo'}, + 'type': 'array'}, + 'machine-tag': {'type': 'string'}}, + 'required': ['machine-tag', + 'interfaces'], + 'type': 'object'}, + 'ProviderInterfaceInfoResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ProviderInterfaceInfoResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'AllMachineRemovals': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/EntitiesResults'}}, + 'type': 'object'}, + 'CompleteMachineRemovals': {'properties': {'Params': {'$ref': '#/definitions/Entities'}}, + 'type': 'object'}, + 'GetMachineProviderInterfaceInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ProviderInterfaceInfoResults'}}, + 'type': 'object'}, + 'WatchMachineRemovals': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(EntitiesResults) + async def AllMachineRemovals(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~EntitiesResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineUndertaker', + request='AllMachineRemovals', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def CompleteMachineRemovals(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineUndertaker', + request='CompleteMachineRemovals', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ProviderInterfaceInfoResults) + async def GetMachineProviderInterfaceInfo(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ProviderInterfaceInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineUndertaker', + request='GetMachineProviderInterfaceInfo', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchMachineRemovals(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineUndertaker', + request='WatchMachineRemovals', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class MachinerFacade(Type): + name = 'Machiner' + version = 1 + schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, + 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, + 'type': 'array'}, + 'type': 'array'}}, + 'required': ['servers'], + 'type': 'object'}, + 'Address': {'additionalProperties': False, + 'properties': {'scope': {'type': 'string'}, + 'space-name': {'type': 'string'}, + 'type': {'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['value', 'type', 'scope'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityStatusArgs': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'status': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', + 'status', + 'info', + 'data'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'HostPort': {'additionalProperties': False, + 'properties': {'Address': {'$ref': '#/definitions/Address'}, + 'port': {'type': 'integer'}}, + 'required': ['Address', 'port'], + 'type': 'object'}, + 'JobsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'jobs': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['jobs'], + 'type': 'object'}, + 'JobsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/JobsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'LifeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'life': {'type': 'string'}}, + 'required': ['life'], + 'type': 'object'}, + 'LifeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MachineAddresses': {'additionalProperties': False, + 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, + 'type': 'array'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'addresses'], + 'type': 'object'}, + 'NetworkConfig': {'additionalProperties': False, + 'properties': {'address': {'type': 'string'}, + 'cidr': {'type': 'string'}, + 'config-type': {'type': 'string'}, + 'device-index': {'type': 'integer'}, + 'disabled': {'type': 'boolean'}, + 'dns-search-domains': {'items': {'type': 'string'}, + 'type': 'array'}, + 'dns-servers': {'items': {'type': 'string'}, + 'type': 'array'}, + 'gateway-address': {'type': 'string'}, + 'interface-name': {'type': 'string'}, + 'interface-type': {'type': 'string'}, + 'is-default-gateway': {'type': 'boolean'}, + 'mac-address': {'type': 'string'}, + 'mtu': {'type': 'integer'}, + 'no-auto-start': {'type': 'boolean'}, + 'parent-interface-name': {'type': 'string'}, + 'provider-address-id': {'type': 'string'}, + 'provider-id': {'type': 'string'}, + 'provider-space-id': {'type': 'string'}, + 'provider-subnet-id': {'type': 'string'}, + 'provider-vlan-id': {'type': 'string'}, + 'routes': {'items': {'$ref': '#/definitions/NetworkRoute'}, + 'type': 'array'}, + 'vlan-tag': {'type': 'integer'}}, + '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'], + 'type': 'object'}, + 'NetworkRoute': {'additionalProperties': False, + 'properties': {'destination-cidr': {'type': 'string'}, + 'gateway-ip': {'type': 'string'}, + 'metric': {'type': 'integer'}}, + 'required': ['destination-cidr', + 'gateway-ip', + 'metric'], + 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'SetMachineNetworkConfig': {'additionalProperties': False, + 'properties': {'config': {'items': {'$ref': '#/definitions/NetworkConfig'}, + 'type': 'array'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'config'], + 'type': 'object'}, + 'SetMachinesAddresses': {'additionalProperties': False, + 'properties': {'machine-addresses': {'items': {'$ref': '#/definitions/MachineAddresses'}, + 'type': 'array'}}, + 'required': ['machine-addresses'], + 'type': 'object'}, + 'SetStatus': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'StringsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}}, + 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, + 'type': 'object'}, + 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, + 'type': 'object'}, + 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Jobs': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/JobsResults'}}, + 'type': 'object'}, + 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/LifeResults'}}, + 'type': 'object'}, + 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'SetMachineAddresses': {'properties': {'Params': {'$ref': '#/definitions/SetMachinesAddresses'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetObservedNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/SetMachineNetworkConfig'}}, + 'type': 'object'}, + 'SetProviderNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(StringsResult) + async def APIAddresses(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Machiner', + request='APIAddresses', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(APIHostPortsResult) + async def APIHostPorts(self): + ''' + + Returns -> typing.Sequence[~HostPort] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Machiner', + request='APIHostPorts', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def EnsureDead(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Machiner', + request='EnsureDead', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(JobsResults) + async def Jobs(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~JobsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Machiner', + request='Jobs', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(LifeResults) + async def Life(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~LifeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Machiner', + request='Life', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def ModelUUID(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Machiner', + request='ModelUUID', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetMachineAddresses(self, machine_addresses): + ''' + machine_addresses : typing.Sequence[~MachineAddresses] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Machiner', + request='SetMachineAddresses', + version=1, + params=_params) + _params['machine-addresses'] = machine_addresses + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetObservedNetworkConfig(self, config, tag): + ''' + config : typing.Sequence[~NetworkConfig] + tag : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Machiner', + request='SetObservedNetworkConfig', + version=1, + params=_params) + _params['config'] = config + _params['tag'] = tag + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetProviderNetworkConfig(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Machiner', + request='SetProviderNetworkConfig', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Machiner', + request='SetStatus', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def UpdateStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Machiner', + request='UpdateStatus', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def Watch(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Machiner', + request='Watch', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchAPIHostPorts(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Machiner', + request='WatchAPIHostPorts', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class MeterStatusFacade(Type): + name = 'MeterStatus' + version = 1 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MeterStatusResult': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}, + 'info': {'type': 'string'}}, + 'required': ['code', 'info'], + 'type': 'object'}, + 'MeterStatusResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/MeterStatusResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'GetMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/MeterStatusResults'}}, + 'type': 'object'}, + 'WatchMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(MeterStatusResults) + async def GetMeterStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MeterStatusResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MeterStatus', + request='GetMeterStatus', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchMeterStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MeterStatus', + request='WatchMeterStatus', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class MetricsManagerFacade(Type): + name = 'MetricsManager' + version = 1 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, + 'properties': {'AddJujuMachineMetrics': {'type': 'object'}, + 'CleanupOldMetrics': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SendMetrics': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(None) + async def AddJujuMachineMetrics(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MetricsManager', + request='AddJujuMachineMetrics', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def CleanupOldMetrics(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MetricsManager', + request='CleanupOldMetrics', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SendMetrics(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MetricsManager', + request='SendMetrics', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class MigrationFlagFacade(Type): + name = 'MigrationFlag' + version = 1 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'PhaseResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'phase': {'type': 'string'}}, + 'type': 'object'}, + 'PhaseResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/PhaseResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'Phase': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/PhaseResults'}}, + 'type': 'object'}, + 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(PhaseResults) + async def Phase(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~PhaseResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationFlag', + request='Phase', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def Watch(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationFlag', + request='Watch', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class MigrationMasterFacade(Type): + name = 'MigrationMaster' + version = 1 + schema = {'definitions': {'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MasterMigrationStatus': {'additionalProperties': False, + 'properties': {'migration-id': {'type': 'string'}, + 'phase': {'type': 'string'}, + 'phase-changed-time': {'format': 'date-time', + 'type': 'string'}, + 'spec': {'$ref': '#/definitions/MigrationSpec'}}, + 'required': ['spec', + 'migration-id', + 'phase', + 'phase-changed-time'], + 'type': 'object'}, + 'MigrationModelInfo': {'additionalProperties': False, + 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, + 'controller-agent-version': {'$ref': '#/definitions/Number'}, + 'name': {'type': 'string'}, + 'owner-tag': {'type': 'string'}, + 'uuid': {'type': 'string'}}, + 'required': ['uuid', + 'name', + 'owner-tag', + 'agent-version', + 'controller-agent-version'], + 'type': 'object'}, + 'MigrationSpec': {'additionalProperties': False, + 'properties': {'model-tag': {'type': 'string'}, + 'target-info': {'$ref': '#/definitions/MigrationTargetInfo'}}, + 'required': ['model-tag', 'target-info'], + 'type': 'object'}, + 'MigrationTargetInfo': {'additionalProperties': False, + 'properties': {'addrs': {'items': {'type': 'string'}, + 'type': 'array'}, + 'auth-tag': {'type': 'string'}, + 'ca-cert': {'type': 'string'}, + 'controller-tag': {'type': 'string'}, + 'macaroons': {'type': 'string'}, + 'password': {'type': 'string'}}, + 'required': ['controller-tag', + 'addrs', + 'ca-cert', + 'auth-tag'], + 'type': 'object'}, + 'MinionReports': {'additionalProperties': False, + 'properties': {'failed': {'items': {'type': 'string'}, + 'type': 'array'}, + 'migration-id': {'type': 'string'}, + 'phase': {'type': 'string'}, + 'success-count': {'type': 'integer'}, + 'unknown-count': {'type': 'integer'}, + 'unknown-sample': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['migration-id', + 'phase', + 'success-count', + 'unknown-count', + 'unknown-sample', + 'failed'], + 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'Number': {'additionalProperties': False, + 'properties': {'Build': {'type': 'integer'}, + 'Major': {'type': 'integer'}, + 'Minor': {'type': 'integer'}, + 'Patch': {'type': 'integer'}, + 'Tag': {'type': 'string'}}, + 'required': ['Major', + 'Minor', + 'Tag', + 'Patch', + 'Build'], + 'type': 'object'}, + 'SerializedModel': {'additionalProperties': False, + 'properties': {'bytes': {'items': {'type': 'integer'}, + 'type': 'array'}, + 'charms': {'items': {'type': 'string'}, + 'type': 'array'}, + 'resources': {'items': {'$ref': '#/definitions/SerializedModelResource'}, + 'type': 'array'}, + 'tools': {'items': {'$ref': '#/definitions/SerializedModelTools'}, + 'type': 'array'}}, + 'required': ['bytes', + 'charms', + 'tools', + 'resources'], + 'type': 'object'}, + 'SerializedModelResource': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'application-revision': {'$ref': '#/definitions/SerializedModelResourceRevision'}, + 'charmstore-revision': {'$ref': '#/definitions/SerializedModelResourceRevision'}, + 'name': {'type': 'string'}, + 'unit-revisions': {'patternProperties': {'.*': {'$ref': '#/definitions/SerializedModelResourceRevision'}}, + 'type': 'object'}}, + 'required': ['application', + 'name', + 'application-revision', + 'charmstore-revision', + 'unit-revisions'], + 'type': 'object'}, + 'SerializedModelResourceRevision': {'additionalProperties': False, + 'properties': {'description': {'type': 'string'}, + 'fingerprint': {'type': 'string'}, + 'origin': {'type': 'string'}, + 'path': {'type': 'string'}, + 'revision': {'type': 'integer'}, + 'size': {'type': 'integer'}, + 'timestamp': {'format': 'date-time', + 'type': 'string'}, + 'type': {'type': 'string'}, + 'username': {'type': 'string'}}, + 'required': ['revision', + 'type', + 'path', + 'description', + 'origin', + 'fingerprint', + 'size', + 'timestamp'], + 'type': 'object'}, + 'SerializedModelTools': {'additionalProperties': False, + 'properties': {'uri': {'type': 'string'}, + 'version': {'type': 'string'}}, + 'required': ['version', 'uri'], + 'type': 'object'}, + 'SetMigrationPhaseArgs': {'additionalProperties': False, + 'properties': {'phase': {'type': 'string'}}, + 'required': ['phase'], + 'type': 'object'}, + 'SetMigrationStatusMessageArgs': {'additionalProperties': False, + 'properties': {'message': {'type': 'string'}}, + 'required': ['message'], + 'type': 'object'}}, + 'properties': {'Export': {'properties': {'Result': {'$ref': '#/definitions/SerializedModel'}}, + 'type': 'object'}, + 'MigrationStatus': {'properties': {'Result': {'$ref': '#/definitions/MasterMigrationStatus'}}, + 'type': 'object'}, + 'MinionReports': {'properties': {'Result': {'$ref': '#/definitions/MinionReports'}}, + 'type': 'object'}, + 'ModelInfo': {'properties': {'Result': {'$ref': '#/definitions/MigrationModelInfo'}}, + 'type': 'object'}, + 'Prechecks': {'type': 'object'}, + 'Reap': {'type': 'object'}, + 'SetPhase': {'properties': {'Params': {'$ref': '#/definitions/SetMigrationPhaseArgs'}}, + 'type': 'object'}, + 'SetStatusMessage': {'properties': {'Params': {'$ref': '#/definitions/SetMigrationStatusMessageArgs'}}, + 'type': 'object'}, + 'Watch': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}, + 'WatchMinionReports': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(SerializedModel) + async def Export(self): + ''' + + Returns -> typing.Union[typing.Sequence[int], typing.Sequence[str], typing.Sequence[~SerializedModelTools]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationMaster', + request='Export', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MasterMigrationStatus) + async def MigrationStatus(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('MigrationSpec')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationMaster', + request='MigrationStatus', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MinionReports) + async def MinionReports(self): + ''' + + Returns -> typing.Union[typing.Sequence[str], str, int] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationMaster', + request='MinionReports', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MigrationModelInfo) + async def ModelInfo(self): + ''' + + Returns -> typing.Union[_ForwardRef('Number'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationMaster', + request='ModelInfo', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Prechecks(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationMaster', + request='Prechecks', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Reap(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationMaster', + request='Reap', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetPhase(self, phase): + ''' + phase : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationMaster', + request='SetPhase', + version=1, + params=_params) + _params['phase'] = phase + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetStatusMessage(self, message): + ''' + message : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationMaster', + request='SetStatusMessage', + version=1, + params=_params) + _params['message'] = message + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def Watch(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationMaster', + request='Watch', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchMinionReports(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationMaster', + request='WatchMinionReports', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class MigrationMinionFacade(Type): + name = 'MigrationMinion' + version = 1 + schema = {'definitions': {'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MinionReport': {'additionalProperties': False, + 'properties': {'migration-id': {'type': 'string'}, + 'phase': {'type': 'string'}, + 'success': {'type': 'boolean'}}, + 'required': ['migration-id', + 'phase', + 'success'], + 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}}, + 'properties': {'Report': {'properties': {'Params': {'$ref': '#/definitions/MinionReport'}}, + 'type': 'object'}, + 'Watch': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(None) + async def Report(self, migration_id, phase, success): + ''' + migration_id : str + phase : str + success : bool + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationMinion', + request='Report', + version=1, + params=_params) + _params['migration-id'] = migration_id + _params['phase'] = phase + _params['success'] = success + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def Watch(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationMinion', + request='Watch', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class MigrationStatusWatcherFacade(Type): + name = 'MigrationStatusWatcher' + version = 1 + schema = {'definitions': {'MigrationStatus': {'additionalProperties': False, + 'properties': {'attempt': {'type': 'integer'}, + 'migration-id': {'type': 'string'}, + 'phase': {'type': 'string'}, + 'source-api-addrs': {'items': {'type': 'string'}, + 'type': 'array'}, + 'source-ca-cert': {'type': 'string'}, + 'target-api-addrs': {'items': {'type': 'string'}, + 'type': 'array'}, + 'target-ca-cert': {'type': 'string'}}, + 'required': ['migration-id', + 'attempt', + 'phase', + 'source-api-addrs', + 'source-ca-cert', + 'target-api-addrs', + 'target-ca-cert'], + 'type': 'object'}}, + 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/MigrationStatus'}}, + 'type': 'object'}, + 'Stop': {'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(MigrationStatus) + async def Next(self): + ''' + + Returns -> typing.Union[int, str, typing.Sequence[str]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationStatusWatcher', + request='Next', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Stop(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationStatusWatcher', + request='Stop', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class MigrationTargetFacade(Type): + name = 'MigrationTarget' + version = 1 + schema = {'definitions': {'AdoptResourcesArgs': {'additionalProperties': False, + 'properties': {'model-tag': {'type': 'string'}, + 'source-controller-version': {'$ref': '#/definitions/Number'}}, + 'required': ['model-tag', + 'source-controller-version'], + 'type': 'object'}, + 'BytesResult': {'additionalProperties': False, + 'properties': {'result': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['result'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MigrationModelInfo': {'additionalProperties': False, + 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, + 'controller-agent-version': {'$ref': '#/definitions/Number'}, + 'name': {'type': 'string'}, + 'owner-tag': {'type': 'string'}, + 'uuid': {'type': 'string'}}, + 'required': ['uuid', + 'name', + 'owner-tag', + 'agent-version', + 'controller-agent-version'], + 'type': 'object'}, + 'ModelArgs': {'additionalProperties': False, + 'properties': {'model-tag': {'type': 'string'}}, + 'required': ['model-tag'], + 'type': 'object'}, + 'Number': {'additionalProperties': False, + 'properties': {'Build': {'type': 'integer'}, + 'Major': {'type': 'integer'}, + 'Minor': {'type': 'integer'}, + 'Patch': {'type': 'integer'}, + 'Tag': {'type': 'string'}}, + 'required': ['Major', + 'Minor', + 'Tag', + 'Patch', + 'Build'], + 'type': 'object'}, + 'SerializedModel': {'additionalProperties': False, + 'properties': {'bytes': {'items': {'type': 'integer'}, + 'type': 'array'}, + 'charms': {'items': {'type': 'string'}, + 'type': 'array'}, + 'resources': {'items': {'$ref': '#/definitions/SerializedModelResource'}, + 'type': 'array'}, + 'tools': {'items': {'$ref': '#/definitions/SerializedModelTools'}, + 'type': 'array'}}, + 'required': ['bytes', + 'charms', + 'tools', + 'resources'], + 'type': 'object'}, + 'SerializedModelResource': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'application-revision': {'$ref': '#/definitions/SerializedModelResourceRevision'}, + 'charmstore-revision': {'$ref': '#/definitions/SerializedModelResourceRevision'}, + 'name': {'type': 'string'}, + 'unit-revisions': {'patternProperties': {'.*': {'$ref': '#/definitions/SerializedModelResourceRevision'}}, + 'type': 'object'}}, + 'required': ['application', + 'name', + 'application-revision', + 'charmstore-revision', + 'unit-revisions'], + 'type': 'object'}, + 'SerializedModelResourceRevision': {'additionalProperties': False, + 'properties': {'description': {'type': 'string'}, + 'fingerprint': {'type': 'string'}, + 'origin': {'type': 'string'}, + 'path': {'type': 'string'}, + 'revision': {'type': 'integer'}, + 'size': {'type': 'integer'}, + 'timestamp': {'format': 'date-time', + 'type': 'string'}, + 'type': {'type': 'string'}, + 'username': {'type': 'string'}}, + 'required': ['revision', + 'type', + 'path', + 'description', + 'origin', + 'fingerprint', + 'size', + 'timestamp'], + 'type': 'object'}, + 'SerializedModelTools': {'additionalProperties': False, + 'properties': {'uri': {'type': 'string'}, + 'version': {'type': 'string'}}, + 'required': ['version', 'uri'], + 'type': 'object'}}, + 'properties': {'Abort': {'properties': {'Params': {'$ref': '#/definitions/ModelArgs'}}, + 'type': 'object'}, + 'Activate': {'properties': {'Params': {'$ref': '#/definitions/ModelArgs'}}, + 'type': 'object'}, + 'AdoptResources': {'properties': {'Params': {'$ref': '#/definitions/AdoptResourcesArgs'}}, + 'type': 'object'}, + 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, + 'type': 'object'}, + 'CheckMachines': {'properties': {'Params': {'$ref': '#/definitions/ModelArgs'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Import': {'properties': {'Params': {'$ref': '#/definitions/SerializedModel'}}, + 'type': 'object'}, + 'LatestLogTime': {'properties': {'Params': {'$ref': '#/definitions/ModelArgs'}, + 'Result': {'format': 'date-time', + 'type': 'string'}}, + 'type': 'object'}, + 'Prechecks': {'properties': {'Params': {'$ref': '#/definitions/MigrationModelInfo'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(None) + async def Abort(self, model_tag): + ''' + model_tag : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationTarget', + request='Abort', + version=1, + params=_params) + _params['model-tag'] = model_tag + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Activate(self, model_tag): + ''' + model_tag : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationTarget', + request='Activate', + version=1, + params=_params) + _params['model-tag'] = model_tag + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def AdoptResources(self, model_tag, source_controller_version): + ''' + model_tag : str + source_controller_version : Number + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationTarget', + request='AdoptResources', + version=1, + params=_params) + _params['model-tag'] = model_tag + _params['source-controller-version'] = source_controller_version + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(BytesResult) + async def CACert(self): + ''' + + Returns -> typing.Sequence[int] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationTarget', + request='CACert', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def CheckMachines(self, model_tag): + ''' + model_tag : str + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationTarget', + request='CheckMachines', + version=1, + params=_params) + _params['model-tag'] = model_tag + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Import(self, bytes_, charms, tools): + ''' + bytes_ : typing.Sequence[int] + charms : typing.Sequence[str] + tools : typing.Sequence[~SerializedModelTools] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationTarget', + request='Import', + version=1, + params=_params) + _params['bytes'] = bytes_ + _params['charms'] = charms + _params['tools'] = tools + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(str) + async def LatestLogTime(self, model_tag): + ''' + model_tag : str + Returns -> str + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationTarget', + request='LatestLogTime', + version=1, + params=_params) + _params['model-tag'] = model_tag + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Prechecks(self, agent_version, name, owner_tag, uuid): + ''' + agent_version : Number + name : str + owner_tag : str + uuid : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MigrationTarget', + request='Prechecks', + version=1, + params=_params) + _params['agent-version'] = agent_version + _params['name'] = name + _params['owner-tag'] = owner_tag + _params['uuid'] = uuid + reply = await self.rpc(msg) + return reply + + + +class ModelConfigFacade(Type): + name = 'ModelConfig' + version = 1 + schema = {'definitions': {'ConfigValue': {'additionalProperties': False, + 'properties': {'source': {'type': 'string'}, + 'value': {'additionalProperties': True, + 'type': 'object'}}, + 'required': ['value', 'source'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'ModelConfigResults': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ModelSLA': {'additionalProperties': False, + 'properties': {'ModelSLAInfo': {'$ref': '#/definitions/ModelSLAInfo'}, + 'creds': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['ModelSLAInfo', 'creds'], + 'type': 'object'}, + 'ModelSLAInfo': {'additionalProperties': False, + 'properties': {'level': {'type': 'string'}, + 'owner': {'type': 'string'}}, + 'required': ['level', 'owner'], + 'type': 'object'}, + 'ModelSet': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ModelUnset': {'additionalProperties': False, + 'properties': {'keys': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['keys'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}}, + 'properties': {'ModelGet': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}}, + 'type': 'object'}, + 'ModelSet': {'properties': {'Params': {'$ref': '#/definitions/ModelSet'}}, + 'type': 'object'}, + 'ModelUnset': {'properties': {'Params': {'$ref': '#/definitions/ModelUnset'}}, + 'type': 'object'}, + 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'SetSLALevel': {'properties': {'Params': {'$ref': '#/definitions/ModelSLA'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ModelConfigResults) + async def ModelGet(self): + ''' + + Returns -> typing.Mapping[str, ~ConfigValue] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelConfig', + request='ModelGet', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def ModelSet(self, config): + ''' + config : typing.Mapping[str, typing.Any] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelConfig', + request='ModelSet', + version=1, + params=_params) + _params['config'] = config + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def ModelUnset(self, keys): + ''' + keys : typing.Sequence[str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelConfig', + request='ModelUnset', + version=1, + params=_params) + _params['keys'] = keys + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def SLALevel(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelConfig', + request='SLALevel', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetSLALevel(self, creds, level): + ''' + creds : typing.Sequence[int] + level : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelConfig', + request='SetSLALevel', + version=1, + params=_params) + _params['creds'] = creds + _params['level'] = level + reply = await self.rpc(msg) + return reply + + + +class ModelUpgraderFacade(Type): + name = 'ModelUpgrader' + version = 1 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityStatusArgs': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'status': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', + 'status', + 'info', + 'data'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'IntResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'integer'}}, + 'required': ['result'], + 'type': 'object'}, + 'IntResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/IntResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'SetModelEnvironVersion': {'additionalProperties': False, + 'properties': {'model-tag': {'type': 'string'}, + 'version': {'type': 'integer'}}, + 'required': ['model-tag', + 'version'], + 'type': 'object'}, + 'SetModelEnvironVersions': {'additionalProperties': False, + 'properties': {'models': {'items': {'$ref': '#/definitions/SetModelEnvironVersion'}, + 'type': 'array'}}, + 'type': 'object'}, + 'SetStatus': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}}, + 'properties': {'ModelEnvironVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/IntResults'}}, + 'type': 'object'}, + 'ModelTargetEnvironVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/IntResults'}}, + 'type': 'object'}, + 'SetModelEnvironVersion': {'properties': {'Params': {'$ref': '#/definitions/SetModelEnvironVersions'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetModelStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'WatchModelEnvironVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(IntResults) + async def ModelEnvironVersion(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~IntResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelUpgrader', + request='ModelEnvironVersion', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(IntResults) + async def ModelTargetEnvironVersion(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~IntResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelUpgrader', + request='ModelTargetEnvironVersion', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetModelEnvironVersion(self, models): + ''' + models : typing.Sequence[~SetModelEnvironVersion] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelUpgrader', + request='SetModelEnvironVersion', + version=1, + params=_params) + _params['models'] = models + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetModelStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelUpgrader', + request='SetModelStatus', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchModelEnvironVersion(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelUpgrader', + request='WatchModelEnvironVersion', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class NotifyWatcherFacade(Type): + name = 'NotifyWatcher' + version = 1 + schema = {'properties': {'Next': {'type': 'object'}, 'Stop': {'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(None) + async def Next(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='NotifyWatcher', + request='Next', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Stop(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='NotifyWatcher', + request='Stop', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class OfferStatusWatcherFacade(Type): + name = 'OfferStatusWatcher' + version = 1 + schema = {'definitions': {'EntityStatus': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'since': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['status', 'info', 'since'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'OfferStatusChange': {'additionalProperties': False, + 'properties': {'offer-name': {'type': 'string'}, + 'status': {'$ref': '#/definitions/EntityStatus'}}, + 'required': ['offer-name', 'status'], + 'type': 'object'}, + 'OfferStatusWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/OfferStatusChange'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id', + 'changes'], + 'type': 'object'}}, + 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/OfferStatusWatchResult'}}, + 'type': 'object'}, + 'Stop': {'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(OfferStatusWatchResult) + async def Next(self): + ''' + + Returns -> typing.Union[typing.Sequence[~OfferStatusChange], _ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='OfferStatusWatcher', + request='Next', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Stop(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='OfferStatusWatcher', + request='Stop', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class PayloadsFacade(Type): + name = 'Payloads' + version = 1 + schema = {'definitions': {'Payload': {'additionalProperties': False, + 'properties': {'class': {'type': 'string'}, + 'id': {'type': 'string'}, + 'labels': {'items': {'type': 'string'}, + 'type': 'array'}, + 'machine': {'type': 'string'}, + 'status': {'type': 'string'}, + 'type': {'type': 'string'}, + 'unit': {'type': 'string'}}, + 'required': ['class', + 'type', + 'id', + 'status', + 'labels', + 'unit', + 'machine'], + 'type': 'object'}, + 'PayloadListArgs': {'additionalProperties': False, + 'properties': {'patterns': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['patterns'], + 'type': 'object'}, + 'PayloadListResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/Payload'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'List': {'properties': {'Params': {'$ref': '#/definitions/PayloadListArgs'}, + 'Result': {'$ref': '#/definitions/PayloadListResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(PayloadListResults) + async def List(self, patterns): + ''' + patterns : typing.Sequence[str] + Returns -> typing.Sequence[~Payload] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Payloads', + request='List', + version=1, + params=_params) + _params['patterns'] = patterns + reply = await self.rpc(msg) + return reply + + + +class PayloadsHookContextFacade(Type): + name = 'PayloadsHookContext' + version = 1 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'LookUpPayloadArg': {'additionalProperties': False, + 'properties': {'id': {'type': 'string'}, + 'name': {'type': 'string'}}, + 'required': ['name', 'id'], + 'type': 'object'}, + 'LookUpPayloadArgs': {'additionalProperties': False, + 'properties': {'args': {'items': {'$ref': '#/definitions/LookUpPayloadArg'}, + 'type': 'array'}}, + 'required': ['args'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'Payload': {'additionalProperties': False, + 'properties': {'class': {'type': 'string'}, + 'id': {'type': 'string'}, + 'labels': {'items': {'type': 'string'}, + 'type': 'array'}, + 'machine': {'type': 'string'}, + 'status': {'type': 'string'}, + 'type': {'type': 'string'}, + 'unit': {'type': 'string'}}, + 'required': ['class', + 'type', + 'id', + 'status', + 'labels', + 'unit', + 'machine'], + 'type': 'object'}, + 'PayloadResult': {'additionalProperties': False, + 'properties': {'Entity': {'$ref': '#/definitions/Entity'}, + 'error': {'$ref': '#/definitions/Error'}, + 'not-found': {'type': 'boolean'}, + 'payload': {'$ref': '#/definitions/Payload'}}, + 'required': ['Entity', + 'payload', + 'not-found'], + 'type': 'object'}, + 'PayloadResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/PayloadResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'SetPayloadStatusArg': {'additionalProperties': False, + 'properties': {'Entity': {'$ref': '#/definitions/Entity'}, + 'status': {'type': 'string'}}, + 'required': ['Entity', 'status'], + 'type': 'object'}, + 'SetPayloadStatusArgs': {'additionalProperties': False, + 'properties': {'args': {'items': {'$ref': '#/definitions/SetPayloadStatusArg'}, + 'type': 'array'}}, + 'required': ['args'], + 'type': 'object'}, + 'TrackPayloadArgs': {'additionalProperties': False, + 'properties': {'payloads': {'items': {'$ref': '#/definitions/Payload'}, + 'type': 'array'}}, + 'required': ['payloads'], + 'type': 'object'}}, + 'properties': {'List': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/PayloadResults'}}, + 'type': 'object'}, + 'LookUp': {'properties': {'Params': {'$ref': '#/definitions/LookUpPayloadArgs'}, + 'Result': {'$ref': '#/definitions/PayloadResults'}}, + 'type': 'object'}, + 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetPayloadStatusArgs'}, + 'Result': {'$ref': '#/definitions/PayloadResults'}}, + 'type': 'object'}, + 'Track': {'properties': {'Params': {'$ref': '#/definitions/TrackPayloadArgs'}, + 'Result': {'$ref': '#/definitions/PayloadResults'}}, + 'type': 'object'}, + 'Untrack': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/PayloadResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(PayloadResults) + async def List(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~PayloadResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='PayloadsHookContext', + request='List', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(PayloadResults) + async def LookUp(self, args): + ''' + args : typing.Sequence[~LookUpPayloadArg] + Returns -> typing.Sequence[~PayloadResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='PayloadsHookContext', + request='LookUp', + version=1, + params=_params) + _params['args'] = args + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(PayloadResults) + async def SetStatus(self, args): + ''' + args : typing.Sequence[~SetPayloadStatusArg] + Returns -> typing.Sequence[~PayloadResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='PayloadsHookContext', + request='SetStatus', + version=1, + params=_params) + _params['args'] = args + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(PayloadResults) + async def Track(self, payloads): + ''' + payloads : typing.Sequence[~Payload] + Returns -> typing.Sequence[~PayloadResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='PayloadsHookContext', + request='Track', + version=1, + params=_params) + _params['payloads'] = payloads + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(PayloadResults) + async def Untrack(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~PayloadResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='PayloadsHookContext', + request='Untrack', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class PingerFacade(Type): + name = 'Pinger' + version = 1 + schema = {'properties': {'Ping': {'type': 'object'}, 'Stop': {'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(None) + async def Ping(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Pinger', + request='Ping', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Stop(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Pinger', + request='Stop', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class ProxyUpdaterFacade(Type): + name = 'ProxyUpdater' + version = 1 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ProxyConfig': {'additionalProperties': False, + 'properties': {'ftp': {'type': 'string'}, + 'http': {'type': 'string'}, + 'https': {'type': 'string'}, + 'no-proxy': {'type': 'string'}}, + 'required': ['http', + 'https', + 'ftp', + 'no-proxy'], + 'type': 'object'}, + 'ProxyConfigResult': {'additionalProperties': False, + 'properties': {'apt-proxy-settings': {'$ref': '#/definitions/ProxyConfig'}, + 'error': {'$ref': '#/definitions/Error'}, + 'proxy-settings': {'$ref': '#/definitions/ProxyConfig'}}, + 'required': ['proxy-settings', + 'apt-proxy-settings'], + 'type': 'object'}, + 'ProxyConfigResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ProxyConfigResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'ProxyConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ProxyConfigResults'}}, + 'type': 'object'}, + 'WatchForProxyConfigAndAPIHostPortChanges': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ProxyConfigResults) + async def ProxyConfig(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ProxyConfigResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ProxyUpdater', + request='ProxyConfig', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchForProxyConfigAndAPIHostPortChanges(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ProxyUpdater', + request='WatchForProxyConfigAndAPIHostPortChanges', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class RelationStatusWatcherFacade(Type): + name = 'RelationStatusWatcher' + version = 1 + schema = {'definitions': {'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'RelationLifeSuspendedStatusChange': {'additionalProperties': False, + 'properties': {'key': {'type': 'string'}, + 'life': {'type': 'string'}, + 'suspended': {'type': 'boolean'}, + 'suspended-reason': {'type': 'string'}}, + 'required': ['key', + 'life', + 'suspended', + 'suspended-reason'], + 'type': 'object'}, + 'RelationLifeSuspendedStatusWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/RelationLifeSuspendedStatusChange'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id', + 'changes'], + 'type': 'object'}}, + 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/RelationLifeSuspendedStatusWatchResult'}}, + 'type': 'object'}, + 'Stop': {'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(RelationLifeSuspendedStatusWatchResult) + async def Next(self): + ''' + + Returns -> typing.Union[typing.Sequence[~RelationLifeSuspendedStatusChange], _ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RelationStatusWatcher', + request='Next', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Stop(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RelationStatusWatcher', + request='Stop', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class RelationUnitsWatcherFacade(Type): + name = 'RelationUnitsWatcher' + version = 1 + schema = {'definitions': {'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'RelationUnitsChange': {'additionalProperties': False, + 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}}, + 'type': 'object'}, + 'departed': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['changed'], + 'type': 'object'}, + 'RelationUnitsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'$ref': '#/definitions/RelationUnitsChange'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id', + 'changes'], + 'type': 'object'}, + 'UnitSettings': {'additionalProperties': False, + 'properties': {'version': {'type': 'integer'}}, + 'required': ['version'], + 'type': 'object'}}, + 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/RelationUnitsWatchResult'}}, + 'type': 'object'}, + 'Stop': {'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(RelationUnitsWatchResult) + async def Next(self): + ''' + + Returns -> typing.Union[_ForwardRef('RelationUnitsChange'), _ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RelationUnitsWatcher', + request='Next', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Stop(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RelationUnitsWatcher', + request='Stop', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class RemoteApplicationWatcherFacade(Type): + name = 'RemoteApplicationWatcher' + version = 1 + schema = {'definitions': {'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'RemoteApplicationChange': {'additionalProperties': False, + 'properties': {'application-tag': {'type': 'string'}, + 'life': {'type': 'string'}, + 'relations': {'$ref': '#/definitions/RemoteRelationsChange'}}, + 'required': ['application-tag', + 'life', + 'relations'], + 'type': 'object'}, + 'RemoteApplicationWatchResult': {'additionalProperties': False, + 'properties': {'change': {'$ref': '#/definitions/RemoteApplicationChange'}, + 'error': {'$ref': '#/definitions/Error'}, + 'id': {'type': 'string'}}, + 'required': ['id'], + 'type': 'object'}, + 'RemoteEntityId': {'additionalProperties': False, + 'properties': {'model-uuid': {'type': 'string'}, + 'token': {'type': 'string'}}, + 'required': ['model-uuid', 'token'], + 'type': 'object'}, + 'RemoteRelationChange': {'additionalProperties': False, + 'properties': {'changed-units': {'patternProperties': {'.*': {'$ref': '#/definitions/RemoteRelationUnitChange'}}, + 'type': 'object'}, + 'departed-units': {'items': {'type': 'string'}, + 'type': 'array'}, + 'id': {'type': 'integer'}, + 'life': {'type': 'string'}}, + 'required': ['id', 'life'], + 'type': 'object'}, + 'RemoteRelationUnitChange': {'additionalProperties': False, + 'properties': {'settings': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'unit-id': {'$ref': '#/definitions/RemoteEntityId'}}, + 'required': ['unit-id'], + 'type': 'object'}, + 'RemoteRelationsChange': {'additionalProperties': False, + 'properties': {'changed': {'items': {'$ref': '#/definitions/RemoteRelationChange'}, + 'type': 'array'}, + 'initial': {'type': 'boolean'}, + 'removed': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['initial'], + 'type': 'object'}}, + 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/RemoteApplicationWatchResult'}}, + 'type': 'object'}, + 'Stop': {'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(RemoteApplicationWatchResult) + async def Next(self): + ''' + + Returns -> typing.Union[_ForwardRef('RemoteApplicationChange'), _ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RemoteApplicationWatcher', + request='Next', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Stop(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RemoteApplicationWatcher', + request='Stop', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class RemoteRelationsFacade(Type): + name = 'RemoteRelations' + version = 1 + schema = {'definitions': {'ControllerAPIInfoResult': {'additionalProperties': False, + 'properties': {'addresses': {'items': {'type': 'string'}, + 'type': 'array'}, + 'cacert': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['addresses', + 'cacert'], + 'type': 'object'}, + 'ControllerAPIInfoResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ControllerAPIInfoResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ControllerConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityMacaroonArg': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'tag': {'type': 'string'}}, + 'required': ['macaroon', 'tag'], + 'type': 'object'}, + 'EntityMacaroonArgs': {'additionalProperties': False, + 'properties': {'Args': {'items': {'$ref': '#/definitions/EntityMacaroonArg'}, + 'type': 'array'}}, + 'required': ['Args'], + 'type': 'object'}, + 'EntityStatusArgs': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'status': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', + 'status', + 'info', + 'data'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'GetTokenArg': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'GetTokenArgs': {'additionalProperties': False, + 'properties': {'Args': {'items': {'$ref': '#/definitions/GetTokenArg'}, + 'type': 'array'}}, + 'required': ['Args'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'RelationUnit': {'additionalProperties': False, + 'properties': {'relation': {'type': 'string'}, + 'unit': {'type': 'string'}}, + 'required': ['relation', 'unit'], + 'type': 'object'}, + 'RelationUnits': {'additionalProperties': False, + 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnit'}, + 'type': 'array'}}, + 'required': ['relation-units'], + 'type': 'object'}, + 'RelationUnitsChange': {'additionalProperties': False, + 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}}, + 'type': 'object'}, + 'departed': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['changed'], + 'type': 'object'}, + 'RelationUnitsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'$ref': '#/definitions/RelationUnitsChange'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id', + 'changes'], + 'type': 'object'}, + 'RelationUnitsWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/RelationUnitsWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'RemoteApplication': {'additionalProperties': False, + 'properties': {'is-consumer-proxy': {'type': 'boolean'}, + 'life': {'type': 'string'}, + 'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'model-uuid': {'type': 'string'}, + 'name': {'type': 'string'}, + 'offer-uuid': {'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['name', + 'offer-uuid', + 'model-uuid', + 'is-consumer-proxy'], + 'type': 'object'}, + 'RemoteApplicationResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/RemoteApplication'}}, + 'type': 'object'}, + 'RemoteApplicationResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/RemoteApplicationResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'RemoteEndpoint': {'additionalProperties': False, + 'properties': {'interface': {'type': 'string'}, + 'limit': {'type': 'integer'}, + 'name': {'type': 'string'}, + 'role': {'type': 'string'}}, + 'required': ['name', + 'role', + 'interface', + 'limit'], + 'type': 'object'}, + 'RemoteEntityTokenArg': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}, + 'token': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'RemoteEntityTokenArgs': {'additionalProperties': False, + 'properties': {'Args': {'items': {'$ref': '#/definitions/RemoteEntityTokenArg'}, + 'type': 'array'}}, + 'required': ['Args'], + 'type': 'object'}, + 'RemoteRelation': {'additionalProperties': False, + 'properties': {'application-name': {'type': 'string'}, + 'endpoint': {'$ref': '#/definitions/RemoteEndpoint'}, + 'id': {'type': 'integer'}, + 'key': {'type': 'string'}, + 'life': {'type': 'string'}, + 'remote-application-name': {'type': 'string'}, + 'remote-endpoint-name': {'type': 'string'}, + 'source-model-uuid': {'type': 'string'}, + 'suspended': {'type': 'boolean'}}, + 'required': ['life', + 'suspended', + 'id', + 'key', + 'application-name', + 'endpoint', + 'remote-application-name', + 'remote-endpoint-name', + 'source-model-uuid'], + 'type': 'object'}, + 'RemoteRelationChangeEvent': {'additionalProperties': False, + 'properties': {'application-token': {'type': 'string'}, + 'changed-units': {'items': {'$ref': '#/definitions/RemoteRelationUnitChange'}, + 'type': 'array'}, + 'departed-units': {'items': {'type': 'integer'}, + 'type': 'array'}, + 'force-cleanup': {'type': 'boolean'}, + 'life': {'type': 'string'}, + 'macaroons': {'items': {'$ref': '#/definitions/Macaroon'}, + 'type': 'array'}, + 'relation-token': {'type': 'string'}, + 'suspended': {'type': 'boolean'}, + 'suspended-reason': {'type': 'string'}}, + 'required': ['relation-token', + 'application-token', + 'life'], + 'type': 'object'}, + 'RemoteRelationResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/RemoteRelation'}}, + 'type': 'object'}, + 'RemoteRelationResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/RemoteRelationResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'RemoteRelationUnitChange': {'additionalProperties': False, + 'properties': {'settings': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'unit-id': {'type': 'integer'}}, + 'required': ['unit-id'], + 'type': 'object'}, + 'RemoteRelationsChanges': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/RemoteRelationChangeEvent'}, + 'type': 'array'}}, + 'type': 'object'}, + 'SetStatus': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'SettingsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'required': ['settings'], + 'type': 'object'}, + 'SettingsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/SettingsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'StringResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}, + 'StringsWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'TokenResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'token': {'type': 'string'}}, + 'type': 'object'}, + 'TokenResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/TokenResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'UnitSettings': {'additionalProperties': False, + 'properties': {'version': {'type': 'integer'}}, + 'required': ['version'], + 'type': 'object'}}, + 'properties': {'ConsumeRemoteRelationChanges': {'properties': {'Params': {'$ref': '#/definitions/RemoteRelationsChanges'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'ControllerAPIInfoForModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ControllerAPIInfoResults'}}, + 'type': 'object'}, + 'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}}, + 'type': 'object'}, + 'ExportEntities': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/TokenResults'}}, + 'type': 'object'}, + 'GetTokens': {'properties': {'Params': {'$ref': '#/definitions/GetTokenArgs'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'ImportRemoteEntities': {'properties': {'Params': {'$ref': '#/definitions/RemoteEntityTokenArgs'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'RelationUnitSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, + 'Result': {'$ref': '#/definitions/SettingsResults'}}, + 'type': 'object'}, + 'Relations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/RemoteRelationResults'}}, + 'type': 'object'}, + 'RemoteApplications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/RemoteApplicationResults'}}, + 'type': 'object'}, + 'SaveMacaroons': {'properties': {'Params': {'$ref': '#/definitions/EntityMacaroonArgs'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetRemoteApplicationsStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'WatchLocalRelationUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/RelationUnitsWatchResults'}}, + 'type': 'object'}, + 'WatchRemoteApplicationRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WatchRemoteApplications': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, + 'type': 'object'}, + 'WatchRemoteRelations': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResults) + async def ConsumeRemoteRelationChanges(self, changes): + ''' + changes : typing.Sequence[~RemoteRelationChangeEvent] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RemoteRelations', + request='ConsumeRemoteRelationChanges', + version=1, + params=_params) + _params['changes'] = changes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ControllerAPIInfoResults) + async def ControllerAPIInfoForModels(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ControllerAPIInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RemoteRelations', + request='ControllerAPIInfoForModels', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ControllerConfigResult) + async def ControllerConfig(self): + ''' + + Returns -> typing.Mapping[str, typing.Any] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RemoteRelations', + request='ControllerConfig', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(TokenResults) + async def ExportEntities(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~TokenResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RemoteRelations', + request='ExportEntities', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def GetTokens(self, args): + ''' + args : typing.Sequence[~GetTokenArg] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RemoteRelations', + request='GetTokens', + version=1, + params=_params) + _params['Args'] = args + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def ImportRemoteEntities(self, args): + ''' + args : typing.Sequence[~RemoteEntityTokenArg] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RemoteRelations', + request='ImportRemoteEntities', + version=1, + params=_params) + _params['Args'] = args + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(SettingsResults) + async def RelationUnitSettings(self, relation_units): + ''' + relation_units : typing.Sequence[~RelationUnit] + Returns -> typing.Sequence[~SettingsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RemoteRelations', + request='RelationUnitSettings', + version=1, + params=_params) + _params['relation-units'] = relation_units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(RemoteRelationResults) + async def Relations(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~RemoteRelationResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RemoteRelations', + request='Relations', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(RemoteApplicationResults) + async def RemoteApplications(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~RemoteApplicationResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RemoteRelations', + request='RemoteApplications', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SaveMacaroons(self, args): + ''' + args : typing.Sequence[~EntityMacaroonArg] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RemoteRelations', + request='SaveMacaroons', + version=1, + params=_params) + _params['Args'] = args + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetRemoteApplicationsStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RemoteRelations', + request='SetRemoteApplicationsStatus', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(RelationUnitsWatchResults) + async def WatchLocalRelationUnits(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~RelationUnitsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RemoteRelations', + request='WatchLocalRelationUnits', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchRemoteApplicationRelations(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RemoteRelations', + request='WatchRemoteApplicationRelations', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResult) + async def WatchRemoteApplications(self): + ''' + + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RemoteRelations', + request='WatchRemoteApplications', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResult) + async def WatchRemoteRelations(self): + ''' + + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RemoteRelations', + request='WatchRemoteRelations', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class RemoteRelationsWatcherFacade(Type): + name = 'RemoteRelationsWatcher' + version = 1 + schema = {'definitions': {'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'RemoteEntityId': {'additionalProperties': False, + 'properties': {'model-uuid': {'type': 'string'}, + 'token': {'type': 'string'}}, + 'required': ['model-uuid', 'token'], + 'type': 'object'}, + 'RemoteRelationChange': {'additionalProperties': False, + 'properties': {'changed-units': {'patternProperties': {'.*': {'$ref': '#/definitions/RemoteRelationUnitChange'}}, + 'type': 'object'}, + 'departed-units': {'items': {'type': 'string'}, + 'type': 'array'}, + 'id': {'type': 'integer'}, + 'life': {'type': 'string'}}, + 'required': ['id', 'life'], + 'type': 'object'}, + 'RemoteRelationUnitChange': {'additionalProperties': False, + 'properties': {'settings': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'unit-id': {'$ref': '#/definitions/RemoteEntityId'}}, + 'required': ['unit-id'], + 'type': 'object'}, + 'RemoteRelationsChange': {'additionalProperties': False, + 'properties': {'changed': {'items': {'$ref': '#/definitions/RemoteRelationChange'}, + 'type': 'array'}, + 'initial': {'type': 'boolean'}, + 'removed': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['initial'], + 'type': 'object'}, + 'RemoteRelationsWatchResult': {'additionalProperties': False, + 'properties': {'RemoteRelationsWatcherId': {'type': 'string'}, + 'change': {'$ref': '#/definitions/RemoteRelationsChange'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['RemoteRelationsWatcherId'], + 'type': 'object'}}, + 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/RemoteRelationsWatchResult'}}, + 'type': 'object'}, + 'Stop': {'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(RemoteRelationsWatchResult) + async def Next(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('RemoteRelationsChange'), _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RemoteRelationsWatcher', + request='Next', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Stop(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RemoteRelationsWatcher', + request='Stop', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class ResourcesFacade(Type): + name = 'Resources' + version = 1 + schema = {'definitions': {'AddCharmWithAuthorization': {'additionalProperties': False, + 'properties': {'channel': {'type': 'string'}, + 'force': {'type': 'boolean'}, + 'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'url': {'type': 'string'}}, + 'required': ['url', + 'channel', + 'macaroon', + 'force'], + 'type': 'object'}, + 'AddPendingResourcesArgs': {'additionalProperties': False, + 'properties': {'AddCharmWithAuthorization': {'$ref': '#/definitions/AddCharmWithAuthorization'}, + 'Entity': {'$ref': '#/definitions/Entity'}, + 'resources': {'items': {'$ref': '#/definitions/CharmResource'}, + 'type': 'array'}}, + 'required': ['Entity', + 'AddCharmWithAuthorization', + 'resources'], + 'type': 'object'}, + 'AddPendingResourcesResult': {'additionalProperties': False, + 'properties': {'ErrorResult': {'$ref': '#/definitions/ErrorResult'}, + 'pending-ids': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['ErrorResult', + 'pending-ids'], + 'type': 'object'}, + 'CharmResource': {'additionalProperties': False, + 'properties': {'description': {'type': 'string'}, + 'fingerprint': {'items': {'type': 'integer'}, + 'type': 'array'}, + 'name': {'type': 'string'}, + 'origin': {'type': 'string'}, + 'path': {'type': 'string'}, + 'revision': {'type': 'integer'}, + 'size': {'type': 'integer'}, + 'type': {'type': 'string'}}, + 'required': ['name', + 'type', + 'path', + 'origin', + 'revision', + 'fingerprint', + 'size'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ListResourcesArgs': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'Resource': {'additionalProperties': False, + 'properties': {'CharmResource': {'$ref': '#/definitions/CharmResource'}, + 'application': {'type': 'string'}, + 'id': {'type': 'string'}, + 'pending-id': {'type': 'string'}, + 'timestamp': {'format': 'date-time', + 'type': 'string'}, + 'username': {'type': 'string'}}, + 'required': ['CharmResource', + 'id', + 'pending-id', + 'application', + 'username', + 'timestamp'], + 'type': 'object'}, + 'ResourcesResult': {'additionalProperties': False, + 'properties': {'ErrorResult': {'$ref': '#/definitions/ErrorResult'}, + 'charm-store-resources': {'items': {'$ref': '#/definitions/CharmResource'}, + 'type': 'array'}, + 'resources': {'items': {'$ref': '#/definitions/Resource'}, + 'type': 'array'}, + 'unit-resources': {'items': {'$ref': '#/definitions/UnitResources'}, + 'type': 'array'}}, + 'required': ['ErrorResult', + 'resources', + 'charm-store-resources', + 'unit-resources'], + 'type': 'object'}, + 'ResourcesResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ResourcesResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'UnitResources': {'additionalProperties': False, + 'properties': {'Entity': {'$ref': '#/definitions/Entity'}, + 'download-progress': {'patternProperties': {'.*': {'type': 'integer'}}, + 'type': 'object'}, + 'resources': {'items': {'$ref': '#/definitions/Resource'}, + 'type': 'array'}}, + 'required': ['Entity', + 'resources', + 'download-progress'], + 'type': 'object'}}, + 'properties': {'AddPendingResources': {'properties': {'Params': {'$ref': '#/definitions/AddPendingResourcesArgs'}, + 'Result': {'$ref': '#/definitions/AddPendingResourcesResult'}}, + 'type': 'object'}, + 'ListResources': {'properties': {'Params': {'$ref': '#/definitions/ListResourcesArgs'}, + 'Result': {'$ref': '#/definitions/ResourcesResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(AddPendingResourcesResult) + async def AddPendingResources(self, addcharmwithauthorization, entity, resources): + ''' + addcharmwithauthorization : AddCharmWithAuthorization + entity : Entity + resources : typing.Sequence[~CharmResource] + Returns -> typing.Union[_ForwardRef('ErrorResult'), typing.Sequence[str]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Resources', + request='AddPendingResources', + version=1, + params=_params) + _params['AddCharmWithAuthorization'] = addcharmwithauthorization + _params['Entity'] = entity + _params['Resources'] = resources + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ResourcesResults) + async def ListResources(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ResourcesResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Resources', + request='ListResources', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class ResourcesHookContextFacade(Type): + name = 'ResourcesHookContext' + version = 1 + schema = {'definitions': {'CharmResource': {'additionalProperties': False, + 'properties': {'description': {'type': 'string'}, + 'fingerprint': {'items': {'type': 'integer'}, + 'type': 'array'}, + 'name': {'type': 'string'}, + 'origin': {'type': 'string'}, + 'path': {'type': 'string'}, + 'revision': {'type': 'integer'}, + 'size': {'type': 'integer'}, + 'type': {'type': 'string'}}, + 'required': ['name', + 'type', + 'path', + 'origin', + 'revision', + 'fingerprint', + 'size'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ListUnitResourcesArgs': {'additionalProperties': False, + 'properties': {'resource-names': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['resource-names'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'Resource': {'additionalProperties': False, + 'properties': {'CharmResource': {'$ref': '#/definitions/CharmResource'}, + 'application': {'type': 'string'}, + 'id': {'type': 'string'}, + 'pending-id': {'type': 'string'}, + 'timestamp': {'format': 'date-time', + 'type': 'string'}, + 'username': {'type': 'string'}}, + 'required': ['CharmResource', + 'id', + 'pending-id', + 'application', + 'username', + 'timestamp'], + 'type': 'object'}, + 'UnitResourceResult': {'additionalProperties': False, + 'properties': {'ErrorResult': {'$ref': '#/definitions/ErrorResult'}, + 'resource': {'$ref': '#/definitions/Resource'}}, + 'required': ['ErrorResult', 'resource'], + 'type': 'object'}, + 'UnitResourcesResult': {'additionalProperties': False, + 'properties': {'ErrorResult': {'$ref': '#/definitions/ErrorResult'}, + 'resources': {'items': {'$ref': '#/definitions/UnitResourceResult'}, + 'type': 'array'}}, + 'required': ['ErrorResult', + 'resources'], + 'type': 'object'}}, + 'properties': {'GetResourceInfo': {'properties': {'Params': {'$ref': '#/definitions/ListUnitResourcesArgs'}, + 'Result': {'$ref': '#/definitions/UnitResourcesResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(UnitResourcesResult) + async def GetResourceInfo(self, resource_names): + ''' + resource_names : typing.Sequence[str] + Returns -> typing.Union[_ForwardRef('ErrorResult'), typing.Sequence[~UnitResourceResult]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ResourcesHookContext', + request='GetResourceInfo', + version=1, + params=_params) + _params['resource-names'] = resource_names + reply = await self.rpc(msg) + return reply + + + +class RetryStrategyFacade(Type): + name = 'RetryStrategy' + version = 1 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'RetryStrategy': {'additionalProperties': False, + 'properties': {'jitter-retry-time': {'type': 'boolean'}, + 'max-retry-time': {'type': 'integer'}, + 'min-retry-time': {'type': 'integer'}, + 'retry-time-factor': {'type': 'integer'}, + 'should-retry': {'type': 'boolean'}}, + 'required': ['should-retry', + 'min-retry-time', + 'max-retry-time', + 'jitter-retry-time', + 'retry-time-factor'], + 'type': 'object'}, + 'RetryStrategyResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/RetryStrategy'}}, + 'type': 'object'}, + 'RetryStrategyResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/RetryStrategyResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'RetryStrategy': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/RetryStrategyResults'}}, + 'type': 'object'}, + 'WatchRetryStrategy': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(RetryStrategyResults) + async def RetryStrategy(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~RetryStrategyResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RetryStrategy', + request='RetryStrategy', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchRetryStrategy(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='RetryStrategy', + request='WatchRetryStrategy', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class SSHClientFacade(Type): + name = 'SSHClient' + version = 1 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'SSHAddressResult': {'additionalProperties': False, + 'properties': {'address': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'SSHAddressResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/SSHAddressResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'SSHProxyResult': {'additionalProperties': False, + 'properties': {'use-proxy': {'type': 'boolean'}}, + 'required': ['use-proxy'], + 'type': 'object'}, + 'SSHPublicKeysResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'public-keys': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'SSHPublicKeysResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/SSHPublicKeysResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/SSHAddressResults'}}, + 'type': 'object'}, + 'Proxy': {'properties': {'Result': {'$ref': '#/definitions/SSHProxyResult'}}, + 'type': 'object'}, + 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/SSHAddressResults'}}, + 'type': 'object'}, + 'PublicKeys': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/SSHPublicKeysResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(SSHAddressResults) + async def PrivateAddress(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~SSHAddressResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='SSHClient', + request='PrivateAddress', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(SSHProxyResult) + async def Proxy(self): + ''' + + Returns -> bool + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='SSHClient', + request='Proxy', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(SSHAddressResults) + async def PublicAddress(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~SSHAddressResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='SSHClient', + request='PublicAddress', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(SSHPublicKeysResults) + async def PublicKeys(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~SSHPublicKeysResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='SSHClient', + request='PublicKeys', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class SingularFacade(Type): + name = 'Singular' + version = 1 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'SingularClaim': {'additionalProperties': False, + 'properties': {'controller-tag': {'type': 'string'}, + 'duration': {'type': 'integer'}, + 'model-tag': {'type': 'string'}}, + 'required': ['model-tag', + 'controller-tag', + 'duration'], + 'type': 'object'}, + 'SingularClaims': {'additionalProperties': False, + 'properties': {'claims': {'items': {'$ref': '#/definitions/SingularClaim'}, + 'type': 'array'}}, + 'required': ['claims'], + 'type': 'object'}}, + 'properties': {'Claim': {'properties': {'Params': {'$ref': '#/definitions/SingularClaims'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Wait': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResults) + async def Claim(self, claims): + ''' + claims : typing.Sequence[~SingularClaim] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Singular', + request='Claim', + version=1, + params=_params) + _params['claims'] = claims + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Wait(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Singular', + request='Wait', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class StringsWatcherFacade(Type): + name = 'StringsWatcher' + version = 1 + schema = {'definitions': {'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}}, + 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, + 'type': 'object'}, + 'Stop': {'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(StringsWatchResult) + async def Next(self): + ''' + + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StringsWatcher', + request='Next', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Stop(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StringsWatcher', + request='Stop', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class UndertakerFacade(Type): + name = 'Undertaker' + version = 1 + schema = {'definitions': {'EntityStatusArgs': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'status': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', + 'status', + 'info', + 'data'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'ModelConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'SetStatus': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'UndertakerModelInfo': {'additionalProperties': False, + 'properties': {'global-name': {'type': 'string'}, + 'is-system': {'type': 'boolean'}, + 'life': {'type': 'string'}, + 'name': {'type': 'string'}, + 'uuid': {'type': 'string'}}, + 'required': ['uuid', + 'name', + 'global-name', + 'is-system', + 'life'], + 'type': 'object'}, + 'UndertakerModelInfoResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/UndertakerModelInfo'}}, + 'required': ['result'], + 'type': 'object'}}, + 'properties': {'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, + 'type': 'object'}, + 'ModelInfo': {'properties': {'Result': {'$ref': '#/definitions/UndertakerModelInfoResult'}}, + 'type': 'object'}, + 'ProcessDyingModel': {'type': 'object'}, + 'RemoveModel': {'type': 'object'}, + 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'WatchModelResources': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ModelConfigResult) + async def ModelConfig(self): + ''' + + Returns -> typing.Mapping[str, typing.Any] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Undertaker', + request='ModelConfig', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(UndertakerModelInfoResult) + async def ModelInfo(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('UndertakerModelInfo')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Undertaker', + request='ModelInfo', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def ProcessDyingModel(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Undertaker', + request='ProcessDyingModel', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def RemoveModel(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Undertaker', + request='RemoveModel', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Undertaker', + request='SetStatus', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def UpdateStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Undertaker', + request='UpdateStatus', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchModelResources(self): + ''' + + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Undertaker', + request='WatchModelResources', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class UnitAssignerFacade(Type): + name = 'UnitAssigner' + version = 1 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityStatusArgs': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'status': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', + 'status', + 'info', + 'data'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'SetStatus': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}}, + 'properties': {'AssignUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetAgentStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'WatchUnitAssignments': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResults) + async def AssignUnits(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UnitAssigner', + request='AssignUnits', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetAgentStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UnitAssigner', + request='SetAgentStatus', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResult) + async def WatchUnitAssignments(self): + ''' + + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UnitAssigner', + request='WatchUnitAssignments', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class UpgradeSeriesFacade(Type): + name = 'UpgradeSeries' + version = 1 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'EntitiesResult': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['entities'], + 'type': 'object'}, + 'EntitiesResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/EntitiesResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'PinApplicationResult': {'additionalProperties': False, + 'properties': {'application-name': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['application-name'], + 'type': 'object'}, + 'PinApplicationsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/PinApplicationResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'PinnedLeadershipResult': {'additionalProperties': False, + 'properties': {'result': {'patternProperties': {'.*': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}}, + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'StringResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'UpdateSeriesArg': {'additionalProperties': False, + 'properties': {'force': {'type': 'boolean'}, + 'series': {'type': 'string'}, + 'tag': {'$ref': '#/definitions/Entity'}}, + 'required': ['tag', 'force', 'series'], + 'type': 'object'}, + 'UpdateSeriesArgs': {'additionalProperties': False, + 'properties': {'args': {'items': {'$ref': '#/definitions/UpdateSeriesArg'}, + 'type': 'array'}}, + 'required': ['args'], + 'type': 'object'}, + 'UpgradeSeriesStartUnitCompletionParam': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}, + 'message': {'type': 'string'}}, + 'required': ['entities', + 'message'], + 'type': 'object'}, + 'UpgradeSeriesStatusParam': {'additionalProperties': False, + 'properties': {'entity': {'$ref': '#/definitions/Entity'}, + 'message': {'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['entity', + 'status', + 'message'], + 'type': 'object'}, + 'UpgradeSeriesStatusParams': {'additionalProperties': False, + 'properties': {'params': {'items': {'$ref': '#/definitions/UpgradeSeriesStatusParam'}, + 'type': 'array'}}, + 'required': ['params'], + 'type': 'object'}, + 'UpgradeSeriesStatusResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'status': {'type': 'string'}}, + 'type': 'object'}, + 'UpgradeSeriesStatusResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/UpgradeSeriesStatusResult'}, + 'type': 'array'}}, + 'type': 'object'}}, + 'properties': {'FinishUpgradeSeries': {'properties': {'Params': {'$ref': '#/definitions/UpdateSeriesArgs'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'MachineStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/UpgradeSeriesStatusResults'}}, + 'type': 'object'}, + 'PinMachineApplications': {'properties': {'Result': {'$ref': '#/definitions/PinApplicationsResults'}}, + 'type': 'object'}, + 'PinnedLeadership': {'properties': {'Result': {'$ref': '#/definitions/PinnedLeadershipResult'}}, + 'type': 'object'}, + 'SetMachineStatus': {'properties': {'Params': {'$ref': '#/definitions/UpgradeSeriesStatusParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetUpgradeSeriesUnitStatus': {'properties': {'Params': {'$ref': '#/definitions/UpgradeSeriesStatusParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'StartUnitCompletion': {'properties': {'Params': {'$ref': '#/definitions/UpgradeSeriesStartUnitCompletionParam'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'TargetSeries': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'UnitsCompleted': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/EntitiesResults'}}, + 'type': 'object'}, + 'UnitsPrepared': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/EntitiesResults'}}, + 'type': 'object'}, + 'UnpinMachineApplications': {'properties': {'Result': {'$ref': '#/definitions/PinApplicationsResults'}}, + 'type': 'object'}, + 'UpgradeSeriesUnitStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/UpgradeSeriesStatusResults'}}, + 'type': 'object'}, + 'WatchUpgradeSeriesNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResults) + async def FinishUpgradeSeries(self, args): + ''' + args : typing.Sequence[~UpdateSeriesArg] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UpgradeSeries', + request='FinishUpgradeSeries', + version=1, + params=_params) + _params['args'] = args + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(UpgradeSeriesStatusResults) + async def MachineStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~UpgradeSeriesStatusResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UpgradeSeries', + request='MachineStatus', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(PinApplicationsResults) + async def PinMachineApplications(self): + ''' + + Returns -> typing.Sequence[~PinApplicationResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UpgradeSeries', + request='PinMachineApplications', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(PinnedLeadershipResult) + async def PinnedLeadership(self): + ''' + + Returns -> typing.Sequence[str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UpgradeSeries', + request='PinnedLeadership', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetMachineStatus(self, params): + ''' + params : typing.Sequence[~UpgradeSeriesStatusParam] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UpgradeSeries', + request='SetMachineStatus', + version=1, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetUpgradeSeriesUnitStatus(self, params): + ''' + params : typing.Sequence[~UpgradeSeriesStatusParam] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UpgradeSeries', + request='SetUpgradeSeriesUnitStatus', + version=1, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def StartUnitCompletion(self, entities, message): + ''' + entities : typing.Sequence[~Entity] + message : str + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UpgradeSeries', + request='StartUnitCompletion', + version=1, + params=_params) + _params['entities'] = entities + _params['message'] = message + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def TargetSeries(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UpgradeSeries', + request='TargetSeries', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(EntitiesResults) + async def UnitsCompleted(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~EntitiesResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UpgradeSeries', + request='UnitsCompleted', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(EntitiesResults) + async def UnitsPrepared(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~EntitiesResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UpgradeSeries', + request='UnitsPrepared', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(PinApplicationsResults) + async def UnpinMachineApplications(self): + ''' + + Returns -> typing.Sequence[~PinApplicationResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UpgradeSeries', + request='UnpinMachineApplications', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(UpgradeSeriesStatusResults) + async def UpgradeSeriesUnitStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~UpgradeSeriesStatusResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UpgradeSeries', + request='UpgradeSeriesUnitStatus', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchUpgradeSeriesNotifications(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UpgradeSeries', + request='WatchUpgradeSeriesNotifications', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class UpgraderFacade(Type): + name = 'Upgrader' + version = 1 + schema = {'definitions': {'Binary': {'additionalProperties': False, + 'properties': {'Arch': {'type': 'string'}, + 'Number': {'$ref': '#/definitions/Number'}, + 'Series': {'type': 'string'}}, + 'required': ['Number', 'Series', 'Arch'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'EntitiesVersion': {'additionalProperties': False, + 'properties': {'agent-tools': {'items': {'$ref': '#/definitions/EntityVersion'}, + 'type': 'array'}}, + 'required': ['agent-tools'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityVersion': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}, + 'tools': {'$ref': '#/definitions/Version'}}, + 'required': ['tag', 'tools'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Number': {'additionalProperties': False, + 'properties': {'Build': {'type': 'integer'}, + 'Major': {'type': 'integer'}, + 'Minor': {'type': 'integer'}, + 'Patch': {'type': 'integer'}, + 'Tag': {'type': 'string'}}, + 'required': ['Major', + 'Minor', + 'Tag', + 'Patch', + 'Build'], + 'type': 'object'}, + 'Tools': {'additionalProperties': False, + 'properties': {'sha256': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'url': {'type': 'string'}, + 'version': {'$ref': '#/definitions/Binary'}}, + 'required': ['version', 'url', 'size'], + 'type': 'object'}, + 'ToolsResult': {'additionalProperties': False, + 'properties': {'disable-ssl-hostname-verification': {'type': 'boolean'}, + 'error': {'$ref': '#/definitions/Error'}, + 'tools': {'items': {'$ref': '#/definitions/Tools'}, + 'type': 'array'}}, + 'required': ['tools', + 'disable-ssl-hostname-verification'], + 'type': 'object'}, + 'ToolsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ToolsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Version': {'additionalProperties': False, + 'properties': {'version': {'$ref': '#/definitions/Binary'}}, + 'required': ['version'], + 'type': 'object'}, + 'VersionResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'version': {'$ref': '#/definitions/Number'}}, + 'type': 'object'}, + 'VersionResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/VersionResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'DesiredVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/VersionResults'}}, + 'type': 'object'}, + 'SetTools': {'properties': {'Params': {'$ref': '#/definitions/EntitiesVersion'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Tools': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ToolsResults'}}, + 'type': 'object'}, + 'WatchAPIVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(VersionResults) + async def DesiredVersion(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~VersionResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Upgrader', + request='DesiredVersion', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetTools(self, agent_tools): + ''' + agent_tools : typing.Sequence[~EntityVersion] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Upgrader', + request='SetTools', + version=1, + params=_params) + _params['agent-tools'] = agent_tools + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ToolsResults) + async def Tools(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ToolsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Upgrader', + request='Tools', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchAPIVersion(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Upgrader', + request='WatchAPIVersion', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class UserManagerFacade(Type): + name = 'UserManager' + version = 1 + schema = {'definitions': {'AddUser': {'additionalProperties': False, + 'properties': {'display-name': {'type': 'string'}, + 'password': {'type': 'string'}, + 'username': {'type': 'string'}}, + 'required': ['username', 'display-name'], + 'type': 'object'}, + 'AddUserResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'secret-key': {'items': {'type': 'integer'}, + 'type': 'array'}, + 'tag': {'type': 'string'}}, + 'type': 'object'}, + 'AddUserResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/AddUserResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'AddUsers': {'additionalProperties': False, + 'properties': {'users': {'items': {'$ref': '#/definitions/AddUser'}, + 'type': 'array'}}, + 'required': ['users'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityPassword': {'additionalProperties': False, + 'properties': {'password': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'password'], + 'type': 'object'}, + 'EntityPasswords': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'}, + 'type': 'array'}}, + 'required': ['changes'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'UserInfo': {'additionalProperties': False, + 'properties': {'access': {'type': 'string'}, + 'created-by': {'type': 'string'}, + 'date-created': {'format': 'date-time', + 'type': 'string'}, + 'disabled': {'type': 'boolean'}, + 'display-name': {'type': 'string'}, + 'last-connection': {'format': 'date-time', + 'type': 'string'}, + 'username': {'type': 'string'}}, + 'required': ['username', + 'display-name', + 'access', + 'created-by', + 'date-created', + 'disabled'], + 'type': 'object'}, + 'UserInfoRequest': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}, + 'include-disabled': {'type': 'boolean'}}, + 'required': ['entities', + 'include-disabled'], + 'type': 'object'}, + 'UserInfoResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/UserInfo'}}, + 'type': 'object'}, + 'UserInfoResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/UserInfoResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'AddUser': {'properties': {'Params': {'$ref': '#/definitions/AddUsers'}, + 'Result': {'$ref': '#/definitions/AddUserResults'}}, + 'type': 'object'}, + 'DisableUser': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'EnableUser': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'RemoveUser': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetPassword': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'UserInfo': {'properties': {'Params': {'$ref': '#/definitions/UserInfoRequest'}, + 'Result': {'$ref': '#/definitions/UserInfoResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(AddUserResults) + async def AddUser(self, users): + ''' + users : typing.Sequence[~AddUser] + Returns -> typing.Sequence[~AddUserResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UserManager', + request='AddUser', + version=1, + params=_params) + _params['users'] = users + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def DisableUser(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UserManager', + request='DisableUser', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def EnableUser(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UserManager', + request='EnableUser', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def RemoveUser(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UserManager', + request='RemoveUser', + version=1, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetPassword(self, changes): + ''' + changes : typing.Sequence[~EntityPassword] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UserManager', + request='SetPassword', + version=1, + params=_params) + _params['changes'] = changes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(UserInfoResults) + async def UserInfo(self, entities, include_disabled): + ''' + entities : typing.Sequence[~Entity] + include_disabled : bool + Returns -> typing.Sequence[~UserInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UserManager', + request='UserInfo', + version=1, + params=_params) + _params['entities'] = entities + _params['include-disabled'] = include_disabled + reply = await self.rpc(msg) + return reply + + + +class VolumeAttachmentPlansWatcherFacade(Type): + name = 'VolumeAttachmentPlansWatcher' + version = 1 + schema = {'definitions': {'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MachineStorageId': {'additionalProperties': False, + 'properties': {'attachment-tag': {'type': 'string'}, + 'machine-tag': {'type': 'string'}}, + 'required': ['machine-tag', + 'attachment-tag'], + 'type': 'object'}, + 'MachineStorageIdsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/MachineStorageId'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id', + 'changes'], + 'type': 'object'}}, + 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResult'}}, + 'type': 'object'}, + 'Stop': {'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(MachineStorageIdsWatchResult) + async def Next(self): + ''' + + Returns -> typing.Union[typing.Sequence[~MachineStorageId], _ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='VolumeAttachmentPlansWatcher', + request='Next', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Stop(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='VolumeAttachmentPlansWatcher', + request='Stop', + version=1, + params=_params) + + reply = await self.rpc(msg) + return reply diff --git a/modules/libjuju/juju/client/_client2.py b/modules/libjuju/juju/client/_client2.py new file mode 100644 index 0000000..416faab --- /dev/null +++ b/modules/libjuju/juju/client/_client2.py @@ -0,0 +1,7535 @@ +# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. +# Changes will be overwritten/lost when the file is regenerated. + +from juju.client._definitions import * +from juju.client.facade import ReturnMapping, Type + + +class ActionFacade(Type): + name = 'Action' + version = 2 + schema = {'definitions': {'Action': {'additionalProperties': False, + 'properties': {'name': {'type': 'string'}, + 'parameters': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'receiver': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'receiver', 'name'], + 'type': 'object'}, + 'ActionResult': {'additionalProperties': False, + 'properties': {'action': {'$ref': '#/definitions/Action'}, + 'completed': {'format': 'date-time', + 'type': 'string'}, + 'enqueued': {'format': 'date-time', + 'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}, + 'message': {'type': 'string'}, + 'output': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'started': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'type': 'object'}, + 'ActionResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ActionSpec': {'additionalProperties': False, + 'properties': {'description': {'type': 'string'}, + 'params': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['description', 'params'], + 'type': 'object'}, + 'Actions': {'additionalProperties': False, + 'properties': {'actions': {'items': {'$ref': '#/definitions/Action'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ActionsByName': {'additionalProperties': False, + 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionResult'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'name': {'type': 'string'}}, + 'type': 'object'}, + 'ActionsByNames': {'additionalProperties': False, + 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionsByName'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ActionsByReceiver': {'additionalProperties': False, + 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionResult'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'receiver': {'type': 'string'}}, + 'type': 'object'}, + 'ActionsByReceivers': {'additionalProperties': False, + 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionsByReceiver'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ApplicationCharmActionsResult': {'additionalProperties': False, + 'properties': {'actions': {'patternProperties': {'.*': {'$ref': '#/definitions/ActionSpec'}}, + 'type': 'object'}, + 'application-tag': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ApplicationsCharmActionsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationCharmActionsResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'FindActionsByNames': {'additionalProperties': False, + 'properties': {'names': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'FindTags': {'additionalProperties': False, + 'properties': {'prefixes': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['prefixes'], + 'type': 'object'}, + 'FindTagsResults': {'additionalProperties': False, + 'properties': {'matches': {'patternProperties': {'.*': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'type': 'object'}}, + 'required': ['matches'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'RunParams': {'additionalProperties': False, + 'properties': {'applications': {'items': {'type': 'string'}, + 'type': 'array'}, + 'commands': {'type': 'string'}, + 'machines': {'items': {'type': 'string'}, + 'type': 'array'}, + 'timeout': {'type': 'integer'}, + 'units': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['commands', 'timeout'], + 'type': 'object'}}, + 'properties': {'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionResults'}}, + 'type': 'object'}, + 'ApplicationsCharmsActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ApplicationsCharmActionsResults'}}, + 'type': 'object'}, + 'Cancel': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionResults'}}, + 'type': 'object'}, + 'Enqueue': {'properties': {'Params': {'$ref': '#/definitions/Actions'}, + 'Result': {'$ref': '#/definitions/ActionResults'}}, + 'type': 'object'}, + 'FindActionTagsByPrefix': {'properties': {'Params': {'$ref': '#/definitions/FindTags'}, + 'Result': {'$ref': '#/definitions/FindTagsResults'}}, + 'type': 'object'}, + 'FindActionsByNames': {'properties': {'Params': {'$ref': '#/definitions/FindActionsByNames'}, + 'Result': {'$ref': '#/definitions/ActionsByNames'}}, + 'type': 'object'}, + 'ListAll': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, + 'type': 'object'}, + 'ListCompleted': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, + 'type': 'object'}, + 'ListPending': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, + 'type': 'object'}, + 'ListRunning': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, + 'type': 'object'}, + 'Run': {'properties': {'Params': {'$ref': '#/definitions/RunParams'}, + 'Result': {'$ref': '#/definitions/ActionResults'}}, + 'type': 'object'}, + 'RunOnAllMachines': {'properties': {'Params': {'$ref': '#/definitions/RunParams'}, + 'Result': {'$ref': '#/definitions/ActionResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ActionResults) + async def Actions(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='Actions', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ApplicationsCharmActionsResults) + async def ApplicationsCharmsActions(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ApplicationCharmActionsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='ApplicationsCharmsActions', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionResults) + async def Cancel(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='Cancel', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionResults) + async def Enqueue(self, actions): + ''' + actions : typing.Sequence[~Action] + Returns -> typing.Sequence[~ActionResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='Enqueue', + version=2, + params=_params) + _params['actions'] = actions + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(FindTagsResults) + async def FindActionTagsByPrefix(self, prefixes): + ''' + prefixes : typing.Sequence[str] + Returns -> typing.Sequence[~Entity] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='FindActionTagsByPrefix', + version=2, + params=_params) + _params['prefixes'] = prefixes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionsByNames) + async def FindActionsByNames(self, names): + ''' + names : typing.Sequence[str] + Returns -> typing.Sequence[~ActionsByName] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='FindActionsByNames', + version=2, + params=_params) + _params['names'] = names + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionsByReceivers) + async def ListAll(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionsByReceiver] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='ListAll', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionsByReceivers) + async def ListCompleted(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionsByReceiver] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='ListCompleted', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionsByReceivers) + async def ListPending(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionsByReceiver] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='ListPending', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionsByReceivers) + async def ListRunning(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionsByReceiver] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='ListRunning', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionResults) + async def Run(self, applications, commands, machines, timeout, units): + ''' + applications : typing.Sequence[str] + commands : str + machines : typing.Sequence[str] + timeout : int + units : typing.Sequence[str] + Returns -> typing.Sequence[~ActionResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='Run', + version=2, + params=_params) + _params['applications'] = applications + _params['commands'] = commands + _params['machines'] = machines + _params['timeout'] = timeout + _params['units'] = units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionResults) + async def RunOnAllMachines(self, applications, commands, machines, timeout, units): + ''' + applications : typing.Sequence[str] + commands : str + machines : typing.Sequence[str] + timeout : int + units : typing.Sequence[str] + Returns -> typing.Sequence[~ActionResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='RunOnAllMachines', + version=2, + params=_params) + _params['applications'] = applications + _params['commands'] = commands + _params['machines'] = machines + _params['timeout'] = timeout + _params['units'] = units + reply = await self.rpc(msg) + return reply + + + +class AgentFacade(Type): + name = 'Agent' + version = 2 + schema = {'definitions': {'AgentGetEntitiesResult': {'additionalProperties': False, + 'properties': {'container-type': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}, + 'jobs': {'items': {'type': 'string'}, + 'type': 'array'}, + 'life': {'type': 'string'}}, + 'required': ['life', + 'jobs', + 'container-type'], + 'type': 'object'}, + 'AgentGetEntitiesResults': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/AgentGetEntitiesResult'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'CloudCredential': {'additionalProperties': False, + 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'auth-type': {'type': 'string'}, + 'redacted': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['auth-type'], + 'type': 'object'}, + 'CloudSpec': {'additionalProperties': False, + 'properties': {'cacertificates': {'items': {'type': 'string'}, + 'type': 'array'}, + 'credential': {'$ref': '#/definitions/CloudCredential'}, + 'endpoint': {'type': 'string'}, + 'identity-endpoint': {'type': 'string'}, + 'name': {'type': 'string'}, + 'region': {'type': 'string'}, + 'storage-endpoint': {'type': 'string'}, + 'type': {'type': 'string'}}, + 'required': ['type', 'name'], + 'type': 'object'}, + 'CloudSpecResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/CloudSpec'}}, + 'type': 'object'}, + 'CloudSpecResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/CloudSpecResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ControllerAPIInfoResult': {'additionalProperties': False, + 'properties': {'addresses': {'items': {'type': 'string'}, + 'type': 'array'}, + 'cacert': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['addresses', + 'cacert'], + 'type': 'object'}, + 'ControllerAPIInfoResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ControllerAPIInfoResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ControllerConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityPassword': {'additionalProperties': False, + 'properties': {'password': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'password'], + 'type': 'object'}, + 'EntityPasswords': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'}, + 'type': 'array'}}, + 'required': ['changes'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'IsMasterResult': {'additionalProperties': False, + 'properties': {'master': {'type': 'boolean'}}, + 'required': ['master'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'ModelConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ModelTag': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StateServingInfo': {'additionalProperties': False, + 'properties': {'api-port': {'type': 'integer'}, + 'ca-private-key': {'type': 'string'}, + 'cert': {'type': 'string'}, + 'controller-api-port': {'type': 'integer'}, + 'private-key': {'type': 'string'}, + 'shared-secret': {'type': 'string'}, + 'state-port': {'type': 'integer'}, + 'system-identity': {'type': 'string'}}, + 'required': ['api-port', + 'state-port', + 'cert', + 'private-key', + 'ca-private-key', + 'shared-secret', + 'system-identity'], + 'type': 'object'}}, + 'properties': {'ClearReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'CloudSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/CloudSpecResults'}}, + 'type': 'object'}, + 'ControllerAPIInfoForModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ControllerAPIInfoResults'}}, + 'type': 'object'}, + 'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}}, + 'type': 'object'}, + 'GetCloudSpec': {'properties': {'Params': {'$ref': '#/definitions/ModelTag'}, + 'Result': {'$ref': '#/definitions/CloudSpecResult'}}, + 'type': 'object'}, + 'GetEntities': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/AgentGetEntitiesResults'}}, + 'type': 'object'}, + 'IsMaster': {'properties': {'Result': {'$ref': '#/definitions/IsMasterResult'}}, + 'type': 'object'}, + 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, + 'type': 'object'}, + 'SetPasswords': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'StateServingInfo': {'properties': {'Result': {'$ref': '#/definitions/StateServingInfo'}}, + 'type': 'object'}, + 'WatchCredentials': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResults) + async def ClearReboot(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Agent', + request='ClearReboot', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(CloudSpecResults) + async def CloudSpec(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~CloudSpecResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Agent', + request='CloudSpec', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ControllerAPIInfoResults) + async def ControllerAPIInfoForModels(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ControllerAPIInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Agent', + request='ControllerAPIInfoForModels', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ControllerConfigResult) + async def ControllerConfig(self): + ''' + + Returns -> typing.Mapping[str, typing.Any] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Agent', + request='ControllerConfig', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(CloudSpecResult) + async def GetCloudSpec(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Agent', + request='GetCloudSpec', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(AgentGetEntitiesResults) + async def GetEntities(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~AgentGetEntitiesResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Agent', + request='GetEntities', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(IsMasterResult) + async def IsMaster(self): + ''' + + Returns -> bool + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Agent', + request='IsMaster', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelConfigResult) + async def ModelConfig(self): + ''' + + Returns -> typing.Mapping[str, typing.Any] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Agent', + request='ModelConfig', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetPasswords(self, changes): + ''' + changes : typing.Sequence[~EntityPassword] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Agent', + request='SetPasswords', + version=2, + params=_params) + _params['changes'] = changes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StateServingInfo) + async def StateServingInfo(self): + ''' + + Returns -> typing.Union[int, str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Agent', + request='StateServingInfo', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchCredentials(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Agent', + request='WatchCredentials', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchForModelConfigChanges(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Agent', + request='WatchForModelConfigChanges', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class AllModelWatcherFacade(Type): + name = 'AllModelWatcher' + version = 2 + schema = {'definitions': {'AllWatcherNextResults': {'additionalProperties': False, + 'properties': {'deltas': {'items': {'$ref': '#/definitions/Delta'}, + 'type': 'array'}}, + 'required': ['deltas'], + 'type': 'object'}, + 'Delta': {'additionalProperties': False, + 'properties': {'entity': {'additionalProperties': True, + 'type': 'object'}, + 'removed': {'type': 'boolean'}}, + 'required': ['removed', 'entity'], + 'type': 'object'}}, + 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherNextResults'}}, + 'type': 'object'}, + 'Stop': {'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(AllWatcherNextResults) + async def Next(self): + ''' + + Returns -> typing.Sequence[~Delta] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='AllModelWatcher', + request='Next', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Stop(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='AllModelWatcher', + request='Stop', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class AnnotationsFacade(Type): + name = 'Annotations' + version = 2 + schema = {'definitions': {'AnnotationsGetResult': {'additionalProperties': False, + 'properties': {'annotations': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'entity': {'type': 'string'}, + 'error': {'$ref': '#/definitions/ErrorResult'}}, + 'required': ['entity', 'annotations'], + 'type': 'object'}, + 'AnnotationsGetResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/AnnotationsGetResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'AnnotationsSet': {'additionalProperties': False, + 'properties': {'annotations': {'items': {'$ref': '#/definitions/EntityAnnotations'}, + 'type': 'array'}}, + 'required': ['annotations'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityAnnotations': {'additionalProperties': False, + 'properties': {'annotations': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'entity': {'type': 'string'}}, + 'required': ['entity', 'annotations'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, + 'properties': {'Get': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/AnnotationsGetResults'}}, + 'type': 'object'}, + 'Set': {'properties': {'Params': {'$ref': '#/definitions/AnnotationsSet'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(AnnotationsGetResults) + async def Get(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~AnnotationsGetResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Annotations', + request='Get', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Set(self, annotations): + ''' + annotations : typing.Sequence[~EntityAnnotations] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Annotations', + request='Set', + version=2, + params=_params) + _params['annotations'] = annotations + reply = await self.rpc(msg) + return reply + + + +class ApplicationFacade(Type): + name = 'Application' + version = 2 + schema = {'definitions': {'AddApplicationUnits': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'num-units': {'type': 'integer'}, + 'placement': {'items': {'$ref': '#/definitions/Placement'}, + 'type': 'array'}}, + 'required': ['application', + 'num-units', + 'placement'], + 'type': 'object'}, + 'AddApplicationUnitsResults': {'additionalProperties': False, + 'properties': {'units': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['units'], + 'type': 'object'}, + 'AddRelation': {'additionalProperties': False, + 'properties': {'endpoints': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['endpoints'], + 'type': 'object'}, + 'AddRelationResults': {'additionalProperties': False, + 'properties': {'endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, + 'type': 'object'}}, + 'required': ['endpoints'], + 'type': 'object'}, + 'ApplicationCharmRelations': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationCharmRelationsResults': {'additionalProperties': False, + 'properties': {'charm-relations': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['charm-relations'], + 'type': 'object'}, + 'ApplicationDeploy': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'channel': {'type': 'string'}, + 'charm-url': {'type': 'string'}, + 'config': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'config-yaml': {'type': 'string'}, + 'constraints': {'$ref': '#/definitions/Value'}, + 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'num-units': {'type': 'integer'}, + 'placement': {'items': {'$ref': '#/definitions/Placement'}, + 'type': 'array'}, + 'resources': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'series': {'type': 'string'}, + 'storage': {'patternProperties': {'.*': {'$ref': '#/definitions/Constraints'}}, + 'type': 'object'}}, + 'required': ['application', + 'series', + 'charm-url', + 'channel', + 'num-units', + 'config-yaml', + 'constraints'], + 'type': 'object'}, + 'ApplicationDestroy': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationExpose': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationGet': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationGetResults': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'charm': {'type': 'string'}, + 'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'constraints': {'$ref': '#/definitions/Value'}, + 'series': {'type': 'string'}}, + 'required': ['application', + 'charm', + 'config', + 'constraints', + 'series'], + 'type': 'object'}, + 'ApplicationMetricCredential': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'metrics-credentials': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['application', + 'metrics-credentials'], + 'type': 'object'}, + 'ApplicationMetricCredentials': {'additionalProperties': False, + 'properties': {'creds': {'items': {'$ref': '#/definitions/ApplicationMetricCredential'}, + 'type': 'array'}}, + 'required': ['creds'], + 'type': 'object'}, + 'ApplicationSet': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'options': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'required': ['application', 'options'], + 'type': 'object'}, + 'ApplicationSetCharm': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'channel': {'type': 'string'}, + 'charm-url': {'type': 'string'}, + 'config-settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'config-settings-yaml': {'type': 'string'}, + 'force-series': {'type': 'boolean'}, + 'force-units': {'type': 'boolean'}, + 'resource-ids': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'storage-constraints': {'patternProperties': {'.*': {'$ref': '#/definitions/StorageConstraints'}}, + 'type': 'object'}}, + 'required': ['application', + 'charm-url', + 'channel', + 'force-units', + 'force-series'], + 'type': 'object'}, + 'ApplicationUnexpose': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationUnset': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'options': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['application', 'options'], + 'type': 'object'}, + 'ApplicationUpdate': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'charm-url': {'type': 'string'}, + 'constraints': {'$ref': '#/definitions/Value'}, + 'force-charm-url': {'type': 'boolean'}, + 'force-series': {'type': 'boolean'}, + 'min-units': {'type': 'integer'}, + 'settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'settings-yaml': {'type': 'string'}}, + 'required': ['application', + 'charm-url', + 'force-charm-url', + 'force-series', + 'settings-yaml'], + 'type': 'object'}, + 'ApplicationsDeploy': {'additionalProperties': False, + 'properties': {'applications': {'items': {'$ref': '#/definitions/ApplicationDeploy'}, + 'type': 'array'}}, + 'required': ['applications'], + 'type': 'object'}, + 'CharmRelation': {'additionalProperties': False, + 'properties': {'interface': {'type': 'string'}, + 'limit': {'type': 'integer'}, + 'name': {'type': 'string'}, + 'optional': {'type': 'boolean'}, + 'role': {'type': 'string'}, + 'scope': {'type': 'string'}}, + 'required': ['name', + 'role', + 'interface', + 'optional', + 'limit', + 'scope'], + 'type': 'object'}, + 'Constraints': {'additionalProperties': False, + 'properties': {'Count': {'type': 'integer'}, + 'Pool': {'type': 'string'}, + 'Size': {'type': 'integer'}}, + 'required': ['Pool', 'Size', 'Count'], + 'type': 'object'}, + 'DestroyApplicationUnits': {'additionalProperties': False, + 'properties': {'unit-names': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['unit-names'], + 'type': 'object'}, + 'DestroyRelation': {'additionalProperties': False, + 'properties': {'endpoints': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['endpoints'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'GetApplicationConstraints': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'GetConstraintsResults': {'additionalProperties': False, + 'properties': {'constraints': {'$ref': '#/definitions/Value'}}, + 'required': ['constraints'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'Placement': {'additionalProperties': False, + 'properties': {'directive': {'type': 'string'}, + 'scope': {'type': 'string'}}, + 'required': ['scope', 'directive'], + 'type': 'object'}, + 'SetConstraints': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'constraints': {'$ref': '#/definitions/Value'}}, + 'required': ['application', 'constraints'], + 'type': 'object'}, + 'StorageConstraints': {'additionalProperties': False, + 'properties': {'count': {'type': 'integer'}, + 'pool': {'type': 'string'}, + 'size': {'type': 'integer'}}, + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'Value': {'additionalProperties': False, + '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': {'items': {'type': 'string'}, + 'type': 'array'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}, + 'virt-type': {'type': 'string'}}, + 'type': 'object'}}, + 'properties': {'AddRelation': {'properties': {'Params': {'$ref': '#/definitions/AddRelation'}, + 'Result': {'$ref': '#/definitions/AddRelationResults'}}, + 'type': 'object'}, + 'AddUnits': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationUnits'}, + 'Result': {'$ref': '#/definitions/AddApplicationUnitsResults'}}, + 'type': 'object'}, + 'CharmRelations': {'properties': {'Params': {'$ref': '#/definitions/ApplicationCharmRelations'}, + 'Result': {'$ref': '#/definitions/ApplicationCharmRelationsResults'}}, + 'type': 'object'}, + 'Deploy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationsDeploy'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationDestroy'}}, + 'type': 'object'}, + 'DestroyRelation': {'properties': {'Params': {'$ref': '#/definitions/DestroyRelation'}}, + 'type': 'object'}, + 'DestroyUnits': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationUnits'}}, + 'type': 'object'}, + 'Expose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationExpose'}}, + 'type': 'object'}, + 'Get': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, + 'Result': {'$ref': '#/definitions/ApplicationGetResults'}}, + 'type': 'object'}, + 'GetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, + 'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'GetConstraints': {'properties': {'Params': {'$ref': '#/definitions/GetApplicationConstraints'}, + 'Result': {'$ref': '#/definitions/GetConstraintsResults'}}, + 'type': 'object'}, + 'Set': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSet'}}, + 'type': 'object'}, + 'SetCharm': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSetCharm'}}, + 'type': 'object'}, + 'SetConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, + 'type': 'object'}, + 'SetMetricCredentials': {'properties': {'Params': {'$ref': '#/definitions/ApplicationMetricCredentials'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Unexpose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnexpose'}}, + 'type': 'object'}, + 'Unset': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnset'}}, + 'type': 'object'}, + 'Update': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUpdate'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(AddRelationResults) + async def AddRelation(self, endpoints): + ''' + endpoints : typing.Sequence[str] + Returns -> typing.Mapping[str, ~CharmRelation] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='AddRelation', + version=2, + params=_params) + _params['endpoints'] = endpoints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(AddApplicationUnitsResults) + async def AddUnits(self, application, num_units, placement): + ''' + application : str + num_units : int + placement : typing.Sequence[~Placement] + Returns -> typing.Sequence[str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='AddUnits', + version=2, + params=_params) + _params['application'] = application + _params['num-units'] = num_units + _params['placement'] = placement + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ApplicationCharmRelationsResults) + async def CharmRelations(self, application): + ''' + application : str + Returns -> typing.Sequence[str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='CharmRelations', + version=2, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Deploy(self, applications): + ''' + applications : typing.Sequence[~ApplicationDeploy] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Deploy', + version=2, + params=_params) + _params['applications'] = applications + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Destroy(self, application): + ''' + application : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Destroy', + version=2, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def DestroyRelation(self, endpoints): + ''' + endpoints : typing.Sequence[str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='DestroyRelation', + version=2, + params=_params) + _params['endpoints'] = endpoints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def DestroyUnits(self, unit_names): + ''' + unit_names : typing.Sequence[str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='DestroyUnits', + version=2, + params=_params) + _params['unit-names'] = unit_names + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Expose(self, application): + ''' + application : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Expose', + version=2, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ApplicationGetResults) + async def Get(self, application): + ''' + application : str + Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Get', + version=2, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def GetCharmURL(self, application): + ''' + application : str + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='GetCharmURL', + version=2, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(GetConstraintsResults) + async def GetConstraints(self, application): + ''' + application : str + Returns -> Value + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='GetConstraints', + version=2, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Set(self, application, options): + ''' + application : str + options : typing.Mapping[str, str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Set', + version=2, + params=_params) + _params['application'] = application + _params['options'] = options + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetCharm(self, application, channel, charm_url, config_settings, config_settings_yaml, force_series, force_units, resource_ids, storage_constraints): + ''' + application : str + channel : str + charm_url : str + config_settings : typing.Mapping[str, str] + config_settings_yaml : str + force_series : bool + force_units : bool + resource_ids : typing.Mapping[str, str] + storage_constraints : typing.Mapping[str, ~StorageConstraints] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='SetCharm', + version=2, + params=_params) + _params['application'] = application + _params['channel'] = channel + _params['charm-url'] = charm_url + _params['config-settings'] = config_settings + _params['config-settings-yaml'] = config_settings_yaml + _params['force-series'] = force_series + _params['force-units'] = force_units + _params['resource-ids'] = resource_ids + _params['storage-constraints'] = storage_constraints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetConstraints(self, application, constraints): + ''' + application : str + constraints : Value + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='SetConstraints', + version=2, + params=_params) + _params['application'] = application + _params['constraints'] = constraints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetMetricCredentials(self, creds): + ''' + creds : typing.Sequence[~ApplicationMetricCredential] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='SetMetricCredentials', + version=2, + params=_params) + _params['creds'] = creds + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Unexpose(self, application): + ''' + application : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Unexpose', + version=2, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Unset(self, application, options): + ''' + application : str + options : typing.Sequence[str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Unset', + version=2, + params=_params) + _params['application'] = application + _params['options'] = options + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Update(self, application, charm_url, constraints, force_charm_url, force_series, min_units, settings, settings_yaml): + ''' + application : str + charm_url : str + constraints : Value + force_charm_url : bool + force_series : bool + min_units : int + settings : typing.Mapping[str, str] + settings_yaml : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Update', + version=2, + params=_params) + _params['application'] = application + _params['charm-url'] = charm_url + _params['constraints'] = constraints + _params['force-charm-url'] = force_charm_url + _params['force-series'] = force_series + _params['min-units'] = min_units + _params['settings'] = settings + _params['settings-yaml'] = settings_yaml + reply = await self.rpc(msg) + return reply + + + +class ApplicationOffersFacade(Type): + name = 'ApplicationOffers' + version = 2 + schema = {'definitions': {'AddApplicationOffer': {'additionalProperties': False, + 'properties': {'application-description': {'type': 'string'}, + 'application-name': {'type': 'string'}, + 'endpoints': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'model-tag': {'type': 'string'}, + 'offer-name': {'type': 'string'}}, + 'required': ['model-tag', + 'offer-name', + 'application-name', + 'application-description', + 'endpoints'], + 'type': 'object'}, + 'AddApplicationOffers': {'additionalProperties': False, + 'properties': {'Offers': {'items': {'$ref': '#/definitions/AddApplicationOffer'}, + 'type': 'array'}}, + 'required': ['Offers'], + 'type': 'object'}, + 'ApplicationOfferAdminDetails': {'additionalProperties': False, + 'properties': {'ApplicationOfferDetails': {'$ref': '#/definitions/ApplicationOfferDetails'}, + 'application-name': {'type': 'string'}, + 'charm-url': {'type': 'string'}, + 'connections': {'items': {'$ref': '#/definitions/OfferConnection'}, + 'type': 'array'}}, + 'required': ['ApplicationOfferDetails', + 'application-name', + 'charm-url'], + 'type': 'object'}, + 'ApplicationOfferDetails': {'additionalProperties': False, + 'properties': {'application-description': {'type': 'string'}, + 'bindings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'}, + 'type': 'array'}, + 'offer-name': {'type': 'string'}, + 'offer-url': {'type': 'string'}, + 'offer-uuid': {'type': 'string'}, + 'source-model-tag': {'type': 'string'}, + 'spaces': {'items': {'$ref': '#/definitions/RemoteSpace'}, + 'type': 'array'}, + 'users': {'items': {'$ref': '#/definitions/OfferUserDetails'}, + 'type': 'array'}}, + 'required': ['source-model-tag', + 'offer-uuid', + 'offer-url', + 'offer-name', + 'application-description'], + 'type': 'object'}, + 'ApplicationOfferResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/ApplicationOfferAdminDetails'}}, + 'type': 'object'}, + 'ApplicationOffersResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationOfferResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ConsumeOfferDetails': {'additionalProperties': False, + 'properties': {'external-controller': {'$ref': '#/definitions/ExternalControllerInfo'}, + 'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'offer': {'$ref': '#/definitions/ApplicationOfferDetails'}}, + 'type': 'object'}, + 'ConsumeOfferDetailsResult': {'additionalProperties': False, + 'properties': {'ConsumeOfferDetails': {'$ref': '#/definitions/ConsumeOfferDetails'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['ConsumeOfferDetails'], + 'type': 'object'}, + 'ConsumeOfferDetailsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ConsumeOfferDetailsResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'DestroyApplicationOffers': {'additionalProperties': False, + 'properties': {'force': {'type': 'boolean'}, + 'offer-urls': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['offer-urls'], + 'type': 'object'}, + 'EndpointFilterAttributes': {'additionalProperties': False, + 'properties': {'interface': {'type': 'string'}, + 'name': {'type': 'string'}, + 'role': {'type': 'string'}}, + 'required': ['role', + 'interface', + 'name'], + 'type': 'object'}, + 'EntityStatus': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'since': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['status', 'info', 'since'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ExternalControllerInfo': {'additionalProperties': False, + 'properties': {'addrs': {'items': {'type': 'string'}, + 'type': 'array'}, + 'ca-cert': {'type': 'string'}, + 'controller-alias': {'type': 'string'}, + 'controller-tag': {'type': 'string'}}, + 'required': ['controller-tag', + 'controller-alias', + 'addrs', + 'ca-cert'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'ModifyOfferAccess': {'additionalProperties': False, + 'properties': {'access': {'type': 'string'}, + 'action': {'type': 'string'}, + 'offer-url': {'type': 'string'}, + 'user-tag': {'type': 'string'}}, + 'required': ['user-tag', + 'action', + 'access', + 'offer-url'], + 'type': 'object'}, + 'ModifyOfferAccessRequest': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyOfferAccess'}, + 'type': 'array'}}, + 'required': ['changes'], + 'type': 'object'}, + 'OfferConnection': {'additionalProperties': False, + 'properties': {'endpoint': {'type': 'string'}, + 'ingress-subnets': {'items': {'type': 'string'}, + 'type': 'array'}, + 'relation-id': {'type': 'integer'}, + 'source-model-tag': {'type': 'string'}, + 'status': {'$ref': '#/definitions/EntityStatus'}, + 'username': {'type': 'string'}}, + 'required': ['source-model-tag', + 'relation-id', + 'username', + 'endpoint', + 'status', + 'ingress-subnets'], + 'type': 'object'}, + 'OfferFilter': {'additionalProperties': False, + 'properties': {'allowed-users': {'items': {'type': 'string'}, + 'type': 'array'}, + 'application-description': {'type': 'string'}, + 'application-name': {'type': 'string'}, + 'application-user': {'type': 'string'}, + 'connected-users': {'items': {'type': 'string'}, + 'type': 'array'}, + 'endpoints': {'items': {'$ref': '#/definitions/EndpointFilterAttributes'}, + 'type': 'array'}, + 'model-name': {'type': 'string'}, + 'offer-name': {'type': 'string'}, + 'owner-name': {'type': 'string'}}, + 'required': ['owner-name', + 'model-name', + 'offer-name', + 'application-name', + 'application-description', + 'application-user', + 'endpoints', + 'connected-users', + 'allowed-users'], + 'type': 'object'}, + 'OfferFilters': {'additionalProperties': False, + 'properties': {'Filters': {'items': {'$ref': '#/definitions/OfferFilter'}, + 'type': 'array'}}, + 'required': ['Filters'], + 'type': 'object'}, + 'OfferURLs': {'additionalProperties': False, + 'properties': {'offer-urls': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'OfferUserDetails': {'additionalProperties': False, + 'properties': {'access': {'type': 'string'}, + 'display-name': {'type': 'string'}, + 'user': {'type': 'string'}}, + 'required': ['user', + 'display-name', + 'access'], + 'type': 'object'}, + 'QueryApplicationOffersResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationOfferAdminDetails'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'RemoteApplicationInfo': {'additionalProperties': False, + 'properties': {'description': {'type': 'string'}, + 'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'}, + 'type': 'array'}, + 'icon-url-path': {'type': 'string'}, + 'model-tag': {'type': 'string'}, + 'name': {'type': 'string'}, + 'offer-url': {'type': 'string'}, + 'source-model-label': {'type': 'string'}}, + 'required': ['model-tag', + 'name', + 'description', + 'offer-url', + 'endpoints', + 'icon-url-path'], + 'type': 'object'}, + 'RemoteApplicationInfoResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/RemoteApplicationInfo'}}, + 'type': 'object'}, + 'RemoteApplicationInfoResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/RemoteApplicationInfoResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'RemoteEndpoint': {'additionalProperties': False, + 'properties': {'interface': {'type': 'string'}, + 'limit': {'type': 'integer'}, + 'name': {'type': 'string'}, + 'role': {'type': 'string'}}, + 'required': ['name', + 'role', + 'interface', + 'limit'], + 'type': 'object'}, + 'RemoteSpace': {'additionalProperties': False, + 'properties': {'cloud-type': {'type': 'string'}, + 'name': {'type': 'string'}, + 'provider-attributes': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'provider-id': {'type': 'string'}, + 'subnets': {'items': {'$ref': '#/definitions/Subnet'}, + 'type': 'array'}}, + 'required': ['cloud-type', + 'name', + 'provider-id', + 'provider-attributes', + 'subnets'], + 'type': 'object'}, + 'Subnet': {'additionalProperties': False, + 'properties': {'cidr': {'type': 'string'}, + 'life': {'type': 'string'}, + 'provider-id': {'type': 'string'}, + 'provider-network-id': {'type': 'string'}, + 'provider-space-id': {'type': 'string'}, + 'space-tag': {'type': 'string'}, + 'status': {'type': 'string'}, + 'vlan-tag': {'type': 'integer'}, + 'zones': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['cidr', + 'vlan-tag', + 'life', + 'space-tag', + 'zones'], + 'type': 'object'}}, + 'properties': {'ApplicationOffers': {'properties': {'Params': {'$ref': '#/definitions/OfferURLs'}, + 'Result': {'$ref': '#/definitions/ApplicationOffersResults'}}, + 'type': 'object'}, + 'DestroyOffers': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationOffers'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'FindApplicationOffers': {'properties': {'Params': {'$ref': '#/definitions/OfferFilters'}, + 'Result': {'$ref': '#/definitions/QueryApplicationOffersResults'}}, + 'type': 'object'}, + 'GetConsumeDetails': {'properties': {'Params': {'$ref': '#/definitions/OfferURLs'}, + 'Result': {'$ref': '#/definitions/ConsumeOfferDetailsResults'}}, + 'type': 'object'}, + 'ListApplicationOffers': {'properties': {'Params': {'$ref': '#/definitions/OfferFilters'}, + 'Result': {'$ref': '#/definitions/QueryApplicationOffersResults'}}, + 'type': 'object'}, + 'ModifyOfferAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyOfferAccessRequest'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Offer': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationOffers'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'RemoteApplicationInfo': {'properties': {'Params': {'$ref': '#/definitions/OfferURLs'}, + 'Result': {'$ref': '#/definitions/RemoteApplicationInfoResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ApplicationOffersResults) + async def ApplicationOffers(self, offer_urls): + ''' + offer_urls : typing.Sequence[str] + Returns -> typing.Sequence[~ApplicationOfferResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ApplicationOffers', + request='ApplicationOffers', + version=2, + params=_params) + _params['offer-urls'] = offer_urls + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def DestroyOffers(self, force, offer_urls): + ''' + force : bool + offer_urls : typing.Sequence[str] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ApplicationOffers', + request='DestroyOffers', + version=2, + params=_params) + _params['force'] = force + _params['offer-urls'] = offer_urls + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(QueryApplicationOffersResults) + async def FindApplicationOffers(self, filters): + ''' + filters : typing.Sequence[~OfferFilter] + Returns -> typing.Sequence[~ApplicationOfferAdminDetails] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ApplicationOffers', + request='FindApplicationOffers', + version=2, + params=_params) + _params['Filters'] = filters + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ConsumeOfferDetailsResults) + async def GetConsumeDetails(self, offer_urls): + ''' + offer_urls : typing.Sequence[str] + Returns -> typing.Sequence[~ConsumeOfferDetailsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ApplicationOffers', + request='GetConsumeDetails', + version=2, + params=_params) + _params['offer-urls'] = offer_urls + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(QueryApplicationOffersResults) + async def ListApplicationOffers(self, filters): + ''' + filters : typing.Sequence[~OfferFilter] + Returns -> typing.Sequence[~ApplicationOfferAdminDetails] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ApplicationOffers', + request='ListApplicationOffers', + version=2, + params=_params) + _params['Filters'] = filters + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def ModifyOfferAccess(self, changes): + ''' + changes : typing.Sequence[~ModifyOfferAccess] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ApplicationOffers', + request='ModifyOfferAccess', + version=2, + params=_params) + _params['changes'] = changes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Offer(self, offers): + ''' + offers : typing.Sequence[~AddApplicationOffer] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ApplicationOffers', + request='Offer', + version=2, + params=_params) + _params['Offers'] = offers + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(RemoteApplicationInfoResults) + async def RemoteApplicationInfo(self, offer_urls): + ''' + offer_urls : typing.Sequence[str] + Returns -> typing.Sequence[~RemoteApplicationInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ApplicationOffers', + request='RemoteApplicationInfo', + version=2, + params=_params) + _params['offer-urls'] = offer_urls + reply = await self.rpc(msg) + return reply + + + +class BackupsFacade(Type): + name = 'Backups' + version = 2 + schema = {'definitions': {'BackupsCreateArgs': {'additionalProperties': False, + 'properties': {'keep-copy': {'type': 'boolean'}, + 'no-download': {'type': 'boolean'}, + 'notes': {'type': 'string'}}, + 'required': ['notes', + 'keep-copy', + 'no-download'], + 'type': 'object'}, + 'BackupsInfoArgs': {'additionalProperties': False, + 'properties': {'id': {'type': 'string'}}, + 'required': ['id'], + 'type': 'object'}, + 'BackupsListArgs': {'additionalProperties': False, + 'type': 'object'}, + 'BackupsListResult': {'additionalProperties': False, + 'properties': {'list': {'items': {'$ref': '#/definitions/BackupsMetadataResult'}, + 'type': 'array'}}, + 'required': ['list'], + 'type': 'object'}, + 'BackupsMetadataResult': {'additionalProperties': False, + 'properties': {'ca-cert': {'type': 'string'}, + 'ca-private-key': {'type': 'string'}, + 'checksum': {'type': 'string'}, + 'checksum-format': {'type': 'string'}, + 'filename': {'type': 'string'}, + 'finished': {'format': 'date-time', + 'type': 'string'}, + 'hostname': {'type': 'string'}, + 'id': {'type': 'string'}, + 'machine': {'type': 'string'}, + 'model': {'type': 'string'}, + 'notes': {'type': 'string'}, + 'series': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'started': {'format': 'date-time', + 'type': 'string'}, + 'stored': {'format': 'date-time', + 'type': 'string'}, + 'version': {'$ref': '#/definitions/Number'}}, + 'required': ['id', + 'checksum', + 'checksum-format', + 'size', + 'stored', + 'started', + 'finished', + 'notes', + 'model', + 'machine', + 'hostname', + 'version', + 'series', + 'ca-cert', + 'ca-private-key', + 'filename'], + 'type': 'object'}, + 'BackupsRemoveArgs': {'additionalProperties': False, + 'properties': {'ids': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['ids'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'Number': {'additionalProperties': False, + 'properties': {'Build': {'type': 'integer'}, + 'Major': {'type': 'integer'}, + 'Minor': {'type': 'integer'}, + 'Patch': {'type': 'integer'}, + 'Tag': {'type': 'string'}}, + 'required': ['Major', + 'Minor', + 'Tag', + 'Patch', + 'Build'], + 'type': 'object'}, + 'RestoreArgs': {'additionalProperties': False, + 'properties': {'backup-id': {'type': 'string'}}, + 'required': ['backup-id'], + 'type': 'object'}}, + 'properties': {'Create': {'properties': {'Params': {'$ref': '#/definitions/BackupsCreateArgs'}, + 'Result': {'$ref': '#/definitions/BackupsMetadataResult'}}, + 'type': 'object'}, + 'FinishRestore': {'type': 'object'}, + 'Info': {'properties': {'Params': {'$ref': '#/definitions/BackupsInfoArgs'}, + 'Result': {'$ref': '#/definitions/BackupsMetadataResult'}}, + 'type': 'object'}, + 'List': {'properties': {'Params': {'$ref': '#/definitions/BackupsListArgs'}, + 'Result': {'$ref': '#/definitions/BackupsListResult'}}, + 'type': 'object'}, + 'PrepareRestore': {'type': 'object'}, + 'Remove': {'properties': {'Params': {'$ref': '#/definitions/BackupsRemoveArgs'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Restore': {'properties': {'Params': {'$ref': '#/definitions/RestoreArgs'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(BackupsMetadataResult) + async def Create(self, notes): + ''' + notes : str + Returns -> typing.Union[str, int, _ForwardRef('Number')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Backups', + request='Create', + version=2, + params=_params) + _params['notes'] = notes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def FinishRestore(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Backups', + request='FinishRestore', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(BackupsMetadataResult) + async def Info(self, id_): + ''' + id_ : str + Returns -> typing.Union[str, int, _ForwardRef('Number')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Backups', + request='Info', + version=2, + params=_params) + _params['id'] = id_ + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(BackupsListResult) + async def List(self): + ''' + + Returns -> typing.Sequence[~BackupsMetadataResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Backups', + request='List', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def PrepareRestore(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Backups', + request='PrepareRestore', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Remove(self, id_): + ''' + id_ : str + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Backups', + request='Remove', + version=2, + params=_params) + _params['id'] = id_ + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Restore(self, backup_id): + ''' + backup_id : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Backups', + request='Restore', + version=2, + params=_params) + _params['backup-id'] = backup_id + reply = await self.rpc(msg) + return reply + + + +class BlockFacade(Type): + name = 'Block' + version = 2 + schema = {'definitions': {'Block': {'additionalProperties': False, + 'properties': {'id': {'type': 'string'}, + 'message': {'type': 'string'}, + 'tag': {'type': 'string'}, + 'type': {'type': 'string'}}, + 'required': ['id', 'tag', 'type'], + 'type': 'object'}, + 'BlockResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/Block'}}, + 'required': ['result'], + 'type': 'object'}, + 'BlockResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/BlockResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'BlockSwitchParams': {'additionalProperties': False, + 'properties': {'message': {'type': 'string'}, + 'type': {'type': 'string'}}, + 'required': ['type'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, + 'properties': {'List': {'properties': {'Result': {'$ref': '#/definitions/BlockResults'}}, + 'type': 'object'}, + 'SwitchBlockOff': {'properties': {'Params': {'$ref': '#/definitions/BlockSwitchParams'}, + 'Result': {'$ref': '#/definitions/ErrorResult'}}, + 'type': 'object'}, + 'SwitchBlockOn': {'properties': {'Params': {'$ref': '#/definitions/BlockSwitchParams'}, + 'Result': {'$ref': '#/definitions/ErrorResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(BlockResults) + async def List(self): + ''' + + Returns -> typing.Sequence[~BlockResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Block', + request='List', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResult) + async def SwitchBlockOff(self, message, type_): + ''' + message : str + type_ : str + Returns -> Error + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Block', + request='SwitchBlockOff', + version=2, + params=_params) + _params['message'] = message + _params['type'] = type_ + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResult) + async def SwitchBlockOn(self, message, type_): + ''' + message : str + type_ : str + Returns -> Error + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Block', + request='SwitchBlockOn', + version=2, + params=_params) + _params['message'] = message + _params['type'] = type_ + reply = await self.rpc(msg) + return reply + + + +class BundleFacade(Type): + name = 'Bundle' + version = 2 + schema = {'definitions': {'BundleChange': {'additionalProperties': False, + 'properties': {'args': {'items': {'additionalProperties': True, + 'type': 'object'}, + 'type': 'array'}, + 'id': {'type': 'string'}, + 'method': {'type': 'string'}, + 'requires': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['id', + 'method', + 'args', + 'requires'], + 'type': 'object'}, + 'BundleChangesParams': {'additionalProperties': False, + 'properties': {'bundleURL': {'type': 'string'}, + 'yaml': {'type': 'string'}}, + 'required': ['yaml', 'bundleURL'], + 'type': 'object'}, + 'BundleChangesResults': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/BundleChange'}, + 'type': 'array'}, + 'errors': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}}, + 'properties': {'ExportBundle': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'GetChanges': {'properties': {'Params': {'$ref': '#/definitions/BundleChangesParams'}, + 'Result': {'$ref': '#/definitions/BundleChangesResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(StringResult) + async def ExportBundle(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Bundle', + request='ExportBundle', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(BundleChangesResults) + async def GetChanges(self, yaml): + ''' + yaml : str + Returns -> typing.Union[typing.Sequence[~BundleChange], typing.Sequence[str]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Bundle', + request='GetChanges', + version=2, + params=_params) + _params['yaml'] = yaml + reply = await self.rpc(msg) + return reply + + + +class CharmRevisionUpdaterFacade(Type): + name = 'CharmRevisionUpdater' + version = 2 + schema = {'definitions': {'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, + 'properties': {'UpdateLatestRevisions': {'properties': {'Result': {'$ref': '#/definitions/ErrorResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResult) + async def UpdateLatestRevisions(self): + ''' + + Returns -> Error + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CharmRevisionUpdater', + request='UpdateLatestRevisions', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class CharmsFacade(Type): + name = 'Charms' + version = 2 + schema = {'definitions': {'CharmActionSpec': {'additionalProperties': False, + 'properties': {'description': {'type': 'string'}, + 'params': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['description', 'params'], + 'type': 'object'}, + 'CharmActions': {'additionalProperties': False, + 'properties': {'specs': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmActionSpec'}}, + 'type': 'object'}}, + 'type': 'object'}, + 'CharmDevice': {'additionalProperties': False, + 'properties': {'CountMax': {'type': 'integer'}, + 'CountMin': {'type': 'integer'}, + 'Description': {'type': 'string'}, + 'Name': {'type': 'string'}, + 'Type': {'type': 'string'}}, + 'required': ['Name', + 'Description', + 'Type', + 'CountMin', + 'CountMax'], + 'type': 'object'}, + 'CharmInfo': {'additionalProperties': False, + 'properties': {'actions': {'$ref': '#/definitions/CharmActions'}, + 'config': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmOption'}}, + 'type': 'object'}, + 'lxd-profile': {'$ref': '#/definitions/CharmLXDProfile'}, + 'meta': {'$ref': '#/definitions/CharmMeta'}, + 'metrics': {'$ref': '#/definitions/CharmMetrics'}, + 'revision': {'type': 'integer'}, + 'url': {'type': 'string'}}, + 'required': ['revision', 'url', 'config'], + 'type': 'object'}, + 'CharmLXDProfile': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'description': {'type': 'string'}, + 'devices': {'patternProperties': {'.*': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config', + 'description', + 'devices'], + 'type': 'object'}, + 'CharmMeta': {'additionalProperties': False, + 'properties': {'categories': {'items': {'type': 'string'}, + 'type': 'array'}, + 'description': {'type': 'string'}, + 'devices': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmDevice'}}, + 'type': 'object'}, + 'extra-bindings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'min-juju-version': {'type': 'string'}, + 'name': {'type': 'string'}, + 'payload-classes': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmPayloadClass'}}, + 'type': 'object'}, + 'peers': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, + 'type': 'object'}, + 'provides': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, + 'type': 'object'}, + 'requires': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, + 'type': 'object'}, + 'resources': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmResourceMeta'}}, + 'type': 'object'}, + 'series': {'items': {'type': 'string'}, + 'type': 'array'}, + 'storage': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmStorage'}}, + 'type': 'object'}, + 'subordinate': {'type': 'boolean'}, + 'summary': {'type': 'string'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}, + 'terms': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['name', + 'summary', + 'description', + 'subordinate'], + 'type': 'object'}, + 'CharmMetric': {'additionalProperties': False, + 'properties': {'description': {'type': 'string'}, + 'type': {'type': 'string'}}, + 'required': ['type', 'description'], + 'type': 'object'}, + 'CharmMetrics': {'additionalProperties': False, + 'properties': {'metrics': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmMetric'}}, + 'type': 'object'}, + 'plan': {'$ref': '#/definitions/CharmPlan'}}, + 'required': ['metrics', 'plan'], + 'type': 'object'}, + 'CharmOption': {'additionalProperties': False, + 'properties': {'default': {'additionalProperties': True, + 'type': 'object'}, + 'description': {'type': 'string'}, + 'type': {'type': 'string'}}, + 'required': ['type'], + 'type': 'object'}, + 'CharmPayloadClass': {'additionalProperties': False, + 'properties': {'name': {'type': 'string'}, + 'type': {'type': 'string'}}, + 'required': ['name', 'type'], + 'type': 'object'}, + 'CharmPlan': {'additionalProperties': False, + 'properties': {'required': {'type': 'boolean'}}, + 'required': ['required'], + 'type': 'object'}, + 'CharmRelation': {'additionalProperties': False, + 'properties': {'interface': {'type': 'string'}, + 'limit': {'type': 'integer'}, + 'name': {'type': 'string'}, + 'optional': {'type': 'boolean'}, + 'role': {'type': 'string'}, + 'scope': {'type': 'string'}}, + 'required': ['name', + 'role', + 'interface', + 'optional', + 'limit', + 'scope'], + 'type': 'object'}, + 'CharmResourceMeta': {'additionalProperties': False, + 'properties': {'description': {'type': 'string'}, + 'name': {'type': 'string'}, + 'path': {'type': 'string'}, + 'type': {'type': 'string'}}, + 'required': ['name', + 'type', + 'path', + 'description'], + 'type': 'object'}, + 'CharmStorage': {'additionalProperties': False, + 'properties': {'count-max': {'type': 'integer'}, + 'count-min': {'type': 'integer'}, + 'description': {'type': 'string'}, + 'location': {'type': 'string'}, + 'minimum-size': {'type': 'integer'}, + 'name': {'type': 'string'}, + 'properties': {'items': {'type': 'string'}, + 'type': 'array'}, + 'read-only': {'type': 'boolean'}, + 'shared': {'type': 'boolean'}, + 'type': {'type': 'string'}}, + 'required': ['name', + 'description', + 'type', + 'shared', + 'read-only', + 'count-min', + 'count-max', + 'minimum-size'], + 'type': 'object'}, + 'CharmURL': {'additionalProperties': False, + 'properties': {'url': {'type': 'string'}}, + 'required': ['url'], + 'type': 'object'}, + 'CharmsList': {'additionalProperties': False, + 'properties': {'names': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['names'], + 'type': 'object'}, + 'CharmsListResult': {'additionalProperties': False, + 'properties': {'charm-urls': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['charm-urls'], + 'type': 'object'}, + 'IsMeteredResult': {'additionalProperties': False, + 'properties': {'metered': {'type': 'boolean'}}, + 'required': ['metered'], + 'type': 'object'}}, + 'properties': {'CharmInfo': {'properties': {'Params': {'$ref': '#/definitions/CharmURL'}, + 'Result': {'$ref': '#/definitions/CharmInfo'}}, + 'type': 'object'}, + 'IsMetered': {'properties': {'Params': {'$ref': '#/definitions/CharmURL'}, + 'Result': {'$ref': '#/definitions/IsMeteredResult'}}, + 'type': 'object'}, + 'List': {'properties': {'Params': {'$ref': '#/definitions/CharmsList'}, + 'Result': {'$ref': '#/definitions/CharmsListResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(CharmInfo) + async def CharmInfo(self, url): + ''' + url : str + Returns -> typing.Union[_ForwardRef('CharmActions'), typing.Mapping[str, ~CharmOption], _ForwardRef('CharmMeta'), _ForwardRef('CharmMetrics'), int, str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Charms', + request='CharmInfo', + version=2, + params=_params) + _params['url'] = url + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(IsMeteredResult) + async def IsMetered(self, url): + ''' + url : str + Returns -> bool + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Charms', + request='IsMetered', + version=2, + params=_params) + _params['url'] = url + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(CharmsListResult) + async def List(self, names): + ''' + names : typing.Sequence[str] + Returns -> typing.Sequence[str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Charms', + request='List', + version=2, + params=_params) + _params['names'] = names + reply = await self.rpc(msg) + return reply + + + +class CleanerFacade(Type): + name = 'Cleaner' + version = 2 + schema = {'definitions': {'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}}, + 'properties': {'Cleanup': {'type': 'object'}, + 'WatchCleanups': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(None) + async def Cleanup(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cleaner', + request='Cleanup', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchCleanups(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cleaner', + request='WatchCleanups', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class ClientFacade(Type): + name = 'Client' + version = 2 + schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, + 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, + 'type': 'array'}, + 'type': 'array'}}, + 'required': ['servers'], + 'type': 'object'}, + 'AddCharm': {'additionalProperties': False, + 'properties': {'channel': {'type': 'string'}, + 'force': {'type': 'boolean'}, + 'url': {'type': 'string'}}, + 'required': ['url', 'channel', 'force'], + 'type': 'object'}, + 'AddCharmWithAuthorization': {'additionalProperties': False, + 'properties': {'channel': {'type': 'string'}, + 'force': {'type': 'boolean'}, + 'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'url': {'type': 'string'}}, + 'required': ['url', + 'channel', + 'macaroon', + 'force'], + 'type': 'object'}, + 'AddMachineParams': {'additionalProperties': False, + 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, + 'type': 'array'}, + 'constraints': {'$ref': '#/definitions/Value'}, + 'container-type': {'type': 'string'}, + 'disks': {'items': {'$ref': '#/definitions/Constraints'}, + 'type': 'array'}, + 'hardware-characteristics': {'$ref': '#/definitions/HardwareCharacteristics'}, + 'instance-id': {'type': 'string'}, + 'jobs': {'items': {'type': 'string'}, + 'type': 'array'}, + 'nonce': {'type': 'string'}, + 'parent-id': {'type': 'string'}, + 'placement': {'$ref': '#/definitions/Placement'}, + 'series': {'type': 'string'}}, + 'required': ['series', + 'constraints', + 'jobs', + 'parent-id', + 'container-type', + 'instance-id', + 'nonce', + 'hardware-characteristics', + 'addresses'], + 'type': 'object'}, + 'AddMachines': {'additionalProperties': False, + 'properties': {'params': {'items': {'$ref': '#/definitions/AddMachineParams'}, + 'type': 'array'}}, + 'required': ['params'], + 'type': 'object'}, + 'AddMachinesResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'machine': {'type': 'string'}}, + 'required': ['machine'], + 'type': 'object'}, + 'AddMachinesResults': {'additionalProperties': False, + 'properties': {'machines': {'items': {'$ref': '#/definitions/AddMachinesResult'}, + 'type': 'array'}}, + 'required': ['machines'], + 'type': 'object'}, + 'Address': {'additionalProperties': False, + 'properties': {'scope': {'type': 'string'}, + 'space-name': {'type': 'string'}, + 'type': {'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['value', 'type', 'scope'], + 'type': 'object'}, + 'AgentVersionResult': {'additionalProperties': False, + 'properties': {'version': {'$ref': '#/definitions/Number'}}, + 'required': ['version'], + 'type': 'object'}, + 'AllWatcherId': {'additionalProperties': False, + 'properties': {'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}, + 'ApplicationOfferStatus': {'additionalProperties': False, + 'properties': {'active-connected-count': {'type': 'integer'}, + 'application-name': {'type': 'string'}, + 'charm': {'type': 'string'}, + 'endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/RemoteEndpoint'}}, + 'type': 'object'}, + 'err': {'additionalProperties': True, + 'type': 'object'}, + 'offer-name': {'type': 'string'}, + 'total-connected-count': {'type': 'integer'}}, + 'required': ['offer-name', + 'application-name', + 'charm', + 'endpoints', + 'active-connected-count', + 'total-connected-count'], + 'type': 'object'}, + 'ApplicationStatus': {'additionalProperties': False, + 'properties': {'can-upgrade-to': {'type': 'string'}, + 'charm': {'type': 'string'}, + 'charm-verion': {'type': 'string'}, + 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'err': {'additionalProperties': True, + 'type': 'object'}, + 'exposed': {'type': 'boolean'}, + 'int': {'type': 'integer'}, + 'life': {'type': 'string'}, + 'meter-statuses': {'patternProperties': {'.*': {'$ref': '#/definitions/MeterStatus'}}, + 'type': 'object'}, + 'provider-id': {'type': 'string'}, + 'public-address': {'type': 'string'}, + 'relations': {'patternProperties': {'.*': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'series': {'type': 'string'}, + 'status': {'$ref': '#/definitions/DetailedStatus'}, + 'string': {'type': 'string'}, + 'subordinate-to': {'items': {'type': 'string'}, + 'type': 'array'}, + 'units': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitStatus'}}, + 'type': 'object'}, + 'workload-version': {'type': 'string'}}, + 'required': ['charm', + 'series', + 'exposed', + 'life', + 'relations', + 'can-upgrade-to', + 'subordinate-to', + 'units', + 'meter-statuses', + 'status', + 'workload-version', + 'charm-verion', + 'endpoint-bindings', + 'public-address'], + 'type': 'object'}, + 'Binary': {'additionalProperties': False, + 'properties': {'Arch': {'type': 'string'}, + 'Number': {'$ref': '#/definitions/Number'}, + 'Series': {'type': 'string'}}, + 'required': ['Number', 'Series', 'Arch'], + 'type': 'object'}, + 'BundleChange': {'additionalProperties': False, + 'properties': {'args': {'items': {'additionalProperties': True, + 'type': 'object'}, + 'type': 'array'}, + 'id': {'type': 'string'}, + 'method': {'type': 'string'}, + 'requires': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['id', + 'method', + 'args', + 'requires'], + 'type': 'object'}, + 'BundleChangesParams': {'additionalProperties': False, + 'properties': {'bundleURL': {'type': 'string'}, + 'yaml': {'type': 'string'}}, + 'required': ['yaml', 'bundleURL'], + 'type': 'object'}, + 'BundleChangesResults': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/BundleChange'}, + 'type': 'array'}, + 'errors': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'BytesResult': {'additionalProperties': False, + 'properties': {'result': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['result'], + 'type': 'object'}, + 'ConfigValue': {'additionalProperties': False, + 'properties': {'source': {'type': 'string'}, + 'value': {'additionalProperties': True, + 'type': 'object'}}, + 'required': ['value', 'source'], + 'type': 'object'}, + 'Constraints': {'additionalProperties': False, + 'properties': {'Count': {'type': 'integer'}, + 'Pool': {'type': 'string'}, + 'Size': {'type': 'integer'}}, + 'required': ['Pool', 'Size', 'Count'], + 'type': 'object'}, + 'DestroyMachines': {'additionalProperties': False, + 'properties': {'force': {'type': 'boolean'}, + 'machine-names': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['machine-names', 'force'], + 'type': 'object'}, + 'DetailedStatus': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'err': {'additionalProperties': True, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'kind': {'type': 'string'}, + 'life': {'type': 'string'}, + 'since': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}, + 'version': {'type': 'string'}}, + 'required': ['status', + 'info', + 'data', + 'since', + 'kind', + 'version', + 'life'], + 'type': 'object'}, + 'EndpointStatus': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'name': {'type': 'string'}, + 'role': {'type': 'string'}, + 'subordinate': {'type': 'boolean'}}, + 'required': ['application', + 'name', + 'role', + 'subordinate'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityStatus': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'since': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['status', 'info', 'since'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'FindToolsParams': {'additionalProperties': False, + 'properties': {'agentstream': {'type': 'string'}, + 'arch': {'type': 'string'}, + 'major': {'type': 'integer'}, + 'minor': {'type': 'integer'}, + 'number': {'$ref': '#/definitions/Number'}, + 'series': {'type': 'string'}}, + 'required': ['number', + 'major', + 'minor', + 'arch', + 'series', + 'agentstream'], + 'type': 'object'}, + 'FindToolsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'list': {'items': {'$ref': '#/definitions/Tools'}, + 'type': 'array'}}, + 'required': ['list'], + 'type': 'object'}, + 'FullStatus': {'additionalProperties': False, + 'properties': {'applications': {'patternProperties': {'.*': {'$ref': '#/definitions/ApplicationStatus'}}, + 'type': 'object'}, + 'controller-timestamp': {'format': 'date-time', + 'type': 'string'}, + 'machines': {'patternProperties': {'.*': {'$ref': '#/definitions/MachineStatus'}}, + 'type': 'object'}, + 'model': {'$ref': '#/definitions/ModelStatusInfo'}, + 'offers': {'patternProperties': {'.*': {'$ref': '#/definitions/ApplicationOfferStatus'}}, + 'type': 'object'}, + 'relations': {'items': {'$ref': '#/definitions/RelationStatus'}, + 'type': 'array'}, + 'remote-applications': {'patternProperties': {'.*': {'$ref': '#/definitions/RemoteApplicationStatus'}}, + 'type': 'object'}}, + 'required': ['model', + 'machines', + 'applications', + 'remote-applications', + 'offers', + 'relations', + 'controller-timestamp'], + 'type': 'object'}, + 'GetConstraintsResults': {'additionalProperties': False, + 'properties': {'constraints': {'$ref': '#/definitions/Value'}}, + 'required': ['constraints'], + 'type': 'object'}, + 'HardwareCharacteristics': {'additionalProperties': False, + 'properties': {'arch': {'type': 'string'}, + 'availability-zone': {'type': 'string'}, + 'cpu-cores': {'type': 'integer'}, + 'cpu-power': {'type': 'integer'}, + 'mem': {'type': 'integer'}, + 'root-disk': {'type': 'integer'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'History': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'statuses': {'items': {'$ref': '#/definitions/DetailedStatus'}, + 'type': 'array'}}, + 'required': ['statuses'], + 'type': 'object'}, + 'HostPort': {'additionalProperties': False, + 'properties': {'Address': {'$ref': '#/definitions/Address'}, + 'port': {'type': 'integer'}}, + 'required': ['Address', 'port'], + 'type': 'object'}, + 'LXDProfile': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'description': {'type': 'string'}, + 'devices': {'patternProperties': {'.*': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config', + 'description', + 'devices'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MachineHardware': {'additionalProperties': False, + 'properties': {'arch': {'type': 'string'}, + 'availability-zone': {'type': 'string'}, + 'cores': {'type': 'integer'}, + 'cpu-power': {'type': 'integer'}, + 'mem': {'type': 'integer'}, + 'root-disk': {'type': 'integer'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'MachineStatus': {'additionalProperties': False, + 'properties': {'agent-status': {'$ref': '#/definitions/DetailedStatus'}, + 'constraints': {'type': 'string'}, + 'containers': {'patternProperties': {'.*': {'$ref': '#/definitions/MachineStatus'}}, + 'type': 'object'}, + 'dns-name': {'type': 'string'}, + 'hardware': {'type': 'string'}, + 'has-vote': {'type': 'boolean'}, + 'id': {'type': 'string'}, + 'instance-id': {'type': 'string'}, + 'instance-status': {'$ref': '#/definitions/DetailedStatus'}, + 'ip-addresses': {'items': {'type': 'string'}, + 'type': 'array'}, + 'jobs': {'items': {'type': 'string'}, + 'type': 'array'}, + 'lxd-profiles': {'patternProperties': {'.*': {'$ref': '#/definitions/LXDProfile'}}, + 'type': 'object'}, + 'network-interfaces': {'patternProperties': {'.*': {'$ref': '#/definitions/NetworkInterface'}}, + 'type': 'object'}, + 'series': {'type': 'string'}, + 'wants-vote': {'type': 'boolean'}}, + 'required': ['agent-status', + 'instance-status', + 'dns-name', + 'instance-id', + 'series', + 'id', + 'containers', + 'constraints', + 'hardware', + 'jobs', + 'has-vote', + 'wants-vote'], + 'type': 'object'}, + 'MeterStatus': {'additionalProperties': False, + 'properties': {'color': {'type': 'string'}, + 'message': {'type': 'string'}}, + 'required': ['color', 'message'], + 'type': 'object'}, + 'ModelConfigResults': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ModelInfo': {'additionalProperties': False, + 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, + 'cloud-credential-tag': {'type': 'string'}, + 'cloud-region': {'type': 'string'}, + 'cloud-tag': {'type': 'string'}, + 'controller-uuid': {'type': 'string'}, + 'default-series': {'type': 'string'}, + 'life': {'type': 'string'}, + 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, + 'type': 'array'}, + 'migration': {'$ref': '#/definitions/ModelMigrationStatus'}, + 'name': {'type': 'string'}, + 'owner-tag': {'type': 'string'}, + 'provider-type': {'type': 'string'}, + 'sla': {'$ref': '#/definitions/ModelSLAInfo'}, + 'status': {'$ref': '#/definitions/EntityStatus'}, + 'type': {'type': 'string'}, + 'users': {'items': {'$ref': '#/definitions/ModelUserInfo'}, + 'type': 'array'}, + 'uuid': {'type': 'string'}}, + 'required': ['name', + 'type', + 'uuid', + 'controller-uuid', + 'cloud-tag', + 'owner-tag', + 'life', + 'users', + 'machines', + 'sla', + 'agent-version'], + 'type': 'object'}, + 'ModelMachineInfo': {'additionalProperties': False, + 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'}, + 'has-vote': {'type': 'boolean'}, + 'id': {'type': 'string'}, + 'instance-id': {'type': 'string'}, + 'message': {'type': 'string'}, + 'status': {'type': 'string'}, + 'wants-vote': {'type': 'boolean'}}, + 'required': ['id'], + 'type': 'object'}, + 'ModelMigrationStatus': {'additionalProperties': False, + 'properties': {'end': {'format': 'date-time', + 'type': 'string'}, + 'start': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['status', 'start'], + 'type': 'object'}, + 'ModelSLA': {'additionalProperties': False, + 'properties': {'ModelSLAInfo': {'$ref': '#/definitions/ModelSLAInfo'}, + 'creds': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['ModelSLAInfo', 'creds'], + 'type': 'object'}, + 'ModelSLAInfo': {'additionalProperties': False, + 'properties': {'level': {'type': 'string'}, + 'owner': {'type': 'string'}}, + 'required': ['level', 'owner'], + 'type': 'object'}, + 'ModelSet': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ModelStatusInfo': {'additionalProperties': False, + 'properties': {'available-version': {'type': 'string'}, + 'cloud-tag': {'type': 'string'}, + 'meter-status': {'$ref': '#/definitions/MeterStatus'}, + 'model-status': {'$ref': '#/definitions/DetailedStatus'}, + 'name': {'type': 'string'}, + 'region': {'type': 'string'}, + 'sla': {'type': 'string'}, + 'type': {'type': 'string'}, + 'version': {'type': 'string'}}, + 'required': ['name', + 'type', + 'cloud-tag', + 'version', + 'available-version', + 'model-status', + 'meter-status', + 'sla'], + 'type': 'object'}, + 'ModelUnset': {'additionalProperties': False, + 'properties': {'keys': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['keys'], + 'type': 'object'}, + 'ModelUserInfo': {'additionalProperties': False, + 'properties': {'access': {'type': 'string'}, + 'display-name': {'type': 'string'}, + 'last-connection': {'format': 'date-time', + 'type': 'string'}, + 'user': {'type': 'string'}}, + 'required': ['user', + 'display-name', + 'last-connection', + 'access'], + 'type': 'object'}, + 'ModelUserInfoResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/ModelUserInfo'}}, + 'type': 'object'}, + 'ModelUserInfoResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ModelUserInfoResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'NetworkInterface': {'additionalProperties': False, + 'properties': {'dns-nameservers': {'items': {'type': 'string'}, + 'type': 'array'}, + 'gateway': {'type': 'string'}, + 'ip-addresses': {'items': {'type': 'string'}, + 'type': 'array'}, + 'is-up': {'type': 'boolean'}, + 'mac-address': {'type': 'string'}, + 'space': {'type': 'string'}}, + 'required': ['ip-addresses', + 'mac-address', + 'is-up'], + 'type': 'object'}, + 'Number': {'additionalProperties': False, + 'properties': {'Build': {'type': 'integer'}, + 'Major': {'type': 'integer'}, + 'Minor': {'type': 'integer'}, + 'Patch': {'type': 'integer'}, + 'Tag': {'type': 'string'}}, + 'required': ['Major', + 'Minor', + 'Tag', + 'Patch', + 'Build'], + 'type': 'object'}, + 'Placement': {'additionalProperties': False, + 'properties': {'directive': {'type': 'string'}, + 'scope': {'type': 'string'}}, + 'required': ['scope', 'directive'], + 'type': 'object'}, + 'PrivateAddress': {'additionalProperties': False, + 'properties': {'target': {'type': 'string'}}, + 'required': ['target'], + 'type': 'object'}, + 'PrivateAddressResults': {'additionalProperties': False, + 'properties': {'private-address': {'type': 'string'}}, + 'required': ['private-address'], + 'type': 'object'}, + 'ProvisioningScriptParams': {'additionalProperties': False, + 'properties': {'data-dir': {'type': 'string'}, + 'disable-package-commands': {'type': 'boolean'}, + 'machine-id': {'type': 'string'}, + 'nonce': {'type': 'string'}}, + 'required': ['machine-id', + 'nonce', + 'data-dir', + 'disable-package-commands'], + 'type': 'object'}, + 'ProvisioningScriptResult': {'additionalProperties': False, + 'properties': {'script': {'type': 'string'}}, + 'required': ['script'], + 'type': 'object'}, + 'PublicAddress': {'additionalProperties': False, + 'properties': {'target': {'type': 'string'}}, + 'required': ['target'], + 'type': 'object'}, + 'PublicAddressResults': {'additionalProperties': False, + 'properties': {'public-address': {'type': 'string'}}, + 'required': ['public-address'], + 'type': 'object'}, + 'RelationStatus': {'additionalProperties': False, + 'properties': {'endpoints': {'items': {'$ref': '#/definitions/EndpointStatus'}, + 'type': 'array'}, + 'id': {'type': 'integer'}, + 'interface': {'type': 'string'}, + 'key': {'type': 'string'}, + 'scope': {'type': 'string'}, + 'status': {'$ref': '#/definitions/DetailedStatus'}}, + 'required': ['id', + 'key', + 'interface', + 'scope', + 'endpoints', + 'status'], + 'type': 'object'}, + 'RemoteApplicationStatus': {'additionalProperties': False, + 'properties': {'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'}, + 'type': 'array'}, + 'err': {'additionalProperties': True, + 'type': 'object'}, + 'life': {'type': 'string'}, + 'offer-name': {'type': 'string'}, + 'offer-url': {'type': 'string'}, + 'relations': {'patternProperties': {'.*': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'status': {'$ref': '#/definitions/DetailedStatus'}}, + 'required': ['offer-url', + 'offer-name', + 'endpoints', + 'life', + 'relations', + 'status'], + 'type': 'object'}, + 'RemoteEndpoint': {'additionalProperties': False, + 'properties': {'interface': {'type': 'string'}, + 'limit': {'type': 'integer'}, + 'name': {'type': 'string'}, + 'role': {'type': 'string'}}, + 'required': ['name', + 'role', + 'interface', + 'limit'], + 'type': 'object'}, + 'ResolveCharmResult': {'additionalProperties': False, + 'properties': {'error': {'type': 'string'}, + 'url': {'type': 'string'}}, + 'type': 'object'}, + 'ResolveCharmResults': {'additionalProperties': False, + 'properties': {'urls': {'items': {'$ref': '#/definitions/ResolveCharmResult'}, + 'type': 'array'}}, + 'required': ['urls'], + 'type': 'object'}, + 'ResolveCharms': {'additionalProperties': False, + 'properties': {'references': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['references'], + 'type': 'object'}, + 'Resolved': {'additionalProperties': False, + 'properties': {'retry': {'type': 'boolean'}, + 'unit-name': {'type': 'string'}}, + 'required': ['unit-name', 'retry'], + 'type': 'object'}, + 'SetConstraints': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'constraints': {'$ref': '#/definitions/Value'}}, + 'required': ['application', 'constraints'], + 'type': 'object'}, + 'SetModelAgentVersion': {'additionalProperties': False, + 'properties': {'force': {'type': 'boolean'}, + 'version': {'$ref': '#/definitions/Number'}}, + 'required': ['version'], + 'type': 'object'}, + 'StatusHistoryFilter': {'additionalProperties': False, + 'properties': {'date': {'format': 'date-time', + 'type': 'string'}, + 'delta': {'type': 'integer'}, + 'exclude': {'items': {'type': 'string'}, + 'type': 'array'}, + 'size': {'type': 'integer'}}, + 'required': ['size', + 'date', + 'delta', + 'exclude'], + 'type': 'object'}, + 'StatusHistoryRequest': {'additionalProperties': False, + 'properties': {'filter': {'$ref': '#/definitions/StatusHistoryFilter'}, + 'historyKind': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'tag': {'type': 'string'}}, + 'required': ['historyKind', + 'size', + 'filter', + 'tag'], + 'type': 'object'}, + 'StatusHistoryRequests': {'additionalProperties': False, + 'properties': {'requests': {'items': {'$ref': '#/definitions/StatusHistoryRequest'}, + 'type': 'array'}}, + 'required': ['requests'], + 'type': 'object'}, + 'StatusHistoryResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'history': {'$ref': '#/definitions/History'}}, + 'required': ['history'], + 'type': 'object'}, + 'StatusHistoryResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StatusHistoryResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StatusParams': {'additionalProperties': False, + 'properties': {'patterns': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['patterns'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'Tools': {'additionalProperties': False, + 'properties': {'sha256': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'url': {'type': 'string'}, + 'version': {'$ref': '#/definitions/Binary'}}, + 'required': ['version', 'url', 'size'], + 'type': 'object'}, + 'UnitStatus': {'additionalProperties': False, + 'properties': {'address': {'type': 'string'}, + 'agent-status': {'$ref': '#/definitions/DetailedStatus'}, + 'charm': {'type': 'string'}, + 'leader': {'type': 'boolean'}, + 'machine': {'type': 'string'}, + 'opened-ports': {'items': {'type': 'string'}, + 'type': 'array'}, + 'provider-id': {'type': 'string'}, + 'public-address': {'type': 'string'}, + 'subordinates': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitStatus'}}, + 'type': 'object'}, + 'workload-status': {'$ref': '#/definitions/DetailedStatus'}, + 'workload-version': {'type': 'string'}}, + 'required': ['agent-status', + 'workload-status', + 'workload-version', + 'machine', + 'opened-ports', + 'public-address', + 'charm', + 'subordinates'], + 'type': 'object'}, + 'Value': {'additionalProperties': False, + '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': {'items': {'type': 'string'}, + 'type': 'array'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}, + 'virt-type': {'type': 'string'}, + 'zones': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}}, + 'properties': {'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, + 'type': 'object'}, + 'AbortCurrentUpgrade': {'type': 'object'}, + 'AddCharm': {'properties': {'Params': {'$ref': '#/definitions/AddCharm'}}, + 'type': 'object'}, + 'AddCharmWithAuthorization': {'properties': {'Params': {'$ref': '#/definitions/AddCharmWithAuthorization'}}, + 'type': 'object'}, + 'AddMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, + 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, + 'type': 'object'}, + 'AddMachinesV2': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, + 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, + 'type': 'object'}, + 'AgentVersion': {'properties': {'Result': {'$ref': '#/definitions/AgentVersionResult'}}, + 'type': 'object'}, + 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, + 'type': 'object'}, + 'DestroyMachines': {'properties': {'Params': {'$ref': '#/definitions/DestroyMachines'}}, + 'type': 'object'}, + 'FindTools': {'properties': {'Params': {'$ref': '#/definitions/FindToolsParams'}, + 'Result': {'$ref': '#/definitions/FindToolsResult'}}, + 'type': 'object'}, + 'FullStatus': {'properties': {'Params': {'$ref': '#/definitions/StatusParams'}, + 'Result': {'$ref': '#/definitions/FullStatus'}}, + 'type': 'object'}, + 'GetBundleChanges': {'properties': {'Params': {'$ref': '#/definitions/BundleChangesParams'}, + 'Result': {'$ref': '#/definitions/BundleChangesResults'}}, + 'type': 'object'}, + 'GetModelConstraints': {'properties': {'Result': {'$ref': '#/definitions/GetConstraintsResults'}}, + 'type': 'object'}, + 'InjectMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, + 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, + 'type': 'object'}, + 'ModelGet': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}}, + 'type': 'object'}, + 'ModelInfo': {'properties': {'Result': {'$ref': '#/definitions/ModelInfo'}}, + 'type': 'object'}, + 'ModelSet': {'properties': {'Params': {'$ref': '#/definitions/ModelSet'}}, + 'type': 'object'}, + 'ModelUnset': {'properties': {'Params': {'$ref': '#/definitions/ModelUnset'}}, + 'type': 'object'}, + 'ModelUserInfo': {'properties': {'Result': {'$ref': '#/definitions/ModelUserInfoResults'}}, + 'type': 'object'}, + 'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/PrivateAddress'}, + 'Result': {'$ref': '#/definitions/PrivateAddressResults'}}, + 'type': 'object'}, + 'ProvisioningScript': {'properties': {'Params': {'$ref': '#/definitions/ProvisioningScriptParams'}, + 'Result': {'$ref': '#/definitions/ProvisioningScriptResult'}}, + 'type': 'object'}, + 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/PublicAddress'}, + 'Result': {'$ref': '#/definitions/PublicAddressResults'}}, + 'type': 'object'}, + 'ResolveCharms': {'properties': {'Params': {'$ref': '#/definitions/ResolveCharms'}, + 'Result': {'$ref': '#/definitions/ResolveCharmResults'}}, + 'type': 'object'}, + 'Resolved': {'properties': {'Params': {'$ref': '#/definitions/Resolved'}}, + 'type': 'object'}, + 'RetryProvisioning': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'SetModelAgentVersion': {'properties': {'Params': {'$ref': '#/definitions/SetModelAgentVersion'}}, + 'type': 'object'}, + 'SetModelConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, + 'type': 'object'}, + 'SetSLALevel': {'properties': {'Params': {'$ref': '#/definitions/ModelSLA'}}, + 'type': 'object'}, + 'StatusHistory': {'properties': {'Params': {'$ref': '#/definitions/StatusHistoryRequests'}, + 'Result': {'$ref': '#/definitions/StatusHistoryResults'}}, + 'type': 'object'}, + 'WatchAll': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherId'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(APIHostPortsResult) + async def APIHostPorts(self): + ''' + + Returns -> typing.Sequence[~HostPort] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='APIHostPorts', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def AbortCurrentUpgrade(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='AbortCurrentUpgrade', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def AddCharm(self, channel, url): + ''' + channel : str + url : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='AddCharm', + version=2, + params=_params) + _params['channel'] = channel + _params['url'] = url + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def AddCharmWithAuthorization(self, channel, macaroon, url): + ''' + channel : str + macaroon : Macaroon + url : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='AddCharmWithAuthorization', + version=2, + params=_params) + _params['channel'] = channel + _params['macaroon'] = macaroon + _params['url'] = url + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(AddMachinesResults) + async def AddMachines(self, params): + ''' + params : typing.Sequence[~AddMachineParams] + Returns -> typing.Sequence[~AddMachinesResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='AddMachines', + version=2, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(AddMachinesResults) + async def AddMachinesV2(self, params): + ''' + params : typing.Sequence[~AddMachineParams] + Returns -> typing.Sequence[~AddMachinesResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='AddMachinesV2', + version=2, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(AgentVersionResult) + async def AgentVersion(self): + ''' + + Returns -> Number + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='AgentVersion', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(BytesResult) + async def CACert(self): + ''' + + Returns -> typing.Sequence[int] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='CACert', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def DestroyMachines(self, force, machine_names): + ''' + force : bool + machine_names : typing.Sequence[str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='DestroyMachines', + version=2, + params=_params) + _params['force'] = force + _params['machine-names'] = machine_names + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(FindToolsResult) + async def FindTools(self, arch, major, minor, number, series): + ''' + arch : str + major : int + minor : int + number : Number + series : str + Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[~Tools]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='FindTools', + version=2, + params=_params) + _params['arch'] = arch + _params['major'] = major + _params['minor'] = minor + _params['number'] = number + _params['series'] = series + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(FullStatus) + async def FullStatus(self, patterns): + ''' + patterns : typing.Sequence[str] + Returns -> typing.Union[typing.Mapping[str, ~ApplicationStatus], str, typing.Mapping[str, ~MachineStatus], _ForwardRef('ModelStatusInfo'), typing.Mapping[str, ~ApplicationOfferStatus], typing.Sequence[~RelationStatus], typing.Mapping[str, ~RemoteApplicationStatus]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='FullStatus', + version=2, + params=_params) + _params['patterns'] = patterns + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(BundleChangesResults) + async def GetBundleChanges(self, yaml): + ''' + yaml : str + Returns -> typing.Union[typing.Sequence[~BundleChange], typing.Sequence[str]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='GetBundleChanges', + version=2, + params=_params) + _params['yaml'] = yaml + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(GetConstraintsResults) + async def GetModelConstraints(self): + ''' + + Returns -> Value + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='GetModelConstraints', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(AddMachinesResults) + async def InjectMachines(self, params): + ''' + params : typing.Sequence[~AddMachineParams] + Returns -> typing.Sequence[~AddMachinesResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='InjectMachines', + version=2, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelConfigResults) + async def ModelGet(self): + ''' + + Returns -> typing.Mapping[str, ~ConfigValue] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='ModelGet', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelInfo) + async def ModelInfo(self): + ''' + + Returns -> typing.Union[_ForwardRef('Number'), str, typing.Sequence[~ModelMachineInfo], _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence[~ModelUserInfo]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='ModelInfo', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def ModelSet(self, config): + ''' + config : typing.Mapping[str, typing.Any] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='ModelSet', + version=2, + params=_params) + _params['config'] = config + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def ModelUnset(self, keys): + ''' + keys : typing.Sequence[str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='ModelUnset', + version=2, + params=_params) + _params['keys'] = keys + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelUserInfoResults) + async def ModelUserInfo(self): + ''' + + Returns -> typing.Sequence[~ModelUserInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='ModelUserInfo', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(PrivateAddressResults) + async def PrivateAddress(self, target): + ''' + target : str + Returns -> str + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='PrivateAddress', + version=2, + params=_params) + _params['target'] = target + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ProvisioningScriptResult) + async def ProvisioningScript(self, data_dir, disable_package_commands, machine_id, nonce): + ''' + data_dir : str + disable_package_commands : bool + machine_id : str + nonce : str + Returns -> str + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='ProvisioningScript', + version=2, + params=_params) + _params['data-dir'] = data_dir + _params['disable-package-commands'] = disable_package_commands + _params['machine-id'] = machine_id + _params['nonce'] = nonce + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(PublicAddressResults) + async def PublicAddress(self, target): + ''' + target : str + Returns -> str + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='PublicAddress', + version=2, + params=_params) + _params['target'] = target + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ResolveCharmResults) + async def ResolveCharms(self, references): + ''' + references : typing.Sequence[str] + Returns -> typing.Sequence[~ResolveCharmResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='ResolveCharms', + version=2, + params=_params) + _params['references'] = references + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Resolved(self, retry, unit_name): + ''' + retry : bool + unit_name : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='Resolved', + version=2, + params=_params) + _params['retry'] = retry + _params['unit-name'] = unit_name + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def RetryProvisioning(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='RetryProvisioning', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def SLALevel(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='SLALevel', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetModelAgentVersion(self, version): + ''' + version : Number + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='SetModelAgentVersion', + version=2, + params=_params) + _params['version'] = version + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetModelConstraints(self, application, constraints): + ''' + application : str + constraints : Value + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='SetModelConstraints', + version=2, + params=_params) + _params['application'] = application + _params['constraints'] = constraints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetSLALevel(self, creds, level): + ''' + creds : typing.Sequence[int] + level : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='SetSLALevel', + version=2, + params=_params) + _params['creds'] = creds + _params['level'] = level + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StatusHistoryResults) + async def StatusHistory(self, requests): + ''' + requests : typing.Sequence[~StatusHistoryRequest] + Returns -> typing.Sequence[~StatusHistoryResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='StatusHistory', + version=2, + params=_params) + _params['requests'] = requests + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(AllWatcherId) + async def WatchAll(self): + ''' + + Returns -> str + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Client', + request='WatchAll', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class CredentialValidatorFacade(Type): + name = 'CredentialValidator' + version = 2 + schema = {'definitions': {'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'InvalidateCredentialArg': {'additionalProperties': False, + 'properties': {'reason': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'ModelCredential': {'additionalProperties': False, + 'properties': {'credential-tag': {'type': 'string'}, + 'exists': {'type': 'boolean'}, + 'model-tag': {'type': 'string'}, + 'valid': {'type': 'boolean'}}, + 'required': ['model-tag', + 'credential-tag'], + 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}}, + 'properties': {'InvalidateModelCredential': {'properties': {'Params': {'$ref': '#/definitions/InvalidateCredentialArg'}, + 'Result': {'$ref': '#/definitions/ErrorResult'}}, + 'type': 'object'}, + 'ModelCredential': {'properties': {'Result': {'$ref': '#/definitions/ModelCredential'}}, + 'type': 'object'}, + 'WatchCredential': {'properties': {'Params': {'$ref': '#/definitions/Entity'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}, + 'WatchModelCredential': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResult) + async def InvalidateModelCredential(self, reason): + ''' + reason : str + Returns -> Error + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CredentialValidator', + request='InvalidateModelCredential', + version=2, + params=_params) + _params['reason'] = reason + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelCredential) + async def ModelCredential(self): + ''' + + Returns -> typing.Union[str, bool] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CredentialValidator', + request='ModelCredential', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchCredential(self, tag): + ''' + tag : str + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CredentialValidator', + request='WatchCredential', + version=2, + params=_params) + _params['tag'] = tag + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchModelCredential(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='CredentialValidator', + request='WatchModelCredential', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class DiscoverSpacesFacade(Type): + name = 'DiscoverSpaces' + version = 2 + schema = {'definitions': {'AddSubnetParams': {'additionalProperties': False, + 'properties': {'provider-network-id': {'type': 'string'}, + 'space-tag': {'type': 'string'}, + 'subnet-provider-id': {'type': 'string'}, + 'subnet-tag': {'type': 'string'}, + 'vlan-tag': {'type': 'integer'}, + 'zones': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['space-tag'], + 'type': 'object'}, + 'AddSubnetsParams': {'additionalProperties': False, + 'properties': {'subnets': {'items': {'$ref': '#/definitions/AddSubnetParams'}, + 'type': 'array'}}, + 'required': ['subnets'], + 'type': 'object'}, + 'CreateSpaceParams': {'additionalProperties': False, + 'properties': {'provider-id': {'type': 'string'}, + 'public': {'type': 'boolean'}, + 'space-tag': {'type': 'string'}, + 'subnet-tags': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['subnet-tags', + 'space-tag', + 'public'], + 'type': 'object'}, + 'CreateSpacesParams': {'additionalProperties': False, + 'properties': {'spaces': {'items': {'$ref': '#/definitions/CreateSpaceParams'}, + 'type': 'array'}}, + 'required': ['spaces'], + 'type': 'object'}, + 'DiscoverSpacesResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ProviderSpace'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ListSubnetsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/Subnet'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'ModelConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ProviderSpace': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'name': {'type': 'string'}, + 'provider-id': {'type': 'string'}, + 'subnets': {'items': {'$ref': '#/definitions/Subnet'}, + 'type': 'array'}}, + 'required': ['name', + 'provider-id', + 'subnets'], + 'type': 'object'}, + 'Subnet': {'additionalProperties': False, + 'properties': {'cidr': {'type': 'string'}, + 'life': {'type': 'string'}, + 'provider-id': {'type': 'string'}, + 'provider-network-id': {'type': 'string'}, + 'provider-space-id': {'type': 'string'}, + 'space-tag': {'type': 'string'}, + 'status': {'type': 'string'}, + 'vlan-tag': {'type': 'integer'}, + 'zones': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['cidr', + 'vlan-tag', + 'life', + 'space-tag', + 'zones'], + 'type': 'object'}, + 'SubnetsFilters': {'additionalProperties': False, + 'properties': {'space-tag': {'type': 'string'}, + 'zone': {'type': 'string'}}, + 'type': 'object'}}, + 'properties': {'AddSubnets': {'properties': {'Params': {'$ref': '#/definitions/AddSubnetsParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'CreateSpaces': {'properties': {'Params': {'$ref': '#/definitions/CreateSpacesParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'ListSpaces': {'properties': {'Result': {'$ref': '#/definitions/DiscoverSpacesResults'}}, + 'type': 'object'}, + 'ListSubnets': {'properties': {'Params': {'$ref': '#/definitions/SubnetsFilters'}, + 'Result': {'$ref': '#/definitions/ListSubnetsResults'}}, + 'type': 'object'}, + 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResults) + async def AddSubnets(self, subnets): + ''' + subnets : typing.Sequence[~AddSubnetParams] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='DiscoverSpaces', + request='AddSubnets', + version=2, + params=_params) + _params['subnets'] = subnets + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def CreateSpaces(self, spaces): + ''' + spaces : typing.Sequence[~CreateSpaceParams] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='DiscoverSpaces', + request='CreateSpaces', + version=2, + params=_params) + _params['spaces'] = spaces + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(DiscoverSpacesResults) + async def ListSpaces(self): + ''' + + Returns -> typing.Sequence[~ProviderSpace] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='DiscoverSpaces', + request='ListSpaces', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ListSubnetsResults) + async def ListSubnets(self, space_tag, zone): + ''' + space_tag : str + zone : str + Returns -> typing.Sequence[~Subnet] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='DiscoverSpaces', + request='ListSubnets', + version=2, + params=_params) + _params['space-tag'] = space_tag + _params['zone'] = zone + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelConfigResult) + async def ModelConfig(self): + ''' + + Returns -> typing.Mapping[str, typing.Any] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='DiscoverSpaces', + request='ModelConfig', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class DiskManagerFacade(Type): + name = 'DiskManager' + version = 2 + schema = {'definitions': {'BlockDevice': {'additionalProperties': False, + 'properties': {'BusAddress': {'type': 'string'}, + 'DeviceLinks': {'items': {'type': 'string'}, + 'type': 'array'}, + 'DeviceName': {'type': 'string'}, + 'FilesystemType': {'type': 'string'}, + 'HardwareId': {'type': 'string'}, + 'InUse': {'type': 'boolean'}, + 'Label': {'type': 'string'}, + 'MountPoint': {'type': 'string'}, + 'Size': {'type': 'integer'}, + 'UUID': {'type': 'string'}, + 'WWN': {'type': 'string'}}, + 'required': ['DeviceName', + 'DeviceLinks', + 'Label', + 'UUID', + 'HardwareId', + 'WWN', + 'BusAddress', + 'Size', + 'FilesystemType', + 'InUse', + 'MountPoint'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MachineBlockDevices': {'additionalProperties': False, + 'properties': {'block-devices': {'items': {'$ref': '#/definitions/BlockDevice'}, + 'type': 'array'}, + 'machine': {'type': 'string'}}, + 'required': ['machine'], + 'type': 'object'}, + 'SetMachineBlockDevices': {'additionalProperties': False, + 'properties': {'machine-block-devices': {'items': {'$ref': '#/definitions/MachineBlockDevices'}, + 'type': 'array'}}, + 'required': ['machine-block-devices'], + 'type': 'object'}}, + 'properties': {'SetMachineBlockDevices': {'properties': {'Params': {'$ref': '#/definitions/SetMachineBlockDevices'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResults) + async def SetMachineBlockDevices(self, machine_block_devices): + ''' + machine_block_devices : typing.Sequence[~MachineBlockDevices] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='DiskManager', + request='SetMachineBlockDevices', + version=2, + params=_params) + _params['machine-block-devices'] = machine_block_devices + reply = await self.rpc(msg) + return reply + + + +class EntityWatcherFacade(Type): + name = 'EntityWatcher' + version = 2 + schema = {'definitions': {'EntitiesWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, + 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/EntitiesWatchResult'}}, + 'type': 'object'}, + 'Stop': {'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(EntitiesWatchResult) + async def Next(self): + ''' + + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='EntityWatcher', + request='Next', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Stop(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='EntityWatcher', + request='Stop', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class FilesystemAttachmentsWatcherFacade(Type): + name = 'FilesystemAttachmentsWatcher' + version = 2 + schema = {'definitions': {'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MachineStorageId': {'additionalProperties': False, + 'properties': {'attachment-tag': {'type': 'string'}, + 'machine-tag': {'type': 'string'}}, + 'required': ['machine-tag', + 'attachment-tag'], + 'type': 'object'}, + 'MachineStorageIdsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/MachineStorageId'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id', + 'changes'], + 'type': 'object'}}, + 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResult'}}, + 'type': 'object'}, + 'Stop': {'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(MachineStorageIdsWatchResult) + async def Next(self): + ''' + + Returns -> typing.Union[typing.Sequence[~MachineStorageId], _ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='FilesystemAttachmentsWatcher', + request='Next', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Stop(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='FilesystemAttachmentsWatcher', + request='Stop', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class HighAvailabilityFacade(Type): + name = 'HighAvailability' + version = 2 + schema = {'definitions': {'Address': {'additionalProperties': False, + 'properties': {'Scope': {'type': 'string'}, + 'SpaceName': {'type': 'string'}, + 'SpaceProviderId': {'type': 'string'}, + 'Type': {'type': 'string'}, + 'Value': {'type': 'string'}}, + 'required': ['Value', + 'Type', + 'Scope', + 'SpaceName', + 'SpaceProviderId'], + 'type': 'object'}, + 'ControllersChangeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/ControllersChanges'}}, + 'required': ['result'], + 'type': 'object'}, + 'ControllersChangeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ControllersChangeResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ControllersChanges': {'additionalProperties': False, + 'properties': {'added': {'items': {'type': 'string'}, + 'type': 'array'}, + 'converted': {'items': {'type': 'string'}, + 'type': 'array'}, + 'demoted': {'items': {'type': 'string'}, + 'type': 'array'}, + 'maintained': {'items': {'type': 'string'}, + 'type': 'array'}, + 'promoted': {'items': {'type': 'string'}, + 'type': 'array'}, + 'removed': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ControllersSpec': {'additionalProperties': False, + 'properties': {'constraints': {'$ref': '#/definitions/Value'}, + 'num-controllers': {'type': 'integer'}, + 'placement': {'items': {'type': 'string'}, + 'type': 'array'}, + 'series': {'type': 'string'}}, + 'required': ['num-controllers'], + 'type': 'object'}, + 'ControllersSpecs': {'additionalProperties': False, + 'properties': {'specs': {'items': {'$ref': '#/definitions/ControllersSpec'}, + 'type': 'array'}}, + 'required': ['specs'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'HAMember': {'additionalProperties': False, + 'properties': {'public-address': {'$ref': '#/definitions/Address'}, + 'series': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'public-address', 'series'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'Member': {'additionalProperties': False, + 'properties': {'Address': {'type': 'string'}, + 'Id': {'type': 'integer'}, + 'Priority': {'type': 'number'}, + 'Tags': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'Votes': {'type': 'integer'}}, + 'required': ['Id', + 'Address', + 'Priority', + 'Tags', + 'Votes'], + 'type': 'object'}, + 'MongoUpgradeResults': {'additionalProperties': False, + 'properties': {'ha-members': {'items': {'$ref': '#/definitions/HAMember'}, + 'type': 'array'}, + 'master': {'$ref': '#/definitions/HAMember'}, + 'rs-members': {'items': {'$ref': '#/definitions/Member'}, + 'type': 'array'}}, + 'required': ['rs-members', + 'master', + 'ha-members'], + 'type': 'object'}, + 'MongoVersion': {'additionalProperties': False, + 'properties': {'engine': {'type': 'string'}, + 'major': {'type': 'integer'}, + 'minor': {'type': 'integer'}, + 'patch': {'type': 'string'}}, + 'required': ['major', + 'minor', + 'patch', + 'engine'], + 'type': 'object'}, + 'ResumeReplicationParams': {'additionalProperties': False, + 'properties': {'members': {'items': {'$ref': '#/definitions/Member'}, + 'type': 'array'}}, + 'required': ['members'], + 'type': 'object'}, + 'UpgradeMongoParams': {'additionalProperties': False, + 'properties': {'target': {'$ref': '#/definitions/MongoVersion'}}, + 'required': ['target'], + 'type': 'object'}, + 'Value': {'additionalProperties': False, + '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': {'items': {'type': 'string'}, + 'type': 'array'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}, + 'virt-type': {'type': 'string'}, + 'zones': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}}, + 'properties': {'EnableHA': {'properties': {'Params': {'$ref': '#/definitions/ControllersSpecs'}, + 'Result': {'$ref': '#/definitions/ControllersChangeResults'}}, + 'type': 'object'}, + 'ResumeHAReplicationAfterUpgrade': {'properties': {'Params': {'$ref': '#/definitions/ResumeReplicationParams'}}, + 'type': 'object'}, + 'StopHAReplicationForUpgrade': {'properties': {'Params': {'$ref': '#/definitions/UpgradeMongoParams'}, + 'Result': {'$ref': '#/definitions/MongoUpgradeResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ControllersChangeResults) + async def EnableHA(self, specs): + ''' + specs : typing.Sequence[~ControllersSpec] + Returns -> typing.Sequence[~ControllersChangeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='HighAvailability', + request='EnableHA', + version=2, + params=_params) + _params['specs'] = specs + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def ResumeHAReplicationAfterUpgrade(self, members): + ''' + members : typing.Sequence[~Member] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='HighAvailability', + request='ResumeHAReplicationAfterUpgrade', + version=2, + params=_params) + _params['members'] = members + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MongoUpgradeResults) + async def StopHAReplicationForUpgrade(self, target): + ''' + target : MongoVersion + Returns -> typing.Union[typing.Sequence[~HAMember], _ForwardRef('HAMember'), typing.Sequence[~Member]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='HighAvailability', + request='StopHAReplicationForUpgrade', + version=2, + params=_params) + _params['target'] = target + reply = await self.rpc(msg) + return reply + + + +class ImageManagerFacade(Type): + name = 'ImageManager' + version = 2 + schema = {'definitions': {'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ImageFilterParams': {'additionalProperties': False, + 'properties': {'images': {'items': {'$ref': '#/definitions/ImageSpec'}, + 'type': 'array'}}, + 'required': ['images'], + 'type': 'object'}, + 'ImageMetadata': {'additionalProperties': False, + 'properties': {'arch': {'type': 'string'}, + 'created': {'format': 'date-time', + 'type': 'string'}, + 'kind': {'type': 'string'}, + 'series': {'type': 'string'}, + 'url': {'type': 'string'}}, + 'required': ['kind', + 'arch', + 'series', + 'url', + 'created'], + 'type': 'object'}, + 'ImageSpec': {'additionalProperties': False, + 'properties': {'arch': {'type': 'string'}, + 'kind': {'type': 'string'}, + 'series': {'type': 'string'}}, + 'required': ['kind', 'arch', 'series'], + 'type': 'object'}, + 'ListImageResult': {'additionalProperties': False, + 'properties': {'result': {'items': {'$ref': '#/definitions/ImageMetadata'}, + 'type': 'array'}}, + 'required': ['result'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, + 'properties': {'DeleteImages': {'properties': {'Params': {'$ref': '#/definitions/ImageFilterParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'ListImages': {'properties': {'Params': {'$ref': '#/definitions/ImageFilterParams'}, + 'Result': {'$ref': '#/definitions/ListImageResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResults) + async def DeleteImages(self, images): + ''' + images : typing.Sequence[~ImageSpec] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ImageManager', + request='DeleteImages', + version=2, + params=_params) + _params['images'] = images + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ListImageResult) + async def ListImages(self, images): + ''' + images : typing.Sequence[~ImageSpec] + Returns -> typing.Sequence[~ImageMetadata] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ImageManager', + request='ListImages', + version=2, + params=_params) + _params['images'] = images + reply = await self.rpc(msg) + return reply + + + +class ImageMetadataFacade(Type): + name = 'ImageMetadata' + version = 2 + schema = {'definitions': {'CloudImageMetadata': {'additionalProperties': False, + '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'}}, + 'required': ['image-id', + 'region', + 'version', + 'series', + 'arch', + 'source', + 'priority'], + 'type': 'object'}, + 'CloudImageMetadataList': {'additionalProperties': False, + 'properties': {'metadata': {'items': {'$ref': '#/definitions/CloudImageMetadata'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ImageMetadataFilter': {'additionalProperties': False, + 'properties': {'arches': {'items': {'type': 'string'}, + 'type': 'array'}, + 'region': {'type': 'string'}, + 'root-storage-type': {'type': 'string'}, + 'series': {'items': {'type': 'string'}, + 'type': 'array'}, + 'stream': {'type': 'string'}, + 'virt-type': {'type': 'string'}}, + 'type': 'object'}, + 'ListCloudImageMetadataResult': {'additionalProperties': False, + 'properties': {'result': {'items': {'$ref': '#/definitions/CloudImageMetadata'}, + 'type': 'array'}}, + 'required': ['result'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MetadataImageIds': {'additionalProperties': False, + 'properties': {'image-ids': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['image-ids'], + 'type': 'object'}, + 'MetadataSaveParams': {'additionalProperties': False, + 'properties': {'metadata': {'items': {'$ref': '#/definitions/CloudImageMetadataList'}, + 'type': 'array'}}, + 'type': 'object'}}, + 'properties': {'Delete': {'properties': {'Params': {'$ref': '#/definitions/MetadataImageIds'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'List': {'properties': {'Params': {'$ref': '#/definitions/ImageMetadataFilter'}, + 'Result': {'$ref': '#/definitions/ListCloudImageMetadataResult'}}, + 'type': 'object'}, + 'Save': {'properties': {'Params': {'$ref': '#/definitions/MetadataSaveParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'UpdateFromPublishedImages': {'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResults) + async def Delete(self, image_ids): + ''' + image_ids : typing.Sequence[str] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ImageMetadata', + request='Delete', + version=2, + params=_params) + _params['image-ids'] = image_ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ListCloudImageMetadataResult) + async def List(self, arches, region, root_storage_type, series, stream, virt_type): + ''' + arches : typing.Sequence[str] + region : str + root_storage_type : str + series : typing.Sequence[str] + stream : str + virt_type : str + Returns -> typing.Sequence[~CloudImageMetadata] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ImageMetadata', + request='List', + version=2, + params=_params) + _params['arches'] = arches + _params['region'] = region + _params['root-storage-type'] = root_storage_type + _params['series'] = series + _params['stream'] = stream + _params['virt-type'] = virt_type + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Save(self, metadata): + ''' + metadata : typing.Sequence[~CloudImageMetadataList] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ImageMetadata', + request='Save', + version=2, + params=_params) + _params['metadata'] = metadata + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def UpdateFromPublishedImages(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ImageMetadata', + request='UpdateFromPublishedImages', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class LeadershipServiceFacade(Type): + name = 'LeadershipService' + version = 2 + schema = {'definitions': {'ApplicationTag': {'additionalProperties': False, + 'properties': {'Name': {'type': 'string'}}, + 'required': ['Name'], + 'type': 'object'}, + 'ClaimLeadershipBulkParams': {'additionalProperties': False, + 'properties': {'params': {'items': {'$ref': '#/definitions/ClaimLeadershipParams'}, + 'type': 'array'}}, + 'required': ['params'], + 'type': 'object'}, + 'ClaimLeadershipBulkResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ClaimLeadershipParams': {'additionalProperties': False, + 'properties': {'application-tag': {'type': 'string'}, + 'duration': {'type': 'number'}, + 'unit-tag': {'type': 'string'}}, + 'required': ['application-tag', + 'unit-tag', + 'duration'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, + 'properties': {'BlockUntilLeadershipReleased': {'properties': {'Params': {'$ref': '#/definitions/ApplicationTag'}, + 'Result': {'$ref': '#/definitions/ErrorResult'}}, + 'type': 'object'}, + 'ClaimLeadership': {'properties': {'Params': {'$ref': '#/definitions/ClaimLeadershipBulkParams'}, + 'Result': {'$ref': '#/definitions/ClaimLeadershipBulkResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResult) + async def BlockUntilLeadershipReleased(self, name): + ''' + name : str + Returns -> Error + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='LeadershipService', + request='BlockUntilLeadershipReleased', + version=2, + params=_params) + _params['Name'] = name + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ClaimLeadershipBulkResults) + async def ClaimLeadership(self, params): + ''' + params : typing.Sequence[~ClaimLeadershipParams] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='LeadershipService', + request='ClaimLeadership', + version=2, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + +class MachineManagerFacade(Type): + name = 'MachineManager' + version = 2 + schema = {'definitions': {'AddMachineParams': {'additionalProperties': False, + 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, + 'type': 'array'}, + 'constraints': {'$ref': '#/definitions/Value'}, + 'container-type': {'type': 'string'}, + 'disks': {'items': {'$ref': '#/definitions/Constraints'}, + 'type': 'array'}, + 'hardware-characteristics': {'$ref': '#/definitions/HardwareCharacteristics'}, + 'instance-id': {'type': 'string'}, + 'jobs': {'items': {'type': 'string'}, + 'type': 'array'}, + 'nonce': {'type': 'string'}, + 'parent-id': {'type': 'string'}, + 'placement': {'$ref': '#/definitions/Placement'}, + 'series': {'type': 'string'}}, + 'required': ['series', + 'constraints', + 'jobs', + 'parent-id', + 'container-type', + 'instance-id', + 'nonce', + 'hardware-characteristics', + 'addresses'], + 'type': 'object'}, + 'AddMachines': {'additionalProperties': False, + 'properties': {'params': {'items': {'$ref': '#/definitions/AddMachineParams'}, + 'type': 'array'}}, + 'required': ['params'], + 'type': 'object'}, + 'AddMachinesResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'machine': {'type': 'string'}}, + 'required': ['machine'], + 'type': 'object'}, + 'AddMachinesResults': {'additionalProperties': False, + 'properties': {'machines': {'items': {'$ref': '#/definitions/AddMachinesResult'}, + 'type': 'array'}}, + 'required': ['machines'], + 'type': 'object'}, + 'Address': {'additionalProperties': False, + 'properties': {'scope': {'type': 'string'}, + 'space-name': {'type': 'string'}, + 'type': {'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['value', 'type', 'scope'], + 'type': 'object'}, + 'Constraints': {'additionalProperties': False, + 'properties': {'Count': {'type': 'integer'}, + 'Pool': {'type': 'string'}, + 'Size': {'type': 'integer'}}, + 'required': ['Pool', 'Size', 'Count'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'HardwareCharacteristics': {'additionalProperties': False, + 'properties': {'arch': {'type': 'string'}, + 'availability-zone': {'type': 'string'}, + 'cpu-cores': {'type': 'integer'}, + 'cpu-power': {'type': 'integer'}, + 'mem': {'type': 'integer'}, + 'root-disk': {'type': 'integer'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'InstanceType': {'additionalProperties': False, + 'properties': {'arches': {'items': {'type': 'string'}, + 'type': 'array'}, + 'cost': {'type': 'integer'}, + 'cpu-cores': {'type': 'integer'}, + 'deprecated': {'type': 'boolean'}, + 'memory': {'type': 'integer'}, + 'name': {'type': 'string'}, + 'root-disk': {'type': 'integer'}, + 'virt-type': {'type': 'string'}}, + 'required': ['arches', 'cpu-cores', 'memory'], + 'type': 'object'}, + 'InstanceTypesResult': {'additionalProperties': False, + 'properties': {'cost-currency': {'type': 'string'}, + 'cost-divisor': {'type': 'integer'}, + 'cost-unit': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}, + 'instance-types': {'items': {'$ref': '#/definitions/InstanceType'}, + 'type': 'array'}}, + 'type': 'object'}, + 'InstanceTypesResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/InstanceTypesResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'ModelInstanceTypesConstraint': {'additionalProperties': False, + 'properties': {'value': {'$ref': '#/definitions/Value'}}, + 'type': 'object'}, + 'ModelInstanceTypesConstraints': {'additionalProperties': False, + 'properties': {'constraints': {'items': {'$ref': '#/definitions/ModelInstanceTypesConstraint'}, + 'type': 'array'}}, + 'required': ['constraints'], + 'type': 'object'}, + 'Placement': {'additionalProperties': False, + 'properties': {'directive': {'type': 'string'}, + 'scope': {'type': 'string'}}, + 'required': ['scope', 'directive'], + 'type': 'object'}, + 'Value': {'additionalProperties': False, + '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': {'items': {'type': 'string'}, + 'type': 'array'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}, + 'virt-type': {'type': 'string'}}, + 'type': 'object'}}, + 'properties': {'AddMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, + 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, + 'type': 'object'}, + 'InstanceTypes': {'properties': {'Params': {'$ref': '#/definitions/ModelInstanceTypesConstraints'}, + 'Result': {'$ref': '#/definitions/InstanceTypesResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(AddMachinesResults) + async def AddMachines(self, params): + ''' + params : typing.Sequence[~AddMachineParams] + Returns -> typing.Sequence[~AddMachinesResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineManager', + request='AddMachines', + version=2, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(InstanceTypesResults) + async def InstanceTypes(self, constraints): + ''' + constraints : typing.Sequence[~ModelInstanceTypesConstraint] + Returns -> typing.Sequence[~InstanceTypesResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineManager', + request='InstanceTypes', + version=2, + params=_params) + _params['constraints'] = constraints + reply = await self.rpc(msg) + return reply + + + +class MetricsAdderFacade(Type): + name = 'MetricsAdder' + version = 2 + schema = {'definitions': {'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'Metric': {'additionalProperties': False, + 'properties': {'key': {'type': 'string'}, + 'labels': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'time': {'format': 'date-time', + 'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['key', 'value', 'time'], + 'type': 'object'}, + 'MetricBatch': {'additionalProperties': False, + 'properties': {'charm-url': {'type': 'string'}, + 'created': {'format': 'date-time', + 'type': 'string'}, + 'metrics': {'items': {'$ref': '#/definitions/Metric'}, + 'type': 'array'}, + 'uuid': {'type': 'string'}}, + 'required': ['uuid', + 'charm-url', + 'created', + 'metrics'], + 'type': 'object'}, + 'MetricBatchParam': {'additionalProperties': False, + 'properties': {'batch': {'$ref': '#/definitions/MetricBatch'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'batch'], + 'type': 'object'}, + 'MetricBatchParams': {'additionalProperties': False, + 'properties': {'batches': {'items': {'$ref': '#/definitions/MetricBatchParam'}, + 'type': 'array'}}, + 'required': ['batches'], + 'type': 'object'}}, + 'properties': {'AddMetricBatches': {'properties': {'Params': {'$ref': '#/definitions/MetricBatchParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResults) + async def AddMetricBatches(self, batches): + ''' + batches : typing.Sequence[~MetricBatchParam] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MetricsAdder', + request='AddMetricBatches', + version=2, + params=_params) + _params['batches'] = batches + reply = await self.rpc(msg) + return reply + + + +class MetricsDebugFacade(Type): + name = 'MetricsDebug' + version = 2 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityMetrics': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'metrics': {'items': {'$ref': '#/definitions/MetricResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MeterStatusParam': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'code'], + 'type': 'object'}, + 'MeterStatusParams': {'additionalProperties': False, + 'properties': {'statues': {'items': {'$ref': '#/definitions/MeterStatusParam'}, + 'type': 'array'}}, + 'required': ['statues'], + 'type': 'object'}, + 'MetricResult': {'additionalProperties': False, + 'properties': {'key': {'type': 'string'}, + 'labels': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'time': {'format': 'date-time', + 'type': 'string'}, + 'unit': {'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['time', + 'key', + 'value', + 'unit', + 'labels'], + 'type': 'object'}, + 'MetricResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/EntityMetrics'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'GetMetrics': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/MetricResults'}}, + 'type': 'object'}, + 'SetMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/MeterStatusParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(MetricResults) + async def GetMetrics(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~EntityMetrics] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MetricsDebug', + request='GetMetrics', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetMeterStatus(self, statues): + ''' + statues : typing.Sequence[~MeterStatusParam] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MetricsDebug', + request='SetMeterStatus', + version=2, + params=_params) + _params['statues'] = statues + reply = await self.rpc(msg) + return reply + + + +class ModelConfigFacade(Type): + name = 'ModelConfig' + version = 2 + schema = {'definitions': {'ConfigValue': {'additionalProperties': False, + 'properties': {'source': {'type': 'string'}, + 'value': {'additionalProperties': True, + 'type': 'object'}}, + 'required': ['value', 'source'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'ModelConfigResults': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ModelSLA': {'additionalProperties': False, + 'properties': {'ModelSLAInfo': {'$ref': '#/definitions/ModelSLAInfo'}, + 'creds': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['ModelSLAInfo', 'creds'], + 'type': 'object'}, + 'ModelSLAInfo': {'additionalProperties': False, + 'properties': {'level': {'type': 'string'}, + 'owner': {'type': 'string'}}, + 'required': ['level', 'owner'], + 'type': 'object'}, + 'ModelSequencesResult': {'additionalProperties': False, + 'properties': {'sequences': {'patternProperties': {'.*': {'type': 'integer'}}, + 'type': 'object'}}, + 'required': ['sequences'], + 'type': 'object'}, + 'ModelSet': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ModelUnset': {'additionalProperties': False, + 'properties': {'keys': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['keys'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}}, + 'properties': {'ModelGet': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}}, + 'type': 'object'}, + 'ModelSet': {'properties': {'Params': {'$ref': '#/definitions/ModelSet'}}, + 'type': 'object'}, + 'ModelUnset': {'properties': {'Params': {'$ref': '#/definitions/ModelUnset'}}, + 'type': 'object'}, + 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'Sequences': {'properties': {'Result': {'$ref': '#/definitions/ModelSequencesResult'}}, + 'type': 'object'}, + 'SetSLALevel': {'properties': {'Params': {'$ref': '#/definitions/ModelSLA'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ModelConfigResults) + async def ModelGet(self): + ''' + + Returns -> typing.Mapping[str, ~ConfigValue] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelConfig', + request='ModelGet', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def ModelSet(self, config): + ''' + config : typing.Mapping[str, typing.Any] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelConfig', + request='ModelSet', + version=2, + params=_params) + _params['config'] = config + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def ModelUnset(self, keys): + ''' + keys : typing.Sequence[str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelConfig', + request='ModelUnset', + version=2, + params=_params) + _params['keys'] = keys + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def SLALevel(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelConfig', + request='SLALevel', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelSequencesResult) + async def Sequences(self): + ''' + + Returns -> typing.Mapping[str, int] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelConfig', + request='Sequences', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetSLALevel(self, creds, level): + ''' + creds : typing.Sequence[int] + level : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelConfig', + request='SetSLALevel', + version=2, + params=_params) + _params['creds'] = creds + _params['level'] = level + reply = await self.rpc(msg) + return reply + + + +class ModelManagerFacade(Type): + name = 'ModelManager' + version = 2 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityStatus': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'since': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['status', 'info', 'since'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MachineHardware': {'additionalProperties': False, + 'properties': {'arch': {'type': 'string'}, + 'availability-zone': {'type': 'string'}, + 'cores': {'type': 'integer'}, + 'cpu-power': {'type': 'integer'}, + 'mem': {'type': 'integer'}, + 'root-disk': {'type': 'integer'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'MapResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['result'], + 'type': 'object'}, + 'MapResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/MapResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Model': {'additionalProperties': False, + 'properties': {'name': {'type': 'string'}, + 'owner-tag': {'type': 'string'}, + 'uuid': {'type': 'string'}}, + 'required': ['name', 'uuid', 'owner-tag'], + 'type': 'object'}, + 'ModelCreateArgs': {'additionalProperties': False, + 'properties': {'cloud-tag': {'type': 'string'}, + 'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'credential': {'type': 'string'}, + 'name': {'type': 'string'}, + 'owner-tag': {'type': 'string'}, + 'region': {'type': 'string'}}, + 'required': ['name', 'owner-tag'], + 'type': 'object'}, + 'ModelDefaultValues': {'additionalProperties': False, + 'properties': {'cloud-region': {'type': 'string'}, + 'cloud-tag': {'type': 'string'}, + 'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ModelDefaults': {'additionalProperties': False, + 'properties': {'controller': {'additionalProperties': True, + 'type': 'object'}, + 'default': {'additionalProperties': True, + 'type': 'object'}, + 'regions': {'items': {'$ref': '#/definitions/RegionDefaults'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ModelDefaultsResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ModelDefaults'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ModelInfo': {'additionalProperties': False, + 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, + 'cloud-credential-tag': {'type': 'string'}, + 'cloud-region': {'type': 'string'}, + 'cloud-tag': {'type': 'string'}, + 'controller-uuid': {'type': 'string'}, + 'default-series': {'type': 'string'}, + 'life': {'type': 'string'}, + 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, + 'type': 'array'}, + 'migration': {'$ref': '#/definitions/ModelMigrationStatus'}, + 'name': {'type': 'string'}, + 'owner-tag': {'type': 'string'}, + 'provider-type': {'type': 'string'}, + 'sla': {'$ref': '#/definitions/ModelSLAInfo'}, + 'status': {'$ref': '#/definitions/EntityStatus'}, + 'users': {'items': {'$ref': '#/definitions/ModelUserInfo'}, + 'type': 'array'}, + 'uuid': {'type': 'string'}}, + 'required': ['name', + 'uuid', + 'controller-uuid', + 'cloud-tag', + 'owner-tag', + 'life', + 'users', + 'machines', + 'sla', + 'agent-version'], + 'type': 'object'}, + 'ModelInfoResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/ModelInfo'}}, + 'type': 'object'}, + 'ModelInfoResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ModelInfoResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ModelMachineInfo': {'additionalProperties': False, + 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'}, + 'has-vote': {'type': 'boolean'}, + 'id': {'type': 'string'}, + 'instance-id': {'type': 'string'}, + 'status': {'type': 'string'}, + 'wants-vote': {'type': 'boolean'}}, + 'required': ['id'], + 'type': 'object'}, + 'ModelMigrationStatus': {'additionalProperties': False, + 'properties': {'end': {'format': 'date-time', + 'type': 'string'}, + 'start': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['status', 'start'], + 'type': 'object'}, + 'ModelSLAInfo': {'additionalProperties': False, + 'properties': {'level': {'type': 'string'}, + 'owner': {'type': 'string'}}, + 'required': ['level', 'owner'], + 'type': 'object'}, + 'ModelStatus': {'additionalProperties': False, + 'properties': {'application-count': {'type': 'integer'}, + 'hosted-machine-count': {'type': 'integer'}, + 'life': {'type': 'string'}, + 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, + 'type': 'array'}, + 'model-tag': {'type': 'string'}, + 'owner-tag': {'type': 'string'}}, + 'required': ['model-tag', + 'life', + 'hosted-machine-count', + 'application-count', + 'owner-tag'], + 'type': 'object'}, + 'ModelStatusResults': {'additionalProperties': False, + 'properties': {'models': {'items': {'$ref': '#/definitions/ModelStatus'}, + 'type': 'array'}}, + 'required': ['models'], + 'type': 'object'}, + 'ModelUnsetKeys': {'additionalProperties': False, + 'properties': {'cloud-region': {'type': 'string'}, + 'cloud-tag': {'type': 'string'}, + 'keys': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['keys'], + 'type': 'object'}, + 'ModelUserInfo': {'additionalProperties': False, + 'properties': {'access': {'type': 'string'}, + 'display-name': {'type': 'string'}, + 'last-connection': {'format': 'date-time', + 'type': 'string'}, + 'user': {'type': 'string'}}, + 'required': ['user', + 'display-name', + 'last-connection', + 'access'], + 'type': 'object'}, + 'ModifyModelAccess': {'additionalProperties': False, + 'properties': {'access': {'type': 'string'}, + 'action': {'type': 'string'}, + 'model-tag': {'type': 'string'}, + 'user-tag': {'type': 'string'}}, + 'required': ['user-tag', + 'action', + 'access', + 'model-tag'], + 'type': 'object'}, + 'ModifyModelAccessRequest': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyModelAccess'}, + 'type': 'array'}}, + 'required': ['changes'], + 'type': 'object'}, + 'Number': {'additionalProperties': False, + 'properties': {'Build': {'type': 'integer'}, + 'Major': {'type': 'integer'}, + 'Minor': {'type': 'integer'}, + 'Patch': {'type': 'integer'}, + 'Tag': {'type': 'string'}}, + 'required': ['Major', + 'Minor', + 'Tag', + 'Patch', + 'Build'], + 'type': 'object'}, + 'RegionDefaults': {'additionalProperties': False, + 'properties': {'region-name': {'type': 'string'}, + 'value': {'additionalProperties': True, + 'type': 'object'}}, + 'required': ['region-name', 'value'], + 'type': 'object'}, + 'SetModelDefaults': {'additionalProperties': False, + 'properties': {'config': {'items': {'$ref': '#/definitions/ModelDefaultValues'}, + 'type': 'array'}}, + 'required': ['config'], + 'type': 'object'}, + 'UnsetModelDefaults': {'additionalProperties': False, + 'properties': {'keys': {'items': {'$ref': '#/definitions/ModelUnsetKeys'}, + 'type': 'array'}}, + 'required': ['keys'], + 'type': 'object'}, + 'UserModel': {'additionalProperties': False, + 'properties': {'last-connection': {'format': 'date-time', + 'type': 'string'}, + 'model': {'$ref': '#/definitions/Model'}}, + 'required': ['model', 'last-connection'], + 'type': 'object'}, + 'UserModelList': {'additionalProperties': False, + 'properties': {'user-models': {'items': {'$ref': '#/definitions/UserModel'}, + 'type': 'array'}}, + 'required': ['user-models'], + 'type': 'object'}}, + 'properties': {'CreateModel': {'properties': {'Params': {'$ref': '#/definitions/ModelCreateArgs'}, + 'Result': {'$ref': '#/definitions/ModelInfo'}}, + 'type': 'object'}, + 'DestroyModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'DumpModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/MapResults'}}, + 'type': 'object'}, + 'DumpModelsDB': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/MapResults'}}, + 'type': 'object'}, + 'ListModels': {'properties': {'Params': {'$ref': '#/definitions/Entity'}, + 'Result': {'$ref': '#/definitions/UserModelList'}}, + 'type': 'object'}, + 'ModelDefaults': {'properties': {'Result': {'$ref': '#/definitions/ModelDefaultsResult'}}, + 'type': 'object'}, + 'ModelInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ModelInfoResults'}}, + 'type': 'object'}, + 'ModelStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ModelStatusResults'}}, + 'type': 'object'}, + 'ModifyModelAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyModelAccessRequest'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetModelDefaults': {'properties': {'Params': {'$ref': '#/definitions/SetModelDefaults'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'UnsetModelDefaults': {'properties': {'Params': {'$ref': '#/definitions/UnsetModelDefaults'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ModelInfo) + async def CreateModel(self, cloud_tag, config, credential, name, owner_tag, region): + ''' + cloud_tag : str + config : typing.Mapping[str, typing.Any] + credential : str + name : str + owner_tag : str + region : str + Returns -> typing.Union[_ForwardRef('Number'), str, typing.Sequence[~ModelMachineInfo], _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence[~ModelUserInfo]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='CreateModel', + version=2, + params=_params) + _params['cloud-tag'] = cloud_tag + _params['config'] = config + _params['credential'] = credential + _params['name'] = name + _params['owner-tag'] = owner_tag + _params['region'] = region + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def DestroyModels(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='DestroyModels', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MapResults) + async def DumpModels(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MapResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='DumpModels', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MapResults) + async def DumpModelsDB(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MapResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='DumpModelsDB', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(UserModelList) + async def ListModels(self, tag): + ''' + tag : str + Returns -> typing.Sequence[~UserModel] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='ListModels', + version=2, + params=_params) + _params['tag'] = tag + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelDefaultsResult) + async def ModelDefaults(self): + ''' + + Returns -> typing.Mapping[str, ~ModelDefaults] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='ModelDefaults', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelInfoResults) + async def ModelInfo(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ModelInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='ModelInfo', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelStatusResults) + async def ModelStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ModelStatus] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='ModelStatus', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def ModifyModelAccess(self, changes): + ''' + changes : typing.Sequence[~ModifyModelAccess] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='ModifyModelAccess', + version=2, + params=_params) + _params['changes'] = changes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetModelDefaults(self, config): + ''' + config : typing.Sequence[~ModelDefaultValues] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='SetModelDefaults', + version=2, + params=_params) + _params['config'] = config + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def UnsetModelDefaults(self, keys): + ''' + keys : typing.Sequence[~ModelUnsetKeys] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='UnsetModelDefaults', + version=2, + params=_params) + _params['keys'] = keys + reply = await self.rpc(msg) + return reply + + + +class ProxyUpdaterFacade(Type): + name = 'ProxyUpdater' + version = 2 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ProxyConfig': {'additionalProperties': False, + 'properties': {'ftp': {'type': 'string'}, + 'http': {'type': 'string'}, + 'https': {'type': 'string'}, + 'no-proxy': {'type': 'string'}}, + 'required': ['http', + 'https', + 'ftp', + 'no-proxy'], + 'type': 'object'}, + 'ProxyConfigResult': {'additionalProperties': False, + 'properties': {'apt-proxy-settings': {'$ref': '#/definitions/ProxyConfig'}, + 'error': {'$ref': '#/definitions/Error'}, + 'juju-proxy-settings': {'$ref': '#/definitions/ProxyConfig'}, + 'legacy-proxy-settings': {'$ref': '#/definitions/ProxyConfig'}, + 'snap-proxy-settings': {'$ref': '#/definitions/ProxyConfig'}, + 'snap-store-assertions': {'type': 'string'}, + 'snap-store-id': {'type': 'string'}}, + 'required': ['legacy-proxy-settings', + 'juju-proxy-settings'], + 'type': 'object'}, + 'ProxyConfigResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ProxyConfigResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'ProxyConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ProxyConfigResults'}}, + 'type': 'object'}, + 'WatchForProxyConfigAndAPIHostPortChanges': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ProxyConfigResults) + async def ProxyConfig(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ProxyConfigResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ProxyUpdater', + request='ProxyConfig', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchForProxyConfigAndAPIHostPortChanges(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ProxyUpdater', + request='WatchForProxyConfigAndAPIHostPortChanges', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class RebootFacade(Type): + name = 'Reboot' + version = 2 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'RebootActionResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'type': 'object'}, + 'RebootActionResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/RebootActionResult'}, + 'type': 'array'}}, + 'type': 'object'}}, + 'properties': {'ClearReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'GetRebootAction': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/RebootActionResults'}}, + 'type': 'object'}, + 'RequestReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'WatchForRebootEvent': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResults) + async def ClearReboot(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Reboot', + request='ClearReboot', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(RebootActionResults) + async def GetRebootAction(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~RebootActionResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Reboot', + request='GetRebootAction', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def RequestReboot(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Reboot', + request='RequestReboot', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchForRebootEvent(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Reboot', + request='WatchForRebootEvent', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class ResumerFacade(Type): + name = 'Resumer' + version = 2 + schema = {'properties': {'ResumeTransactions': {'type': 'object'}}, 'type': 'object'} + + + @ReturnMapping(None) + async def ResumeTransactions(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Resumer', + request='ResumeTransactions', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class SSHClientFacade(Type): + name = 'SSHClient' + version = 2 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'SSHAddressResult': {'additionalProperties': False, + 'properties': {'address': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'SSHAddressResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/SSHAddressResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'SSHAddressesResult': {'additionalProperties': False, + 'properties': {'addresses': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['addresses'], + 'type': 'object'}, + 'SSHAddressesResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/SSHAddressesResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'SSHProxyResult': {'additionalProperties': False, + 'properties': {'use-proxy': {'type': 'boolean'}}, + 'required': ['use-proxy'], + 'type': 'object'}, + 'SSHPublicKeysResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'public-keys': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'SSHPublicKeysResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/SSHPublicKeysResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'AllAddresses': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/SSHAddressesResults'}}, + 'type': 'object'}, + 'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/SSHAddressResults'}}, + 'type': 'object'}, + 'Proxy': {'properties': {'Result': {'$ref': '#/definitions/SSHProxyResult'}}, + 'type': 'object'}, + 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/SSHAddressResults'}}, + 'type': 'object'}, + 'PublicKeys': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/SSHPublicKeysResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(SSHAddressesResults) + async def AllAddresses(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~SSHAddressesResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='SSHClient', + request='AllAddresses', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(SSHAddressResults) + async def PrivateAddress(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~SSHAddressResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='SSHClient', + request='PrivateAddress', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(SSHProxyResult) + async def Proxy(self): + ''' + + Returns -> bool + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='SSHClient', + request='Proxy', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(SSHAddressResults) + async def PublicAddress(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~SSHAddressResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='SSHClient', + request='PublicAddress', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(SSHPublicKeysResults) + async def PublicKeys(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~SSHPublicKeysResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='SSHClient', + request='PublicKeys', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class SingularFacade(Type): + name = 'Singular' + version = 2 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'SingularClaim': {'additionalProperties': False, + 'properties': {'claimant-tag': {'type': 'string'}, + 'duration': {'type': 'integer'}, + 'entity-tag': {'type': 'string'}}, + 'required': ['entity-tag', + 'claimant-tag', + 'duration'], + 'type': 'object'}, + 'SingularClaims': {'additionalProperties': False, + 'properties': {'claims': {'items': {'$ref': '#/definitions/SingularClaim'}, + 'type': 'array'}}, + 'required': ['claims'], + 'type': 'object'}}, + 'properties': {'Claim': {'properties': {'Params': {'$ref': '#/definitions/SingularClaims'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Wait': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResults) + async def Claim(self, claims): + ''' + claims : typing.Sequence[~SingularClaim] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Singular', + request='Claim', + version=2, + params=_params) + _params['claims'] = claims + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Wait(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Singular', + request='Wait', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class SpacesFacade(Type): + name = 'Spaces' + version = 2 + schema = {'definitions': {'CreateSpaceParams': {'additionalProperties': False, + 'properties': {'provider-id': {'type': 'string'}, + 'public': {'type': 'boolean'}, + 'space-tag': {'type': 'string'}, + 'subnet-tags': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['subnet-tags', + 'space-tag', + 'public'], + 'type': 'object'}, + 'CreateSpacesParams': {'additionalProperties': False, + 'properties': {'spaces': {'items': {'$ref': '#/definitions/CreateSpaceParams'}, + 'type': 'array'}}, + 'required': ['spaces'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ListSpacesResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/Space'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'Space': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'name': {'type': 'string'}, + 'subnets': {'items': {'$ref': '#/definitions/Subnet'}, + 'type': 'array'}}, + 'required': ['name', 'subnets'], + 'type': 'object'}, + 'Subnet': {'additionalProperties': False, + 'properties': {'cidr': {'type': 'string'}, + 'life': {'type': 'string'}, + 'provider-id': {'type': 'string'}, + 'provider-network-id': {'type': 'string'}, + 'provider-space-id': {'type': 'string'}, + 'space-tag': {'type': 'string'}, + 'status': {'type': 'string'}, + 'vlan-tag': {'type': 'integer'}, + 'zones': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['cidr', + 'vlan-tag', + 'life', + 'space-tag', + 'zones'], + 'type': 'object'}}, + 'properties': {'CreateSpaces': {'properties': {'Params': {'$ref': '#/definitions/CreateSpacesParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'ListSpaces': {'properties': {'Result': {'$ref': '#/definitions/ListSpacesResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResults) + async def CreateSpaces(self, spaces): + ''' + spaces : typing.Sequence[~CreateSpaceParams] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Spaces', + request='CreateSpaces', + version=2, + params=_params) + _params['spaces'] = spaces + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ListSpacesResults) + async def ListSpaces(self): + ''' + + Returns -> typing.Sequence[~Space] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Spaces', + request='ListSpaces', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class StatusHistoryFacade(Type): + name = 'StatusHistory' + version = 2 + schema = {'definitions': {'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'ModelConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'StatusHistoryPruneArgs': {'additionalProperties': False, + 'properties': {'max-history-mb': {'type': 'integer'}, + 'max-history-time': {'type': 'integer'}}, + 'required': ['max-history-time', + 'max-history-mb'], + 'type': 'object'}}, + 'properties': {'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, + 'type': 'object'}, + 'Prune': {'properties': {'Params': {'$ref': '#/definitions/StatusHistoryPruneArgs'}}, + 'type': 'object'}, + 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ModelConfigResult) + async def ModelConfig(self): + ''' + + Returns -> typing.Mapping[str, typing.Any] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StatusHistory', + request='ModelConfig', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Prune(self, max_history_mb, max_history_time): + ''' + max_history_mb : int + max_history_time : int + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StatusHistory', + request='Prune', + version=2, + params=_params) + _params['max-history-mb'] = max_history_mb + _params['max-history-time'] = max_history_time + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchForModelConfigChanges(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StatusHistory', + request='WatchForModelConfigChanges', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class SubnetsFacade(Type): + name = 'Subnets' + version = 2 + schema = {'definitions': {'AddSubnetParams': {'additionalProperties': False, + 'properties': {'provider-network-id': {'type': 'string'}, + 'space-tag': {'type': 'string'}, + 'subnet-provider-id': {'type': 'string'}, + 'subnet-tag': {'type': 'string'}, + 'vlan-tag': {'type': 'integer'}, + 'zones': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['space-tag'], + 'type': 'object'}, + 'AddSubnetsParams': {'additionalProperties': False, + 'properties': {'subnets': {'items': {'$ref': '#/definitions/AddSubnetParams'}, + 'type': 'array'}}, + 'required': ['subnets'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ListSubnetsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/Subnet'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'SpaceResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'SpaceResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/SpaceResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Subnet': {'additionalProperties': False, + 'properties': {'cidr': {'type': 'string'}, + 'life': {'type': 'string'}, + 'provider-id': {'type': 'string'}, + 'provider-network-id': {'type': 'string'}, + 'provider-space-id': {'type': 'string'}, + 'space-tag': {'type': 'string'}, + 'status': {'type': 'string'}, + 'vlan-tag': {'type': 'integer'}, + 'zones': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['cidr', + 'vlan-tag', + 'life', + 'space-tag', + 'zones'], + 'type': 'object'}, + 'SubnetsFilters': {'additionalProperties': False, + 'properties': {'space-tag': {'type': 'string'}, + 'zone': {'type': 'string'}}, + 'type': 'object'}, + 'ZoneResult': {'additionalProperties': False, + 'properties': {'available': {'type': 'boolean'}, + 'error': {'$ref': '#/definitions/Error'}, + 'name': {'type': 'string'}}, + 'required': ['name', 'available'], + 'type': 'object'}, + 'ZoneResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ZoneResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'AddSubnets': {'properties': {'Params': {'$ref': '#/definitions/AddSubnetsParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'AllSpaces': {'properties': {'Result': {'$ref': '#/definitions/SpaceResults'}}, + 'type': 'object'}, + 'AllZones': {'properties': {'Result': {'$ref': '#/definitions/ZoneResults'}}, + 'type': 'object'}, + 'ListSubnets': {'properties': {'Params': {'$ref': '#/definitions/SubnetsFilters'}, + 'Result': {'$ref': '#/definitions/ListSubnetsResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResults) + async def AddSubnets(self, subnets): + ''' + subnets : typing.Sequence[~AddSubnetParams] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Subnets', + request='AddSubnets', + version=2, + params=_params) + _params['subnets'] = subnets + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(SpaceResults) + async def AllSpaces(self): + ''' + + Returns -> typing.Sequence[~SpaceResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Subnets', + request='AllSpaces', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ZoneResults) + async def AllZones(self): + ''' + + Returns -> typing.Sequence[~ZoneResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Subnets', + request='AllZones', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ListSubnetsResults) + async def ListSubnets(self, space_tag, zone): + ''' + space_tag : str + zone : str + Returns -> typing.Sequence[~Subnet] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Subnets', + request='ListSubnets', + version=2, + params=_params) + _params['space-tag'] = space_tag + _params['zone'] = zone + reply = await self.rpc(msg) + return reply + + + +class UserManagerFacade(Type): + name = 'UserManager' + version = 2 + schema = {'definitions': {'AddUser': {'additionalProperties': False, + 'properties': {'display-name': {'type': 'string'}, + 'password': {'type': 'string'}, + 'username': {'type': 'string'}}, + 'required': ['username', 'display-name'], + 'type': 'object'}, + 'AddUserResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'secret-key': {'items': {'type': 'integer'}, + 'type': 'array'}, + 'tag': {'type': 'string'}}, + 'type': 'object'}, + 'AddUserResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/AddUserResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'AddUsers': {'additionalProperties': False, + 'properties': {'users': {'items': {'$ref': '#/definitions/AddUser'}, + 'type': 'array'}}, + 'required': ['users'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityPassword': {'additionalProperties': False, + 'properties': {'password': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'password'], + 'type': 'object'}, + 'EntityPasswords': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'}, + 'type': 'array'}}, + 'required': ['changes'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'UserInfo': {'additionalProperties': False, + 'properties': {'access': {'type': 'string'}, + 'created-by': {'type': 'string'}, + 'date-created': {'format': 'date-time', + 'type': 'string'}, + 'disabled': {'type': 'boolean'}, + 'display-name': {'type': 'string'}, + 'last-connection': {'format': 'date-time', + 'type': 'string'}, + 'username': {'type': 'string'}}, + 'required': ['username', + 'display-name', + 'access', + 'created-by', + 'date-created', + 'disabled'], + 'type': 'object'}, + 'UserInfoRequest': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}, + 'include-disabled': {'type': 'boolean'}}, + 'required': ['entities', + 'include-disabled'], + 'type': 'object'}, + 'UserInfoResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/UserInfo'}}, + 'type': 'object'}, + 'UserInfoResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/UserInfoResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'AddUser': {'properties': {'Params': {'$ref': '#/definitions/AddUsers'}, + 'Result': {'$ref': '#/definitions/AddUserResults'}}, + 'type': 'object'}, + 'DisableUser': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'EnableUser': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'RemoveUser': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'ResetPassword': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/AddUserResults'}}, + 'type': 'object'}, + 'SetPassword': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'UserInfo': {'properties': {'Params': {'$ref': '#/definitions/UserInfoRequest'}, + 'Result': {'$ref': '#/definitions/UserInfoResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(AddUserResults) + async def AddUser(self, users): + ''' + users : typing.Sequence[~AddUser] + Returns -> typing.Sequence[~AddUserResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UserManager', + request='AddUser', + version=2, + params=_params) + _params['users'] = users + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def DisableUser(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UserManager', + request='DisableUser', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def EnableUser(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UserManager', + request='EnableUser', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def RemoveUser(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UserManager', + request='RemoveUser', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(AddUserResults) + async def ResetPassword(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~AddUserResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UserManager', + request='ResetPassword', + version=2, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetPassword(self, changes): + ''' + changes : typing.Sequence[~EntityPassword] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UserManager', + request='SetPassword', + version=2, + params=_params) + _params['changes'] = changes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(UserInfoResults) + async def UserInfo(self, entities, include_disabled): + ''' + entities : typing.Sequence[~Entity] + include_disabled : bool + Returns -> typing.Sequence[~UserInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='UserManager', + request='UserInfo', + version=2, + params=_params) + _params['entities'] = entities + _params['include-disabled'] = include_disabled + reply = await self.rpc(msg) + return reply + + + +class VolumeAttachmentsWatcherFacade(Type): + name = 'VolumeAttachmentsWatcher' + version = 2 + schema = {'definitions': {'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MachineStorageId': {'additionalProperties': False, + 'properties': {'attachment-tag': {'type': 'string'}, + 'machine-tag': {'type': 'string'}}, + 'required': ['machine-tag', + 'attachment-tag'], + 'type': 'object'}, + 'MachineStorageIdsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/MachineStorageId'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id', + 'changes'], + 'type': 'object'}}, + 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResult'}}, + 'type': 'object'}, + 'Stop': {'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(MachineStorageIdsWatchResult) + async def Next(self): + ''' + + Returns -> typing.Union[typing.Sequence[~MachineStorageId], _ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='VolumeAttachmentsWatcher', + request='Next', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Stop(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='VolumeAttachmentsWatcher', + request='Stop', + version=2, + params=_params) + + reply = await self.rpc(msg) + return reply diff --git a/modules/libjuju/juju/client/_client3.py b/modules/libjuju/juju/client/_client3.py new file mode 100644 index 0000000..67840db --- /dev/null +++ b/modules/libjuju/juju/client/_client3.py @@ -0,0 +1,6749 @@ +# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. +# Changes will be overwritten/lost when the file is regenerated. + +from juju.client._definitions import * +from juju.client.facade import ReturnMapping, Type + + +class ActionFacade(Type): + name = 'Action' + version = 3 + schema = {'definitions': {'Action': {'additionalProperties': False, + 'properties': {'name': {'type': 'string'}, + 'parameters': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'receiver': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'receiver', 'name'], + 'type': 'object'}, + 'ActionResult': {'additionalProperties': False, + 'properties': {'action': {'$ref': '#/definitions/Action'}, + 'completed': {'format': 'date-time', + 'type': 'string'}, + 'enqueued': {'format': 'date-time', + 'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}, + 'message': {'type': 'string'}, + 'output': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'started': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'type': 'object'}, + 'ActionResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ActionSpec': {'additionalProperties': False, + 'properties': {'description': {'type': 'string'}, + 'params': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['description', 'params'], + 'type': 'object'}, + 'Actions': {'additionalProperties': False, + 'properties': {'actions': {'items': {'$ref': '#/definitions/Action'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ActionsByName': {'additionalProperties': False, + 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionResult'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'name': {'type': 'string'}}, + 'type': 'object'}, + 'ActionsByNames': {'additionalProperties': False, + 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionsByName'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ActionsByReceiver': {'additionalProperties': False, + 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionResult'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'receiver': {'type': 'string'}}, + 'type': 'object'}, + 'ActionsByReceivers': {'additionalProperties': False, + 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionsByReceiver'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ApplicationCharmActionsResult': {'additionalProperties': False, + 'properties': {'actions': {'patternProperties': {'.*': {'$ref': '#/definitions/ActionSpec'}}, + 'type': 'object'}, + 'application-tag': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ApplicationsCharmActionsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationCharmActionsResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'FindActionsByNames': {'additionalProperties': False, + 'properties': {'names': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'FindTags': {'additionalProperties': False, + 'properties': {'prefixes': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['prefixes'], + 'type': 'object'}, + 'FindTagsResults': {'additionalProperties': False, + 'properties': {'matches': {'patternProperties': {'.*': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'type': 'object'}}, + 'required': ['matches'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'RunParams': {'additionalProperties': False, + 'properties': {'applications': {'items': {'type': 'string'}, + 'type': 'array'}, + 'commands': {'type': 'string'}, + 'machines': {'items': {'type': 'string'}, + 'type': 'array'}, + 'timeout': {'type': 'integer'}, + 'units': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['commands', 'timeout'], + 'type': 'object'}}, + 'properties': {'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionResults'}}, + 'type': 'object'}, + 'ApplicationsCharmsActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ApplicationsCharmActionsResults'}}, + 'type': 'object'}, + 'Cancel': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionResults'}}, + 'type': 'object'}, + 'Enqueue': {'properties': {'Params': {'$ref': '#/definitions/Actions'}, + 'Result': {'$ref': '#/definitions/ActionResults'}}, + 'type': 'object'}, + 'FindActionTagsByPrefix': {'properties': {'Params': {'$ref': '#/definitions/FindTags'}, + 'Result': {'$ref': '#/definitions/FindTagsResults'}}, + 'type': 'object'}, + 'FindActionsByNames': {'properties': {'Params': {'$ref': '#/definitions/FindActionsByNames'}, + 'Result': {'$ref': '#/definitions/ActionsByNames'}}, + 'type': 'object'}, + 'ListAll': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, + 'type': 'object'}, + 'ListCompleted': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, + 'type': 'object'}, + 'ListPending': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, + 'type': 'object'}, + 'ListRunning': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, + 'type': 'object'}, + 'Run': {'properties': {'Params': {'$ref': '#/definitions/RunParams'}, + 'Result': {'$ref': '#/definitions/ActionResults'}}, + 'type': 'object'}, + 'RunOnAllMachines': {'properties': {'Params': {'$ref': '#/definitions/RunParams'}, + 'Result': {'$ref': '#/definitions/ActionResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ActionResults) + async def Actions(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='Actions', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ApplicationsCharmActionsResults) + async def ApplicationsCharmsActions(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ApplicationCharmActionsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='ApplicationsCharmsActions', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionResults) + async def Cancel(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='Cancel', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionResults) + async def Enqueue(self, actions): + ''' + actions : typing.Sequence[~Action] + Returns -> typing.Sequence[~ActionResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='Enqueue', + version=3, + params=_params) + _params['actions'] = actions + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(FindTagsResults) + async def FindActionTagsByPrefix(self, prefixes): + ''' + prefixes : typing.Sequence[str] + Returns -> typing.Sequence[~Entity] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='FindActionTagsByPrefix', + version=3, + params=_params) + _params['prefixes'] = prefixes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionsByNames) + async def FindActionsByNames(self, names): + ''' + names : typing.Sequence[str] + Returns -> typing.Sequence[~ActionsByName] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='FindActionsByNames', + version=3, + params=_params) + _params['names'] = names + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionsByReceivers) + async def ListAll(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionsByReceiver] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='ListAll', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionsByReceivers) + async def ListCompleted(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionsByReceiver] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='ListCompleted', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionsByReceivers) + async def ListPending(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionsByReceiver] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='ListPending', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionsByReceivers) + async def ListRunning(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionsByReceiver] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='ListRunning', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionResults) + async def Run(self, applications, commands, machines, timeout, units): + ''' + applications : typing.Sequence[str] + commands : str + machines : typing.Sequence[str] + timeout : int + units : typing.Sequence[str] + Returns -> typing.Sequence[~ActionResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='Run', + version=3, + params=_params) + _params['applications'] = applications + _params['commands'] = commands + _params['machines'] = machines + _params['timeout'] = timeout + _params['units'] = units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionResults) + async def RunOnAllMachines(self, applications, commands, machines, timeout, units): + ''' + applications : typing.Sequence[str] + commands : str + machines : typing.Sequence[str] + timeout : int + units : typing.Sequence[str] + Returns -> typing.Sequence[~ActionResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='RunOnAllMachines', + version=3, + params=_params) + _params['applications'] = applications + _params['commands'] = commands + _params['machines'] = machines + _params['timeout'] = timeout + _params['units'] = units + reply = await self.rpc(msg) + return reply + + + +class ApplicationFacade(Type): + name = 'Application' + version = 3 + schema = {'definitions': {'AddApplicationUnits': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'num-units': {'type': 'integer'}, + 'placement': {'items': {'$ref': '#/definitions/Placement'}, + 'type': 'array'}}, + 'required': ['application', + 'num-units', + 'placement'], + 'type': 'object'}, + 'AddApplicationUnitsResults': {'additionalProperties': False, + 'properties': {'units': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['units'], + 'type': 'object'}, + 'AddRelation': {'additionalProperties': False, + 'properties': {'endpoints': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['endpoints'], + 'type': 'object'}, + 'AddRelationResults': {'additionalProperties': False, + 'properties': {'endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, + 'type': 'object'}}, + 'required': ['endpoints'], + 'type': 'object'}, + 'ApplicationCharmRelations': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationCharmRelationsResults': {'additionalProperties': False, + 'properties': {'charm-relations': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['charm-relations'], + 'type': 'object'}, + 'ApplicationDeploy': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'channel': {'type': 'string'}, + 'charm-url': {'type': 'string'}, + 'config': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'config-yaml': {'type': 'string'}, + 'constraints': {'$ref': '#/definitions/Value'}, + 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'num-units': {'type': 'integer'}, + 'placement': {'items': {'$ref': '#/definitions/Placement'}, + 'type': 'array'}, + 'resources': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'series': {'type': 'string'}, + 'storage': {'patternProperties': {'.*': {'$ref': '#/definitions/Constraints'}}, + 'type': 'object'}}, + 'required': ['application', + 'series', + 'charm-url', + 'channel', + 'num-units', + 'config-yaml', + 'constraints'], + 'type': 'object'}, + 'ApplicationDestroy': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationExpose': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationGet': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationGetResults': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'charm': {'type': 'string'}, + 'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'constraints': {'$ref': '#/definitions/Value'}, + 'series': {'type': 'string'}}, + 'required': ['application', + 'charm', + 'config', + 'constraints', + 'series'], + 'type': 'object'}, + 'ApplicationMetricCredential': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'metrics-credentials': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['application', + 'metrics-credentials'], + 'type': 'object'}, + 'ApplicationMetricCredentials': {'additionalProperties': False, + 'properties': {'creds': {'items': {'$ref': '#/definitions/ApplicationMetricCredential'}, + 'type': 'array'}}, + 'required': ['creds'], + 'type': 'object'}, + 'ApplicationSet': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'options': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'required': ['application', 'options'], + 'type': 'object'}, + 'ApplicationSetCharm': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'channel': {'type': 'string'}, + 'charm-url': {'type': 'string'}, + 'config-settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'config-settings-yaml': {'type': 'string'}, + 'force-series': {'type': 'boolean'}, + 'force-units': {'type': 'boolean'}, + 'resource-ids': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'storage-constraints': {'patternProperties': {'.*': {'$ref': '#/definitions/StorageConstraints'}}, + 'type': 'object'}}, + 'required': ['application', + 'charm-url', + 'channel', + 'force-units', + 'force-series'], + 'type': 'object'}, + 'ApplicationUnexpose': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationUnset': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'options': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['application', 'options'], + 'type': 'object'}, + 'ApplicationUpdate': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'charm-url': {'type': 'string'}, + 'constraints': {'$ref': '#/definitions/Value'}, + 'force-charm-url': {'type': 'boolean'}, + 'force-series': {'type': 'boolean'}, + 'min-units': {'type': 'integer'}, + 'settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'settings-yaml': {'type': 'string'}}, + 'required': ['application', + 'charm-url', + 'force-charm-url', + 'force-series', + 'settings-yaml'], + 'type': 'object'}, + 'ApplicationsDeploy': {'additionalProperties': False, + 'properties': {'applications': {'items': {'$ref': '#/definitions/ApplicationDeploy'}, + 'type': 'array'}}, + 'required': ['applications'], + 'type': 'object'}, + 'CharmRelation': {'additionalProperties': False, + 'properties': {'interface': {'type': 'string'}, + 'limit': {'type': 'integer'}, + 'name': {'type': 'string'}, + 'optional': {'type': 'boolean'}, + 'role': {'type': 'string'}, + 'scope': {'type': 'string'}}, + 'required': ['name', + 'role', + 'interface', + 'optional', + 'limit', + 'scope'], + 'type': 'object'}, + 'Constraints': {'additionalProperties': False, + 'properties': {'Count': {'type': 'integer'}, + 'Pool': {'type': 'string'}, + 'Size': {'type': 'integer'}}, + 'required': ['Pool', 'Size', 'Count'], + 'type': 'object'}, + 'DestroyApplicationUnits': {'additionalProperties': False, + 'properties': {'unit-names': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['unit-names'], + 'type': 'object'}, + 'DestroyRelation': {'additionalProperties': False, + 'properties': {'endpoints': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['endpoints'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'GetApplicationConstraints': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'GetConstraintsResults': {'additionalProperties': False, + 'properties': {'constraints': {'$ref': '#/definitions/Value'}}, + 'required': ['constraints'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'Placement': {'additionalProperties': False, + 'properties': {'directive': {'type': 'string'}, + 'scope': {'type': 'string'}}, + 'required': ['scope', 'directive'], + 'type': 'object'}, + 'SetConstraints': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'constraints': {'$ref': '#/definitions/Value'}}, + 'required': ['application', 'constraints'], + 'type': 'object'}, + 'StorageConstraints': {'additionalProperties': False, + 'properties': {'count': {'type': 'integer'}, + 'pool': {'type': 'string'}, + 'size': {'type': 'integer'}}, + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'Value': {'additionalProperties': False, + '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': {'items': {'type': 'string'}, + 'type': 'array'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}, + 'virt-type': {'type': 'string'}}, + 'type': 'object'}}, + 'properties': {'AddRelation': {'properties': {'Params': {'$ref': '#/definitions/AddRelation'}, + 'Result': {'$ref': '#/definitions/AddRelationResults'}}, + 'type': 'object'}, + 'AddUnits': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationUnits'}, + 'Result': {'$ref': '#/definitions/AddApplicationUnitsResults'}}, + 'type': 'object'}, + 'CharmRelations': {'properties': {'Params': {'$ref': '#/definitions/ApplicationCharmRelations'}, + 'Result': {'$ref': '#/definitions/ApplicationCharmRelationsResults'}}, + 'type': 'object'}, + 'Deploy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationsDeploy'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationDestroy'}}, + 'type': 'object'}, + 'DestroyRelation': {'properties': {'Params': {'$ref': '#/definitions/DestroyRelation'}}, + 'type': 'object'}, + 'DestroyUnits': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationUnits'}}, + 'type': 'object'}, + 'Expose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationExpose'}}, + 'type': 'object'}, + 'Get': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, + 'Result': {'$ref': '#/definitions/ApplicationGetResults'}}, + 'type': 'object'}, + 'GetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, + 'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'GetConstraints': {'properties': {'Params': {'$ref': '#/definitions/GetApplicationConstraints'}, + 'Result': {'$ref': '#/definitions/GetConstraintsResults'}}, + 'type': 'object'}, + 'Set': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSet'}}, + 'type': 'object'}, + 'SetCharm': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSetCharm'}}, + 'type': 'object'}, + 'SetConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, + 'type': 'object'}, + 'SetMetricCredentials': {'properties': {'Params': {'$ref': '#/definitions/ApplicationMetricCredentials'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Unexpose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnexpose'}}, + 'type': 'object'}, + 'Unset': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnset'}}, + 'type': 'object'}, + 'Update': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUpdate'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(AddRelationResults) + async def AddRelation(self, endpoints): + ''' + endpoints : typing.Sequence[str] + Returns -> typing.Mapping[str, ~CharmRelation] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='AddRelation', + version=3, + params=_params) + _params['endpoints'] = endpoints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(AddApplicationUnitsResults) + async def AddUnits(self, application, num_units, placement): + ''' + application : str + num_units : int + placement : typing.Sequence[~Placement] + Returns -> typing.Sequence[str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='AddUnits', + version=3, + params=_params) + _params['application'] = application + _params['num-units'] = num_units + _params['placement'] = placement + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ApplicationCharmRelationsResults) + async def CharmRelations(self, application): + ''' + application : str + Returns -> typing.Sequence[str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='CharmRelations', + version=3, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Deploy(self, applications): + ''' + applications : typing.Sequence[~ApplicationDeploy] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Deploy', + version=3, + params=_params) + _params['applications'] = applications + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Destroy(self, application): + ''' + application : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Destroy', + version=3, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def DestroyRelation(self, endpoints): + ''' + endpoints : typing.Sequence[str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='DestroyRelation', + version=3, + params=_params) + _params['endpoints'] = endpoints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def DestroyUnits(self, unit_names): + ''' + unit_names : typing.Sequence[str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='DestroyUnits', + version=3, + params=_params) + _params['unit-names'] = unit_names + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Expose(self, application): + ''' + application : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Expose', + version=3, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ApplicationGetResults) + async def Get(self, application): + ''' + application : str + Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Get', + version=3, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def GetCharmURL(self, application): + ''' + application : str + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='GetCharmURL', + version=3, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(GetConstraintsResults) + async def GetConstraints(self, application): + ''' + application : str + Returns -> Value + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='GetConstraints', + version=3, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Set(self, application, options): + ''' + application : str + options : typing.Mapping[str, str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Set', + version=3, + params=_params) + _params['application'] = application + _params['options'] = options + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetCharm(self, application, channel, charm_url, config_settings, config_settings_yaml, force_series, force_units, resource_ids, storage_constraints): + ''' + application : str + channel : str + charm_url : str + config_settings : typing.Mapping[str, str] + config_settings_yaml : str + force_series : bool + force_units : bool + resource_ids : typing.Mapping[str, str] + storage_constraints : typing.Mapping[str, ~StorageConstraints] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='SetCharm', + version=3, + params=_params) + _params['application'] = application + _params['channel'] = channel + _params['charm-url'] = charm_url + _params['config-settings'] = config_settings + _params['config-settings-yaml'] = config_settings_yaml + _params['force-series'] = force_series + _params['force-units'] = force_units + _params['resource-ids'] = resource_ids + _params['storage-constraints'] = storage_constraints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetConstraints(self, application, constraints): + ''' + application : str + constraints : Value + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='SetConstraints', + version=3, + params=_params) + _params['application'] = application + _params['constraints'] = constraints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetMetricCredentials(self, creds): + ''' + creds : typing.Sequence[~ApplicationMetricCredential] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='SetMetricCredentials', + version=3, + params=_params) + _params['creds'] = creds + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Unexpose(self, application): + ''' + application : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Unexpose', + version=3, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Unset(self, application, options): + ''' + application : str + options : typing.Sequence[str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Unset', + version=3, + params=_params) + _params['application'] = application + _params['options'] = options + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Update(self, application, charm_url, constraints, force_charm_url, force_series, min_units, settings, settings_yaml): + ''' + application : str + charm_url : str + constraints : Value + force_charm_url : bool + force_series : bool + min_units : int + settings : typing.Mapping[str, str] + settings_yaml : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Update', + version=3, + params=_params) + _params['application'] = application + _params['charm-url'] = charm_url + _params['constraints'] = constraints + _params['force-charm-url'] = force_charm_url + _params['force-series'] = force_series + _params['min-units'] = min_units + _params['settings'] = settings + _params['settings-yaml'] = settings_yaml + reply = await self.rpc(msg) + return reply + + + +class CloudFacade(Type): + name = 'Cloud' + version = 3 + schema = {'definitions': {'AddCloudArgs': {'additionalProperties': False, + 'properties': {'cloud': {'$ref': '#/definitions/Cloud'}, + 'name': {'type': 'string'}}, + 'required': ['cloud', 'name'], + 'type': 'object'}, + 'Cloud': {'additionalProperties': False, + 'properties': {'auth-types': {'items': {'type': 'string'}, + 'type': 'array'}, + 'ca-certificates': {'items': {'type': 'string'}, + 'type': 'array'}, + 'endpoint': {'type': 'string'}, + 'identity-endpoint': {'type': 'string'}, + 'regions': {'items': {'$ref': '#/definitions/CloudRegion'}, + 'type': 'array'}, + 'storage-endpoint': {'type': 'string'}, + 'type': {'type': 'string'}}, + 'required': ['type'], + 'type': 'object'}, + 'CloudCredential': {'additionalProperties': False, + 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'auth-type': {'type': 'string'}, + 'redacted': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['auth-type'], + 'type': 'object'}, + 'CloudCredentialArg': {'additionalProperties': False, + 'properties': {'cloud-name': {'type': 'string'}, + 'credential-name': {'type': 'string'}}, + 'required': ['cloud-name', + 'credential-name'], + 'type': 'object'}, + 'CloudCredentialArgs': {'additionalProperties': False, + 'properties': {'credentials': {'items': {'$ref': '#/definitions/CloudCredentialArg'}, + 'type': 'array'}, + 'include-secrets': {'type': 'boolean'}}, + 'required': ['include-secrets'], + 'type': 'object'}, + 'CloudCredentialResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/CloudCredential'}}, + 'type': 'object'}, + 'CloudCredentialResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/CloudCredentialResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'CloudDetails': {'additionalProperties': False, + 'properties': {'auth-types': {'items': {'type': 'string'}, + 'type': 'array'}, + 'endpoint': {'type': 'string'}, + 'identity-endpoint': {'type': 'string'}, + 'regions': {'items': {'$ref': '#/definitions/CloudRegion'}, + 'type': 'array'}, + 'storage-endpoint': {'type': 'string'}, + 'type': {'type': 'string'}}, + 'required': ['type'], + 'type': 'object'}, + 'CloudInfo': {'additionalProperties': False, + 'properties': {'CloudDetails': {'$ref': '#/definitions/CloudDetails'}, + 'users': {'items': {'$ref': '#/definitions/CloudUserInfo'}, + 'type': 'array'}}, + 'required': ['CloudDetails', 'users'], + 'type': 'object'}, + 'CloudInfoResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/CloudInfo'}}, + 'type': 'object'}, + 'CloudInfoResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/CloudInfoResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'CloudInstanceTypesConstraint': {'additionalProperties': False, + 'properties': {'cloud-tag': {'type': 'string'}, + 'constraints': {'$ref': '#/definitions/Value'}, + 'region': {'type': 'string'}}, + 'required': ['cloud-tag', + 'region'], + 'type': 'object'}, + 'CloudInstanceTypesConstraints': {'additionalProperties': False, + 'properties': {'constraints': {'items': {'$ref': '#/definitions/CloudInstanceTypesConstraint'}, + 'type': 'array'}}, + 'required': ['constraints'], + 'type': 'object'}, + 'CloudRegion': {'additionalProperties': False, + 'properties': {'endpoint': {'type': 'string'}, + 'identity-endpoint': {'type': 'string'}, + 'name': {'type': 'string'}, + 'storage-endpoint': {'type': 'string'}}, + 'required': ['name'], + 'type': 'object'}, + 'CloudResult': {'additionalProperties': False, + 'properties': {'cloud': {'$ref': '#/definitions/Cloud'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'CloudResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/CloudResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'CloudUserInfo': {'additionalProperties': False, + 'properties': {'access': {'type': 'string'}, + 'display-name': {'type': 'string'}, + 'user': {'type': 'string'}}, + 'required': ['user', + 'display-name', + 'access'], + 'type': 'object'}, + 'CloudsResult': {'additionalProperties': False, + 'properties': {'clouds': {'patternProperties': {'.*': {'$ref': '#/definitions/Cloud'}}, + 'type': 'object'}}, + 'type': 'object'}, + 'ControllerCredentialInfo': {'additionalProperties': False, + 'properties': {'content': {'$ref': '#/definitions/CredentialContent'}, + 'models': {'items': {'$ref': '#/definitions/ModelAccess'}, + 'type': 'array'}}, + 'type': 'object'}, + 'CredentialContent': {'additionalProperties': False, + 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'auth-type': {'type': 'string'}, + 'cloud': {'type': 'string'}, + 'name': {'type': 'string'}}, + 'required': ['name', + 'cloud', + 'auth-type'], + 'type': 'object'}, + 'CredentialContentResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/ControllerCredentialInfo'}}, + 'type': 'object'}, + 'CredentialContentResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/CredentialContentResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'InstanceType': {'additionalProperties': False, + 'properties': {'arches': {'items': {'type': 'string'}, + 'type': 'array'}, + 'cost': {'type': 'integer'}, + 'cpu-cores': {'type': 'integer'}, + 'deprecated': {'type': 'boolean'}, + 'memory': {'type': 'integer'}, + 'name': {'type': 'string'}, + 'root-disk': {'type': 'integer'}, + 'virt-type': {'type': 'string'}}, + 'required': ['arches', 'cpu-cores', 'memory'], + 'type': 'object'}, + 'InstanceTypesResult': {'additionalProperties': False, + 'properties': {'cost-currency': {'type': 'string'}, + 'cost-divisor': {'type': 'integer'}, + 'cost-unit': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}, + 'instance-types': {'items': {'$ref': '#/definitions/InstanceType'}, + 'type': 'array'}}, + 'type': 'object'}, + 'InstanceTypesResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/InstanceTypesResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ListCloudInfo': {'additionalProperties': False, + 'properties': {'CloudDetails': {'$ref': '#/definitions/CloudDetails'}, + 'user-access': {'type': 'string'}}, + 'required': ['CloudDetails', 'user-access'], + 'type': 'object'}, + 'ListCloudInfoResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/ListCloudInfo'}}, + 'type': 'object'}, + 'ListCloudInfoResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ListCloudInfoResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ListCloudsRequest': {'additionalProperties': False, + 'properties': {'all': {'type': 'boolean'}, + 'user-tag': {'type': 'string'}}, + 'required': ['user-tag'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'ModelAccess': {'additionalProperties': False, + 'properties': {'access': {'type': 'string'}, + 'model': {'type': 'string'}}, + 'type': 'object'}, + 'ModifyCloudAccess': {'additionalProperties': False, + 'properties': {'access': {'type': 'string'}, + 'action': {'type': 'string'}, + 'cloud-tag': {'type': 'string'}, + 'user-tag': {'type': 'string'}}, + 'required': ['user-tag', + 'cloud-tag', + 'action', + 'access'], + 'type': 'object'}, + 'ModifyCloudAccessRequest': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyCloudAccess'}, + 'type': 'array'}}, + 'required': ['changes'], + 'type': 'object'}, + 'RevokeCredentialArg': {'additionalProperties': False, + 'properties': {'force': {'type': 'boolean'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'force'], + 'type': 'object'}, + 'RevokeCredentialArgs': {'additionalProperties': False, + 'properties': {'credentials': {'items': {'$ref': '#/definitions/RevokeCredentialArg'}, + 'type': 'array'}}, + 'required': ['credentials'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'StringsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StringsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'TaggedCredential': {'additionalProperties': False, + 'properties': {'credential': {'$ref': '#/definitions/CloudCredential'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'credential'], + 'type': 'object'}, + 'TaggedCredentials': {'additionalProperties': False, + 'properties': {'credentials': {'items': {'$ref': '#/definitions/TaggedCredential'}, + 'type': 'array'}}, + 'type': 'object'}, + 'UpdateCredentialArgs': {'additionalProperties': False, + 'properties': {'credentials': {'items': {'$ref': '#/definitions/TaggedCredential'}, + 'type': 'array'}, + 'force': {'type': 'boolean'}}, + 'required': ['credentials', 'force'], + 'type': 'object'}, + 'UpdateCredentialModelResult': {'additionalProperties': False, + 'properties': {'errors': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}, + 'name': {'type': 'string'}, + 'uuid': {'type': 'string'}}, + 'required': ['uuid', 'name'], + 'type': 'object'}, + 'UpdateCredentialResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'models': {'items': {'$ref': '#/definitions/UpdateCredentialModelResult'}, + 'type': 'array'}, + 'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'UpdateCredentialResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/UpdateCredentialResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'UserCloud': {'additionalProperties': False, + 'properties': {'cloud-tag': {'type': 'string'}, + 'user-tag': {'type': 'string'}}, + 'required': ['user-tag', 'cloud-tag'], + 'type': 'object'}, + 'UserClouds': {'additionalProperties': False, + 'properties': {'user-clouds': {'items': {'$ref': '#/definitions/UserCloud'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Value': {'additionalProperties': False, + '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': {'items': {'type': 'string'}, + 'type': 'array'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}, + 'virt-type': {'type': 'string'}, + 'zones': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}}, + 'properties': {'AddCloud': {'properties': {'Params': {'$ref': '#/definitions/AddCloudArgs'}}, + 'type': 'object'}, + 'AddCredentials': {'properties': {'Params': {'$ref': '#/definitions/TaggedCredentials'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'CheckCredentialsModels': {'properties': {'Params': {'$ref': '#/definitions/TaggedCredentials'}, + 'Result': {'$ref': '#/definitions/UpdateCredentialResults'}}, + 'type': 'object'}, + 'Cloud': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/CloudResults'}}, + 'type': 'object'}, + 'CloudInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/CloudInfoResults'}}, + 'type': 'object'}, + 'Clouds': {'properties': {'Result': {'$ref': '#/definitions/CloudsResult'}}, + 'type': 'object'}, + 'Credential': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/CloudCredentialResults'}}, + 'type': 'object'}, + 'CredentialContents': {'properties': {'Params': {'$ref': '#/definitions/CloudCredentialArgs'}, + 'Result': {'$ref': '#/definitions/CredentialContentResults'}}, + 'type': 'object'}, + 'DefaultCloud': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'InstanceTypes': {'properties': {'Params': {'$ref': '#/definitions/CloudInstanceTypesConstraints'}, + 'Result': {'$ref': '#/definitions/InstanceTypesResults'}}, + 'type': 'object'}, + 'ListCloudInfo': {'properties': {'Params': {'$ref': '#/definitions/ListCloudsRequest'}, + 'Result': {'$ref': '#/definitions/ListCloudInfoResults'}}, + 'type': 'object'}, + 'ModifyCloudAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyCloudAccessRequest'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'RemoveClouds': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'RevokeCredentialsCheckModels': {'properties': {'Params': {'$ref': '#/definitions/RevokeCredentialArgs'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'UpdateCredentialsCheckModels': {'properties': {'Params': {'$ref': '#/definitions/UpdateCredentialArgs'}, + 'Result': {'$ref': '#/definitions/UpdateCredentialResults'}}, + 'type': 'object'}, + 'UserCredentials': {'properties': {'Params': {'$ref': '#/definitions/UserClouds'}, + 'Result': {'$ref': '#/definitions/StringsResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(None) + async def AddCloud(self, cloud, name): + ''' + cloud : Cloud + name : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='AddCloud', + version=3, + params=_params) + _params['cloud'] = cloud + _params['name'] = name + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def AddCredentials(self, credentials): + ''' + credentials : typing.Sequence[~TaggedCredential] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='AddCredentials', + version=3, + params=_params) + _params['credentials'] = credentials + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(UpdateCredentialResults) + async def CheckCredentialsModels(self, credentials): + ''' + credentials : typing.Sequence[~TaggedCredential] + Returns -> typing.Sequence[~UpdateCredentialResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='CheckCredentialsModels', + version=3, + params=_params) + _params['credentials'] = credentials + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(CloudResults) + async def Cloud(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~CloudResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='Cloud', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(CloudInfoResults) + async def CloudInfo(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~CloudInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='CloudInfo', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(CloudsResult) + async def Clouds(self): + ''' + + Returns -> typing.Mapping[str, ~Cloud] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='Clouds', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(CloudCredentialResults) + async def Credential(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~CloudCredentialResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='Credential', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(CredentialContentResults) + async def CredentialContents(self, credentials, include_secrets): + ''' + credentials : typing.Sequence[~CloudCredentialArg] + include_secrets : bool + Returns -> typing.Sequence[~CredentialContentResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='CredentialContents', + version=3, + params=_params) + _params['credentials'] = credentials + _params['include-secrets'] = include_secrets + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def DefaultCloud(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='DefaultCloud', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(InstanceTypesResults) + async def InstanceTypes(self, constraints): + ''' + constraints : typing.Sequence[~CloudInstanceTypesConstraint] + Returns -> typing.Sequence[~InstanceTypesResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='InstanceTypes', + version=3, + params=_params) + _params['constraints'] = constraints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ListCloudInfoResults) + async def ListCloudInfo(self, all_, user_tag): + ''' + all_ : bool + user_tag : str + Returns -> typing.Sequence[~ListCloudInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='ListCloudInfo', + version=3, + params=_params) + _params['all'] = all_ + _params['user-tag'] = user_tag + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def ModifyCloudAccess(self, changes): + ''' + changes : typing.Sequence[~ModifyCloudAccess] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='ModifyCloudAccess', + version=3, + params=_params) + _params['changes'] = changes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def RemoveClouds(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='RemoveClouds', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def RevokeCredentialsCheckModels(self, credentials): + ''' + credentials : typing.Sequence[~RevokeCredentialArg] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='RevokeCredentialsCheckModels', + version=3, + params=_params) + _params['credentials'] = credentials + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(UpdateCredentialResults) + async def UpdateCredentialsCheckModels(self, credentials, force): + ''' + credentials : typing.Sequence[~TaggedCredential] + force : bool + Returns -> typing.Sequence[~UpdateCredentialResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='UpdateCredentialsCheckModels', + version=3, + params=_params) + _params['credentials'] = credentials + _params['force'] = force + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsResults) + async def UserCredentials(self, user_clouds): + ''' + user_clouds : typing.Sequence[~UserCloud] + Returns -> typing.Sequence[~StringsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Cloud', + request='UserCredentials', + version=3, + params=_params) + _params['user-clouds'] = user_clouds + reply = await self.rpc(msg) + return reply + + + +class ControllerFacade(Type): + name = 'Controller' + version = 3 + schema = {'definitions': {'AllWatcherId': {'additionalProperties': False, + 'properties': {'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}, + 'CloudCredential': {'additionalProperties': False, + 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'auth-type': {'type': 'string'}, + 'redacted': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['auth-type'], + 'type': 'object'}, + 'CloudSpec': {'additionalProperties': False, + 'properties': {'credential': {'$ref': '#/definitions/CloudCredential'}, + 'endpoint': {'type': 'string'}, + 'identity-endpoint': {'type': 'string'}, + 'name': {'type': 'string'}, + 'region': {'type': 'string'}, + 'storage-endpoint': {'type': 'string'}, + 'type': {'type': 'string'}}, + 'required': ['type', 'name'], + 'type': 'object'}, + 'CloudSpecResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/CloudSpec'}}, + 'type': 'object'}, + 'CloudSpecResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/CloudSpecResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ConfigValue': {'additionalProperties': False, + 'properties': {'source': {'type': 'string'}, + 'value': {'additionalProperties': True, + 'type': 'object'}}, + 'required': ['value', 'source'], + 'type': 'object'}, + 'ControllerConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'DestroyControllerArgs': {'additionalProperties': False, + 'properties': {'destroy-models': {'type': 'boolean'}}, + 'required': ['destroy-models'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'HostedModelConfig': {'additionalProperties': False, + 'properties': {'cloud-spec': {'$ref': '#/definitions/CloudSpec'}, + 'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'error': {'$ref': '#/definitions/Error'}, + 'name': {'type': 'string'}, + 'owner': {'type': 'string'}}, + 'required': ['name', 'owner'], + 'type': 'object'}, + 'HostedModelConfigsResults': {'additionalProperties': False, + 'properties': {'models': {'items': {'$ref': '#/definitions/HostedModelConfig'}, + 'type': 'array'}}, + 'required': ['models'], + 'type': 'object'}, + 'InitiateMigrationArgs': {'additionalProperties': False, + 'properties': {'specs': {'items': {'$ref': '#/definitions/MigrationSpec'}, + 'type': 'array'}}, + 'required': ['specs'], + 'type': 'object'}, + 'InitiateMigrationResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'migration-id': {'type': 'string'}, + 'model-tag': {'type': 'string'}}, + 'required': ['model-tag', + 'migration-id'], + 'type': 'object'}, + 'InitiateMigrationResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/InitiateMigrationResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MachineHardware': {'additionalProperties': False, + 'properties': {'arch': {'type': 'string'}, + 'availability-zone': {'type': 'string'}, + 'cores': {'type': 'integer'}, + 'cpu-power': {'type': 'integer'}, + 'mem': {'type': 'integer'}, + 'root-disk': {'type': 'integer'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'MigrationSpec': {'additionalProperties': False, + 'properties': {'model-tag': {'type': 'string'}, + 'target-info': {'$ref': '#/definitions/MigrationTargetInfo'}}, + 'required': ['model-tag', 'target-info'], + 'type': 'object'}, + 'MigrationTargetInfo': {'additionalProperties': False, + 'properties': {'addrs': {'items': {'type': 'string'}, + 'type': 'array'}, + 'auth-tag': {'type': 'string'}, + 'ca-cert': {'type': 'string'}, + 'controller-tag': {'type': 'string'}, + 'macaroons': {'type': 'string'}, + 'password': {'type': 'string'}}, + 'required': ['controller-tag', + 'addrs', + 'ca-cert', + 'auth-tag'], + 'type': 'object'}, + 'Model': {'additionalProperties': False, + 'properties': {'name': {'type': 'string'}, + 'owner-tag': {'type': 'string'}, + 'uuid': {'type': 'string'}}, + 'required': ['name', 'uuid', 'owner-tag'], + 'type': 'object'}, + 'ModelBlockInfo': {'additionalProperties': False, + 'properties': {'blocks': {'items': {'type': 'string'}, + 'type': 'array'}, + 'model-uuid': {'type': 'string'}, + 'name': {'type': 'string'}, + 'owner-tag': {'type': 'string'}}, + 'required': ['name', + 'model-uuid', + 'owner-tag', + 'blocks'], + 'type': 'object'}, + 'ModelBlockInfoList': {'additionalProperties': False, + 'properties': {'models': {'items': {'$ref': '#/definitions/ModelBlockInfo'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ModelConfigResults': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ModelMachineInfo': {'additionalProperties': False, + 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'}, + 'has-vote': {'type': 'boolean'}, + 'id': {'type': 'string'}, + 'instance-id': {'type': 'string'}, + 'status': {'type': 'string'}, + 'wants-vote': {'type': 'boolean'}}, + 'required': ['id'], + 'type': 'object'}, + 'ModelStatus': {'additionalProperties': False, + 'properties': {'application-count': {'type': 'integer'}, + 'hosted-machine-count': {'type': 'integer'}, + 'life': {'type': 'string'}, + 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, + 'type': 'array'}, + 'model-tag': {'type': 'string'}, + 'owner-tag': {'type': 'string'}}, + 'required': ['model-tag', + 'life', + 'hosted-machine-count', + 'application-count', + 'owner-tag'], + 'type': 'object'}, + 'ModelStatusResults': {'additionalProperties': False, + 'properties': {'models': {'items': {'$ref': '#/definitions/ModelStatus'}, + 'type': 'array'}}, + 'required': ['models'], + 'type': 'object'}, + 'ModelTag': {'additionalProperties': False, 'type': 'object'}, + 'ModifyControllerAccess': {'additionalProperties': False, + 'properties': {'access': {'type': 'string'}, + 'action': {'type': 'string'}, + 'user-tag': {'type': 'string'}}, + 'required': ['user-tag', + 'action', + 'access'], + 'type': 'object'}, + 'ModifyControllerAccessRequest': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyControllerAccess'}, + 'type': 'array'}}, + 'required': ['changes'], + 'type': 'object'}, + 'RemoveBlocksArgs': {'additionalProperties': False, + 'properties': {'all': {'type': 'boolean'}}, + 'required': ['all'], + 'type': 'object'}, + 'UserAccess': {'additionalProperties': False, + 'properties': {'access': {'type': 'string'}, + 'user-tag': {'type': 'string'}}, + 'required': ['user-tag', 'access'], + 'type': 'object'}, + 'UserAccessResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/UserAccess'}}, + 'type': 'object'}, + 'UserAccessResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/UserAccessResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'UserModel': {'additionalProperties': False, + 'properties': {'last-connection': {'format': 'date-time', + 'type': 'string'}, + 'model': {'$ref': '#/definitions/Model'}}, + 'required': ['model', 'last-connection'], + 'type': 'object'}, + 'UserModelList': {'additionalProperties': False, + 'properties': {'user-models': {'items': {'$ref': '#/definitions/UserModel'}, + 'type': 'array'}}, + 'required': ['user-models'], + 'type': 'object'}}, + 'properties': {'AllModels': {'properties': {'Result': {'$ref': '#/definitions/UserModelList'}}, + 'type': 'object'}, + 'CloudSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/CloudSpecResults'}}, + 'type': 'object'}, + 'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}}, + 'type': 'object'}, + 'DestroyController': {'properties': {'Params': {'$ref': '#/definitions/DestroyControllerArgs'}}, + 'type': 'object'}, + 'GetCloudSpec': {'properties': {'Params': {'$ref': '#/definitions/ModelTag'}, + 'Result': {'$ref': '#/definitions/CloudSpecResult'}}, + 'type': 'object'}, + 'GetControllerAccess': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/UserAccessResults'}}, + 'type': 'object'}, + 'HostedModelConfigs': {'properties': {'Result': {'$ref': '#/definitions/HostedModelConfigsResults'}}, + 'type': 'object'}, + 'InitiateMigration': {'properties': {'Params': {'$ref': '#/definitions/InitiateMigrationArgs'}, + 'Result': {'$ref': '#/definitions/InitiateMigrationResults'}}, + 'type': 'object'}, + 'ListBlockedModels': {'properties': {'Result': {'$ref': '#/definitions/ModelBlockInfoList'}}, + 'type': 'object'}, + 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}}, + 'type': 'object'}, + 'ModelStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ModelStatusResults'}}, + 'type': 'object'}, + 'ModifyControllerAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyControllerAccessRequest'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'RemoveBlocks': {'properties': {'Params': {'$ref': '#/definitions/RemoveBlocksArgs'}}, + 'type': 'object'}, + 'WatchAllModels': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherId'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(UserModelList) + async def AllModels(self): + ''' + + Returns -> typing.Sequence[~UserModel] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='AllModels', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(CloudSpecResults) + async def CloudSpec(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~CloudSpecResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='CloudSpec', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ControllerConfigResult) + async def ControllerConfig(self): + ''' + + Returns -> typing.Mapping[str, typing.Any] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='ControllerConfig', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def DestroyController(self, destroy_models): + ''' + destroy_models : bool + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='DestroyController', + version=3, + params=_params) + _params['destroy-models'] = destroy_models + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(CloudSpecResult) + async def GetCloudSpec(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='GetCloudSpec', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(UserAccessResults) + async def GetControllerAccess(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~UserAccessResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='GetControllerAccess', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(HostedModelConfigsResults) + async def HostedModelConfigs(self): + ''' + + Returns -> typing.Sequence[~HostedModelConfig] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='HostedModelConfigs', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(InitiateMigrationResults) + async def InitiateMigration(self, specs): + ''' + specs : typing.Sequence[~MigrationSpec] + Returns -> typing.Sequence[~InitiateMigrationResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='InitiateMigration', + version=3, + params=_params) + _params['specs'] = specs + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelBlockInfoList) + async def ListBlockedModels(self): + ''' + + Returns -> typing.Sequence[~ModelBlockInfo] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='ListBlockedModels', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelConfigResults) + async def ModelConfig(self): + ''' + + Returns -> typing.Mapping[str, ~ConfigValue] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='ModelConfig', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelStatusResults) + async def ModelStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ModelStatus] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='ModelStatus', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def ModifyControllerAccess(self, changes): + ''' + changes : typing.Sequence[~ModifyControllerAccess] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='ModifyControllerAccess', + version=3, + params=_params) + _params['changes'] = changes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def RemoveBlocks(self, all_): + ''' + all_ : bool + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='RemoveBlocks', + version=3, + params=_params) + _params['all'] = all_ + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(AllWatcherId) + async def WatchAllModels(self): + ''' + + Returns -> str + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='WatchAllModels', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class FirewallerFacade(Type): + name = 'Firewaller' + version = 3 + schema = {'definitions': {'BoolResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'boolean'}}, + 'required': ['result'], + 'type': 'object'}, + 'BoolResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'CloudCredential': {'additionalProperties': False, + 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'auth-type': {'type': 'string'}, + 'redacted': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['auth-type'], + 'type': 'object'}, + 'CloudSpec': {'additionalProperties': False, + 'properties': {'credential': {'$ref': '#/definitions/CloudCredential'}, + 'endpoint': {'type': 'string'}, + 'identity-endpoint': {'type': 'string'}, + 'name': {'type': 'string'}, + 'region': {'type': 'string'}, + 'storage-endpoint': {'type': 'string'}, + 'type': {'type': 'string'}}, + 'required': ['type', 'name'], + 'type': 'object'}, + 'CloudSpecResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/CloudSpec'}}, + 'type': 'object'}, + 'CloudSpecResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/CloudSpecResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'LifeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'life': {'type': 'string'}}, + 'required': ['life'], + 'type': 'object'}, + 'LifeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MachinePortRange': {'additionalProperties': False, + 'properties': {'port-range': {'$ref': '#/definitions/PortRange'}, + 'relation-tag': {'type': 'string'}, + 'unit-tag': {'type': 'string'}}, + 'required': ['unit-tag', + 'relation-tag', + 'port-range'], + 'type': 'object'}, + 'MachinePorts': {'additionalProperties': False, + 'properties': {'machine-tag': {'type': 'string'}, + 'subnet-tag': {'type': 'string'}}, + 'required': ['machine-tag', 'subnet-tag'], + 'type': 'object'}, + 'MachinePortsParams': {'additionalProperties': False, + 'properties': {'params': {'items': {'$ref': '#/definitions/MachinePorts'}, + 'type': 'array'}}, + 'required': ['params'], + 'type': 'object'}, + 'MachinePortsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'ports': {'items': {'$ref': '#/definitions/MachinePortRange'}, + 'type': 'array'}}, + 'required': ['ports'], + 'type': 'object'}, + 'MachinePortsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/MachinePortsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ModelConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ModelTag': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'PortRange': {'additionalProperties': False, + 'properties': {'from-port': {'type': 'integer'}, + 'protocol': {'type': 'string'}, + 'to-port': {'type': 'integer'}}, + 'required': ['from-port', 'to-port', 'protocol'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'StringResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StringsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}, + 'StringsWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'CloudSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/CloudSpecResults'}}, + 'type': 'object'}, + 'GetAssignedMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'GetCloudSpec': {'properties': {'Params': {'$ref': '#/definitions/ModelTag'}, + 'Result': {'$ref': '#/definitions/CloudSpecResult'}}, + 'type': 'object'}, + 'GetExposed': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/BoolResults'}}, + 'type': 'object'}, + 'GetMachineActiveSubnets': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsResults'}}, + 'type': 'object'}, + 'GetMachinePorts': {'properties': {'Params': {'$ref': '#/definitions/MachinePortsParams'}, + 'Result': {'$ref': '#/definitions/MachinePortsResults'}}, + 'type': 'object'}, + 'InstanceId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/LifeResults'}}, + 'type': 'object'}, + 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, + 'type': 'object'}, + 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}, + 'WatchModelMachines': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, + 'type': 'object'}, + 'WatchOpenedPorts': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WatchUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(CloudSpecResults) + async def CloudSpec(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~CloudSpecResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='CloudSpec', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def GetAssignedMachine(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='GetAssignedMachine', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(CloudSpecResult) + async def GetCloudSpec(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='GetCloudSpec', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(BoolResults) + async def GetExposed(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~BoolResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='GetExposed', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsResults) + async def GetMachineActiveSubnets(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='GetMachineActiveSubnets', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MachinePortsResults) + async def GetMachinePorts(self, params): + ''' + params : typing.Sequence[~MachinePorts] + Returns -> typing.Sequence[~MachinePortsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='GetMachinePorts', + version=3, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def InstanceId(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='InstanceId', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(LifeResults) + async def Life(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~LifeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='Life', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelConfigResult) + async def ModelConfig(self): + ''' + + Returns -> typing.Mapping[str, typing.Any] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='ModelConfig', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def Watch(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='Watch', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchForModelConfigChanges(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='WatchForModelConfigChanges', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResult) + async def WatchModelMachines(self): + ''' + + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='WatchModelMachines', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchOpenedPorts(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='WatchOpenedPorts', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchUnits(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='WatchUnits', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class ImageMetadataFacade(Type): + name = 'ImageMetadata' + version = 3 + schema = {'properties': {'UpdateFromPublishedImages': {'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(None) + async def UpdateFromPublishedImages(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ImageMetadata', + request='UpdateFromPublishedImages', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class InstancePollerFacade(Type): + name = 'InstancePoller' + version = 3 + schema = {'definitions': {'Address': {'additionalProperties': False, + 'properties': {'scope': {'type': 'string'}, + 'space-name': {'type': 'string'}, + 'type': {'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['value', 'type', 'scope'], + 'type': 'object'}, + 'BoolResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'boolean'}}, + 'required': ['result'], + 'type': 'object'}, + 'BoolResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityStatusArgs': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'status': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', + 'status', + 'info', + 'data'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'LifeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'life': {'type': 'string'}}, + 'required': ['life'], + 'type': 'object'}, + 'LifeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MachineAddresses': {'additionalProperties': False, + 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, + 'type': 'array'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'addresses'], + 'type': 'object'}, + 'MachineAddressesResult': {'additionalProperties': False, + 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['addresses'], + 'type': 'object'}, + 'MachineAddressesResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/MachineAddressesResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ModelConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'SetMachinesAddresses': {'additionalProperties': False, + 'properties': {'machine-addresses': {'items': {'$ref': '#/definitions/MachineAddresses'}, + 'type': 'array'}}, + 'required': ['machine-addresses'], + 'type': 'object'}, + 'SetStatus': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'StatusResult': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'error': {'$ref': '#/definitions/Error'}, + 'id': {'type': 'string'}, + 'info': {'type': 'string'}, + 'life': {'type': 'string'}, + 'since': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['id', + 'life', + 'status', + 'info', + 'data', + 'since'], + 'type': 'object'}, + 'StatusResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StatusResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'StringResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}}, + 'properties': {'AreManuallyProvisioned': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/BoolResults'}}, + 'type': 'object'}, + 'InstanceId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'InstanceStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StatusResults'}}, + 'type': 'object'}, + 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/LifeResults'}}, + 'type': 'object'}, + 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, + 'type': 'object'}, + 'ProviderAddresses': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/MachineAddressesResults'}}, + 'type': 'object'}, + 'SetInstanceStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetProviderAddresses': {'properties': {'Params': {'$ref': '#/definitions/SetMachinesAddresses'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Status': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StatusResults'}}, + 'type': 'object'}, + 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}, + 'WatchModelMachines': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(BoolResults) + async def AreManuallyProvisioned(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~BoolResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='InstancePoller', + request='AreManuallyProvisioned', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def InstanceId(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='InstancePoller', + request='InstanceId', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StatusResults) + async def InstanceStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StatusResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='InstancePoller', + request='InstanceStatus', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(LifeResults) + async def Life(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~LifeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='InstancePoller', + request='Life', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelConfigResult) + async def ModelConfig(self): + ''' + + Returns -> typing.Mapping[str, typing.Any] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='InstancePoller', + request='ModelConfig', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MachineAddressesResults) + async def ProviderAddresses(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MachineAddressesResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='InstancePoller', + request='ProviderAddresses', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetInstanceStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='InstancePoller', + request='SetInstanceStatus', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetProviderAddresses(self, machine_addresses): + ''' + machine_addresses : typing.Sequence[~MachineAddresses] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='InstancePoller', + request='SetProviderAddresses', + version=3, + params=_params) + _params['machine-addresses'] = machine_addresses + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StatusResults) + async def Status(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StatusResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='InstancePoller', + request='Status', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchForModelConfigChanges(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='InstancePoller', + request='WatchForModelConfigChanges', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResult) + async def WatchModelMachines(self): + ''' + + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='InstancePoller', + request='WatchModelMachines', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class MachineManagerFacade(Type): + name = 'MachineManager' + version = 3 + schema = {'definitions': {'AddMachineParams': {'additionalProperties': False, + 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, + 'type': 'array'}, + 'constraints': {'$ref': '#/definitions/Value'}, + 'container-type': {'type': 'string'}, + 'disks': {'items': {'$ref': '#/definitions/Constraints'}, + 'type': 'array'}, + 'hardware-characteristics': {'$ref': '#/definitions/HardwareCharacteristics'}, + 'instance-id': {'type': 'string'}, + 'jobs': {'items': {'type': 'string'}, + 'type': 'array'}, + 'nonce': {'type': 'string'}, + 'parent-id': {'type': 'string'}, + 'placement': {'$ref': '#/definitions/Placement'}, + 'series': {'type': 'string'}}, + 'required': ['series', + 'constraints', + 'jobs', + 'parent-id', + 'container-type', + 'instance-id', + 'nonce', + 'hardware-characteristics', + 'addresses'], + 'type': 'object'}, + 'AddMachines': {'additionalProperties': False, + 'properties': {'params': {'items': {'$ref': '#/definitions/AddMachineParams'}, + 'type': 'array'}}, + 'required': ['params'], + 'type': 'object'}, + 'AddMachinesResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'machine': {'type': 'string'}}, + 'required': ['machine'], + 'type': 'object'}, + 'AddMachinesResults': {'additionalProperties': False, + 'properties': {'machines': {'items': {'$ref': '#/definitions/AddMachinesResult'}, + 'type': 'array'}}, + 'required': ['machines'], + 'type': 'object'}, + 'Address': {'additionalProperties': False, + 'properties': {'scope': {'type': 'string'}, + 'space-name': {'type': 'string'}, + 'type': {'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['value', 'type', 'scope'], + 'type': 'object'}, + 'Constraints': {'additionalProperties': False, + 'properties': {'Count': {'type': 'integer'}, + 'Pool': {'type': 'string'}, + 'Size': {'type': 'integer'}}, + 'required': ['Pool', 'Size', 'Count'], + 'type': 'object'}, + 'DestroyMachineInfo': {'additionalProperties': False, + 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}, + 'destroyed-units': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}, + 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'type': 'object'}, + 'DestroyMachineResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'info': {'$ref': '#/definitions/DestroyMachineInfo'}}, + 'type': 'object'}, + 'DestroyMachineResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyMachineResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'HardwareCharacteristics': {'additionalProperties': False, + 'properties': {'arch': {'type': 'string'}, + 'availability-zone': {'type': 'string'}, + 'cpu-cores': {'type': 'integer'}, + 'cpu-power': {'type': 'integer'}, + 'mem': {'type': 'integer'}, + 'root-disk': {'type': 'integer'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'InstanceType': {'additionalProperties': False, + 'properties': {'arches': {'items': {'type': 'string'}, + 'type': 'array'}, + 'cost': {'type': 'integer'}, + 'cpu-cores': {'type': 'integer'}, + 'deprecated': {'type': 'boolean'}, + 'memory': {'type': 'integer'}, + 'name': {'type': 'string'}, + 'root-disk': {'type': 'integer'}, + 'virt-type': {'type': 'string'}}, + 'required': ['arches', 'cpu-cores', 'memory'], + 'type': 'object'}, + 'InstanceTypesResult': {'additionalProperties': False, + 'properties': {'cost-currency': {'type': 'string'}, + 'cost-divisor': {'type': 'integer'}, + 'cost-unit': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}, + 'instance-types': {'items': {'$ref': '#/definitions/InstanceType'}, + 'type': 'array'}}, + 'type': 'object'}, + 'InstanceTypesResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/InstanceTypesResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'ModelInstanceTypesConstraint': {'additionalProperties': False, + 'properties': {'value': {'$ref': '#/definitions/Value'}}, + 'type': 'object'}, + 'ModelInstanceTypesConstraints': {'additionalProperties': False, + 'properties': {'constraints': {'items': {'$ref': '#/definitions/ModelInstanceTypesConstraint'}, + 'type': 'array'}}, + 'required': ['constraints'], + 'type': 'object'}, + 'Placement': {'additionalProperties': False, + 'properties': {'directive': {'type': 'string'}, + 'scope': {'type': 'string'}}, + 'required': ['scope', 'directive'], + 'type': 'object'}, + 'Value': {'additionalProperties': False, + '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': {'items': {'type': 'string'}, + 'type': 'array'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}, + 'virt-type': {'type': 'string'}}, + 'type': 'object'}}, + 'properties': {'AddMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, + 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, + 'type': 'object'}, + 'DestroyMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/DestroyMachineResults'}}, + 'type': 'object'}, + 'ForceDestroyMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/DestroyMachineResults'}}, + 'type': 'object'}, + 'InstanceTypes': {'properties': {'Params': {'$ref': '#/definitions/ModelInstanceTypesConstraints'}, + 'Result': {'$ref': '#/definitions/InstanceTypesResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(AddMachinesResults) + async def AddMachines(self, params): + ''' + params : typing.Sequence[~AddMachineParams] + Returns -> typing.Sequence[~AddMachinesResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineManager', + request='AddMachines', + version=3, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(DestroyMachineResults) + async def DestroyMachine(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~DestroyMachineResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineManager', + request='DestroyMachine', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(DestroyMachineResults) + async def ForceDestroyMachine(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~DestroyMachineResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineManager', + request='ForceDestroyMachine', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(InstanceTypesResults) + async def InstanceTypes(self, constraints): + ''' + constraints : typing.Sequence[~ModelInstanceTypesConstraint] + Returns -> typing.Sequence[~InstanceTypesResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineManager', + request='InstanceTypes', + version=3, + params=_params) + _params['constraints'] = constraints + reply = await self.rpc(msg) + return reply + + + +class ModelManagerFacade(Type): + name = 'ModelManager' + version = 3 + schema = {'definitions': {'DumpModelRequest': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}, + 'simplified': {'type': 'boolean'}}, + 'required': ['entities', 'simplified'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityStatus': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'since': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['status', 'info', 'since'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MachineHardware': {'additionalProperties': False, + 'properties': {'arch': {'type': 'string'}, + 'availability-zone': {'type': 'string'}, + 'cores': {'type': 'integer'}, + 'cpu-power': {'type': 'integer'}, + 'mem': {'type': 'integer'}, + 'root-disk': {'type': 'integer'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'MapResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['result'], + 'type': 'object'}, + 'MapResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/MapResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Model': {'additionalProperties': False, + 'properties': {'name': {'type': 'string'}, + 'owner-tag': {'type': 'string'}, + 'uuid': {'type': 'string'}}, + 'required': ['name', 'uuid', 'owner-tag'], + 'type': 'object'}, + 'ModelCreateArgs': {'additionalProperties': False, + 'properties': {'cloud-tag': {'type': 'string'}, + 'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'credential': {'type': 'string'}, + 'name': {'type': 'string'}, + 'owner-tag': {'type': 'string'}, + 'region': {'type': 'string'}}, + 'required': ['name', 'owner-tag'], + 'type': 'object'}, + 'ModelDefaultValues': {'additionalProperties': False, + 'properties': {'cloud-region': {'type': 'string'}, + 'cloud-tag': {'type': 'string'}, + 'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ModelDefaults': {'additionalProperties': False, + 'properties': {'controller': {'additionalProperties': True, + 'type': 'object'}, + 'default': {'additionalProperties': True, + 'type': 'object'}, + 'regions': {'items': {'$ref': '#/definitions/RegionDefaults'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ModelDefaultsResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ModelDefaults'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ModelInfo': {'additionalProperties': False, + 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, + 'cloud-credential-tag': {'type': 'string'}, + 'cloud-region': {'type': 'string'}, + 'cloud-tag': {'type': 'string'}, + 'controller-uuid': {'type': 'string'}, + 'default-series': {'type': 'string'}, + 'life': {'type': 'string'}, + 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, + 'type': 'array'}, + 'migration': {'$ref': '#/definitions/ModelMigrationStatus'}, + 'name': {'type': 'string'}, + 'owner-tag': {'type': 'string'}, + 'provider-type': {'type': 'string'}, + 'sla': {'$ref': '#/definitions/ModelSLAInfo'}, + 'status': {'$ref': '#/definitions/EntityStatus'}, + 'users': {'items': {'$ref': '#/definitions/ModelUserInfo'}, + 'type': 'array'}, + 'uuid': {'type': 'string'}}, + 'required': ['name', + 'uuid', + 'controller-uuid', + 'cloud-tag', + 'owner-tag', + 'life', + 'users', + 'machines', + 'sla', + 'agent-version'], + 'type': 'object'}, + 'ModelInfoResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/ModelInfo'}}, + 'type': 'object'}, + 'ModelInfoResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ModelInfoResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ModelMachineInfo': {'additionalProperties': False, + 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'}, + 'has-vote': {'type': 'boolean'}, + 'id': {'type': 'string'}, + 'instance-id': {'type': 'string'}, + 'status': {'type': 'string'}, + 'wants-vote': {'type': 'boolean'}}, + 'required': ['id'], + 'type': 'object'}, + 'ModelMigrationStatus': {'additionalProperties': False, + 'properties': {'end': {'format': 'date-time', + 'type': 'string'}, + 'start': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['status', 'start'], + 'type': 'object'}, + 'ModelSLAInfo': {'additionalProperties': False, + 'properties': {'level': {'type': 'string'}, + 'owner': {'type': 'string'}}, + 'required': ['level', 'owner'], + 'type': 'object'}, + 'ModelStatus': {'additionalProperties': False, + 'properties': {'application-count': {'type': 'integer'}, + 'hosted-machine-count': {'type': 'integer'}, + 'life': {'type': 'string'}, + 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, + 'type': 'array'}, + 'model-tag': {'type': 'string'}, + 'owner-tag': {'type': 'string'}}, + 'required': ['model-tag', + 'life', + 'hosted-machine-count', + 'application-count', + 'owner-tag'], + 'type': 'object'}, + 'ModelStatusResults': {'additionalProperties': False, + 'properties': {'models': {'items': {'$ref': '#/definitions/ModelStatus'}, + 'type': 'array'}}, + 'required': ['models'], + 'type': 'object'}, + 'ModelUnsetKeys': {'additionalProperties': False, + 'properties': {'cloud-region': {'type': 'string'}, + 'cloud-tag': {'type': 'string'}, + 'keys': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['keys'], + 'type': 'object'}, + 'ModelUserInfo': {'additionalProperties': False, + 'properties': {'access': {'type': 'string'}, + 'display-name': {'type': 'string'}, + 'last-connection': {'format': 'date-time', + 'type': 'string'}, + 'user': {'type': 'string'}}, + 'required': ['user', + 'display-name', + 'last-connection', + 'access'], + 'type': 'object'}, + 'ModifyModelAccess': {'additionalProperties': False, + 'properties': {'access': {'type': 'string'}, + 'action': {'type': 'string'}, + 'model-tag': {'type': 'string'}, + 'user-tag': {'type': 'string'}}, + 'required': ['user-tag', + 'action', + 'access', + 'model-tag'], + 'type': 'object'}, + 'ModifyModelAccessRequest': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyModelAccess'}, + 'type': 'array'}}, + 'required': ['changes'], + 'type': 'object'}, + 'Number': {'additionalProperties': False, + 'properties': {'Build': {'type': 'integer'}, + 'Major': {'type': 'integer'}, + 'Minor': {'type': 'integer'}, + 'Patch': {'type': 'integer'}, + 'Tag': {'type': 'string'}}, + 'required': ['Major', + 'Minor', + 'Tag', + 'Patch', + 'Build'], + 'type': 'object'}, + 'RegionDefaults': {'additionalProperties': False, + 'properties': {'region-name': {'type': 'string'}, + 'value': {'additionalProperties': True, + 'type': 'object'}}, + 'required': ['region-name', 'value'], + 'type': 'object'}, + 'SetModelDefaults': {'additionalProperties': False, + 'properties': {'config': {'items': {'$ref': '#/definitions/ModelDefaultValues'}, + 'type': 'array'}}, + 'required': ['config'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'StringResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'UnsetModelDefaults': {'additionalProperties': False, + 'properties': {'keys': {'items': {'$ref': '#/definitions/ModelUnsetKeys'}, + 'type': 'array'}}, + 'required': ['keys'], + 'type': 'object'}, + 'UserModel': {'additionalProperties': False, + 'properties': {'last-connection': {'format': 'date-time', + 'type': 'string'}, + 'model': {'$ref': '#/definitions/Model'}}, + 'required': ['model', 'last-connection'], + 'type': 'object'}, + 'UserModelList': {'additionalProperties': False, + 'properties': {'user-models': {'items': {'$ref': '#/definitions/UserModel'}, + 'type': 'array'}}, + 'required': ['user-models'], + 'type': 'object'}}, + 'properties': {'CreateModel': {'properties': {'Params': {'$ref': '#/definitions/ModelCreateArgs'}, + 'Result': {'$ref': '#/definitions/ModelInfo'}}, + 'type': 'object'}, + 'DestroyModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'DumpModels': {'properties': {'Params': {'$ref': '#/definitions/DumpModelRequest'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'DumpModelsDB': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/MapResults'}}, + 'type': 'object'}, + 'ListModels': {'properties': {'Params': {'$ref': '#/definitions/Entity'}, + 'Result': {'$ref': '#/definitions/UserModelList'}}, + 'type': 'object'}, + 'ModelDefaults': {'properties': {'Result': {'$ref': '#/definitions/ModelDefaultsResult'}}, + 'type': 'object'}, + 'ModelInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ModelInfoResults'}}, + 'type': 'object'}, + 'ModelStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ModelStatusResults'}}, + 'type': 'object'}, + 'ModifyModelAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyModelAccessRequest'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetModelDefaults': {'properties': {'Params': {'$ref': '#/definitions/SetModelDefaults'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'UnsetModelDefaults': {'properties': {'Params': {'$ref': '#/definitions/UnsetModelDefaults'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ModelInfo) + async def CreateModel(self, cloud_tag, config, credential, name, owner_tag, region): + ''' + cloud_tag : str + config : typing.Mapping[str, typing.Any] + credential : str + name : str + owner_tag : str + region : str + Returns -> typing.Union[_ForwardRef('Number'), str, typing.Sequence[~ModelMachineInfo], _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence[~ModelUserInfo]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='CreateModel', + version=3, + params=_params) + _params['cloud-tag'] = cloud_tag + _params['config'] = config + _params['credential'] = credential + _params['name'] = name + _params['owner-tag'] = owner_tag + _params['region'] = region + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def DestroyModels(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='DestroyModels', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def DumpModels(self, entities, simplified): + ''' + entities : typing.Sequence[~Entity] + simplified : bool + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='DumpModels', + version=3, + params=_params) + _params['entities'] = entities + _params['simplified'] = simplified + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MapResults) + async def DumpModelsDB(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MapResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='DumpModelsDB', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(UserModelList) + async def ListModels(self, tag): + ''' + tag : str + Returns -> typing.Sequence[~UserModel] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='ListModels', + version=3, + params=_params) + _params['tag'] = tag + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelDefaultsResult) + async def ModelDefaults(self): + ''' + + Returns -> typing.Mapping[str, ~ModelDefaults] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='ModelDefaults', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelInfoResults) + async def ModelInfo(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ModelInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='ModelInfo', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelStatusResults) + async def ModelStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ModelStatus] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='ModelStatus', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def ModifyModelAccess(self, changes): + ''' + changes : typing.Sequence[~ModifyModelAccess] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='ModifyModelAccess', + version=3, + params=_params) + _params['changes'] = changes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetModelDefaults(self, config): + ''' + config : typing.Sequence[~ModelDefaultValues] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='SetModelDefaults', + version=3, + params=_params) + _params['config'] = config + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def UnsetModelDefaults(self, keys): + ''' + keys : typing.Sequence[~ModelUnsetKeys] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='UnsetModelDefaults', + version=3, + params=_params) + _params['keys'] = keys + reply = await self.rpc(msg) + return reply + + + +class ProvisionerFacade(Type): + name = 'Provisioner' + version = 3 + schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, + 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, + 'type': 'array'}, + 'type': 'array'}}, + 'required': ['servers'], + 'type': 'object'}, + 'Address': {'additionalProperties': False, + 'properties': {'scope': {'type': 'string'}, + 'space-name': {'type': 'string'}, + 'type': {'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['value', 'type', 'scope'], + 'type': 'object'}, + 'Binary': {'additionalProperties': False, + 'properties': {'Arch': {'type': 'string'}, + 'Number': {'$ref': '#/definitions/Number'}, + 'Series': {'type': 'string'}}, + 'required': ['Number', 'Series', 'Arch'], + 'type': 'object'}, + 'BytesResult': {'additionalProperties': False, + 'properties': {'result': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['result'], + 'type': 'object'}, + 'CloudImageMetadata': {'additionalProperties': False, + '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'}}, + 'required': ['image-id', + 'region', + 'version', + 'series', + 'arch', + 'source', + 'priority'], + 'type': 'object'}, + 'ConstraintsResult': {'additionalProperties': False, + 'properties': {'constraints': {'$ref': '#/definitions/Value'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['constraints'], + 'type': 'object'}, + 'ConstraintsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ConstraintsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ContainerConfig': {'additionalProperties': False, + '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'}}, + 'required': ['provider-type', + 'authorized-keys', + 'ssl-hostname-verification', + 'proxy', + 'apt-proxy', + 'apt-mirror', + 'UpdateBehavior'], + 'type': 'object'}, + 'ContainerManagerConfig': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ContainerManagerConfigParams': {'additionalProperties': False, + 'properties': {'type': {'type': 'string'}}, + 'required': ['type'], + 'type': 'object'}, + 'ControllerConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'DeviceBridgeInfo': {'additionalProperties': False, + 'properties': {'bridge-name': {'type': 'string'}, + 'host-device-name': {'type': 'string'}}, + 'required': ['host-device-name', + 'bridge-name'], + 'type': 'object'}, + 'DistributionGroupResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['result'], + 'type': 'object'}, + 'DistributionGroupResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/DistributionGroupResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityPassword': {'additionalProperties': False, + 'properties': {'password': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'password'], + 'type': 'object'}, + 'EntityPasswords': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'}, + 'type': 'array'}}, + 'required': ['changes'], + 'type': 'object'}, + 'EntityStatusArgs': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'status': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', + 'status', + 'info', + 'data'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'FindToolsParams': {'additionalProperties': False, + 'properties': {'arch': {'type': 'string'}, + 'major': {'type': 'integer'}, + 'minor': {'type': 'integer'}, + 'number': {'$ref': '#/definitions/Number'}, + 'series': {'type': 'string'}}, + 'required': ['number', + 'major', + 'minor', + 'arch', + 'series'], + 'type': 'object'}, + 'FindToolsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'list': {'items': {'$ref': '#/definitions/Tools'}, + 'type': 'array'}}, + 'required': ['list'], + 'type': 'object'}, + 'HardwareCharacteristics': {'additionalProperties': False, + 'properties': {'arch': {'type': 'string'}, + 'availability-zone': {'type': 'string'}, + 'cpu-cores': {'type': 'integer'}, + 'cpu-power': {'type': 'integer'}, + 'mem': {'type': 'integer'}, + 'root-disk': {'type': 'integer'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'HostNetworkChange': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'new-bridges': {'items': {'$ref': '#/definitions/DeviceBridgeInfo'}, + 'type': 'array'}, + 'reconfigure-delay': {'type': 'integer'}}, + 'required': ['new-bridges', + 'reconfigure-delay'], + 'type': 'object'}, + 'HostNetworkChangeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/HostNetworkChange'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'HostPort': {'additionalProperties': False, + 'properties': {'Address': {'$ref': '#/definitions/Address'}, + 'port': {'type': 'integer'}}, + 'required': ['Address', 'port'], + 'type': 'object'}, + 'InstanceInfo': {'additionalProperties': False, + 'properties': {'characteristics': {'$ref': '#/definitions/HardwareCharacteristics'}, + 'instance-id': {'type': 'string'}, + 'network-config': {'items': {'$ref': '#/definitions/NetworkConfig'}, + 'type': 'array'}, + 'nonce': {'type': 'string'}, + 'tag': {'type': 'string'}, + 'volume-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/VolumeAttachmentInfo'}}, + 'type': 'object'}, + 'volumes': {'items': {'$ref': '#/definitions/Volume'}, + 'type': 'array'}}, + 'required': ['tag', + 'instance-id', + 'nonce', + 'characteristics', + 'volumes', + 'volume-attachments', + 'network-config'], + 'type': 'object'}, + 'InstancesInfo': {'additionalProperties': False, + 'properties': {'machines': {'items': {'$ref': '#/definitions/InstanceInfo'}, + 'type': 'array'}}, + 'required': ['machines'], + 'type': 'object'}, + 'LifeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'life': {'type': 'string'}}, + 'required': ['life'], + 'type': 'object'}, + 'LifeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MachineContainers': {'additionalProperties': False, + 'properties': {'container-types': {'items': {'type': 'string'}, + 'type': 'array'}, + 'machine-tag': {'type': 'string'}}, + 'required': ['machine-tag', + 'container-types'], + 'type': 'object'}, + 'MachineContainersParams': {'additionalProperties': False, + 'properties': {'params': {'items': {'$ref': '#/definitions/MachineContainers'}, + 'type': 'array'}}, + 'required': ['params'], + 'type': 'object'}, + 'MachineNetworkConfigResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'info': {'items': {'$ref': '#/definitions/NetworkConfig'}, + 'type': 'array'}}, + 'required': ['info'], + 'type': 'object'}, + 'MachineNetworkConfigResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/MachineNetworkConfigResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ModelConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'NetworkConfig': {'additionalProperties': False, + 'properties': {'address': {'type': 'string'}, + 'cidr': {'type': 'string'}, + 'config-type': {'type': 'string'}, + 'device-index': {'type': 'integer'}, + 'disabled': {'type': 'boolean'}, + 'dns-search-domains': {'items': {'type': 'string'}, + 'type': 'array'}, + 'dns-servers': {'items': {'type': 'string'}, + 'type': 'array'}, + 'gateway-address': {'type': 'string'}, + 'interface-name': {'type': 'string'}, + 'interface-type': {'type': 'string'}, + 'mac-address': {'type': 'string'}, + 'mtu': {'type': 'integer'}, + 'no-auto-start': {'type': 'boolean'}, + 'parent-interface-name': {'type': 'string'}, + 'provider-address-id': {'type': 'string'}, + 'provider-id': {'type': 'string'}, + 'provider-space-id': {'type': 'string'}, + 'provider-subnet-id': {'type': 'string'}, + 'provider-vlan-id': {'type': 'string'}, + 'routes': {'items': {'$ref': '#/definitions/NetworkRoute'}, + 'type': 'array'}, + 'vlan-tag': {'type': 'integer'}}, + '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'], + 'type': 'object'}, + 'NetworkRoute': {'additionalProperties': False, + 'properties': {'destination-cidr': {'type': 'string'}, + 'gateway-ip': {'type': 'string'}, + 'metric': {'type': 'integer'}}, + 'required': ['destination-cidr', + 'gateway-ip', + 'metric'], + 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'Number': {'additionalProperties': False, + 'properties': {'Build': {'type': 'integer'}, + 'Major': {'type': 'integer'}, + 'Minor': {'type': 'integer'}, + 'Patch': {'type': 'integer'}, + 'Tag': {'type': 'string'}}, + 'required': ['Major', + 'Minor', + 'Tag', + 'Patch', + 'Build'], + 'type': 'object'}, + 'ProvisioningInfo': {'additionalProperties': False, + 'properties': {'constraints': {'$ref': '#/definitions/Value'}, + 'controller-config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'image-metadata': {'items': {'$ref': '#/definitions/CloudImageMetadata'}, + 'type': 'array'}, + 'jobs': {'items': {'type': 'string'}, + 'type': 'array'}, + 'placement': {'type': 'string'}, + 'series': {'type': 'string'}, + 'subnets-to-zones': {'patternProperties': {'.*': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'tags': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'volume-attachments': {'items': {'$ref': '#/definitions/VolumeAttachmentParams'}, + 'type': 'array'}, + 'volumes': {'items': {'$ref': '#/definitions/VolumeParams'}, + 'type': 'array'}}, + 'required': ['constraints', + 'series', + 'placement', + 'jobs'], + 'type': 'object'}, + 'ProvisioningInfoResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/ProvisioningInfo'}}, + 'required': ['result'], + 'type': 'object'}, + 'ProvisioningInfoResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ProvisioningInfoResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'SetMachineNetworkConfig': {'additionalProperties': False, + 'properties': {'config': {'items': {'$ref': '#/definitions/NetworkConfig'}, + 'type': 'array'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'config'], + 'type': 'object'}, + 'SetStatus': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Settings': {'additionalProperties': False, + 'properties': {'AutoNoProxy': {'type': 'string'}, + 'Ftp': {'type': 'string'}, + 'Http': {'type': 'string'}, + 'Https': {'type': 'string'}, + 'NoProxy': {'type': 'string'}}, + 'required': ['Http', + 'Https', + 'Ftp', + 'NoProxy', + 'AutoNoProxy'], + 'type': 'object'}, + 'StatusResult': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'error': {'$ref': '#/definitions/Error'}, + 'id': {'type': 'string'}, + 'info': {'type': 'string'}, + 'life': {'type': 'string'}, + 'since': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['id', + 'life', + 'status', + 'info', + 'data', + 'since'], + 'type': 'object'}, + 'StatusResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StatusResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'StringResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}, + 'StringsWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Tools': {'additionalProperties': False, + 'properties': {'sha256': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'url': {'type': 'string'}, + 'version': {'$ref': '#/definitions/Binary'}}, + 'required': ['version', 'url', 'size'], + 'type': 'object'}, + 'ToolsResult': {'additionalProperties': False, + 'properties': {'disable-ssl-hostname-verification': {'type': 'boolean'}, + 'error': {'$ref': '#/definitions/Error'}, + 'tools': {'items': {'$ref': '#/definitions/Tools'}, + 'type': 'array'}}, + 'required': ['tools', + 'disable-ssl-hostname-verification'], + 'type': 'object'}, + 'ToolsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ToolsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'UpdateBehavior': {'additionalProperties': False, + 'properties': {'enable-os-refresh-update': {'type': 'boolean'}, + 'enable-os-upgrade': {'type': 'boolean'}}, + 'required': ['enable-os-refresh-update', + 'enable-os-upgrade'], + 'type': 'object'}, + 'Value': {'additionalProperties': False, + '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': {'items': {'type': 'string'}, + 'type': 'array'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}, + 'virt-type': {'type': 'string'}}, + 'type': 'object'}, + 'Volume': {'additionalProperties': False, + 'properties': {'info': {'$ref': '#/definitions/VolumeInfo'}, + 'volume-tag': {'type': 'string'}}, + 'required': ['volume-tag', 'info'], + 'type': 'object'}, + 'VolumeAttachmentInfo': {'additionalProperties': False, + 'properties': {'bus-address': {'type': 'string'}, + 'device-link': {'type': 'string'}, + 'device-name': {'type': 'string'}, + 'read-only': {'type': 'boolean'}}, + 'type': 'object'}, + 'VolumeAttachmentParams': {'additionalProperties': False, + 'properties': {'instance-id': {'type': 'string'}, + 'machine-tag': {'type': 'string'}, + 'provider': {'type': 'string'}, + 'read-only': {'type': 'boolean'}, + 'volume-id': {'type': 'string'}, + 'volume-tag': {'type': 'string'}}, + 'required': ['volume-tag', + 'machine-tag', + 'provider'], + 'type': 'object'}, + 'VolumeInfo': {'additionalProperties': False, + 'properties': {'hardware-id': {'type': 'string'}, + 'persistent': {'type': 'boolean'}, + 'pool': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'volume-id': {'type': 'string'}, + 'wwn': {'type': 'string'}}, + 'required': ['volume-id', 'size', 'persistent'], + 'type': 'object'}, + 'VolumeParams': {'additionalProperties': False, + 'properties': {'attachment': {'$ref': '#/definitions/VolumeAttachmentParams'}, + 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'provider': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'tags': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'volume-tag': {'type': 'string'}}, + 'required': ['volume-tag', + 'size', + 'provider'], + 'type': 'object'}, + 'WatchContainer': {'additionalProperties': False, + 'properties': {'container-type': {'type': 'string'}, + 'machine-tag': {'type': 'string'}}, + 'required': ['machine-tag', + 'container-type'], + 'type': 'object'}, + 'WatchContainers': {'additionalProperties': False, + 'properties': {'params': {'items': {'$ref': '#/definitions/WatchContainer'}, + 'type': 'array'}}, + 'required': ['params'], + 'type': 'object'}}, + 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, + 'type': 'object'}, + 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, + 'type': 'object'}, + 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, + 'type': 'object'}, + 'Constraints': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ConstraintsResults'}}, + 'type': 'object'}, + 'ContainerConfig': {'properties': {'Result': {'$ref': '#/definitions/ContainerConfig'}}, + 'type': 'object'}, + 'ContainerManagerConfig': {'properties': {'Params': {'$ref': '#/definitions/ContainerManagerConfigParams'}, + 'Result': {'$ref': '#/definitions/ContainerManagerConfig'}}, + 'type': 'object'}, + 'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}}, + 'type': 'object'}, + 'DistributionGroup': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/DistributionGroupResults'}}, + 'type': 'object'}, + 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'FindTools': {'properties': {'Params': {'$ref': '#/definitions/FindToolsParams'}, + 'Result': {'$ref': '#/definitions/FindToolsResult'}}, + 'type': 'object'}, + 'GetContainerInterfaceInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/MachineNetworkConfigResults'}}, + 'type': 'object'}, + 'HostChangesForContainers': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/HostNetworkChangeResults'}}, + 'type': 'object'}, + 'InstanceId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'InstanceStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StatusResults'}}, + 'type': 'object'}, + 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/LifeResults'}}, + 'type': 'object'}, + 'MachinesWithTransientErrors': {'properties': {'Result': {'$ref': '#/definitions/StatusResults'}}, + 'type': 'object'}, + 'MarkMachinesForRemoval': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, + 'type': 'object'}, + 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'PrepareContainerInterfaceInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/MachineNetworkConfigResults'}}, + 'type': 'object'}, + 'ProvisioningInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ProvisioningInfoResults'}}, + 'type': 'object'}, + 'ReleaseContainerAddresses': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Remove': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Series': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'SetHostMachineNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/SetMachineNetworkConfig'}}, + 'type': 'object'}, + 'SetInstanceInfo': {'properties': {'Params': {'$ref': '#/definitions/InstancesInfo'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetInstanceStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetObservedNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/SetMachineNetworkConfig'}}, + 'type': 'object'}, + 'SetPasswords': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetProviderNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetSupportedContainers': {'properties': {'Params': {'$ref': '#/definitions/MachineContainersParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'StateAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, + 'type': 'object'}, + 'Status': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StatusResults'}}, + 'type': 'object'}, + 'Tools': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ToolsResults'}}, + 'type': 'object'}, + 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}, + 'WatchAllContainers': {'properties': {'Params': {'$ref': '#/definitions/WatchContainers'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WatchContainers': {'properties': {'Params': {'$ref': '#/definitions/WatchContainers'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}, + 'WatchMachineErrorRetry': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}, + 'WatchModelMachines': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(StringsResult) + async def APIAddresses(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='APIAddresses', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(APIHostPortsResult) + async def APIHostPorts(self): + ''' + + Returns -> typing.Sequence[~HostPort] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='APIHostPorts', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(BytesResult) + async def CACert(self): + ''' + + Returns -> typing.Sequence[int] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='CACert', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ConstraintsResults) + async def Constraints(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ConstraintsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='Constraints', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ContainerConfig) + async def ContainerConfig(self): + ''' + + Returns -> typing.Union[_ForwardRef('UpdateBehavior'), str, _ForwardRef('Settings'), bool] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='ContainerConfig', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ContainerManagerConfig) + async def ContainerManagerConfig(self, type_): + ''' + type_ : str + Returns -> typing.Mapping[str, str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='ContainerManagerConfig', + version=3, + params=_params) + _params['type'] = type_ + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ControllerConfigResult) + async def ControllerConfig(self): + ''' + + Returns -> typing.Mapping[str, typing.Any] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='ControllerConfig', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(DistributionGroupResults) + async def DistributionGroup(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~DistributionGroupResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='DistributionGroup', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def EnsureDead(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='EnsureDead', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(FindToolsResult) + async def FindTools(self, arch, major, minor, number, series): + ''' + arch : str + major : int + minor : int + number : Number + series : str + Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[~Tools]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='FindTools', + version=3, + params=_params) + _params['arch'] = arch + _params['major'] = major + _params['minor'] = minor + _params['number'] = number + _params['series'] = series + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MachineNetworkConfigResults) + async def GetContainerInterfaceInfo(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MachineNetworkConfigResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='GetContainerInterfaceInfo', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(HostNetworkChangeResults) + async def HostChangesForContainers(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~HostNetworkChange] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='HostChangesForContainers', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def InstanceId(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='InstanceId', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StatusResults) + async def InstanceStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StatusResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='InstanceStatus', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(LifeResults) + async def Life(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~LifeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='Life', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StatusResults) + async def MachinesWithTransientErrors(self): + ''' + + Returns -> typing.Sequence[~StatusResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='MachinesWithTransientErrors', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def MarkMachinesForRemoval(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='MarkMachinesForRemoval', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelConfigResult) + async def ModelConfig(self): + ''' + + Returns -> typing.Mapping[str, typing.Any] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='ModelConfig', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def ModelUUID(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='ModelUUID', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MachineNetworkConfigResults) + async def PrepareContainerInterfaceInfo(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MachineNetworkConfigResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='PrepareContainerInterfaceInfo', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ProvisioningInfoResults) + async def ProvisioningInfo(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ProvisioningInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='ProvisioningInfo', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def ReleaseContainerAddresses(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='ReleaseContainerAddresses', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Remove(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='Remove', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def Series(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='Series', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetHostMachineNetworkConfig(self, config, tag): + ''' + config : typing.Sequence[~NetworkConfig] + tag : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='SetHostMachineNetworkConfig', + version=3, + params=_params) + _params['config'] = config + _params['tag'] = tag + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetInstanceInfo(self, machines): + ''' + machines : typing.Sequence[~InstanceInfo] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='SetInstanceInfo', + version=3, + params=_params) + _params['machines'] = machines + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetInstanceStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='SetInstanceStatus', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetObservedNetworkConfig(self, config, tag): + ''' + config : typing.Sequence[~NetworkConfig] + tag : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='SetObservedNetworkConfig', + version=3, + params=_params) + _params['config'] = config + _params['tag'] = tag + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetPasswords(self, changes): + ''' + changes : typing.Sequence[~EntityPassword] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='SetPasswords', + version=3, + params=_params) + _params['changes'] = changes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetProviderNetworkConfig(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='SetProviderNetworkConfig', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='SetStatus', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetSupportedContainers(self, params): + ''' + params : typing.Sequence[~MachineContainers] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='SetSupportedContainers', + version=3, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsResult) + async def StateAddresses(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='StateAddresses', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StatusResults) + async def Status(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StatusResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='Status', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ToolsResults) + async def Tools(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ToolsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='Tools', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def UpdateStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='UpdateStatus', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchAPIHostPorts(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='WatchAPIHostPorts', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchAllContainers(self, params): + ''' + params : typing.Sequence[~WatchContainer] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='WatchAllContainers', + version=3, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchContainers(self, params): + ''' + params : typing.Sequence[~WatchContainer] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='WatchContainers', + version=3, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchForModelConfigChanges(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='WatchForModelConfigChanges', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchMachineErrorRetry(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='WatchMachineErrorRetry', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResult) + async def WatchModelMachines(self): + ''' + + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='WatchModelMachines', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class SpacesFacade(Type): + name = 'Spaces' + version = 3 + schema = {'definitions': {'CreateSpaceParams': {'additionalProperties': False, + 'properties': {'provider-id': {'type': 'string'}, + 'public': {'type': 'boolean'}, + 'space-tag': {'type': 'string'}, + 'subnet-tags': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['subnet-tags', + 'space-tag', + 'public'], + 'type': 'object'}, + 'CreateSpacesParams': {'additionalProperties': False, + 'properties': {'spaces': {'items': {'$ref': '#/definitions/CreateSpaceParams'}, + 'type': 'array'}}, + 'required': ['spaces'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ListSpacesResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/Space'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'Space': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'name': {'type': 'string'}, + 'subnets': {'items': {'$ref': '#/definitions/Subnet'}, + 'type': 'array'}}, + 'required': ['name', 'subnets'], + 'type': 'object'}, + 'Subnet': {'additionalProperties': False, + 'properties': {'cidr': {'type': 'string'}, + 'life': {'type': 'string'}, + 'provider-id': {'type': 'string'}, + 'provider-network-id': {'type': 'string'}, + 'provider-space-id': {'type': 'string'}, + 'space-tag': {'type': 'string'}, + 'status': {'type': 'string'}, + 'vlan-tag': {'type': 'integer'}, + 'zones': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['cidr', + 'vlan-tag', + 'life', + 'space-tag', + 'zones'], + 'type': 'object'}}, + 'properties': {'CreateSpaces': {'properties': {'Params': {'$ref': '#/definitions/CreateSpacesParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'ListSpaces': {'properties': {'Result': {'$ref': '#/definitions/ListSpacesResults'}}, + 'type': 'object'}, + 'ReloadSpaces': {'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResults) + async def CreateSpaces(self, spaces): + ''' + spaces : typing.Sequence[~CreateSpaceParams] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Spaces', + request='CreateSpaces', + version=3, + params=_params) + _params['spaces'] = spaces + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ListSpacesResults) + async def ListSpaces(self): + ''' + + Returns -> typing.Sequence[~Space] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Spaces', + request='ListSpaces', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def ReloadSpaces(self): + ''' + + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Spaces', + request='ReloadSpaces', + version=3, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class StorageFacade(Type): + name = 'Storage' + version = 3 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityStatus': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'since': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['status', 'info', 'since'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'FilesystemAttachmentDetails': {'additionalProperties': False, + 'properties': {'FilesystemAttachmentInfo': {'$ref': '#/definitions/FilesystemAttachmentInfo'}, + 'life': {'type': 'string'}}, + 'required': ['FilesystemAttachmentInfo'], + 'type': 'object'}, + 'FilesystemAttachmentInfo': {'additionalProperties': False, + 'properties': {'mount-point': {'type': 'string'}, + 'read-only': {'type': 'boolean'}}, + 'type': 'object'}, + 'FilesystemDetails': {'additionalProperties': False, + 'properties': {'filesystem-tag': {'type': 'string'}, + 'info': {'$ref': '#/definitions/FilesystemInfo'}, + 'life': {'type': 'string'}, + 'machine-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/FilesystemAttachmentDetails'}}, + 'type': 'object'}, + 'status': {'$ref': '#/definitions/EntityStatus'}, + 'storage': {'$ref': '#/definitions/StorageDetails'}, + 'volume-tag': {'type': 'string'}}, + 'required': ['filesystem-tag', + 'info', + 'status'], + 'type': 'object'}, + 'FilesystemDetailsListResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'$ref': '#/definitions/FilesystemDetails'}, + 'type': 'array'}}, + 'type': 'object'}, + 'FilesystemDetailsListResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemDetailsListResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'FilesystemFilter': {'additionalProperties': False, + 'properties': {'machines': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'FilesystemFilters': {'additionalProperties': False, + 'properties': {'filters': {'items': {'$ref': '#/definitions/FilesystemFilter'}, + 'type': 'array'}}, + 'type': 'object'}, + 'FilesystemInfo': {'additionalProperties': False, + 'properties': {'filesystem-id': {'type': 'string'}, + 'pool': {'type': 'string'}, + 'size': {'type': 'integer'}}, + 'required': ['filesystem-id', + 'pool', + 'size'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'StorageAddParams': {'additionalProperties': False, + 'properties': {'name': {'type': 'string'}, + 'storage': {'$ref': '#/definitions/StorageConstraints'}, + 'unit': {'type': 'string'}}, + 'required': ['unit', 'name', 'storage'], + 'type': 'object'}, + 'StorageAttachmentDetails': {'additionalProperties': False, + 'properties': {'life': {'type': 'string'}, + 'location': {'type': 'string'}, + 'machine-tag': {'type': 'string'}, + 'storage-tag': {'type': 'string'}, + 'unit-tag': {'type': 'string'}}, + 'required': ['storage-tag', + 'unit-tag', + 'machine-tag'], + 'type': 'object'}, + 'StorageAttachmentId': {'additionalProperties': False, + 'properties': {'storage-tag': {'type': 'string'}, + 'unit-tag': {'type': 'string'}}, + 'required': ['storage-tag', + 'unit-tag'], + 'type': 'object'}, + 'StorageAttachmentIds': {'additionalProperties': False, + 'properties': {'ids': {'items': {'$ref': '#/definitions/StorageAttachmentId'}, + 'type': 'array'}}, + 'required': ['ids'], + 'type': 'object'}, + 'StorageConstraints': {'additionalProperties': False, + 'properties': {'count': {'type': 'integer'}, + 'pool': {'type': 'string'}, + 'size': {'type': 'integer'}}, + 'type': 'object'}, + 'StorageDetails': {'additionalProperties': False, + 'properties': {'attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/StorageAttachmentDetails'}}, + 'type': 'object'}, + 'kind': {'type': 'integer'}, + 'life': {'type': 'string'}, + 'owner-tag': {'type': 'string'}, + 'persistent': {'type': 'boolean'}, + 'status': {'$ref': '#/definitions/EntityStatus'}, + 'storage-tag': {'type': 'string'}}, + 'required': ['storage-tag', + 'owner-tag', + 'kind', + 'status', + 'persistent'], + 'type': 'object'}, + 'StorageDetailsListResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'$ref': '#/definitions/StorageDetails'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StorageDetailsListResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StorageDetailsListResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StorageDetailsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/StorageDetails'}}, + 'type': 'object'}, + 'StorageDetailsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StorageDetailsResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StorageFilter': {'additionalProperties': False, + 'type': 'object'}, + 'StorageFilters': {'additionalProperties': False, + 'properties': {'filters': {'items': {'$ref': '#/definitions/StorageFilter'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StoragePool': {'additionalProperties': False, + 'properties': {'attrs': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'name': {'type': 'string'}, + 'provider': {'type': 'string'}}, + 'required': ['name', 'provider', 'attrs'], + 'type': 'object'}, + 'StoragePoolFilter': {'additionalProperties': False, + 'properties': {'names': {'items': {'type': 'string'}, + 'type': 'array'}, + 'providers': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StoragePoolFilters': {'additionalProperties': False, + 'properties': {'filters': {'items': {'$ref': '#/definitions/StoragePoolFilter'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StoragePoolsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'storage-pools': {'items': {'$ref': '#/definitions/StoragePool'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StoragePoolsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StoragePoolsResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StoragesAddParams': {'additionalProperties': False, + 'properties': {'storages': {'items': {'$ref': '#/definitions/StorageAddParams'}, + 'type': 'array'}}, + 'required': ['storages'], + 'type': 'object'}, + 'VolumeAttachmentDetails': {'additionalProperties': False, + 'properties': {'VolumeAttachmentInfo': {'$ref': '#/definitions/VolumeAttachmentInfo'}, + 'life': {'type': 'string'}}, + 'required': ['VolumeAttachmentInfo'], + 'type': 'object'}, + 'VolumeAttachmentInfo': {'additionalProperties': False, + 'properties': {'bus-address': {'type': 'string'}, + 'device-link': {'type': 'string'}, + 'device-name': {'type': 'string'}, + 'read-only': {'type': 'boolean'}}, + 'type': 'object'}, + 'VolumeDetails': {'additionalProperties': False, + 'properties': {'info': {'$ref': '#/definitions/VolumeInfo'}, + 'life': {'type': 'string'}, + 'machine-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/VolumeAttachmentDetails'}}, + 'type': 'object'}, + 'status': {'$ref': '#/definitions/EntityStatus'}, + 'storage': {'$ref': '#/definitions/StorageDetails'}, + 'volume-tag': {'type': 'string'}}, + 'required': ['volume-tag', 'info', 'status'], + 'type': 'object'}, + 'VolumeDetailsListResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'$ref': '#/definitions/VolumeDetails'}, + 'type': 'array'}}, + 'type': 'object'}, + 'VolumeDetailsListResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeDetailsListResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'VolumeFilter': {'additionalProperties': False, + 'properties': {'machines': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'VolumeFilters': {'additionalProperties': False, + 'properties': {'filters': {'items': {'$ref': '#/definitions/VolumeFilter'}, + 'type': 'array'}}, + 'type': 'object'}, + 'VolumeInfo': {'additionalProperties': False, + 'properties': {'hardware-id': {'type': 'string'}, + 'persistent': {'type': 'boolean'}, + 'pool': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'volume-id': {'type': 'string'}, + 'wwn': {'type': 'string'}}, + 'required': ['volume-id', 'size', 'persistent'], + 'type': 'object'}}, + 'properties': {'AddToUnit': {'properties': {'Params': {'$ref': '#/definitions/StoragesAddParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Attach': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'CreatePool': {'properties': {'Params': {'$ref': '#/definitions/StoragePool'}}, + 'type': 'object'}, + 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Detach': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'ListFilesystems': {'properties': {'Params': {'$ref': '#/definitions/FilesystemFilters'}, + 'Result': {'$ref': '#/definitions/FilesystemDetailsListResults'}}, + 'type': 'object'}, + 'ListPools': {'properties': {'Params': {'$ref': '#/definitions/StoragePoolFilters'}, + 'Result': {'$ref': '#/definitions/StoragePoolsResults'}}, + 'type': 'object'}, + 'ListStorageDetails': {'properties': {'Params': {'$ref': '#/definitions/StorageFilters'}, + 'Result': {'$ref': '#/definitions/StorageDetailsListResults'}}, + 'type': 'object'}, + 'ListVolumes': {'properties': {'Params': {'$ref': '#/definitions/VolumeFilters'}, + 'Result': {'$ref': '#/definitions/VolumeDetailsListResults'}}, + 'type': 'object'}, + 'StorageDetails': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StorageDetailsResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResults) + async def AddToUnit(self, storages): + ''' + storages : typing.Sequence[~StorageAddParams] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Storage', + request='AddToUnit', + version=3, + params=_params) + _params['storages'] = storages + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Attach(self, ids): + ''' + ids : typing.Sequence[~StorageAttachmentId] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Storage', + request='Attach', + version=3, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def CreatePool(self, attrs, name, provider): + ''' + attrs : typing.Mapping[str, typing.Any] + name : str + provider : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Storage', + request='CreatePool', + version=3, + params=_params) + _params['attrs'] = attrs + _params['name'] = name + _params['provider'] = provider + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Destroy(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Storage', + request='Destroy', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Detach(self, ids): + ''' + ids : typing.Sequence[~StorageAttachmentId] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Storage', + request='Detach', + version=3, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(FilesystemDetailsListResults) + async def ListFilesystems(self, filters): + ''' + filters : typing.Sequence[~FilesystemFilter] + Returns -> typing.Sequence[~FilesystemDetailsListResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Storage', + request='ListFilesystems', + version=3, + params=_params) + _params['filters'] = filters + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StoragePoolsResults) + async def ListPools(self, filters): + ''' + filters : typing.Sequence[~StoragePoolFilter] + Returns -> typing.Sequence[~StoragePoolsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Storage', + request='ListPools', + version=3, + params=_params) + _params['filters'] = filters + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StorageDetailsListResults) + async def ListStorageDetails(self, filters): + ''' + filters : typing.Sequence[~StorageFilter] + Returns -> typing.Sequence[~StorageDetailsListResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Storage', + request='ListStorageDetails', + version=3, + params=_params) + _params['filters'] = filters + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(VolumeDetailsListResults) + async def ListVolumes(self, filters): + ''' + filters : typing.Sequence[~VolumeFilter] + Returns -> typing.Sequence[~VolumeDetailsListResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Storage', + request='ListVolumes', + version=3, + params=_params) + _params['filters'] = filters + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StorageDetailsResults) + async def StorageDetails(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StorageDetailsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Storage', + request='StorageDetails', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class StorageProvisionerFacade(Type): + name = 'StorageProvisioner' + version = 3 + schema = {'definitions': {'BlockDevice': {'additionalProperties': False, + 'properties': {'BusAddress': {'type': 'string'}, + 'DeviceLinks': {'items': {'type': 'string'}, + 'type': 'array'}, + 'DeviceName': {'type': 'string'}, + 'FilesystemType': {'type': 'string'}, + 'HardwareId': {'type': 'string'}, + 'InUse': {'type': 'boolean'}, + 'Label': {'type': 'string'}, + 'MountPoint': {'type': 'string'}, + 'Size': {'type': 'integer'}, + 'UUID': {'type': 'string'}, + 'WWN': {'type': 'string'}}, + 'required': ['DeviceName', + 'DeviceLinks', + 'Label', + 'UUID', + 'HardwareId', + 'WWN', + 'BusAddress', + 'Size', + 'FilesystemType', + 'InUse', + 'MountPoint'], + 'type': 'object'}, + 'BlockDeviceResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/BlockDevice'}}, + 'required': ['result'], + 'type': 'object'}, + 'BlockDeviceResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/BlockDeviceResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityStatusArgs': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'status': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', + 'status', + 'info', + 'data'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Filesystem': {'additionalProperties': False, + 'properties': {'filesystem-tag': {'type': 'string'}, + 'info': {'$ref': '#/definitions/FilesystemInfo'}, + 'volume-tag': {'type': 'string'}}, + 'required': ['filesystem-tag', 'info'], + 'type': 'object'}, + 'FilesystemAttachment': {'additionalProperties': False, + 'properties': {'filesystem-tag': {'type': 'string'}, + 'info': {'$ref': '#/definitions/FilesystemAttachmentInfo'}, + 'machine-tag': {'type': 'string'}}, + 'required': ['filesystem-tag', + 'machine-tag', + 'info'], + 'type': 'object'}, + 'FilesystemAttachmentInfo': {'additionalProperties': False, + 'properties': {'mount-point': {'type': 'string'}, + 'read-only': {'type': 'boolean'}}, + 'type': 'object'}, + 'FilesystemAttachmentParams': {'additionalProperties': False, + 'properties': {'filesystem-id': {'type': 'string'}, + 'filesystem-tag': {'type': 'string'}, + 'instance-id': {'type': 'string'}, + 'machine-tag': {'type': 'string'}, + 'mount-point': {'type': 'string'}, + 'provider': {'type': 'string'}, + 'read-only': {'type': 'boolean'}}, + 'required': ['filesystem-tag', + 'machine-tag', + 'provider'], + 'type': 'object'}, + 'FilesystemAttachmentParamsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/FilesystemAttachmentParams'}}, + 'required': ['result'], + 'type': 'object'}, + 'FilesystemAttachmentParamsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemAttachmentParamsResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'FilesystemAttachmentResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/FilesystemAttachment'}}, + 'required': ['result'], + 'type': 'object'}, + 'FilesystemAttachmentResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemAttachmentResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'FilesystemAttachments': {'additionalProperties': False, + 'properties': {'filesystem-attachments': {'items': {'$ref': '#/definitions/FilesystemAttachment'}, + 'type': 'array'}}, + 'required': ['filesystem-attachments'], + 'type': 'object'}, + 'FilesystemInfo': {'additionalProperties': False, + 'properties': {'filesystem-id': {'type': 'string'}, + 'pool': {'type': 'string'}, + 'size': {'type': 'integer'}}, + 'required': ['filesystem-id', + 'pool', + 'size'], + 'type': 'object'}, + 'FilesystemParams': {'additionalProperties': False, + 'properties': {'attachment': {'$ref': '#/definitions/FilesystemAttachmentParams'}, + 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'filesystem-tag': {'type': 'string'}, + 'provider': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'tags': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'volume-tag': {'type': 'string'}}, + 'required': ['filesystem-tag', + 'size', + 'provider'], + 'type': 'object'}, + 'FilesystemParamsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/FilesystemParams'}}, + 'required': ['result'], + 'type': 'object'}, + 'FilesystemParamsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemParamsResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'FilesystemResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/Filesystem'}}, + 'required': ['result'], + 'type': 'object'}, + 'FilesystemResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Filesystems': {'additionalProperties': False, + 'properties': {'filesystems': {'items': {'$ref': '#/definitions/Filesystem'}, + 'type': 'array'}}, + 'required': ['filesystems'], + 'type': 'object'}, + 'LifeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'life': {'type': 'string'}}, + 'required': ['life'], + 'type': 'object'}, + 'LifeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MachineStorageId': {'additionalProperties': False, + 'properties': {'attachment-tag': {'type': 'string'}, + 'machine-tag': {'type': 'string'}}, + 'required': ['machine-tag', + 'attachment-tag'], + 'type': 'object'}, + 'MachineStorageIds': {'additionalProperties': False, + 'properties': {'ids': {'items': {'$ref': '#/definitions/MachineStorageId'}, + 'type': 'array'}}, + 'required': ['ids'], + 'type': 'object'}, + 'MachineStorageIdsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/MachineStorageId'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id', + 'changes'], + 'type': 'object'}, + 'MachineStorageIdsWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/MachineStorageIdsWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'SetStatus': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'StringResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}, + 'StringsWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Volume': {'additionalProperties': False, + 'properties': {'info': {'$ref': '#/definitions/VolumeInfo'}, + 'volume-tag': {'type': 'string'}}, + 'required': ['volume-tag', 'info'], + 'type': 'object'}, + 'VolumeAttachment': {'additionalProperties': False, + 'properties': {'info': {'$ref': '#/definitions/VolumeAttachmentInfo'}, + 'machine-tag': {'type': 'string'}, + 'volume-tag': {'type': 'string'}}, + 'required': ['volume-tag', + 'machine-tag', + 'info'], + 'type': 'object'}, + 'VolumeAttachmentInfo': {'additionalProperties': False, + 'properties': {'bus-address': {'type': 'string'}, + 'device-link': {'type': 'string'}, + 'device-name': {'type': 'string'}, + 'read-only': {'type': 'boolean'}}, + 'type': 'object'}, + 'VolumeAttachmentParams': {'additionalProperties': False, + 'properties': {'instance-id': {'type': 'string'}, + 'machine-tag': {'type': 'string'}, + 'provider': {'type': 'string'}, + 'read-only': {'type': 'boolean'}, + 'volume-id': {'type': 'string'}, + 'volume-tag': {'type': 'string'}}, + 'required': ['volume-tag', + 'machine-tag', + 'provider'], + 'type': 'object'}, + 'VolumeAttachmentParamsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/VolumeAttachmentParams'}}, + 'required': ['result'], + 'type': 'object'}, + 'VolumeAttachmentParamsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeAttachmentParamsResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'VolumeAttachmentResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/VolumeAttachment'}}, + 'required': ['result'], + 'type': 'object'}, + 'VolumeAttachmentResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeAttachmentResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'VolumeAttachments': {'additionalProperties': False, + 'properties': {'volume-attachments': {'items': {'$ref': '#/definitions/VolumeAttachment'}, + 'type': 'array'}}, + 'required': ['volume-attachments'], + 'type': 'object'}, + 'VolumeInfo': {'additionalProperties': False, + 'properties': {'hardware-id': {'type': 'string'}, + 'persistent': {'type': 'boolean'}, + 'pool': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'volume-id': {'type': 'string'}, + 'wwn': {'type': 'string'}}, + 'required': ['volume-id', 'size', 'persistent'], + 'type': 'object'}, + 'VolumeParams': {'additionalProperties': False, + 'properties': {'attachment': {'$ref': '#/definitions/VolumeAttachmentParams'}, + 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'provider': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'tags': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'volume-tag': {'type': 'string'}}, + 'required': ['volume-tag', + 'size', + 'provider'], + 'type': 'object'}, + 'VolumeParamsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/VolumeParams'}}, + 'required': ['result'], + 'type': 'object'}, + 'VolumeParamsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeParamsResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'VolumeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/Volume'}}, + 'required': ['result'], + 'type': 'object'}, + 'VolumeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Volumes': {'additionalProperties': False, + 'properties': {'volumes': {'items': {'$ref': '#/definitions/Volume'}, + 'type': 'array'}}, + 'required': ['volumes'], + 'type': 'object'}}, + 'properties': {'AttachmentLife': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, + 'Result': {'$ref': '#/definitions/LifeResults'}}, + 'type': 'object'}, + 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'FilesystemAttachmentParams': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, + 'Result': {'$ref': '#/definitions/FilesystemAttachmentParamsResults'}}, + 'type': 'object'}, + 'FilesystemAttachments': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, + 'Result': {'$ref': '#/definitions/FilesystemAttachmentResults'}}, + 'type': 'object'}, + 'FilesystemParams': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/FilesystemParamsResults'}}, + 'type': 'object'}, + 'Filesystems': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/FilesystemResults'}}, + 'type': 'object'}, + 'InstanceId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/LifeResults'}}, + 'type': 'object'}, + 'Remove': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'RemoveAttachment': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetFilesystemAttachmentInfo': {'properties': {'Params': {'$ref': '#/definitions/FilesystemAttachments'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetFilesystemInfo': {'properties': {'Params': {'$ref': '#/definitions/Filesystems'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetVolumeAttachmentInfo': {'properties': {'Params': {'$ref': '#/definitions/VolumeAttachments'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetVolumeInfo': {'properties': {'Params': {'$ref': '#/definitions/Volumes'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'VolumeAttachmentParams': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, + 'Result': {'$ref': '#/definitions/VolumeAttachmentParamsResults'}}, + 'type': 'object'}, + 'VolumeAttachments': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, + 'Result': {'$ref': '#/definitions/VolumeAttachmentResults'}}, + 'type': 'object'}, + 'VolumeBlockDevices': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, + 'Result': {'$ref': '#/definitions/BlockDeviceResults'}}, + 'type': 'object'}, + 'VolumeParams': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/VolumeParamsResults'}}, + 'type': 'object'}, + 'Volumes': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/VolumeResults'}}, + 'type': 'object'}, + 'WatchBlockDevices': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchFilesystemAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResults'}}, + 'type': 'object'}, + 'WatchFilesystems': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WatchMachines': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchVolumeAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResults'}}, + 'type': 'object'}, + 'WatchVolumes': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(LifeResults) + async def AttachmentLife(self, ids): + ''' + ids : typing.Sequence[~MachineStorageId] + Returns -> typing.Sequence[~LifeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='AttachmentLife', + version=3, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def EnsureDead(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='EnsureDead', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(FilesystemAttachmentParamsResults) + async def FilesystemAttachmentParams(self, ids): + ''' + ids : typing.Sequence[~MachineStorageId] + Returns -> typing.Sequence[~FilesystemAttachmentParamsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='FilesystemAttachmentParams', + version=3, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(FilesystemAttachmentResults) + async def FilesystemAttachments(self, ids): + ''' + ids : typing.Sequence[~MachineStorageId] + Returns -> typing.Sequence[~FilesystemAttachmentResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='FilesystemAttachments', + version=3, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(FilesystemParamsResults) + async def FilesystemParams(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~FilesystemParamsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='FilesystemParams', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(FilesystemResults) + async def Filesystems(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~FilesystemResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='Filesystems', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def InstanceId(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='InstanceId', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(LifeResults) + async def Life(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~LifeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='Life', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Remove(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='Remove', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def RemoveAttachment(self, ids): + ''' + ids : typing.Sequence[~MachineStorageId] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='RemoveAttachment', + version=3, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetFilesystemAttachmentInfo(self, filesystem_attachments): + ''' + filesystem_attachments : typing.Sequence[~FilesystemAttachment] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='SetFilesystemAttachmentInfo', + version=3, + params=_params) + _params['filesystem-attachments'] = filesystem_attachments + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetFilesystemInfo(self, filesystems): + ''' + filesystems : typing.Sequence[~Filesystem] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='SetFilesystemInfo', + version=3, + params=_params) + _params['filesystems'] = filesystems + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='SetStatus', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetVolumeAttachmentInfo(self, volume_attachments): + ''' + volume_attachments : typing.Sequence[~VolumeAttachment] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='SetVolumeAttachmentInfo', + version=3, + params=_params) + _params['volume-attachments'] = volume_attachments + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetVolumeInfo(self, volumes): + ''' + volumes : typing.Sequence[~Volume] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='SetVolumeInfo', + version=3, + params=_params) + _params['volumes'] = volumes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def UpdateStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='UpdateStatus', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(VolumeAttachmentParamsResults) + async def VolumeAttachmentParams(self, ids): + ''' + ids : typing.Sequence[~MachineStorageId] + Returns -> typing.Sequence[~VolumeAttachmentParamsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='VolumeAttachmentParams', + version=3, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(VolumeAttachmentResults) + async def VolumeAttachments(self, ids): + ''' + ids : typing.Sequence[~MachineStorageId] + Returns -> typing.Sequence[~VolumeAttachmentResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='VolumeAttachments', + version=3, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(BlockDeviceResults) + async def VolumeBlockDevices(self, ids): + ''' + ids : typing.Sequence[~MachineStorageId] + Returns -> typing.Sequence[~BlockDeviceResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='VolumeBlockDevices', + version=3, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(VolumeParamsResults) + async def VolumeParams(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~VolumeParamsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='VolumeParams', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(VolumeResults) + async def Volumes(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~VolumeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='Volumes', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchBlockDevices(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='WatchBlockDevices', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MachineStorageIdsWatchResults) + async def WatchFilesystemAttachments(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MachineStorageIdsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='WatchFilesystemAttachments', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchFilesystems(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='WatchFilesystems', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchMachines(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='WatchMachines', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MachineStorageIdsWatchResults) + async def WatchVolumeAttachments(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MachineStorageIdsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='WatchVolumeAttachments', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchVolumes(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='WatchVolumes', + version=3, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply diff --git a/modules/libjuju/juju/client/_client4.py b/modules/libjuju/juju/client/_client4.py new file mode 100644 index 0000000..2336d2c --- /dev/null +++ b/modules/libjuju/juju/client/_client4.py @@ -0,0 +1,4626 @@ +# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. +# Changes will be overwritten/lost when the file is regenerated. + +from juju.client._definitions import * +from juju.client.facade import ReturnMapping, Type + + +class ApplicationFacade(Type): + name = 'Application' + version = 4 + schema = {'definitions': {'AddApplicationUnits': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'num-units': {'type': 'integer'}, + 'placement': {'items': {'$ref': '#/definitions/Placement'}, + 'type': 'array'}}, + 'required': ['application', + 'num-units', + 'placement'], + 'type': 'object'}, + 'AddApplicationUnitsResults': {'additionalProperties': False, + 'properties': {'units': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['units'], + 'type': 'object'}, + 'AddRelation': {'additionalProperties': False, + 'properties': {'endpoints': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['endpoints'], + 'type': 'object'}, + 'AddRelationResults': {'additionalProperties': False, + 'properties': {'endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, + 'type': 'object'}}, + 'required': ['endpoints'], + 'type': 'object'}, + 'ApplicationCharmRelations': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationCharmRelationsResults': {'additionalProperties': False, + 'properties': {'charm-relations': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['charm-relations'], + 'type': 'object'}, + 'ApplicationDeploy': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'channel': {'type': 'string'}, + 'charm-url': {'type': 'string'}, + 'config': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'config-yaml': {'type': 'string'}, + 'constraints': {'$ref': '#/definitions/Value'}, + 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'num-units': {'type': 'integer'}, + 'placement': {'items': {'$ref': '#/definitions/Placement'}, + 'type': 'array'}, + 'resources': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'series': {'type': 'string'}, + 'storage': {'patternProperties': {'.*': {'$ref': '#/definitions/Constraints'}}, + 'type': 'object'}}, + 'required': ['application', + 'series', + 'charm-url', + 'channel', + 'num-units', + 'config-yaml', + 'constraints'], + 'type': 'object'}, + 'ApplicationDestroy': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationExpose': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationGet': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationGetResults': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'charm': {'type': 'string'}, + 'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'constraints': {'$ref': '#/definitions/Value'}, + 'series': {'type': 'string'}}, + 'required': ['application', + 'charm', + 'config', + 'constraints', + 'series'], + 'type': 'object'}, + 'ApplicationMetricCredential': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'metrics-credentials': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['application', + 'metrics-credentials'], + 'type': 'object'}, + 'ApplicationMetricCredentials': {'additionalProperties': False, + 'properties': {'creds': {'items': {'$ref': '#/definitions/ApplicationMetricCredential'}, + 'type': 'array'}}, + 'required': ['creds'], + 'type': 'object'}, + 'ApplicationSet': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'options': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'required': ['application', 'options'], + 'type': 'object'}, + 'ApplicationSetCharm': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'channel': {'type': 'string'}, + 'charm-url': {'type': 'string'}, + 'config-settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'config-settings-yaml': {'type': 'string'}, + 'force-series': {'type': 'boolean'}, + 'force-units': {'type': 'boolean'}, + 'resource-ids': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'storage-constraints': {'patternProperties': {'.*': {'$ref': '#/definitions/StorageConstraints'}}, + 'type': 'object'}}, + 'required': ['application', + 'charm-url', + 'channel', + 'force-units', + 'force-series'], + 'type': 'object'}, + 'ApplicationURLs': {'additionalProperties': False, + 'properties': {'application-urls': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ApplicationUnexpose': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationUnset': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'options': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['application', 'options'], + 'type': 'object'}, + 'ApplicationUpdate': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'charm-url': {'type': 'string'}, + 'constraints': {'$ref': '#/definitions/Value'}, + 'force-charm-url': {'type': 'boolean'}, + 'force-series': {'type': 'boolean'}, + 'min-units': {'type': 'integer'}, + 'settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'settings-yaml': {'type': 'string'}}, + 'required': ['application', + 'charm-url', + 'force-charm-url', + 'force-series', + 'settings-yaml'], + 'type': 'object'}, + 'ApplicationsDeploy': {'additionalProperties': False, + 'properties': {'applications': {'items': {'$ref': '#/definitions/ApplicationDeploy'}, + 'type': 'array'}}, + 'required': ['applications'], + 'type': 'object'}, + 'CharmRelation': {'additionalProperties': False, + 'properties': {'interface': {'type': 'string'}, + 'limit': {'type': 'integer'}, + 'name': {'type': 'string'}, + 'optional': {'type': 'boolean'}, + 'role': {'type': 'string'}, + 'scope': {'type': 'string'}}, + 'required': ['name', + 'role', + 'interface', + 'optional', + 'limit', + 'scope'], + 'type': 'object'}, + 'Constraints': {'additionalProperties': False, + 'properties': {'Count': {'type': 'integer'}, + 'Pool': {'type': 'string'}, + 'Size': {'type': 'integer'}}, + 'required': ['Pool', 'Size', 'Count'], + 'type': 'object'}, + 'ConsumeApplicationArg': {'additionalProperties': False, + 'properties': {'application-alias': {'type': 'string'}, + 'application-url': {'type': 'string'}}, + 'required': ['application-url'], + 'type': 'object'}, + 'ConsumeApplicationArgs': {'additionalProperties': False, + 'properties': {'args': {'items': {'$ref': '#/definitions/ConsumeApplicationArg'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ConsumeApplicationResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'local-name': {'type': 'string'}}, + 'type': 'object'}, + 'ConsumeApplicationResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ConsumeApplicationResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'DestroyApplicationInfo': {'additionalProperties': False, + 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}, + 'destroyed-units': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}, + 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'type': 'object'}, + 'DestroyApplicationResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'info': {'$ref': '#/definitions/DestroyApplicationInfo'}}, + 'type': 'object'}, + 'DestroyApplicationResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyApplicationResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'DestroyApplicationUnits': {'additionalProperties': False, + 'properties': {'unit-names': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['unit-names'], + 'type': 'object'}, + 'DestroyRelation': {'additionalProperties': False, + 'properties': {'endpoints': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['endpoints'], + 'type': 'object'}, + 'DestroyUnitInfo': {'additionalProperties': False, + 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}, + 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'type': 'object'}, + 'DestroyUnitResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'info': {'$ref': '#/definitions/DestroyUnitInfo'}}, + 'type': 'object'}, + 'DestroyUnitResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyUnitResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'GetApplicationConstraints': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'GetConstraintsResults': {'additionalProperties': False, + 'properties': {'constraints': {'$ref': '#/definitions/Value'}}, + 'required': ['constraints'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'Placement': {'additionalProperties': False, + 'properties': {'directive': {'type': 'string'}, + 'scope': {'type': 'string'}}, + 'required': ['scope', 'directive'], + 'type': 'object'}, + 'RemoteApplicationInfo': {'additionalProperties': False, + 'properties': {'application-url': {'type': 'string'}, + 'description': {'type': 'string'}, + 'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'}, + 'type': 'array'}, + 'icon-url-path': {'type': 'string'}, + 'model-tag': {'type': 'string'}, + 'name': {'type': 'string'}, + 'source-model-label': {'type': 'string'}}, + 'required': ['model-tag', + 'name', + 'description', + 'application-url', + 'endpoints', + 'icon-url-path'], + 'type': 'object'}, + 'RemoteApplicationInfoResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/RemoteApplicationInfo'}}, + 'type': 'object'}, + 'RemoteApplicationInfoResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/RemoteApplicationInfoResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'RemoteEndpoint': {'additionalProperties': False, + 'properties': {'interface': {'type': 'string'}, + 'limit': {'type': 'integer'}, + 'name': {'type': 'string'}, + 'role': {'type': 'string'}, + 'scope': {'type': 'string'}}, + 'required': ['name', + 'role', + 'interface', + 'limit', + 'scope'], + 'type': 'object'}, + 'SetConstraints': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'constraints': {'$ref': '#/definitions/Value'}}, + 'required': ['application', 'constraints'], + 'type': 'object'}, + 'StorageConstraints': {'additionalProperties': False, + 'properties': {'count': {'type': 'integer'}, + 'pool': {'type': 'string'}, + 'size': {'type': 'integer'}}, + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'Value': {'additionalProperties': False, + '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': {'items': {'type': 'string'}, + 'type': 'array'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}, + 'virt-type': {'type': 'string'}}, + 'type': 'object'}}, + 'properties': {'AddRelation': {'properties': {'Params': {'$ref': '#/definitions/AddRelation'}, + 'Result': {'$ref': '#/definitions/AddRelationResults'}}, + 'type': 'object'}, + 'AddUnits': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationUnits'}, + 'Result': {'$ref': '#/definitions/AddApplicationUnitsResults'}}, + 'type': 'object'}, + 'CharmRelations': {'properties': {'Params': {'$ref': '#/definitions/ApplicationCharmRelations'}, + 'Result': {'$ref': '#/definitions/ApplicationCharmRelationsResults'}}, + 'type': 'object'}, + 'Consume': {'properties': {'Params': {'$ref': '#/definitions/ConsumeApplicationArgs'}, + 'Result': {'$ref': '#/definitions/ConsumeApplicationResults'}}, + 'type': 'object'}, + 'Deploy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationsDeploy'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationDestroy'}}, + 'type': 'object'}, + 'DestroyApplication': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/DestroyApplicationResults'}}, + 'type': 'object'}, + 'DestroyRelation': {'properties': {'Params': {'$ref': '#/definitions/DestroyRelation'}}, + 'type': 'object'}, + 'DestroyUnit': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/DestroyUnitResults'}}, + 'type': 'object'}, + 'DestroyUnits': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationUnits'}}, + 'type': 'object'}, + 'Expose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationExpose'}}, + 'type': 'object'}, + 'Get': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, + 'Result': {'$ref': '#/definitions/ApplicationGetResults'}}, + 'type': 'object'}, + 'GetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, + 'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'GetConstraints': {'properties': {'Params': {'$ref': '#/definitions/GetApplicationConstraints'}, + 'Result': {'$ref': '#/definitions/GetConstraintsResults'}}, + 'type': 'object'}, + 'RemoteApplicationInfo': {'properties': {'Params': {'$ref': '#/definitions/ApplicationURLs'}, + 'Result': {'$ref': '#/definitions/RemoteApplicationInfoResults'}}, + 'type': 'object'}, + 'Set': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSet'}}, + 'type': 'object'}, + 'SetCharm': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSetCharm'}}, + 'type': 'object'}, + 'SetConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, + 'type': 'object'}, + 'SetMetricCredentials': {'properties': {'Params': {'$ref': '#/definitions/ApplicationMetricCredentials'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Unexpose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnexpose'}}, + 'type': 'object'}, + 'Unset': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnset'}}, + 'type': 'object'}, + 'Update': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUpdate'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(AddRelationResults) + async def AddRelation(self, endpoints): + ''' + endpoints : typing.Sequence[str] + Returns -> typing.Mapping[str, ~CharmRelation] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='AddRelation', + version=4, + params=_params) + _params['endpoints'] = endpoints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(AddApplicationUnitsResults) + async def AddUnits(self, application, num_units, placement): + ''' + application : str + num_units : int + placement : typing.Sequence[~Placement] + Returns -> typing.Sequence[str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='AddUnits', + version=4, + params=_params) + _params['application'] = application + _params['num-units'] = num_units + _params['placement'] = placement + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ApplicationCharmRelationsResults) + async def CharmRelations(self, application): + ''' + application : str + Returns -> typing.Sequence[str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='CharmRelations', + version=4, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ConsumeApplicationResults) + async def Consume(self, args): + ''' + args : typing.Sequence[~ConsumeApplicationArg] + Returns -> typing.Sequence[~ConsumeApplicationResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Consume', + version=4, + params=_params) + _params['args'] = args + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Deploy(self, applications): + ''' + applications : typing.Sequence[~ApplicationDeploy] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Deploy', + version=4, + params=_params) + _params['applications'] = applications + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Destroy(self, application): + ''' + application : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Destroy', + version=4, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(DestroyApplicationResults) + async def DestroyApplication(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~DestroyApplicationResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='DestroyApplication', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def DestroyRelation(self, endpoints): + ''' + endpoints : typing.Sequence[str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='DestroyRelation', + version=4, + params=_params) + _params['endpoints'] = endpoints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(DestroyUnitResults) + async def DestroyUnit(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~DestroyUnitResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='DestroyUnit', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def DestroyUnits(self, unit_names): + ''' + unit_names : typing.Sequence[str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='DestroyUnits', + version=4, + params=_params) + _params['unit-names'] = unit_names + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Expose(self, application): + ''' + application : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Expose', + version=4, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ApplicationGetResults) + async def Get(self, application): + ''' + application : str + Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Get', + version=4, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def GetCharmURL(self, application): + ''' + application : str + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='GetCharmURL', + version=4, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(GetConstraintsResults) + async def GetConstraints(self, application): + ''' + application : str + Returns -> Value + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='GetConstraints', + version=4, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(RemoteApplicationInfoResults) + async def RemoteApplicationInfo(self, application_urls): + ''' + application_urls : typing.Sequence[str] + Returns -> typing.Sequence[~RemoteApplicationInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='RemoteApplicationInfo', + version=4, + params=_params) + _params['application-urls'] = application_urls + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Set(self, application, options): + ''' + application : str + options : typing.Mapping[str, str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Set', + version=4, + params=_params) + _params['application'] = application + _params['options'] = options + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetCharm(self, application, channel, charm_url, config_settings, config_settings_yaml, force_series, force_units, resource_ids, storage_constraints): + ''' + application : str + channel : str + charm_url : str + config_settings : typing.Mapping[str, str] + config_settings_yaml : str + force_series : bool + force_units : bool + resource_ids : typing.Mapping[str, str] + storage_constraints : typing.Mapping[str, ~StorageConstraints] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='SetCharm', + version=4, + params=_params) + _params['application'] = application + _params['channel'] = channel + _params['charm-url'] = charm_url + _params['config-settings'] = config_settings + _params['config-settings-yaml'] = config_settings_yaml + _params['force-series'] = force_series + _params['force-units'] = force_units + _params['resource-ids'] = resource_ids + _params['storage-constraints'] = storage_constraints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetConstraints(self, application, constraints): + ''' + application : str + constraints : Value + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='SetConstraints', + version=4, + params=_params) + _params['application'] = application + _params['constraints'] = constraints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetMetricCredentials(self, creds): + ''' + creds : typing.Sequence[~ApplicationMetricCredential] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='SetMetricCredentials', + version=4, + params=_params) + _params['creds'] = creds + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Unexpose(self, application): + ''' + application : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Unexpose', + version=4, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Unset(self, application, options): + ''' + application : str + options : typing.Sequence[str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Unset', + version=4, + params=_params) + _params['application'] = application + _params['options'] = options + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Update(self, application, charm_url, constraints, force_charm_url, force_series, min_units, settings, settings_yaml): + ''' + application : str + charm_url : str + constraints : Value + force_charm_url : bool + force_series : bool + min_units : int + settings : typing.Mapping[str, str] + settings_yaml : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Update', + version=4, + params=_params) + _params['application'] = application + _params['charm-url'] = charm_url + _params['constraints'] = constraints + _params['force-charm-url'] = force_charm_url + _params['force-series'] = force_series + _params['min-units'] = min_units + _params['settings'] = settings + _params['settings-yaml'] = settings_yaml + reply = await self.rpc(msg) + return reply + + + +class StorageFacade(Type): + name = 'Storage' + version = 4 + schema = {'definitions': {'AddStorageDetails': {'additionalProperties': False, + 'properties': {'storage-tags': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['storage-tags'], + 'type': 'object'}, + 'AddStorageResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/AddStorageDetails'}}, + 'type': 'object'}, + 'AddStorageResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/AddStorageResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'BulkImportStorageParams': {'additionalProperties': False, + 'properties': {'storage': {'items': {'$ref': '#/definitions/ImportStorageParams'}, + 'type': 'array'}}, + 'required': ['storage'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityStatus': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'since': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['status', 'info', 'since'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'FilesystemAttachmentDetails': {'additionalProperties': False, + 'properties': {'FilesystemAttachmentInfo': {'$ref': '#/definitions/FilesystemAttachmentInfo'}, + 'life': {'type': 'string'}}, + 'required': ['FilesystemAttachmentInfo'], + 'type': 'object'}, + 'FilesystemAttachmentInfo': {'additionalProperties': False, + 'properties': {'mount-point': {'type': 'string'}, + 'read-only': {'type': 'boolean'}}, + 'type': 'object'}, + 'FilesystemDetails': {'additionalProperties': False, + 'properties': {'filesystem-tag': {'type': 'string'}, + 'info': {'$ref': '#/definitions/FilesystemInfo'}, + 'life': {'type': 'string'}, + 'machine-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/FilesystemAttachmentDetails'}}, + 'type': 'object'}, + 'status': {'$ref': '#/definitions/EntityStatus'}, + 'storage': {'$ref': '#/definitions/StorageDetails'}, + 'unit-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/FilesystemAttachmentDetails'}}, + 'type': 'object'}, + 'volume-tag': {'type': 'string'}}, + 'required': ['filesystem-tag', + 'info', + 'status'], + 'type': 'object'}, + 'FilesystemDetailsListResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'$ref': '#/definitions/FilesystemDetails'}, + 'type': 'array'}}, + 'type': 'object'}, + 'FilesystemDetailsListResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemDetailsListResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'FilesystemFilter': {'additionalProperties': False, + 'properties': {'machines': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'FilesystemFilters': {'additionalProperties': False, + 'properties': {'filters': {'items': {'$ref': '#/definitions/FilesystemFilter'}, + 'type': 'array'}}, + 'type': 'object'}, + 'FilesystemInfo': {'additionalProperties': False, + 'properties': {'filesystem-id': {'type': 'string'}, + 'pool': {'type': 'string'}, + 'size': {'type': 'integer'}}, + 'required': ['filesystem-id', + 'pool', + 'size'], + 'type': 'object'}, + 'ImportStorageDetails': {'additionalProperties': False, + 'properties': {'storage-tag': {'type': 'string'}}, + 'required': ['storage-tag'], + 'type': 'object'}, + 'ImportStorageParams': {'additionalProperties': False, + 'properties': {'kind': {'type': 'integer'}, + 'pool': {'type': 'string'}, + 'provider-id': {'type': 'string'}, + 'storage-name': {'type': 'string'}}, + 'required': ['kind', + 'pool', + 'provider-id', + 'storage-name'], + 'type': 'object'}, + 'ImportStorageResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/ImportStorageDetails'}}, + 'type': 'object'}, + 'ImportStorageResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ImportStorageResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'RemoveStorage': {'additionalProperties': False, + 'properties': {'storage': {'items': {'$ref': '#/definitions/RemoveStorageInstance'}, + 'type': 'array'}}, + 'required': ['storage'], + 'type': 'object'}, + 'RemoveStorageInstance': {'additionalProperties': False, + 'properties': {'destroy-attachments': {'type': 'boolean'}, + 'destroy-storage': {'type': 'boolean'}, + 'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'StorageAddParams': {'additionalProperties': False, + 'properties': {'name': {'type': 'string'}, + 'storage': {'$ref': '#/definitions/StorageConstraints'}, + 'unit': {'type': 'string'}}, + 'required': ['unit', 'name', 'storage'], + 'type': 'object'}, + 'StorageAttachmentDetails': {'additionalProperties': False, + 'properties': {'life': {'type': 'string'}, + 'location': {'type': 'string'}, + 'machine-tag': {'type': 'string'}, + 'storage-tag': {'type': 'string'}, + 'unit-tag': {'type': 'string'}}, + 'required': ['storage-tag', + 'unit-tag', + 'machine-tag'], + 'type': 'object'}, + 'StorageAttachmentId': {'additionalProperties': False, + 'properties': {'storage-tag': {'type': 'string'}, + 'unit-tag': {'type': 'string'}}, + 'required': ['storage-tag', + 'unit-tag'], + 'type': 'object'}, + 'StorageAttachmentIds': {'additionalProperties': False, + 'properties': {'ids': {'items': {'$ref': '#/definitions/StorageAttachmentId'}, + 'type': 'array'}}, + 'required': ['ids'], + 'type': 'object'}, + 'StorageConstraints': {'additionalProperties': False, + 'properties': {'count': {'type': 'integer'}, + 'pool': {'type': 'string'}, + 'size': {'type': 'integer'}}, + 'type': 'object'}, + 'StorageDetails': {'additionalProperties': False, + 'properties': {'attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/StorageAttachmentDetails'}}, + 'type': 'object'}, + 'kind': {'type': 'integer'}, + 'life': {'type': 'string'}, + 'owner-tag': {'type': 'string'}, + 'persistent': {'type': 'boolean'}, + 'status': {'$ref': '#/definitions/EntityStatus'}, + 'storage-tag': {'type': 'string'}}, + 'required': ['storage-tag', + 'owner-tag', + 'kind', + 'status', + 'persistent'], + 'type': 'object'}, + 'StorageDetailsListResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'$ref': '#/definitions/StorageDetails'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StorageDetailsListResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StorageDetailsListResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StorageDetailsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/StorageDetails'}}, + 'type': 'object'}, + 'StorageDetailsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StorageDetailsResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StorageFilter': {'additionalProperties': False, + 'type': 'object'}, + 'StorageFilters': {'additionalProperties': False, + 'properties': {'filters': {'items': {'$ref': '#/definitions/StorageFilter'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StoragePool': {'additionalProperties': False, + 'properties': {'attrs': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'name': {'type': 'string'}, + 'provider': {'type': 'string'}}, + 'required': ['name', 'provider', 'attrs'], + 'type': 'object'}, + 'StoragePoolFilter': {'additionalProperties': False, + 'properties': {'names': {'items': {'type': 'string'}, + 'type': 'array'}, + 'providers': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StoragePoolFilters': {'additionalProperties': False, + 'properties': {'filters': {'items': {'$ref': '#/definitions/StoragePoolFilter'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StoragePoolsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'storage-pools': {'items': {'$ref': '#/definitions/StoragePool'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StoragePoolsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StoragePoolsResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StoragesAddParams': {'additionalProperties': False, + 'properties': {'storages': {'items': {'$ref': '#/definitions/StorageAddParams'}, + 'type': 'array'}}, + 'required': ['storages'], + 'type': 'object'}, + 'VolumeAttachmentDetails': {'additionalProperties': False, + 'properties': {'VolumeAttachmentInfo': {'$ref': '#/definitions/VolumeAttachmentInfo'}, + 'life': {'type': 'string'}}, + 'required': ['VolumeAttachmentInfo'], + 'type': 'object'}, + 'VolumeAttachmentInfo': {'additionalProperties': False, + 'properties': {'bus-address': {'type': 'string'}, + 'device-link': {'type': 'string'}, + 'device-name': {'type': 'string'}, + 'plan-info': {'$ref': '#/definitions/VolumeAttachmentPlanInfo'}, + 'read-only': {'type': 'boolean'}}, + 'type': 'object'}, + 'VolumeAttachmentPlanInfo': {'additionalProperties': False, + 'properties': {'device-attributes': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'device-type': {'type': 'string'}}, + 'type': 'object'}, + 'VolumeDetails': {'additionalProperties': False, + 'properties': {'info': {'$ref': '#/definitions/VolumeInfo'}, + 'life': {'type': 'string'}, + 'machine-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/VolumeAttachmentDetails'}}, + 'type': 'object'}, + 'status': {'$ref': '#/definitions/EntityStatus'}, + 'storage': {'$ref': '#/definitions/StorageDetails'}, + 'unit-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/VolumeAttachmentDetails'}}, + 'type': 'object'}, + 'volume-tag': {'type': 'string'}}, + 'required': ['volume-tag', 'info', 'status'], + 'type': 'object'}, + 'VolumeDetailsListResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'$ref': '#/definitions/VolumeDetails'}, + 'type': 'array'}}, + 'type': 'object'}, + 'VolumeDetailsListResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeDetailsListResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'VolumeFilter': {'additionalProperties': False, + 'properties': {'machines': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'VolumeFilters': {'additionalProperties': False, + 'properties': {'filters': {'items': {'$ref': '#/definitions/VolumeFilter'}, + 'type': 'array'}}, + 'type': 'object'}, + 'VolumeInfo': {'additionalProperties': False, + 'properties': {'hardware-id': {'type': 'string'}, + 'persistent': {'type': 'boolean'}, + 'pool': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'volume-id': {'type': 'string'}, + 'wwn': {'type': 'string'}}, + 'required': ['volume-id', 'size', 'persistent'], + 'type': 'object'}}, + 'properties': {'AddToUnit': {'properties': {'Params': {'$ref': '#/definitions/StoragesAddParams'}, + 'Result': {'$ref': '#/definitions/AddStorageResults'}}, + 'type': 'object'}, + 'Attach': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'CreatePool': {'properties': {'Params': {'$ref': '#/definitions/StoragePool'}}, + 'type': 'object'}, + 'Detach': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Import': {'properties': {'Params': {'$ref': '#/definitions/BulkImportStorageParams'}, + 'Result': {'$ref': '#/definitions/ImportStorageResults'}}, + 'type': 'object'}, + 'ListFilesystems': {'properties': {'Params': {'$ref': '#/definitions/FilesystemFilters'}, + 'Result': {'$ref': '#/definitions/FilesystemDetailsListResults'}}, + 'type': 'object'}, + 'ListPools': {'properties': {'Params': {'$ref': '#/definitions/StoragePoolFilters'}, + 'Result': {'$ref': '#/definitions/StoragePoolsResults'}}, + 'type': 'object'}, + 'ListStorageDetails': {'properties': {'Params': {'$ref': '#/definitions/StorageFilters'}, + 'Result': {'$ref': '#/definitions/StorageDetailsListResults'}}, + 'type': 'object'}, + 'ListVolumes': {'properties': {'Params': {'$ref': '#/definitions/VolumeFilters'}, + 'Result': {'$ref': '#/definitions/VolumeDetailsListResults'}}, + 'type': 'object'}, + 'Remove': {'properties': {'Params': {'$ref': '#/definitions/RemoveStorage'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'StorageDetails': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StorageDetailsResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(AddStorageResults) + async def AddToUnit(self, storages): + ''' + storages : typing.Sequence[~StorageAddParams] + Returns -> typing.Sequence[~AddStorageResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Storage', + request='AddToUnit', + version=4, + params=_params) + _params['storages'] = storages + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Attach(self, ids): + ''' + ids : typing.Sequence[~StorageAttachmentId] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Storage', + request='Attach', + version=4, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def CreatePool(self, attrs, name, provider): + ''' + attrs : typing.Mapping[str, typing.Any] + name : str + provider : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Storage', + request='CreatePool', + version=4, + params=_params) + _params['attrs'] = attrs + _params['name'] = name + _params['provider'] = provider + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Detach(self, ids): + ''' + ids : typing.Sequence[~StorageAttachmentId] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Storage', + request='Detach', + version=4, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ImportStorageResults) + async def Import(self, storage): + ''' + storage : typing.Sequence[~ImportStorageParams] + Returns -> typing.Sequence[~ImportStorageResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Storage', + request='Import', + version=4, + params=_params) + _params['storage'] = storage + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(FilesystemDetailsListResults) + async def ListFilesystems(self, filters): + ''' + filters : typing.Sequence[~FilesystemFilter] + Returns -> typing.Sequence[~FilesystemDetailsListResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Storage', + request='ListFilesystems', + version=4, + params=_params) + _params['filters'] = filters + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StoragePoolsResults) + async def ListPools(self, filters): + ''' + filters : typing.Sequence[~StoragePoolFilter] + Returns -> typing.Sequence[~StoragePoolsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Storage', + request='ListPools', + version=4, + params=_params) + _params['filters'] = filters + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StorageDetailsListResults) + async def ListStorageDetails(self, filters): + ''' + filters : typing.Sequence[~StorageFilter] + Returns -> typing.Sequence[~StorageDetailsListResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Storage', + request='ListStorageDetails', + version=4, + params=_params) + _params['filters'] = filters + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(VolumeDetailsListResults) + async def ListVolumes(self, filters): + ''' + filters : typing.Sequence[~VolumeFilter] + Returns -> typing.Sequence[~VolumeDetailsListResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Storage', + request='ListVolumes', + version=4, + params=_params) + _params['filters'] = filters + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Remove(self, storage): + ''' + storage : typing.Sequence[~RemoveStorageInstance] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Storage', + request='Remove', + version=4, + params=_params) + _params['storage'] = storage + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StorageDetailsResults) + async def StorageDetails(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StorageDetailsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Storage', + request='StorageDetails', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class StorageProvisionerFacade(Type): + name = 'StorageProvisioner' + version = 4 + schema = {'definitions': {'BlockDevice': {'additionalProperties': False, + 'properties': {'BusAddress': {'type': 'string'}, + 'DeviceLinks': {'items': {'type': 'string'}, + 'type': 'array'}, + 'DeviceName': {'type': 'string'}, + 'FilesystemType': {'type': 'string'}, + 'HardwareId': {'type': 'string'}, + 'InUse': {'type': 'boolean'}, + 'Label': {'type': 'string'}, + 'MountPoint': {'type': 'string'}, + 'Size': {'type': 'integer'}, + 'UUID': {'type': 'string'}, + 'WWN': {'type': 'string'}}, + 'required': ['DeviceName', + 'DeviceLinks', + 'Label', + 'UUID', + 'HardwareId', + 'WWN', + 'BusAddress', + 'Size', + 'FilesystemType', + 'InUse', + 'MountPoint'], + 'type': 'object'}, + 'BlockDeviceResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/BlockDevice'}}, + 'required': ['result'], + 'type': 'object'}, + 'BlockDeviceResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/BlockDeviceResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityStatusArgs': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'status': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', + 'status', + 'info', + 'data'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Filesystem': {'additionalProperties': False, + 'properties': {'filesystem-tag': {'type': 'string'}, + 'info': {'$ref': '#/definitions/FilesystemInfo'}, + 'volume-tag': {'type': 'string'}}, + 'required': ['filesystem-tag', 'info'], + 'type': 'object'}, + 'FilesystemAttachment': {'additionalProperties': False, + 'properties': {'filesystem-tag': {'type': 'string'}, + 'info': {'$ref': '#/definitions/FilesystemAttachmentInfo'}, + 'machine-tag': {'type': 'string'}}, + 'required': ['filesystem-tag', + 'machine-tag', + 'info'], + 'type': 'object'}, + 'FilesystemAttachmentInfo': {'additionalProperties': False, + 'properties': {'mount-point': {'type': 'string'}, + 'read-only': {'type': 'boolean'}}, + 'type': 'object'}, + 'FilesystemAttachmentParams': {'additionalProperties': False, + 'properties': {'filesystem-id': {'type': 'string'}, + 'filesystem-tag': {'type': 'string'}, + 'instance-id': {'type': 'string'}, + 'machine-tag': {'type': 'string'}, + 'mount-point': {'type': 'string'}, + 'provider': {'type': 'string'}, + 'read-only': {'type': 'boolean'}}, + 'required': ['filesystem-tag', + 'machine-tag', + 'provider'], + 'type': 'object'}, + 'FilesystemAttachmentParamsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/FilesystemAttachmentParams'}}, + 'required': ['result'], + 'type': 'object'}, + 'FilesystemAttachmentParamsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemAttachmentParamsResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'FilesystemAttachmentResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/FilesystemAttachment'}}, + 'required': ['result'], + 'type': 'object'}, + 'FilesystemAttachmentResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemAttachmentResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'FilesystemAttachments': {'additionalProperties': False, + 'properties': {'filesystem-attachments': {'items': {'$ref': '#/definitions/FilesystemAttachment'}, + 'type': 'array'}}, + 'required': ['filesystem-attachments'], + 'type': 'object'}, + 'FilesystemInfo': {'additionalProperties': False, + 'properties': {'filesystem-id': {'type': 'string'}, + 'pool': {'type': 'string'}, + 'size': {'type': 'integer'}}, + 'required': ['filesystem-id', + 'pool', + 'size'], + 'type': 'object'}, + 'FilesystemParams': {'additionalProperties': False, + 'properties': {'attachment': {'$ref': '#/definitions/FilesystemAttachmentParams'}, + 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'filesystem-tag': {'type': 'string'}, + 'provider': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'tags': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'volume-tag': {'type': 'string'}}, + 'required': ['filesystem-tag', + 'size', + 'provider'], + 'type': 'object'}, + 'FilesystemParamsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/FilesystemParams'}}, + 'required': ['result'], + 'type': 'object'}, + 'FilesystemParamsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemParamsResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'FilesystemResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/Filesystem'}}, + 'required': ['result'], + 'type': 'object'}, + 'FilesystemResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Filesystems': {'additionalProperties': False, + 'properties': {'filesystems': {'items': {'$ref': '#/definitions/Filesystem'}, + 'type': 'array'}}, + 'required': ['filesystems'], + 'type': 'object'}, + 'LifeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'life': {'type': 'string'}}, + 'required': ['life'], + 'type': 'object'}, + 'LifeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MachineStorageId': {'additionalProperties': False, + 'properties': {'attachment-tag': {'type': 'string'}, + 'machine-tag': {'type': 'string'}}, + 'required': ['machine-tag', + 'attachment-tag'], + 'type': 'object'}, + 'MachineStorageIds': {'additionalProperties': False, + 'properties': {'ids': {'items': {'$ref': '#/definitions/MachineStorageId'}, + 'type': 'array'}}, + 'required': ['ids'], + 'type': 'object'}, + 'MachineStorageIdsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/MachineStorageId'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id', + 'changes'], + 'type': 'object'}, + 'MachineStorageIdsWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/MachineStorageIdsWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'RemoveFilesystemParams': {'additionalProperties': False, + 'properties': {'destroy': {'type': 'boolean'}, + 'filesystem-id': {'type': 'string'}, + 'provider': {'type': 'string'}}, + 'required': ['provider', + 'filesystem-id'], + 'type': 'object'}, + 'RemoveFilesystemParamsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/RemoveFilesystemParams'}}, + 'required': ['result'], + 'type': 'object'}, + 'RemoveFilesystemParamsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/RemoveFilesystemParamsResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'RemoveVolumeParams': {'additionalProperties': False, + 'properties': {'destroy': {'type': 'boolean'}, + 'provider': {'type': 'string'}, + 'volume-id': {'type': 'string'}}, + 'required': ['provider', 'volume-id'], + 'type': 'object'}, + 'RemoveVolumeParamsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/RemoveVolumeParams'}}, + 'required': ['result'], + 'type': 'object'}, + 'RemoveVolumeParamsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/RemoveVolumeParamsResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'SetStatus': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'StringResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}, + 'StringsWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Volume': {'additionalProperties': False, + 'properties': {'info': {'$ref': '#/definitions/VolumeInfo'}, + 'volume-tag': {'type': 'string'}}, + 'required': ['volume-tag', 'info'], + 'type': 'object'}, + 'VolumeAttachment': {'additionalProperties': False, + 'properties': {'info': {'$ref': '#/definitions/VolumeAttachmentInfo'}, + 'machine-tag': {'type': 'string'}, + 'volume-tag': {'type': 'string'}}, + 'required': ['volume-tag', + 'machine-tag', + 'info'], + 'type': 'object'}, + 'VolumeAttachmentInfo': {'additionalProperties': False, + 'properties': {'bus-address': {'type': 'string'}, + 'device-link': {'type': 'string'}, + 'device-name': {'type': 'string'}, + 'plan-info': {'$ref': '#/definitions/VolumeAttachmentPlanInfo'}, + 'read-only': {'type': 'boolean'}}, + 'type': 'object'}, + 'VolumeAttachmentParams': {'additionalProperties': False, + 'properties': {'instance-id': {'type': 'string'}, + 'machine-tag': {'type': 'string'}, + 'provider': {'type': 'string'}, + 'read-only': {'type': 'boolean'}, + 'volume-id': {'type': 'string'}, + 'volume-tag': {'type': 'string'}}, + 'required': ['volume-tag', + 'machine-tag', + 'provider'], + 'type': 'object'}, + 'VolumeAttachmentParamsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/VolumeAttachmentParams'}}, + 'required': ['result'], + 'type': 'object'}, + 'VolumeAttachmentParamsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeAttachmentParamsResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'VolumeAttachmentPlan': {'additionalProperties': False, + 'properties': {'block-device': {'$ref': '#/definitions/BlockDevice'}, + 'life': {'type': 'string'}, + 'machine-tag': {'type': 'string'}, + 'plan-info': {'$ref': '#/definitions/VolumeAttachmentPlanInfo'}, + 'volume-tag': {'type': 'string'}}, + 'required': ['volume-tag', + 'machine-tag', + 'plan-info'], + 'type': 'object'}, + 'VolumeAttachmentPlanInfo': {'additionalProperties': False, + 'properties': {'device-attributes': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'device-type': {'type': 'string'}}, + 'type': 'object'}, + 'VolumeAttachmentPlanResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/VolumeAttachmentPlan'}}, + 'required': ['result'], + 'type': 'object'}, + 'VolumeAttachmentPlanResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeAttachmentPlanResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'VolumeAttachmentPlans': {'additionalProperties': False, + 'properties': {'volume-plans': {'items': {'$ref': '#/definitions/VolumeAttachmentPlan'}, + 'type': 'array'}}, + 'required': ['volume-plans'], + 'type': 'object'}, + 'VolumeAttachmentResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/VolumeAttachment'}}, + 'required': ['result'], + 'type': 'object'}, + 'VolumeAttachmentResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeAttachmentResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'VolumeAttachments': {'additionalProperties': False, + 'properties': {'volume-attachments': {'items': {'$ref': '#/definitions/VolumeAttachment'}, + 'type': 'array'}}, + 'required': ['volume-attachments'], + 'type': 'object'}, + 'VolumeInfo': {'additionalProperties': False, + 'properties': {'hardware-id': {'type': 'string'}, + 'persistent': {'type': 'boolean'}, + 'pool': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'volume-id': {'type': 'string'}, + 'wwn': {'type': 'string'}}, + 'required': ['volume-id', 'size', 'persistent'], + 'type': 'object'}, + 'VolumeParams': {'additionalProperties': False, + 'properties': {'attachment': {'$ref': '#/definitions/VolumeAttachmentParams'}, + 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'provider': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'tags': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'volume-tag': {'type': 'string'}}, + 'required': ['volume-tag', + 'size', + 'provider'], + 'type': 'object'}, + 'VolumeParamsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/VolumeParams'}}, + 'required': ['result'], + 'type': 'object'}, + 'VolumeParamsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeParamsResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'VolumeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/Volume'}}, + 'required': ['result'], + 'type': 'object'}, + 'VolumeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Volumes': {'additionalProperties': False, + 'properties': {'volumes': {'items': {'$ref': '#/definitions/Volume'}, + 'type': 'array'}}, + 'required': ['volumes'], + 'type': 'object'}}, + 'properties': {'AttachmentLife': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, + 'Result': {'$ref': '#/definitions/LifeResults'}}, + 'type': 'object'}, + 'CreateVolumeAttachmentPlans': {'properties': {'Params': {'$ref': '#/definitions/VolumeAttachmentPlans'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'FilesystemAttachmentParams': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, + 'Result': {'$ref': '#/definitions/FilesystemAttachmentParamsResults'}}, + 'type': 'object'}, + 'FilesystemAttachments': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, + 'Result': {'$ref': '#/definitions/FilesystemAttachmentResults'}}, + 'type': 'object'}, + 'FilesystemParams': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/FilesystemParamsResults'}}, + 'type': 'object'}, + 'Filesystems': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/FilesystemResults'}}, + 'type': 'object'}, + 'InstanceId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/LifeResults'}}, + 'type': 'object'}, + 'Remove': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'RemoveAttachment': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'RemoveFilesystemParams': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/RemoveFilesystemParamsResults'}}, + 'type': 'object'}, + 'RemoveVolumeAttachmentPlan': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'RemoveVolumeParams': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/RemoveVolumeParamsResults'}}, + 'type': 'object'}, + 'SetFilesystemAttachmentInfo': {'properties': {'Params': {'$ref': '#/definitions/FilesystemAttachments'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetFilesystemInfo': {'properties': {'Params': {'$ref': '#/definitions/Filesystems'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetVolumeAttachmentInfo': {'properties': {'Params': {'$ref': '#/definitions/VolumeAttachments'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetVolumeAttachmentPlanBlockInfo': {'properties': {'Params': {'$ref': '#/definitions/VolumeAttachmentPlans'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetVolumeInfo': {'properties': {'Params': {'$ref': '#/definitions/Volumes'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'VolumeAttachmentParams': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, + 'Result': {'$ref': '#/definitions/VolumeAttachmentParamsResults'}}, + 'type': 'object'}, + 'VolumeAttachmentPlans': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, + 'Result': {'$ref': '#/definitions/VolumeAttachmentPlanResults'}}, + 'type': 'object'}, + 'VolumeAttachments': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, + 'Result': {'$ref': '#/definitions/VolumeAttachmentResults'}}, + 'type': 'object'}, + 'VolumeBlockDevices': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, + 'Result': {'$ref': '#/definitions/BlockDeviceResults'}}, + 'type': 'object'}, + 'VolumeParams': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/VolumeParamsResults'}}, + 'type': 'object'}, + 'Volumes': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/VolumeResults'}}, + 'type': 'object'}, + 'WatchApplications': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, + 'type': 'object'}, + 'WatchBlockDevices': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchFilesystemAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResults'}}, + 'type': 'object'}, + 'WatchFilesystems': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WatchMachines': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchVolumeAttachmentPlans': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResults'}}, + 'type': 'object'}, + 'WatchVolumeAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResults'}}, + 'type': 'object'}, + 'WatchVolumes': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(LifeResults) + async def AttachmentLife(self, ids): + ''' + ids : typing.Sequence[~MachineStorageId] + Returns -> typing.Sequence[~LifeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='AttachmentLife', + version=4, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def CreateVolumeAttachmentPlans(self, volume_plans): + ''' + volume_plans : typing.Sequence[~VolumeAttachmentPlan] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='CreateVolumeAttachmentPlans', + version=4, + params=_params) + _params['volume-plans'] = volume_plans + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def EnsureDead(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='EnsureDead', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(FilesystemAttachmentParamsResults) + async def FilesystemAttachmentParams(self, ids): + ''' + ids : typing.Sequence[~MachineStorageId] + Returns -> typing.Sequence[~FilesystemAttachmentParamsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='FilesystemAttachmentParams', + version=4, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(FilesystemAttachmentResults) + async def FilesystemAttachments(self, ids): + ''' + ids : typing.Sequence[~MachineStorageId] + Returns -> typing.Sequence[~FilesystemAttachmentResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='FilesystemAttachments', + version=4, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(FilesystemParamsResults) + async def FilesystemParams(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~FilesystemParamsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='FilesystemParams', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(FilesystemResults) + async def Filesystems(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~FilesystemResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='Filesystems', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def InstanceId(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='InstanceId', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(LifeResults) + async def Life(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~LifeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='Life', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Remove(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='Remove', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def RemoveAttachment(self, ids): + ''' + ids : typing.Sequence[~MachineStorageId] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='RemoveAttachment', + version=4, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(RemoveFilesystemParamsResults) + async def RemoveFilesystemParams(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~RemoveFilesystemParamsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='RemoveFilesystemParams', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def RemoveVolumeAttachmentPlan(self, ids): + ''' + ids : typing.Sequence[~MachineStorageId] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='RemoveVolumeAttachmentPlan', + version=4, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(RemoveVolumeParamsResults) + async def RemoveVolumeParams(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~RemoveVolumeParamsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='RemoveVolumeParams', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetFilesystemAttachmentInfo(self, filesystem_attachments): + ''' + filesystem_attachments : typing.Sequence[~FilesystemAttachment] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='SetFilesystemAttachmentInfo', + version=4, + params=_params) + _params['filesystem-attachments'] = filesystem_attachments + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetFilesystemInfo(self, filesystems): + ''' + filesystems : typing.Sequence[~Filesystem] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='SetFilesystemInfo', + version=4, + params=_params) + _params['filesystems'] = filesystems + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='SetStatus', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetVolumeAttachmentInfo(self, volume_attachments): + ''' + volume_attachments : typing.Sequence[~VolumeAttachment] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='SetVolumeAttachmentInfo', + version=4, + params=_params) + _params['volume-attachments'] = volume_attachments + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetVolumeAttachmentPlanBlockInfo(self, volume_plans): + ''' + volume_plans : typing.Sequence[~VolumeAttachmentPlan] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='SetVolumeAttachmentPlanBlockInfo', + version=4, + params=_params) + _params['volume-plans'] = volume_plans + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetVolumeInfo(self, volumes): + ''' + volumes : typing.Sequence[~Volume] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='SetVolumeInfo', + version=4, + params=_params) + _params['volumes'] = volumes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def UpdateStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='UpdateStatus', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(VolumeAttachmentParamsResults) + async def VolumeAttachmentParams(self, ids): + ''' + ids : typing.Sequence[~MachineStorageId] + Returns -> typing.Sequence[~VolumeAttachmentParamsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='VolumeAttachmentParams', + version=4, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(VolumeAttachmentPlanResults) + async def VolumeAttachmentPlans(self, ids): + ''' + ids : typing.Sequence[~MachineStorageId] + Returns -> typing.Sequence[~VolumeAttachmentPlanResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='VolumeAttachmentPlans', + version=4, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(VolumeAttachmentResults) + async def VolumeAttachments(self, ids): + ''' + ids : typing.Sequence[~MachineStorageId] + Returns -> typing.Sequence[~VolumeAttachmentResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='VolumeAttachments', + version=4, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(BlockDeviceResults) + async def VolumeBlockDevices(self, ids): + ''' + ids : typing.Sequence[~MachineStorageId] + Returns -> typing.Sequence[~BlockDeviceResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='VolumeBlockDevices', + version=4, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(VolumeParamsResults) + async def VolumeParams(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~VolumeParamsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='VolumeParams', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(VolumeResults) + async def Volumes(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~VolumeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='Volumes', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResult) + async def WatchApplications(self): + ''' + + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='WatchApplications', + version=4, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchBlockDevices(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='WatchBlockDevices', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MachineStorageIdsWatchResults) + async def WatchFilesystemAttachments(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MachineStorageIdsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='WatchFilesystemAttachments', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchFilesystems(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='WatchFilesystems', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchMachines(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='WatchMachines', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MachineStorageIdsWatchResults) + async def WatchVolumeAttachmentPlans(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MachineStorageIdsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='WatchVolumeAttachmentPlans', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MachineStorageIdsWatchResults) + async def WatchVolumeAttachments(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MachineStorageIdsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='WatchVolumeAttachments', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchVolumes(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='StorageProvisioner', + request='WatchVolumes', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class UniterFacade(Type): + name = 'Uniter' + version = 4 + schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, + 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, + 'type': 'array'}, + 'type': 'array'}}, + 'required': ['servers'], + 'type': 'object'}, + 'Action': {'additionalProperties': False, + 'properties': {'name': {'type': 'string'}, + 'parameters': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'receiver': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'receiver', 'name'], + 'type': 'object'}, + 'ActionExecutionResult': {'additionalProperties': False, + 'properties': {'action-tag': {'type': 'string'}, + 'message': {'type': 'string'}, + 'results': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'status': {'type': 'string'}}, + 'required': ['action-tag', 'status'], + 'type': 'object'}, + 'ActionExecutionResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ActionExecutionResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ActionResult': {'additionalProperties': False, + 'properties': {'action': {'$ref': '#/definitions/Action'}, + 'completed': {'format': 'date-time', + 'type': 'string'}, + 'enqueued': {'format': 'date-time', + 'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}, + 'message': {'type': 'string'}, + 'output': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'started': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'type': 'object'}, + 'ActionResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Address': {'additionalProperties': False, + 'properties': {'scope': {'type': 'string'}, + 'space-name': {'type': 'string'}, + 'type': {'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['value', 'type', 'scope'], + 'type': 'object'}, + 'ApplicationStatusResult': {'additionalProperties': False, + 'properties': {'application': {'$ref': '#/definitions/StatusResult'}, + 'error': {'$ref': '#/definitions/Error'}, + 'units': {'patternProperties': {'.*': {'$ref': '#/definitions/StatusResult'}}, + 'type': 'object'}}, + 'required': ['application', + 'units'], + 'type': 'object'}, + 'ApplicationStatusResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationStatusResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'BoolResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'boolean'}}, + 'required': ['result'], + 'type': 'object'}, + 'BoolResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'BytesResult': {'additionalProperties': False, + 'properties': {'result': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['result'], + 'type': 'object'}, + 'CharmRelation': {'additionalProperties': False, + 'properties': {'interface': {'type': 'string'}, + 'limit': {'type': 'integer'}, + 'name': {'type': 'string'}, + 'optional': {'type': 'boolean'}, + 'role': {'type': 'string'}, + 'scope': {'type': 'string'}}, + 'required': ['name', + 'role', + 'interface', + 'optional', + 'limit', + 'scope'], + 'type': 'object'}, + 'CharmURL': {'additionalProperties': False, + 'properties': {'url': {'type': 'string'}}, + 'required': ['url'], + 'type': 'object'}, + 'CharmURLs': {'additionalProperties': False, + 'properties': {'urls': {'items': {'$ref': '#/definitions/CharmURL'}, + 'type': 'array'}}, + 'required': ['urls'], + 'type': 'object'}, + 'ConfigSettingsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'settings': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['settings'], + 'type': 'object'}, + 'ConfigSettingsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ConfigSettingsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Endpoint': {'additionalProperties': False, + 'properties': {'application-name': {'type': 'string'}, + 'relation': {'$ref': '#/definitions/CharmRelation'}}, + 'required': ['application-name', 'relation'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'EntitiesCharmURL': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityCharmURL'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'EntitiesPortRanges': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityPortRange'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityCharmURL': {'additionalProperties': False, + 'properties': {'charm-url': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'charm-url'], + 'type': 'object'}, + 'EntityPortRange': {'additionalProperties': False, + 'properties': {'from-port': {'type': 'integer'}, + 'protocol': {'type': 'string'}, + 'tag': {'type': 'string'}, + 'to-port': {'type': 'integer'}}, + 'required': ['tag', + 'protocol', + 'from-port', + 'to-port'], + 'type': 'object'}, + 'EntityStatusArgs': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'status': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', + 'status', + 'info', + 'data'], + 'type': 'object'}, + 'EntityWorkloadVersion': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}, + 'workload-version': {'type': 'string'}}, + 'required': ['tag', + 'workload-version'], + 'type': 'object'}, + 'EntityWorkloadVersions': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityWorkloadVersion'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'GetLeadershipSettingsBulkResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/GetLeadershipSettingsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'GetLeadershipSettingsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'required': ['settings'], + 'type': 'object'}, + 'HostPort': {'additionalProperties': False, + 'properties': {'Address': {'$ref': '#/definitions/Address'}, + 'port': {'type': 'integer'}}, + 'required': ['Address', 'port'], + 'type': 'object'}, + 'IntResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'integer'}}, + 'required': ['result'], + 'type': 'object'}, + 'IntResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/IntResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'LifeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'life': {'type': 'string'}}, + 'required': ['life'], + 'type': 'object'}, + 'LifeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MachinePortRange': {'additionalProperties': False, + 'properties': {'port-range': {'$ref': '#/definitions/PortRange'}, + 'relation-tag': {'type': 'string'}, + 'unit-tag': {'type': 'string'}}, + 'required': ['unit-tag', + 'relation-tag', + 'port-range'], + 'type': 'object'}, + 'MachinePortsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'ports': {'items': {'$ref': '#/definitions/MachinePortRange'}, + 'type': 'array'}}, + 'required': ['ports'], + 'type': 'object'}, + 'MachinePortsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/MachinePortsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'MergeLeadershipSettingsBulkParams': {'additionalProperties': False, + 'properties': {'params': {'items': {'$ref': '#/definitions/MergeLeadershipSettingsParam'}, + 'type': 'array'}}, + 'required': ['params'], + 'type': 'object'}, + 'MergeLeadershipSettingsParam': {'additionalProperties': False, + 'properties': {'application-tag': {'type': 'string'}, + 'settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'required': ['application-tag', + 'settings'], + 'type': 'object'}, + 'MeterStatusResult': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}, + 'info': {'type': 'string'}}, + 'required': ['code', 'info'], + 'type': 'object'}, + 'MeterStatusResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/MeterStatusResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Metric': {'additionalProperties': False, + 'properties': {'key': {'type': 'string'}, + 'time': {'format': 'date-time', + 'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['key', 'value', 'time'], + 'type': 'object'}, + 'MetricBatch': {'additionalProperties': False, + 'properties': {'charm-url': {'type': 'string'}, + 'created': {'format': 'date-time', + 'type': 'string'}, + 'metrics': {'items': {'$ref': '#/definitions/Metric'}, + 'type': 'array'}, + 'uuid': {'type': 'string'}}, + 'required': ['uuid', + 'charm-url', + 'created', + 'metrics'], + 'type': 'object'}, + 'MetricBatchParam': {'additionalProperties': False, + 'properties': {'batch': {'$ref': '#/definitions/MetricBatch'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'batch'], + 'type': 'object'}, + 'MetricBatchParams': {'additionalProperties': False, + 'properties': {'batches': {'items': {'$ref': '#/definitions/MetricBatchParam'}, + 'type': 'array'}}, + 'required': ['batches'], + 'type': 'object'}, + 'ModelConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ModelResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'name': {'type': 'string'}, + 'uuid': {'type': 'string'}}, + 'required': ['name', 'uuid'], + 'type': 'object'}, + 'NetworkConfig': {'additionalProperties': False, + 'properties': {'address': {'type': 'string'}, + 'cidr': {'type': 'string'}, + 'config-type': {'type': 'string'}, + 'device-index': {'type': 'integer'}, + 'disabled': {'type': 'boolean'}, + 'dns-search-domains': {'items': {'type': 'string'}, + 'type': 'array'}, + 'dns-servers': {'items': {'type': 'string'}, + 'type': 'array'}, + 'gateway-address': {'type': 'string'}, + 'interface-name': {'type': 'string'}, + 'interface-type': {'type': 'string'}, + 'mac-address': {'type': 'string'}, + 'mtu': {'type': 'integer'}, + 'no-auto-start': {'type': 'boolean'}, + 'parent-interface-name': {'type': 'string'}, + 'provider-address-id': {'type': 'string'}, + 'provider-id': {'type': 'string'}, + 'provider-space-id': {'type': 'string'}, + 'provider-subnet-id': {'type': 'string'}, + 'provider-vlan-id': {'type': 'string'}, + 'routes': {'items': {'$ref': '#/definitions/NetworkRoute'}, + 'type': 'array'}, + 'vlan-tag': {'type': 'integer'}}, + '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'], + 'type': 'object'}, + 'NetworkRoute': {'additionalProperties': False, + 'properties': {'destination-cidr': {'type': 'string'}, + 'gateway-ip': {'type': 'string'}, + 'metric': {'type': 'integer'}}, + 'required': ['destination-cidr', + 'gateway-ip', + 'metric'], + 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'PortRange': {'additionalProperties': False, + 'properties': {'from-port': {'type': 'integer'}, + 'protocol': {'type': 'string'}, + 'to-port': {'type': 'integer'}}, + 'required': ['from-port', 'to-port', 'protocol'], + 'type': 'object'}, + 'RelationIds': {'additionalProperties': False, + 'properties': {'relation-ids': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['relation-ids'], + 'type': 'object'}, + 'RelationResult': {'additionalProperties': False, + 'properties': {'endpoint': {'$ref': '#/definitions/Endpoint'}, + 'error': {'$ref': '#/definitions/Error'}, + 'id': {'type': 'integer'}, + 'key': {'type': 'string'}, + 'life': {'type': 'string'}}, + 'required': ['life', + 'id', + 'key', + 'endpoint'], + 'type': 'object'}, + 'RelationResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/RelationResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'RelationUnit': {'additionalProperties': False, + 'properties': {'relation': {'type': 'string'}, + 'unit': {'type': 'string'}}, + 'required': ['relation', 'unit'], + 'type': 'object'}, + 'RelationUnitPair': {'additionalProperties': False, + 'properties': {'local-unit': {'type': 'string'}, + 'relation': {'type': 'string'}, + 'remote-unit': {'type': 'string'}}, + 'required': ['relation', + 'local-unit', + 'remote-unit'], + 'type': 'object'}, + 'RelationUnitPairs': {'additionalProperties': False, + 'properties': {'relation-unit-pairs': {'items': {'$ref': '#/definitions/RelationUnitPair'}, + 'type': 'array'}}, + 'required': ['relation-unit-pairs'], + 'type': 'object'}, + 'RelationUnitSettings': {'additionalProperties': False, + 'properties': {'relation': {'type': 'string'}, + 'settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'unit': {'type': 'string'}}, + 'required': ['relation', + 'unit', + 'settings'], + 'type': 'object'}, + 'RelationUnits': {'additionalProperties': False, + 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnit'}, + 'type': 'array'}}, + 'required': ['relation-units'], + 'type': 'object'}, + 'RelationUnitsChange': {'additionalProperties': False, + 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}}, + 'type': 'object'}, + 'departed': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['changed'], + 'type': 'object'}, + 'RelationUnitsSettings': {'additionalProperties': False, + 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnitSettings'}, + 'type': 'array'}}, + 'required': ['relation-units'], + 'type': 'object'}, + 'RelationUnitsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'$ref': '#/definitions/RelationUnitsChange'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id', + 'changes'], + 'type': 'object'}, + 'RelationUnitsWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/RelationUnitsWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ResolvedModeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'mode': {'type': 'string'}}, + 'required': ['mode'], + 'type': 'object'}, + 'ResolvedModeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ResolvedModeResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'SetStatus': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'SettingsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'required': ['settings'], + 'type': 'object'}, + 'SettingsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/SettingsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StatusResult': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'error': {'$ref': '#/definitions/Error'}, + 'id': {'type': 'string'}, + 'info': {'type': 'string'}, + 'life': {'type': 'string'}, + 'since': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['id', + 'life', + 'status', + 'info', + 'data', + 'since'], + 'type': 'object'}, + 'StatusResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StatusResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StorageAddParams': {'additionalProperties': False, + 'properties': {'name': {'type': 'string'}, + 'storage': {'$ref': '#/definitions/StorageConstraints'}, + 'unit': {'type': 'string'}}, + 'required': ['unit', 'name', 'storage'], + 'type': 'object'}, + 'StorageAttachment': {'additionalProperties': False, + 'properties': {'kind': {'type': 'integer'}, + 'life': {'type': 'string'}, + 'location': {'type': 'string'}, + 'owner-tag': {'type': 'string'}, + 'storage-tag': {'type': 'string'}, + 'unit-tag': {'type': 'string'}}, + 'required': ['storage-tag', + 'owner-tag', + 'unit-tag', + 'kind', + 'location', + 'life'], + 'type': 'object'}, + 'StorageAttachmentId': {'additionalProperties': False, + 'properties': {'storage-tag': {'type': 'string'}, + 'unit-tag': {'type': 'string'}}, + 'required': ['storage-tag', + 'unit-tag'], + 'type': 'object'}, + 'StorageAttachmentIds': {'additionalProperties': False, + 'properties': {'ids': {'items': {'$ref': '#/definitions/StorageAttachmentId'}, + 'type': 'array'}}, + 'required': ['ids'], + 'type': 'object'}, + 'StorageAttachmentIdsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/StorageAttachmentIds'}}, + 'required': ['result'], + 'type': 'object'}, + 'StorageAttachmentIdsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StorageAttachmentIdsResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StorageAttachmentResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/StorageAttachment'}}, + 'required': ['result'], + 'type': 'object'}, + 'StorageAttachmentResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StorageAttachmentResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StorageConstraints': {'additionalProperties': False, + 'properties': {'count': {'type': 'integer'}, + 'pool': {'type': 'string'}, + 'size': {'type': 'integer'}}, + 'type': 'object'}, + 'StoragesAddParams': {'additionalProperties': False, + 'properties': {'storages': {'items': {'$ref': '#/definitions/StorageAddParams'}, + 'type': 'array'}}, + 'required': ['storages'], + 'type': 'object'}, + 'StringBoolResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'ok': {'type': 'boolean'}, + 'result': {'type': 'string'}}, + 'required': ['result', 'ok'], + 'type': 'object'}, + 'StringBoolResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringBoolResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'StringResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StringsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}, + 'StringsWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'UnitNetworkConfig': {'additionalProperties': False, + 'properties': {'binding-name': {'type': 'string'}, + 'unit-tag': {'type': 'string'}}, + 'required': ['unit-tag', 'binding-name'], + 'type': 'object'}, + 'UnitNetworkConfigResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'info': {'items': {'$ref': '#/definitions/NetworkConfig'}, + 'type': 'array'}}, + 'required': ['info'], + 'type': 'object'}, + 'UnitNetworkConfigResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/UnitNetworkConfigResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'UnitSettings': {'additionalProperties': False, + 'properties': {'version': {'type': 'integer'}}, + 'required': ['version'], + 'type': 'object'}, + 'UnitsNetworkConfig': {'additionalProperties': False, + 'properties': {'args': {'items': {'$ref': '#/definitions/UnitNetworkConfig'}, + 'type': 'array'}}, + 'required': ['args'], + 'type': 'object'}}, + 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, + 'type': 'object'}, + 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, + 'type': 'object'}, + 'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionResults'}}, + 'type': 'object'}, + 'AddMetricBatches': {'properties': {'Params': {'$ref': '#/definitions/MetricBatchParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'AddUnitStorage': {'properties': {'Params': {'$ref': '#/definitions/StoragesAddParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'AllMachinePorts': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/MachinePortsResults'}}, + 'type': 'object'}, + 'ApplicationStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ApplicationStatusResults'}}, + 'type': 'object'}, + 'AssignedMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'AvailabilityZone': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'BeginActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, + 'type': 'object'}, + 'CharmArchiveSha256': {'properties': {'Params': {'$ref': '#/definitions/CharmURLs'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'CharmModifiedVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/IntResults'}}, + 'type': 'object'}, + 'CharmURL': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringBoolResults'}}, + 'type': 'object'}, + 'ClearResolved': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'ClosePorts': {'properties': {'Params': {'$ref': '#/definitions/EntitiesPortRanges'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'ConfigSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ConfigSettingsResults'}}, + 'type': 'object'}, + 'CurrentModel': {'properties': {'Result': {'$ref': '#/definitions/ModelResult'}}, + 'type': 'object'}, + 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'DestroyAllSubordinates': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'DestroyUnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'EnterScope': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'FinishActions': {'properties': {'Params': {'$ref': '#/definitions/ActionExecutionResults'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'GetMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/MeterStatusResults'}}, + 'type': 'object'}, + 'GetPrincipal': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringBoolResults'}}, + 'type': 'object'}, + 'HasSubordinates': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/BoolResults'}}, + 'type': 'object'}, + 'JoinedRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsResults'}}, + 'type': 'object'}, + 'LeaveScope': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/LifeResults'}}, + 'type': 'object'}, + 'Merge': {'properties': {'Params': {'$ref': '#/definitions/MergeLeadershipSettingsBulkParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, + 'type': 'object'}, + 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'NetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/UnitsNetworkConfig'}, + 'Result': {'$ref': '#/definitions/UnitNetworkConfigResults'}}, + 'type': 'object'}, + 'OpenPorts': {'properties': {'Params': {'$ref': '#/definitions/EntitiesPortRanges'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'ProviderType': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'Read': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/GetLeadershipSettingsBulkResults'}}, + 'type': 'object'}, + 'ReadRemoteSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnitPairs'}, + 'Result': {'$ref': '#/definitions/SettingsResults'}}, + 'type': 'object'}, + 'ReadSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, + 'Result': {'$ref': '#/definitions/SettingsResults'}}, + 'type': 'object'}, + 'Relation': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, + 'Result': {'$ref': '#/definitions/RelationResults'}}, + 'type': 'object'}, + 'RelationById': {'properties': {'Params': {'$ref': '#/definitions/RelationIds'}, + 'Result': {'$ref': '#/definitions/RelationResults'}}, + 'type': 'object'}, + 'RemoveStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'RequestReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Resolved': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ResolvedModeResults'}}, + 'type': 'object'}, + 'SetAgentStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetApplicationStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/EntitiesCharmURL'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetUnitStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetWorkloadVersion': {'properties': {'Params': {'$ref': '#/definitions/EntityWorkloadVersions'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'StorageAttachmentLife': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, + 'Result': {'$ref': '#/definitions/LifeResults'}}, + 'type': 'object'}, + 'StorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, + 'Result': {'$ref': '#/definitions/StorageAttachmentResults'}}, + 'type': 'object'}, + 'UnitStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StatusResults'}}, + 'type': 'object'}, + 'UnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StorageAttachmentIdsResults'}}, + 'type': 'object'}, + 'UpdateSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnitsSettings'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}, + 'WatchActionNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WatchApplicationRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WatchConfigSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}, + 'WatchLeadershipSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchRelationUnits': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, + 'Result': {'$ref': '#/definitions/RelationUnitsWatchResults'}}, + 'type': 'object'}, + 'WatchStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchUnitAddresses': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchUnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WorkloadVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(StringsResult) + async def APIAddresses(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='APIAddresses', + version=4, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(APIHostPortsResult) + async def APIHostPorts(self): + ''' + + Returns -> typing.Sequence[~HostPort] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='APIHostPorts', + version=4, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionResults) + async def Actions(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Actions', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def AddMetricBatches(self, batches): + ''' + batches : typing.Sequence[~MetricBatchParam] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='AddMetricBatches', + version=4, + params=_params) + _params['batches'] = batches + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def AddUnitStorage(self, storages): + ''' + storages : typing.Sequence[~StorageAddParams] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='AddUnitStorage', + version=4, + params=_params) + _params['storages'] = storages + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MachinePortsResults) + async def AllMachinePorts(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MachinePortsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='AllMachinePorts', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ApplicationStatusResults) + async def ApplicationStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ApplicationStatusResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ApplicationStatus', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def AssignedMachine(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='AssignedMachine', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def AvailabilityZone(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='AvailabilityZone', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def BeginActions(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='BeginActions', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(BytesResult) + async def CACert(self): + ''' + + Returns -> typing.Sequence[int] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='CACert', + version=4, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def CharmArchiveSha256(self, urls): + ''' + urls : typing.Sequence[~CharmURL] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='CharmArchiveSha256', + version=4, + params=_params) + _params['urls'] = urls + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(IntResults) + async def CharmModifiedVersion(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~IntResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='CharmModifiedVersion', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringBoolResults) + async def CharmURL(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringBoolResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='CharmURL', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def ClearResolved(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ClearResolved', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def ClosePorts(self, entities): + ''' + entities : typing.Sequence[~EntityPortRange] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ClosePorts', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ConfigSettingsResults) + async def ConfigSettings(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ConfigSettingsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ConfigSettings', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelResult) + async def CurrentModel(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='CurrentModel', + version=4, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Destroy(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Destroy', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def DestroyAllSubordinates(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='DestroyAllSubordinates', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def DestroyUnitStorageAttachments(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='DestroyUnitStorageAttachments', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def EnsureDead(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='EnsureDead', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def EnterScope(self, relation_units): + ''' + relation_units : typing.Sequence[~RelationUnit] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='EnterScope', + version=4, + params=_params) + _params['relation-units'] = relation_units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def FinishActions(self, results): + ''' + results : typing.Sequence[~ActionExecutionResult] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='FinishActions', + version=4, + params=_params) + _params['results'] = results + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MeterStatusResults) + async def GetMeterStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MeterStatusResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='GetMeterStatus', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringBoolResults) + async def GetPrincipal(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringBoolResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='GetPrincipal', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(BoolResults) + async def HasSubordinates(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~BoolResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='HasSubordinates', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsResults) + async def JoinedRelations(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='JoinedRelations', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def LeaveScope(self, relation_units): + ''' + relation_units : typing.Sequence[~RelationUnit] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='LeaveScope', + version=4, + params=_params) + _params['relation-units'] = relation_units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(LifeResults) + async def Life(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~LifeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Life', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Merge(self, params): + ''' + params : typing.Sequence[~MergeLeadershipSettingsParam] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Merge', + version=4, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelConfigResult) + async def ModelConfig(self): + ''' + + Returns -> typing.Mapping[str, typing.Any] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ModelConfig', + version=4, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def ModelUUID(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ModelUUID', + version=4, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(UnitNetworkConfigResults) + async def NetworkConfig(self, args): + ''' + args : typing.Sequence[~UnitNetworkConfig] + Returns -> typing.Sequence[~UnitNetworkConfigResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='NetworkConfig', + version=4, + params=_params) + _params['args'] = args + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def OpenPorts(self, entities): + ''' + entities : typing.Sequence[~EntityPortRange] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='OpenPorts', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def PrivateAddress(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='PrivateAddress', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def ProviderType(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ProviderType', + version=4, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def PublicAddress(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='PublicAddress', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(GetLeadershipSettingsBulkResults) + async def Read(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~GetLeadershipSettingsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Read', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(SettingsResults) + async def ReadRemoteSettings(self, relation_unit_pairs): + ''' + relation_unit_pairs : typing.Sequence[~RelationUnitPair] + Returns -> typing.Sequence[~SettingsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ReadRemoteSettings', + version=4, + params=_params) + _params['relation-unit-pairs'] = relation_unit_pairs + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(SettingsResults) + async def ReadSettings(self, relation_units): + ''' + relation_units : typing.Sequence[~RelationUnit] + Returns -> typing.Sequence[~SettingsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ReadSettings', + version=4, + params=_params) + _params['relation-units'] = relation_units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(RelationResults) + async def Relation(self, relation_units): + ''' + relation_units : typing.Sequence[~RelationUnit] + Returns -> typing.Sequence[~RelationResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Relation', + version=4, + params=_params) + _params['relation-units'] = relation_units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(RelationResults) + async def RelationById(self, relation_ids): + ''' + relation_ids : typing.Sequence[int] + Returns -> typing.Sequence[~RelationResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='RelationById', + version=4, + params=_params) + _params['relation-ids'] = relation_ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def RemoveStorageAttachments(self, ids): + ''' + ids : typing.Sequence[~StorageAttachmentId] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='RemoveStorageAttachments', + version=4, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def RequestReboot(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='RequestReboot', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ResolvedModeResults) + async def Resolved(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ResolvedModeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Resolved', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetAgentStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='SetAgentStatus', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetApplicationStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='SetApplicationStatus', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetCharmURL(self, entities): + ''' + entities : typing.Sequence[~EntityCharmURL] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='SetCharmURL', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='SetStatus', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetUnitStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='SetUnitStatus', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetWorkloadVersion(self, entities): + ''' + entities : typing.Sequence[~EntityWorkloadVersion] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='SetWorkloadVersion', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(LifeResults) + async def StorageAttachmentLife(self, ids): + ''' + ids : typing.Sequence[~StorageAttachmentId] + Returns -> typing.Sequence[~LifeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='StorageAttachmentLife', + version=4, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StorageAttachmentResults) + async def StorageAttachments(self, ids): + ''' + ids : typing.Sequence[~StorageAttachmentId] + Returns -> typing.Sequence[~StorageAttachmentResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='StorageAttachments', + version=4, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StatusResults) + async def UnitStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StatusResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='UnitStatus', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StorageAttachmentIdsResults) + async def UnitStorageAttachments(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StorageAttachmentIdsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='UnitStorageAttachments', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def UpdateSettings(self, relation_units): + ''' + relation_units : typing.Sequence[~RelationUnitSettings] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='UpdateSettings', + version=4, + params=_params) + _params['relation-units'] = relation_units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def Watch(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Watch', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchAPIHostPorts(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchAPIHostPorts', + version=4, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchActionNotifications(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchActionNotifications', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchApplicationRelations(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchApplicationRelations', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchConfigSettings(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchConfigSettings', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchForModelConfigChanges(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchForModelConfigChanges', + version=4, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchLeadershipSettings(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchLeadershipSettings', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchMeterStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchMeterStatus', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(RelationUnitsWatchResults) + async def WatchRelationUnits(self, relation_units): + ''' + relation_units : typing.Sequence[~RelationUnit] + Returns -> typing.Sequence[~RelationUnitsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchRelationUnits', + version=4, + params=_params) + _params['relation-units'] = relation_units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchStorageAttachments(self, ids): + ''' + ids : typing.Sequence[~StorageAttachmentId] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchStorageAttachments', + version=4, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchUnitAddresses(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchUnitAddresses', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchUnitStorageAttachments(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchUnitStorageAttachments', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def WorkloadVersion(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WorkloadVersion', + version=4, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply diff --git a/modules/libjuju/juju/client/_client5.py b/modules/libjuju/juju/client/_client5.py new file mode 100644 index 0000000..415aeae --- /dev/null +++ b/modules/libjuju/juju/client/_client5.py @@ -0,0 +1,5322 @@ +# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. +# Changes will be overwritten/lost when the file is regenerated. + +from juju.client._definitions import * +from juju.client.facade import ReturnMapping, Type + + +class ApplicationFacade(Type): + name = 'Application' + version = 5 + schema = {'definitions': {'AddApplicationUnits': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'attach-storage': {'items': {'type': 'string'}, + 'type': 'array'}, + 'num-units': {'type': 'integer'}, + 'placement': {'items': {'$ref': '#/definitions/Placement'}, + 'type': 'array'}}, + 'required': ['application', + 'num-units', + 'placement'], + 'type': 'object'}, + 'AddApplicationUnitsResults': {'additionalProperties': False, + 'properties': {'units': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['units'], + 'type': 'object'}, + 'AddRelation': {'additionalProperties': False, + 'properties': {'endpoints': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['endpoints'], + 'type': 'object'}, + 'AddRelationResults': {'additionalProperties': False, + 'properties': {'endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, + 'type': 'object'}}, + 'required': ['endpoints'], + 'type': 'object'}, + 'ApplicationCharmRelations': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationCharmRelationsResults': {'additionalProperties': False, + 'properties': {'charm-relations': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['charm-relations'], + 'type': 'object'}, + 'ApplicationDeploy': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'attach-storage': {'items': {'type': 'string'}, + 'type': 'array'}, + 'channel': {'type': 'string'}, + 'charm-url': {'type': 'string'}, + 'config': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'config-yaml': {'type': 'string'}, + 'constraints': {'$ref': '#/definitions/Value'}, + 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'num-units': {'type': 'integer'}, + 'placement': {'items': {'$ref': '#/definitions/Placement'}, + 'type': 'array'}, + 'resources': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'series': {'type': 'string'}, + 'storage': {'patternProperties': {'.*': {'$ref': '#/definitions/Constraints'}}, + 'type': 'object'}}, + 'required': ['application', + 'series', + 'charm-url', + 'channel', + 'num-units', + 'config-yaml', + 'constraints'], + 'type': 'object'}, + 'ApplicationDestroy': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationExpose': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationGet': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationGetResults': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'charm': {'type': 'string'}, + 'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'constraints': {'$ref': '#/definitions/Value'}, + 'series': {'type': 'string'}}, + 'required': ['application', + 'charm', + 'config', + 'constraints', + 'series'], + 'type': 'object'}, + 'ApplicationMetricCredential': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'metrics-credentials': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['application', + 'metrics-credentials'], + 'type': 'object'}, + 'ApplicationMetricCredentials': {'additionalProperties': False, + 'properties': {'creds': {'items': {'$ref': '#/definitions/ApplicationMetricCredential'}, + 'type': 'array'}}, + 'required': ['creds'], + 'type': 'object'}, + 'ApplicationOffer': {'additionalProperties': False, + 'properties': {'access': {'type': 'string'}, + 'application-description': {'type': 'string'}, + 'bindings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'}, + 'type': 'array'}, + 'offer-name': {'type': 'string'}, + 'offer-url': {'type': 'string'}, + 'source-model-tag': {'type': 'string'}, + 'spaces': {'items': {'$ref': '#/definitions/RemoteSpace'}, + 'type': 'array'}}, + 'required': ['source-model-tag', + 'offer-url', + 'offer-name', + 'application-description', + 'endpoints', + 'spaces', + 'bindings', + 'access'], + 'type': 'object'}, + 'ApplicationSet': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'options': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'required': ['application', 'options'], + 'type': 'object'}, + 'ApplicationSetCharm': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'channel': {'type': 'string'}, + 'charm-url': {'type': 'string'}, + 'config-settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'config-settings-yaml': {'type': 'string'}, + 'force-series': {'type': 'boolean'}, + 'force-units': {'type': 'boolean'}, + 'resource-ids': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'storage-constraints': {'patternProperties': {'.*': {'$ref': '#/definitions/StorageConstraints'}}, + 'type': 'object'}}, + 'required': ['application', + 'charm-url', + 'channel', + 'force-units', + 'force-series'], + 'type': 'object'}, + 'ApplicationUnexpose': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationUnset': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'options': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['application', 'options'], + 'type': 'object'}, + 'ApplicationUpdate': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'charm-url': {'type': 'string'}, + 'constraints': {'$ref': '#/definitions/Value'}, + 'force-charm-url': {'type': 'boolean'}, + 'force-series': {'type': 'boolean'}, + 'min-units': {'type': 'integer'}, + 'settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'settings-yaml': {'type': 'string'}}, + 'required': ['application', + 'charm-url', + 'force-charm-url', + 'force-series', + 'settings-yaml'], + 'type': 'object'}, + 'ApplicationsDeploy': {'additionalProperties': False, + 'properties': {'applications': {'items': {'$ref': '#/definitions/ApplicationDeploy'}, + 'type': 'array'}}, + 'required': ['applications'], + 'type': 'object'}, + 'CharmRelation': {'additionalProperties': False, + 'properties': {'interface': {'type': 'string'}, + 'limit': {'type': 'integer'}, + 'name': {'type': 'string'}, + 'optional': {'type': 'boolean'}, + 'role': {'type': 'string'}, + 'scope': {'type': 'string'}}, + 'required': ['name', + 'role', + 'interface', + 'optional', + 'limit', + 'scope'], + 'type': 'object'}, + 'Constraints': {'additionalProperties': False, + 'properties': {'Count': {'type': 'integer'}, + 'Pool': {'type': 'string'}, + 'Size': {'type': 'integer'}}, + 'required': ['Pool', 'Size', 'Count'], + 'type': 'object'}, + 'ConsumeApplicationArg': {'additionalProperties': False, + 'properties': {'ApplicationOffer': {'$ref': '#/definitions/ApplicationOffer'}, + 'application-alias': {'type': 'string'}, + 'macaroon': {'$ref': '#/definitions/Macaroon'}}, + 'required': ['ApplicationOffer'], + 'type': 'object'}, + 'ConsumeApplicationArgs': {'additionalProperties': False, + 'properties': {'args': {'items': {'$ref': '#/definitions/ConsumeApplicationArg'}, + 'type': 'array'}}, + 'type': 'object'}, + 'DestroyApplicationInfo': {'additionalProperties': False, + 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}, + 'destroyed-units': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}, + 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'type': 'object'}, + 'DestroyApplicationResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'info': {'$ref': '#/definitions/DestroyApplicationInfo'}}, + 'type': 'object'}, + 'DestroyApplicationResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyApplicationResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'DestroyApplicationUnits': {'additionalProperties': False, + 'properties': {'unit-names': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['unit-names'], + 'type': 'object'}, + 'DestroyRelation': {'additionalProperties': False, + 'properties': {'endpoints': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['endpoints'], + 'type': 'object'}, + 'DestroyUnitInfo': {'additionalProperties': False, + 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}, + 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'type': 'object'}, + 'DestroyUnitResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'info': {'$ref': '#/definitions/DestroyUnitInfo'}}, + 'type': 'object'}, + 'DestroyUnitResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyUnitResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'GetApplicationConstraints': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'GetConstraintsResults': {'additionalProperties': False, + 'properties': {'constraints': {'$ref': '#/definitions/Value'}}, + 'required': ['constraints'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'Placement': {'additionalProperties': False, + 'properties': {'directive': {'type': 'string'}, + 'scope': {'type': 'string'}}, + 'required': ['scope', 'directive'], + 'type': 'object'}, + 'RemoteEndpoint': {'additionalProperties': False, + 'properties': {'interface': {'type': 'string'}, + 'limit': {'type': 'integer'}, + 'name': {'type': 'string'}, + 'role': {'type': 'string'}, + 'scope': {'type': 'string'}}, + 'required': ['name', + 'role', + 'interface', + 'limit', + 'scope'], + 'type': 'object'}, + 'RemoteSpace': {'additionalProperties': False, + 'properties': {'cloud-type': {'type': 'string'}, + 'name': {'type': 'string'}, + 'provider-attributes': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'provider-id': {'type': 'string'}, + 'subnets': {'items': {'$ref': '#/definitions/Subnet'}, + 'type': 'array'}}, + 'required': ['cloud-type', + 'name', + 'provider-id', + 'provider-attributes', + 'subnets'], + 'type': 'object'}, + 'SetConstraints': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'constraints': {'$ref': '#/definitions/Value'}}, + 'required': ['application', 'constraints'], + 'type': 'object'}, + 'StorageConstraints': {'additionalProperties': False, + 'properties': {'count': {'type': 'integer'}, + 'pool': {'type': 'string'}, + 'size': {'type': 'integer'}}, + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'Subnet': {'additionalProperties': False, + 'properties': {'cidr': {'type': 'string'}, + 'life': {'type': 'string'}, + 'provider-id': {'type': 'string'}, + 'provider-network-id': {'type': 'string'}, + 'provider-space-id': {'type': 'string'}, + 'space-tag': {'type': 'string'}, + 'status': {'type': 'string'}, + 'vlan-tag': {'type': 'integer'}, + 'zones': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['cidr', + 'vlan-tag', + 'life', + 'space-tag', + 'zones'], + 'type': 'object'}, + 'Value': {'additionalProperties': False, + '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': {'items': {'type': 'string'}, + 'type': 'array'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}, + 'virt-type': {'type': 'string'}}, + 'type': 'object'}}, + 'properties': {'AddRelation': {'properties': {'Params': {'$ref': '#/definitions/AddRelation'}, + 'Result': {'$ref': '#/definitions/AddRelationResults'}}, + 'type': 'object'}, + 'AddUnits': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationUnits'}, + 'Result': {'$ref': '#/definitions/AddApplicationUnitsResults'}}, + 'type': 'object'}, + 'CharmRelations': {'properties': {'Params': {'$ref': '#/definitions/ApplicationCharmRelations'}, + 'Result': {'$ref': '#/definitions/ApplicationCharmRelationsResults'}}, + 'type': 'object'}, + 'Consume': {'properties': {'Params': {'$ref': '#/definitions/ConsumeApplicationArgs'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Deploy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationsDeploy'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationDestroy'}}, + 'type': 'object'}, + 'DestroyApplication': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/DestroyApplicationResults'}}, + 'type': 'object'}, + 'DestroyRelation': {'properties': {'Params': {'$ref': '#/definitions/DestroyRelation'}}, + 'type': 'object'}, + 'DestroyUnit': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/DestroyUnitResults'}}, + 'type': 'object'}, + 'DestroyUnits': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationUnits'}}, + 'type': 'object'}, + 'Expose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationExpose'}}, + 'type': 'object'}, + 'Get': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, + 'Result': {'$ref': '#/definitions/ApplicationGetResults'}}, + 'type': 'object'}, + 'GetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, + 'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'GetConstraints': {'properties': {'Params': {'$ref': '#/definitions/GetApplicationConstraints'}, + 'Result': {'$ref': '#/definitions/GetConstraintsResults'}}, + 'type': 'object'}, + 'Set': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSet'}}, + 'type': 'object'}, + 'SetCharm': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSetCharm'}}, + 'type': 'object'}, + 'SetConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, + 'type': 'object'}, + 'SetMetricCredentials': {'properties': {'Params': {'$ref': '#/definitions/ApplicationMetricCredentials'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Unexpose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnexpose'}}, + 'type': 'object'}, + 'Unset': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnset'}}, + 'type': 'object'}, + 'Update': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUpdate'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(AddRelationResults) + async def AddRelation(self, endpoints): + ''' + endpoints : typing.Sequence[str] + Returns -> typing.Mapping[str, ~CharmRelation] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='AddRelation', + version=5, + params=_params) + _params['endpoints'] = endpoints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(AddApplicationUnitsResults) + async def AddUnits(self, application, num_units, placement): + ''' + application : str + num_units : int + placement : typing.Sequence[~Placement] + Returns -> typing.Sequence[str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='AddUnits', + version=5, + params=_params) + _params['application'] = application + _params['num-units'] = num_units + _params['placement'] = placement + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ApplicationCharmRelationsResults) + async def CharmRelations(self, application): + ''' + application : str + Returns -> typing.Sequence[str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='CharmRelations', + version=5, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Consume(self, args): + ''' + args : typing.Sequence[~ConsumeApplicationArg] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Consume', + version=5, + params=_params) + _params['args'] = args + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Deploy(self, applications): + ''' + applications : typing.Sequence[~ApplicationDeploy] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Deploy', + version=5, + params=_params) + _params['applications'] = applications + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Destroy(self, application): + ''' + application : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Destroy', + version=5, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(DestroyApplicationResults) + async def DestroyApplication(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~DestroyApplicationResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='DestroyApplication', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def DestroyRelation(self, endpoints): + ''' + endpoints : typing.Sequence[str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='DestroyRelation', + version=5, + params=_params) + _params['endpoints'] = endpoints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(DestroyUnitResults) + async def DestroyUnit(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~DestroyUnitResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='DestroyUnit', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def DestroyUnits(self, unit_names): + ''' + unit_names : typing.Sequence[str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='DestroyUnits', + version=5, + params=_params) + _params['unit-names'] = unit_names + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Expose(self, application): + ''' + application : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Expose', + version=5, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ApplicationGetResults) + async def Get(self, application): + ''' + application : str + Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Get', + version=5, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def GetCharmURL(self, application): + ''' + application : str + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='GetCharmURL', + version=5, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(GetConstraintsResults) + async def GetConstraints(self, application): + ''' + application : str + Returns -> Value + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='GetConstraints', + version=5, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Set(self, application, options): + ''' + application : str + options : typing.Mapping[str, str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Set', + version=5, + params=_params) + _params['application'] = application + _params['options'] = options + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetCharm(self, application, channel, charm_url, config_settings, config_settings_yaml, force_series, force_units, resource_ids, storage_constraints): + ''' + application : str + channel : str + charm_url : str + config_settings : typing.Mapping[str, str] + config_settings_yaml : str + force_series : bool + force_units : bool + resource_ids : typing.Mapping[str, str] + storage_constraints : typing.Mapping[str, ~StorageConstraints] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='SetCharm', + version=5, + params=_params) + _params['application'] = application + _params['channel'] = channel + _params['charm-url'] = charm_url + _params['config-settings'] = config_settings + _params['config-settings-yaml'] = config_settings_yaml + _params['force-series'] = force_series + _params['force-units'] = force_units + _params['resource-ids'] = resource_ids + _params['storage-constraints'] = storage_constraints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetConstraints(self, application, constraints): + ''' + application : str + constraints : Value + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='SetConstraints', + version=5, + params=_params) + _params['application'] = application + _params['constraints'] = constraints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetMetricCredentials(self, creds): + ''' + creds : typing.Sequence[~ApplicationMetricCredential] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='SetMetricCredentials', + version=5, + params=_params) + _params['creds'] = creds + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Unexpose(self, application): + ''' + application : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Unexpose', + version=5, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Unset(self, application, options): + ''' + application : str + options : typing.Sequence[str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Unset', + version=5, + params=_params) + _params['application'] = application + _params['options'] = options + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Update(self, application, charm_url, constraints, force_charm_url, force_series, min_units, settings, settings_yaml): + ''' + application : str + charm_url : str + constraints : Value + force_charm_url : bool + force_series : bool + min_units : int + settings : typing.Mapping[str, str] + settings_yaml : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Update', + version=5, + params=_params) + _params['application'] = application + _params['charm-url'] = charm_url + _params['constraints'] = constraints + _params['force-charm-url'] = force_charm_url + _params['force-series'] = force_series + _params['min-units'] = min_units + _params['settings'] = settings + _params['settings-yaml'] = settings_yaml + reply = await self.rpc(msg) + return reply + + + +class ControllerFacade(Type): + name = 'Controller' + version = 5 + schema = {'definitions': {'AllWatcherId': {'additionalProperties': False, + 'properties': {'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}, + 'CloudCredential': {'additionalProperties': False, + 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'auth-type': {'type': 'string'}, + 'redacted': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['auth-type'], + 'type': 'object'}, + 'CloudSpec': {'additionalProperties': False, + 'properties': {'cacertificates': {'items': {'type': 'string'}, + 'type': 'array'}, + 'credential': {'$ref': '#/definitions/CloudCredential'}, + 'endpoint': {'type': 'string'}, + 'identity-endpoint': {'type': 'string'}, + 'name': {'type': 'string'}, + 'region': {'type': 'string'}, + 'storage-endpoint': {'type': 'string'}, + 'type': {'type': 'string'}}, + 'required': ['type', 'name'], + 'type': 'object'}, + 'CloudSpecResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/CloudSpec'}}, + 'type': 'object'}, + 'CloudSpecResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/CloudSpecResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ConfigValue': {'additionalProperties': False, + 'properties': {'source': {'type': 'string'}, + 'value': {'additionalProperties': True, + 'type': 'object'}}, + 'required': ['value', 'source'], + 'type': 'object'}, + 'ControllerAPIInfoResult': {'additionalProperties': False, + 'properties': {'addresses': {'items': {'type': 'string'}, + 'type': 'array'}, + 'cacert': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['addresses', + 'cacert'], + 'type': 'object'}, + 'ControllerAPIInfoResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ControllerAPIInfoResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ControllerConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ControllerConfigSet': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'DestroyControllerArgs': {'additionalProperties': False, + 'properties': {'destroy-models': {'type': 'boolean'}, + 'destroy-storage': {'type': 'boolean'}}, + 'required': ['destroy-models'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'HostedModelConfig': {'additionalProperties': False, + 'properties': {'cloud-spec': {'$ref': '#/definitions/CloudSpec'}, + 'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'error': {'$ref': '#/definitions/Error'}, + 'name': {'type': 'string'}, + 'owner': {'type': 'string'}}, + 'required': ['name', 'owner'], + 'type': 'object'}, + 'HostedModelConfigsResults': {'additionalProperties': False, + 'properties': {'models': {'items': {'$ref': '#/definitions/HostedModelConfig'}, + 'type': 'array'}}, + 'required': ['models'], + 'type': 'object'}, + 'InitiateMigrationArgs': {'additionalProperties': False, + 'properties': {'specs': {'items': {'$ref': '#/definitions/MigrationSpec'}, + 'type': 'array'}}, + 'required': ['specs'], + 'type': 'object'}, + 'InitiateMigrationResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'migration-id': {'type': 'string'}, + 'model-tag': {'type': 'string'}}, + 'required': ['model-tag', + 'migration-id'], + 'type': 'object'}, + 'InitiateMigrationResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/InitiateMigrationResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MachineHardware': {'additionalProperties': False, + 'properties': {'arch': {'type': 'string'}, + 'availability-zone': {'type': 'string'}, + 'cores': {'type': 'integer'}, + 'cpu-power': {'type': 'integer'}, + 'mem': {'type': 'integer'}, + 'root-disk': {'type': 'integer'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'MigrationSpec': {'additionalProperties': False, + 'properties': {'model-tag': {'type': 'string'}, + 'target-info': {'$ref': '#/definitions/MigrationTargetInfo'}}, + 'required': ['model-tag', 'target-info'], + 'type': 'object'}, + 'MigrationTargetInfo': {'additionalProperties': False, + 'properties': {'addrs': {'items': {'type': 'string'}, + 'type': 'array'}, + 'auth-tag': {'type': 'string'}, + 'ca-cert': {'type': 'string'}, + 'controller-tag': {'type': 'string'}, + 'macaroons': {'type': 'string'}, + 'password': {'type': 'string'}}, + 'required': ['controller-tag', + 'addrs', + 'ca-cert', + 'auth-tag'], + 'type': 'object'}, + 'Model': {'additionalProperties': False, + 'properties': {'name': {'type': 'string'}, + 'owner-tag': {'type': 'string'}, + 'type': {'type': 'string'}, + 'uuid': {'type': 'string'}}, + 'required': ['name', 'uuid', 'type', 'owner-tag'], + 'type': 'object'}, + 'ModelBlockInfo': {'additionalProperties': False, + 'properties': {'blocks': {'items': {'type': 'string'}, + 'type': 'array'}, + 'model-uuid': {'type': 'string'}, + 'name': {'type': 'string'}, + 'owner-tag': {'type': 'string'}}, + 'required': ['name', + 'model-uuid', + 'owner-tag', + 'blocks'], + 'type': 'object'}, + 'ModelBlockInfoList': {'additionalProperties': False, + 'properties': {'models': {'items': {'$ref': '#/definitions/ModelBlockInfo'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ModelConfigResults': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ModelFilesystemInfo': {'additionalProperties': False, + 'properties': {'detachable': {'type': 'boolean'}, + 'id': {'type': 'string'}, + 'message': {'type': 'string'}, + 'provider-id': {'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['id'], + 'type': 'object'}, + 'ModelMachineInfo': {'additionalProperties': False, + 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'}, + 'has-vote': {'type': 'boolean'}, + 'id': {'type': 'string'}, + 'instance-id': {'type': 'string'}, + 'message': {'type': 'string'}, + 'status': {'type': 'string'}, + 'wants-vote': {'type': 'boolean'}}, + 'required': ['id'], + 'type': 'object'}, + 'ModelStatus': {'additionalProperties': False, + 'properties': {'application-count': {'type': 'integer'}, + 'error': {'$ref': '#/definitions/Error'}, + 'filesystems': {'items': {'$ref': '#/definitions/ModelFilesystemInfo'}, + 'type': 'array'}, + 'hosted-machine-count': {'type': 'integer'}, + 'life': {'type': 'string'}, + 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, + 'type': 'array'}, + 'model-tag': {'type': 'string'}, + 'owner-tag': {'type': 'string'}, + 'volumes': {'items': {'$ref': '#/definitions/ModelVolumeInfo'}, + 'type': 'array'}}, + 'required': ['model-tag', + 'life', + 'hosted-machine-count', + 'application-count', + 'owner-tag'], + 'type': 'object'}, + 'ModelStatusResults': {'additionalProperties': False, + 'properties': {'models': {'items': {'$ref': '#/definitions/ModelStatus'}, + 'type': 'array'}}, + 'required': ['models'], + 'type': 'object'}, + 'ModelTag': {'additionalProperties': False, 'type': 'object'}, + 'ModelVolumeInfo': {'additionalProperties': False, + 'properties': {'detachable': {'type': 'boolean'}, + 'id': {'type': 'string'}, + 'message': {'type': 'string'}, + 'provider-id': {'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['id'], + 'type': 'object'}, + 'ModifyControllerAccess': {'additionalProperties': False, + 'properties': {'access': {'type': 'string'}, + 'action': {'type': 'string'}, + 'user-tag': {'type': 'string'}}, + 'required': ['user-tag', + 'action', + 'access'], + 'type': 'object'}, + 'ModifyControllerAccessRequest': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyControllerAccess'}, + 'type': 'array'}}, + 'required': ['changes'], + 'type': 'object'}, + 'RemoveBlocksArgs': {'additionalProperties': False, + 'properties': {'all': {'type': 'boolean'}}, + 'required': ['all'], + 'type': 'object'}, + 'UserAccess': {'additionalProperties': False, + 'properties': {'access': {'type': 'string'}, + 'user-tag': {'type': 'string'}}, + 'required': ['user-tag', 'access'], + 'type': 'object'}, + 'UserAccessResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/UserAccess'}}, + 'type': 'object'}, + 'UserAccessResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/UserAccessResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'UserModel': {'additionalProperties': False, + 'properties': {'last-connection': {'format': 'date-time', + 'type': 'string'}, + 'model': {'$ref': '#/definitions/Model'}}, + 'required': ['model', 'last-connection'], + 'type': 'object'}, + 'UserModelList': {'additionalProperties': False, + 'properties': {'user-models': {'items': {'$ref': '#/definitions/UserModel'}, + 'type': 'array'}}, + 'required': ['user-models'], + 'type': 'object'}}, + 'properties': {'AllModels': {'properties': {'Result': {'$ref': '#/definitions/UserModelList'}}, + 'type': 'object'}, + 'CloudSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/CloudSpecResults'}}, + 'type': 'object'}, + 'ConfigSet': {'properties': {'Params': {'$ref': '#/definitions/ControllerConfigSet'}}, + 'type': 'object'}, + 'ControllerAPIInfoForModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ControllerAPIInfoResults'}}, + 'type': 'object'}, + 'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}}, + 'type': 'object'}, + 'DestroyController': {'properties': {'Params': {'$ref': '#/definitions/DestroyControllerArgs'}}, + 'type': 'object'}, + 'GetCloudSpec': {'properties': {'Params': {'$ref': '#/definitions/ModelTag'}, + 'Result': {'$ref': '#/definitions/CloudSpecResult'}}, + 'type': 'object'}, + 'GetControllerAccess': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/UserAccessResults'}}, + 'type': 'object'}, + 'HostedModelConfigs': {'properties': {'Result': {'$ref': '#/definitions/HostedModelConfigsResults'}}, + 'type': 'object'}, + 'InitiateMigration': {'properties': {'Params': {'$ref': '#/definitions/InitiateMigrationArgs'}, + 'Result': {'$ref': '#/definitions/InitiateMigrationResults'}}, + 'type': 'object'}, + 'ListBlockedModels': {'properties': {'Result': {'$ref': '#/definitions/ModelBlockInfoList'}}, + 'type': 'object'}, + 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}}, + 'type': 'object'}, + 'ModelStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ModelStatusResults'}}, + 'type': 'object'}, + 'ModifyControllerAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyControllerAccessRequest'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'RemoveBlocks': {'properties': {'Params': {'$ref': '#/definitions/RemoveBlocksArgs'}}, + 'type': 'object'}, + 'WatchAllModels': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherId'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(UserModelList) + async def AllModels(self): + ''' + + Returns -> typing.Sequence[~UserModel] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='AllModels', + version=5, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(CloudSpecResults) + async def CloudSpec(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~CloudSpecResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='CloudSpec', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def ConfigSet(self, config): + ''' + config : typing.Mapping[str, typing.Any] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='ConfigSet', + version=5, + params=_params) + _params['config'] = config + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ControllerAPIInfoResults) + async def ControllerAPIInfoForModels(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ControllerAPIInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='ControllerAPIInfoForModels', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ControllerConfigResult) + async def ControllerConfig(self): + ''' + + Returns -> typing.Mapping[str, typing.Any] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='ControllerConfig', + version=5, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def DestroyController(self, destroy_models): + ''' + destroy_models : bool + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='DestroyController', + version=5, + params=_params) + _params['destroy-models'] = destroy_models + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(CloudSpecResult) + async def GetCloudSpec(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='GetCloudSpec', + version=5, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(UserAccessResults) + async def GetControllerAccess(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~UserAccessResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='GetControllerAccess', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(HostedModelConfigsResults) + async def HostedModelConfigs(self): + ''' + + Returns -> typing.Sequence[~HostedModelConfig] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='HostedModelConfigs', + version=5, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(InitiateMigrationResults) + async def InitiateMigration(self, specs): + ''' + specs : typing.Sequence[~MigrationSpec] + Returns -> typing.Sequence[~InitiateMigrationResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='InitiateMigration', + version=5, + params=_params) + _params['specs'] = specs + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelBlockInfoList) + async def ListBlockedModels(self): + ''' + + Returns -> typing.Sequence[~ModelBlockInfo] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='ListBlockedModels', + version=5, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelConfigResults) + async def ModelConfig(self): + ''' + + Returns -> typing.Mapping[str, ~ConfigValue] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='ModelConfig', + version=5, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelStatusResults) + async def ModelStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ModelStatus] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='ModelStatus', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def ModifyControllerAccess(self, changes): + ''' + changes : typing.Sequence[~ModifyControllerAccess] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='ModifyControllerAccess', + version=5, + params=_params) + _params['changes'] = changes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def RemoveBlocks(self, all_): + ''' + all_ : bool + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='RemoveBlocks', + version=5, + params=_params) + _params['all'] = all_ + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(AllWatcherId) + async def WatchAllModels(self): + ''' + + Returns -> str + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Controller', + request='WatchAllModels', + version=5, + params=_params) + + reply = await self.rpc(msg) + return reply + + + +class FirewallerFacade(Type): + name = 'Firewaller' + version = 5 + schema = {'definitions': {'BoolResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'boolean'}}, + 'required': ['result'], + 'type': 'object'}, + 'BoolResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'CloudCredential': {'additionalProperties': False, + 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'auth-type': {'type': 'string'}, + 'redacted': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['auth-type'], + 'type': 'object'}, + 'CloudSpec': {'additionalProperties': False, + 'properties': {'cacertificates': {'items': {'type': 'string'}, + 'type': 'array'}, + 'credential': {'$ref': '#/definitions/CloudCredential'}, + 'endpoint': {'type': 'string'}, + 'identity-endpoint': {'type': 'string'}, + 'name': {'type': 'string'}, + 'region': {'type': 'string'}, + 'storage-endpoint': {'type': 'string'}, + 'type': {'type': 'string'}}, + 'required': ['type', 'name'], + 'type': 'object'}, + 'CloudSpecResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/CloudSpec'}}, + 'type': 'object'}, + 'CloudSpecResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/CloudSpecResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ControllerAPIInfoResult': {'additionalProperties': False, + 'properties': {'addresses': {'items': {'type': 'string'}, + 'type': 'array'}, + 'cacert': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['addresses', + 'cacert'], + 'type': 'object'}, + 'ControllerAPIInfoResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ControllerAPIInfoResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ControllerConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityStatusArgs': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'status': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', + 'status', + 'info', + 'data'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'FirewallRule': {'additionalProperties': False, + 'properties': {'known-service': {'type': 'string'}, + 'whitelist-cidrs': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['known-service'], + 'type': 'object'}, + 'KnownServiceArgs': {'additionalProperties': False, + 'properties': {'known-services': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['known-services'], + 'type': 'object'}, + 'LifeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'life': {'type': 'string'}}, + 'required': ['life'], + 'type': 'object'}, + 'LifeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ListFirewallRulesResults': {'additionalProperties': False, + 'properties': {'Rules': {'items': {'$ref': '#/definitions/FirewallRule'}, + 'type': 'array'}}, + 'required': ['Rules'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MacaroonResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/Macaroon'}}, + 'type': 'object'}, + 'MacaroonResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/MacaroonResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'MachinePortRange': {'additionalProperties': False, + 'properties': {'port-range': {'$ref': '#/definitions/PortRange'}, + 'relation-tag': {'type': 'string'}, + 'unit-tag': {'type': 'string'}}, + 'required': ['unit-tag', + 'relation-tag', + 'port-range'], + 'type': 'object'}, + 'MachinePorts': {'additionalProperties': False, + 'properties': {'machine-tag': {'type': 'string'}, + 'subnet-tag': {'type': 'string'}}, + 'required': ['machine-tag', 'subnet-tag'], + 'type': 'object'}, + 'MachinePortsParams': {'additionalProperties': False, + 'properties': {'params': {'items': {'$ref': '#/definitions/MachinePorts'}, + 'type': 'array'}}, + 'required': ['params'], + 'type': 'object'}, + 'MachinePortsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'ports': {'items': {'$ref': '#/definitions/MachinePortRange'}, + 'type': 'array'}}, + 'required': ['ports'], + 'type': 'object'}, + 'MachinePortsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/MachinePortsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ModelConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ModelTag': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'PortRange': {'additionalProperties': False, + 'properties': {'from-port': {'type': 'integer'}, + 'protocol': {'type': 'string'}, + 'to-port': {'type': 'integer'}}, + 'required': ['from-port', 'to-port', 'protocol'], + 'type': 'object'}, + 'SetStatus': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'StringResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StringsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}, + 'StringsWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}}, + 'properties': {'AreManuallyProvisioned': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/BoolResults'}}, + 'type': 'object'}, + 'CloudSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/CloudSpecResults'}}, + 'type': 'object'}, + 'ControllerAPIInfoForModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ControllerAPIInfoResults'}}, + 'type': 'object'}, + 'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}}, + 'type': 'object'}, + 'FirewallRules': {'properties': {'Params': {'$ref': '#/definitions/KnownServiceArgs'}, + 'Result': {'$ref': '#/definitions/ListFirewallRulesResults'}}, + 'type': 'object'}, + 'GetAssignedMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'GetCloudSpec': {'properties': {'Params': {'$ref': '#/definitions/ModelTag'}, + 'Result': {'$ref': '#/definitions/CloudSpecResult'}}, + 'type': 'object'}, + 'GetExposed': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/BoolResults'}}, + 'type': 'object'}, + 'GetMachineActiveSubnets': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsResults'}}, + 'type': 'object'}, + 'GetMachinePorts': {'properties': {'Params': {'$ref': '#/definitions/MachinePortsParams'}, + 'Result': {'$ref': '#/definitions/MachinePortsResults'}}, + 'type': 'object'}, + 'InstanceId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/LifeResults'}}, + 'type': 'object'}, + 'MacaroonForRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/MacaroonResults'}}, + 'type': 'object'}, + 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, + 'type': 'object'}, + 'SetRelationsStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchEgressAddressesForRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}, + 'WatchIngressAddressesForRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WatchModelMachines': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, + 'type': 'object'}, + 'WatchOpenedPorts': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WatchUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(BoolResults) + async def AreManuallyProvisioned(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~BoolResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='AreManuallyProvisioned', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(CloudSpecResults) + async def CloudSpec(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~CloudSpecResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='CloudSpec', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ControllerAPIInfoResults) + async def ControllerAPIInfoForModels(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ControllerAPIInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='ControllerAPIInfoForModels', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ControllerConfigResult) + async def ControllerConfig(self): + ''' + + Returns -> typing.Mapping[str, typing.Any] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='ControllerConfig', + version=5, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ListFirewallRulesResults) + async def FirewallRules(self, known_services): + ''' + known_services : typing.Sequence[str] + Returns -> typing.Sequence[~FirewallRule] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='FirewallRules', + version=5, + params=_params) + _params['known-services'] = known_services + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def GetAssignedMachine(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='GetAssignedMachine', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(CloudSpecResult) + async def GetCloudSpec(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='GetCloudSpec', + version=5, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(BoolResults) + async def GetExposed(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~BoolResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='GetExposed', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsResults) + async def GetMachineActiveSubnets(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='GetMachineActiveSubnets', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MachinePortsResults) + async def GetMachinePorts(self, params): + ''' + params : typing.Sequence[~MachinePorts] + Returns -> typing.Sequence[~MachinePortsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='GetMachinePorts', + version=5, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def InstanceId(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='InstanceId', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(LifeResults) + async def Life(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~LifeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='Life', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MacaroonResults) + async def MacaroonForRelations(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MacaroonResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='MacaroonForRelations', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelConfigResult) + async def ModelConfig(self): + ''' + + Returns -> typing.Mapping[str, typing.Any] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='ModelConfig', + version=5, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetRelationsStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='SetRelationsStatus', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def Watch(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='Watch', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchEgressAddressesForRelations(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='WatchEgressAddressesForRelations', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchForModelConfigChanges(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='WatchForModelConfigChanges', + version=5, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchIngressAddressesForRelations(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='WatchIngressAddressesForRelations', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResult) + async def WatchModelMachines(self): + ''' + + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='WatchModelMachines', + version=5, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchOpenedPorts(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='WatchOpenedPorts', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchUnits(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Firewaller', + request='WatchUnits', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class MachineManagerFacade(Type): + name = 'MachineManager' + version = 5 + schema = {'definitions': {'AddMachineParams': {'additionalProperties': False, + 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, + 'type': 'array'}, + 'constraints': {'$ref': '#/definitions/Value'}, + 'container-type': {'type': 'string'}, + 'disks': {'items': {'$ref': '#/definitions/Constraints'}, + 'type': 'array'}, + 'hardware-characteristics': {'$ref': '#/definitions/HardwareCharacteristics'}, + 'instance-id': {'type': 'string'}, + 'jobs': {'items': {'type': 'string'}, + 'type': 'array'}, + 'nonce': {'type': 'string'}, + 'parent-id': {'type': 'string'}, + 'placement': {'$ref': '#/definitions/Placement'}, + 'series': {'type': 'string'}}, + 'required': ['series', + 'constraints', + 'jobs', + 'parent-id', + 'container-type', + 'instance-id', + 'nonce', + 'hardware-characteristics', + 'addresses'], + 'type': 'object'}, + 'AddMachines': {'additionalProperties': False, + 'properties': {'params': {'items': {'$ref': '#/definitions/AddMachineParams'}, + 'type': 'array'}}, + 'required': ['params'], + 'type': 'object'}, + 'AddMachinesResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'machine': {'type': 'string'}}, + 'required': ['machine'], + 'type': 'object'}, + 'AddMachinesResults': {'additionalProperties': False, + 'properties': {'machines': {'items': {'$ref': '#/definitions/AddMachinesResult'}, + 'type': 'array'}}, + 'required': ['machines'], + 'type': 'object'}, + 'Address': {'additionalProperties': False, + 'properties': {'scope': {'type': 'string'}, + 'space-name': {'type': 'string'}, + 'type': {'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['value', 'type', 'scope'], + 'type': 'object'}, + 'Constraints': {'additionalProperties': False, + 'properties': {'Count': {'type': 'integer'}, + 'Pool': {'type': 'string'}, + 'Size': {'type': 'integer'}}, + 'required': ['Pool', 'Size', 'Count'], + 'type': 'object'}, + 'DestroyMachineInfo': {'additionalProperties': False, + 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}, + 'destroyed-units': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}, + 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'type': 'object'}, + 'DestroyMachineResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'info': {'$ref': '#/definitions/DestroyMachineInfo'}}, + 'type': 'object'}, + 'DestroyMachineResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyMachineResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'DestroyMachinesParams': {'additionalProperties': False, + 'properties': {'force': {'type': 'boolean'}, + 'keep': {'type': 'boolean'}, + 'machine-tags': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['machine-tags'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'HardwareCharacteristics': {'additionalProperties': False, + 'properties': {'arch': {'type': 'string'}, + 'availability-zone': {'type': 'string'}, + 'cpu-cores': {'type': 'integer'}, + 'cpu-power': {'type': 'integer'}, + 'mem': {'type': 'integer'}, + 'root-disk': {'type': 'integer'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'InstanceType': {'additionalProperties': False, + 'properties': {'arches': {'items': {'type': 'string'}, + 'type': 'array'}, + 'cost': {'type': 'integer'}, + 'cpu-cores': {'type': 'integer'}, + 'deprecated': {'type': 'boolean'}, + 'memory': {'type': 'integer'}, + 'name': {'type': 'string'}, + 'root-disk': {'type': 'integer'}, + 'virt-type': {'type': 'string'}}, + 'required': ['arches', 'cpu-cores', 'memory'], + 'type': 'object'}, + 'InstanceTypesResult': {'additionalProperties': False, + 'properties': {'cost-currency': {'type': 'string'}, + 'cost-divisor': {'type': 'integer'}, + 'cost-unit': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}, + 'instance-types': {'items': {'$ref': '#/definitions/InstanceType'}, + 'type': 'array'}}, + 'type': 'object'}, + 'InstanceTypesResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/InstanceTypesResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'ModelInstanceTypesConstraint': {'additionalProperties': False, + 'properties': {'value': {'$ref': '#/definitions/Value'}}, + 'type': 'object'}, + 'ModelInstanceTypesConstraints': {'additionalProperties': False, + 'properties': {'constraints': {'items': {'$ref': '#/definitions/ModelInstanceTypesConstraint'}, + 'type': 'array'}}, + 'required': ['constraints'], + 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Placement': {'additionalProperties': False, + 'properties': {'directive': {'type': 'string'}, + 'scope': {'type': 'string'}}, + 'required': ['scope', 'directive'], + 'type': 'object'}, + 'StringsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StringsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'UpdateSeriesArg': {'additionalProperties': False, + 'properties': {'force': {'type': 'boolean'}, + 'series': {'type': 'string'}, + 'tag': {'$ref': '#/definitions/Entity'}}, + 'required': ['tag', 'force', 'series'], + 'type': 'object'}, + 'UpdateSeriesArgs': {'additionalProperties': False, + 'properties': {'args': {'items': {'$ref': '#/definitions/UpdateSeriesArg'}, + 'type': 'array'}}, + 'required': ['args'], + 'type': 'object'}, + 'UpgradeSeriesNotificationParam': {'additionalProperties': False, + 'properties': {'entity': {'$ref': '#/definitions/Entity'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['entity', + 'watcher-id'], + 'type': 'object'}, + 'UpgradeSeriesNotificationParams': {'additionalProperties': False, + 'properties': {'params': {'items': {'$ref': '#/definitions/UpgradeSeriesNotificationParam'}, + 'type': 'array'}}, + 'required': ['params'], + 'type': 'object'}, + 'UpgradeSeriesUnitsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'unit-names': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['unit-names'], + 'type': 'object'}, + 'UpgradeSeriesUnitsResults': {'additionalProperties': False, + 'properties': {'Results': {'items': {'$ref': '#/definitions/UpgradeSeriesUnitsResult'}, + 'type': 'array'}}, + 'required': ['Results'], + 'type': 'object'}, + 'Value': {'additionalProperties': False, + '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': {'items': {'type': 'string'}, + 'type': 'array'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}, + 'virt-type': {'type': 'string'}, + 'zones': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}}, + 'properties': {'AddMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, + 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, + 'type': 'object'}, + 'DestroyMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/DestroyMachineResults'}}, + 'type': 'object'}, + 'DestroyMachineWithParams': {'properties': {'Params': {'$ref': '#/definitions/DestroyMachinesParams'}, + 'Result': {'$ref': '#/definitions/DestroyMachineResults'}}, + 'type': 'object'}, + 'ForceDestroyMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/DestroyMachineResults'}}, + 'type': 'object'}, + 'GetUpgradeSeriesMessages': {'properties': {'Params': {'$ref': '#/definitions/UpgradeSeriesNotificationParams'}, + 'Result': {'$ref': '#/definitions/StringsResults'}}, + 'type': 'object'}, + 'InstanceTypes': {'properties': {'Params': {'$ref': '#/definitions/ModelInstanceTypesConstraints'}, + 'Result': {'$ref': '#/definitions/InstanceTypesResults'}}, + 'type': 'object'}, + 'UpgradeSeriesComplete': {'properties': {'Params': {'$ref': '#/definitions/UpdateSeriesArg'}, + 'Result': {'$ref': '#/definitions/ErrorResult'}}, + 'type': 'object'}, + 'UpgradeSeriesPrepare': {'properties': {'Params': {'$ref': '#/definitions/UpdateSeriesArg'}, + 'Result': {'$ref': '#/definitions/ErrorResult'}}, + 'type': 'object'}, + 'UpgradeSeriesValidate': {'properties': {'Params': {'$ref': '#/definitions/UpdateSeriesArgs'}, + 'Result': {'$ref': '#/definitions/UpgradeSeriesUnitsResults'}}, + 'type': 'object'}, + 'WatchUpgradeSeriesNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(AddMachinesResults) + async def AddMachines(self, params): + ''' + params : typing.Sequence[~AddMachineParams] + Returns -> typing.Sequence[~AddMachinesResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineManager', + request='AddMachines', + version=5, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(DestroyMachineResults) + async def DestroyMachine(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~DestroyMachineResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineManager', + request='DestroyMachine', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(DestroyMachineResults) + async def DestroyMachineWithParams(self, force, keep, machine_tags): + ''' + force : bool + keep : bool + machine_tags : typing.Sequence[str] + Returns -> typing.Sequence[~DestroyMachineResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineManager', + request='DestroyMachineWithParams', + version=5, + params=_params) + _params['force'] = force + _params['keep'] = keep + _params['machine-tags'] = machine_tags + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(DestroyMachineResults) + async def ForceDestroyMachine(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~DestroyMachineResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineManager', + request='ForceDestroyMachine', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsResults) + async def GetUpgradeSeriesMessages(self, params): + ''' + params : typing.Sequence[~UpgradeSeriesNotificationParam] + Returns -> typing.Sequence[~StringsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineManager', + request='GetUpgradeSeriesMessages', + version=5, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(InstanceTypesResults) + async def InstanceTypes(self, constraints): + ''' + constraints : typing.Sequence[~ModelInstanceTypesConstraint] + Returns -> typing.Sequence[~InstanceTypesResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineManager', + request='InstanceTypes', + version=5, + params=_params) + _params['constraints'] = constraints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResult) + async def UpgradeSeriesComplete(self, force, series, tag): + ''' + force : bool + series : str + tag : Entity + Returns -> Error + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineManager', + request='UpgradeSeriesComplete', + version=5, + params=_params) + _params['force'] = force + _params['series'] = series + _params['tag'] = tag + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResult) + async def UpgradeSeriesPrepare(self, force, series, tag): + ''' + force : bool + series : str + tag : Entity + Returns -> Error + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineManager', + request='UpgradeSeriesPrepare', + version=5, + params=_params) + _params['force'] = force + _params['series'] = series + _params['tag'] = tag + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(UpgradeSeriesUnitsResults) + async def UpgradeSeriesValidate(self, args): + ''' + args : typing.Sequence[~UpdateSeriesArg] + Returns -> typing.Sequence[~UpgradeSeriesUnitsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineManager', + request='UpgradeSeriesValidate', + version=5, + params=_params) + _params['args'] = args + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchUpgradeSeriesNotifications(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='MachineManager', + request='WatchUpgradeSeriesNotifications', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + +class ModelManagerFacade(Type): + name = 'ModelManager' + version = 5 + schema = {'definitions': {'ChangeModelCredentialParams': {'additionalProperties': False, + 'properties': {'credential-tag': {'type': 'string'}, + 'model-tag': {'type': 'string'}}, + 'required': ['model-tag', + 'credential-tag'], + 'type': 'object'}, + 'ChangeModelCredentialsParams': {'additionalProperties': False, + 'properties': {'model-credentials': {'items': {'$ref': '#/definitions/ChangeModelCredentialParams'}, + 'type': 'array'}}, + 'required': ['model-credentials'], + 'type': 'object'}, + 'DestroyModelParams': {'additionalProperties': False, + 'properties': {'destroy-storage': {'type': 'boolean'}, + 'model-tag': {'type': 'string'}}, + 'required': ['model-tag'], + 'type': 'object'}, + 'DestroyModelsParams': {'additionalProperties': False, + 'properties': {'models': {'items': {'$ref': '#/definitions/DestroyModelParams'}, + 'type': 'array'}}, + 'required': ['models'], + 'type': 'object'}, + 'DumpModelRequest': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}, + 'simplified': {'type': 'boolean'}}, + 'required': ['entities', 'simplified'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityStatus': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'since': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['status', 'info', 'since'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MachineHardware': {'additionalProperties': False, + 'properties': {'arch': {'type': 'string'}, + 'availability-zone': {'type': 'string'}, + 'cores': {'type': 'integer'}, + 'cpu-power': {'type': 'integer'}, + 'mem': {'type': 'integer'}, + 'root-disk': {'type': 'integer'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'MapResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['result'], + 'type': 'object'}, + 'MapResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/MapResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Model': {'additionalProperties': False, + 'properties': {'name': {'type': 'string'}, + 'owner-tag': {'type': 'string'}, + 'type': {'type': 'string'}, + 'uuid': {'type': 'string'}}, + 'required': ['name', 'uuid', 'type', 'owner-tag'], + 'type': 'object'}, + 'ModelCreateArgs': {'additionalProperties': False, + 'properties': {'cloud-tag': {'type': 'string'}, + 'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'credential': {'type': 'string'}, + 'name': {'type': 'string'}, + 'owner-tag': {'type': 'string'}, + 'region': {'type': 'string'}}, + 'required': ['name', 'owner-tag'], + 'type': 'object'}, + 'ModelDefaultValues': {'additionalProperties': False, + 'properties': {'cloud-region': {'type': 'string'}, + 'cloud-tag': {'type': 'string'}, + 'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ModelDefaults': {'additionalProperties': False, + 'properties': {'controller': {'additionalProperties': True, + 'type': 'object'}, + 'default': {'additionalProperties': True, + 'type': 'object'}, + 'regions': {'items': {'$ref': '#/definitions/RegionDefaults'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ModelDefaultsResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ModelDefaults'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ModelEntityCount': {'additionalProperties': False, + 'properties': {'count': {'type': 'integer'}, + 'entity': {'type': 'string'}}, + 'required': ['entity', 'count'], + 'type': 'object'}, + 'ModelFilesystemInfo': {'additionalProperties': False, + 'properties': {'detachable': {'type': 'boolean'}, + 'id': {'type': 'string'}, + 'message': {'type': 'string'}, + 'provider-id': {'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['id'], + 'type': 'object'}, + 'ModelInfo': {'additionalProperties': False, + 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, + 'cloud-credential-tag': {'type': 'string'}, + 'cloud-region': {'type': 'string'}, + 'cloud-tag': {'type': 'string'}, + 'controller-uuid': {'type': 'string'}, + 'default-series': {'type': 'string'}, + 'life': {'type': 'string'}, + 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, + 'type': 'array'}, + 'migration': {'$ref': '#/definitions/ModelMigrationStatus'}, + 'name': {'type': 'string'}, + 'owner-tag': {'type': 'string'}, + 'provider-type': {'type': 'string'}, + 'sla': {'$ref': '#/definitions/ModelSLAInfo'}, + 'status': {'$ref': '#/definitions/EntityStatus'}, + 'type': {'type': 'string'}, + 'users': {'items': {'$ref': '#/definitions/ModelUserInfo'}, + 'type': 'array'}, + 'uuid': {'type': 'string'}}, + 'required': ['name', + 'type', + 'uuid', + 'controller-uuid', + 'cloud-tag', + 'owner-tag', + 'life', + 'users', + 'machines', + 'sla', + 'agent-version'], + 'type': 'object'}, + 'ModelInfoResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/ModelInfo'}}, + 'type': 'object'}, + 'ModelInfoResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ModelInfoResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ModelMachineInfo': {'additionalProperties': False, + 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'}, + 'has-vote': {'type': 'boolean'}, + 'id': {'type': 'string'}, + 'instance-id': {'type': 'string'}, + 'message': {'type': 'string'}, + 'status': {'type': 'string'}, + 'wants-vote': {'type': 'boolean'}}, + 'required': ['id'], + 'type': 'object'}, + 'ModelMigrationStatus': {'additionalProperties': False, + 'properties': {'end': {'format': 'date-time', + 'type': 'string'}, + 'start': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['status', 'start'], + 'type': 'object'}, + 'ModelSLAInfo': {'additionalProperties': False, + 'properties': {'level': {'type': 'string'}, + 'owner': {'type': 'string'}}, + 'required': ['level', 'owner'], + 'type': 'object'}, + 'ModelStatus': {'additionalProperties': False, + 'properties': {'application-count': {'type': 'integer'}, + 'error': {'$ref': '#/definitions/Error'}, + 'filesystems': {'items': {'$ref': '#/definitions/ModelFilesystemInfo'}, + 'type': 'array'}, + 'hosted-machine-count': {'type': 'integer'}, + 'life': {'type': 'string'}, + 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, + 'type': 'array'}, + 'model-tag': {'type': 'string'}, + 'owner-tag': {'type': 'string'}, + 'volumes': {'items': {'$ref': '#/definitions/ModelVolumeInfo'}, + 'type': 'array'}}, + 'required': ['model-tag', + 'life', + 'hosted-machine-count', + 'application-count', + 'owner-tag'], + 'type': 'object'}, + 'ModelStatusResults': {'additionalProperties': False, + 'properties': {'models': {'items': {'$ref': '#/definitions/ModelStatus'}, + 'type': 'array'}}, + 'required': ['models'], + 'type': 'object'}, + 'ModelSummariesRequest': {'additionalProperties': False, + 'properties': {'all': {'type': 'boolean'}, + 'user-tag': {'type': 'string'}}, + 'required': ['user-tag'], + 'type': 'object'}, + 'ModelSummary': {'additionalProperties': False, + 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, + 'cloud-credential-tag': {'type': 'string'}, + 'cloud-region': {'type': 'string'}, + 'cloud-tag': {'type': 'string'}, + 'controller-uuid': {'type': 'string'}, + 'counts': {'items': {'$ref': '#/definitions/ModelEntityCount'}, + 'type': 'array'}, + 'default-series': {'type': 'string'}, + 'last-connection': {'format': 'date-time', + 'type': 'string'}, + 'life': {'type': 'string'}, + 'migration': {'$ref': '#/definitions/ModelMigrationStatus'}, + 'name': {'type': 'string'}, + 'owner-tag': {'type': 'string'}, + 'provider-type': {'type': 'string'}, + 'sla': {'$ref': '#/definitions/ModelSLAInfo'}, + 'status': {'$ref': '#/definitions/EntityStatus'}, + 'type': {'type': 'string'}, + 'user-access': {'type': 'string'}, + 'uuid': {'type': 'string'}}, + 'required': ['name', + 'uuid', + 'type', + 'controller-uuid', + 'cloud-tag', + 'owner-tag', + 'life', + 'user-access', + 'last-connection', + 'counts', + 'sla', + 'agent-version'], + 'type': 'object'}, + 'ModelSummaryResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/ModelSummary'}}, + 'type': 'object'}, + 'ModelSummaryResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ModelSummaryResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ModelUnsetKeys': {'additionalProperties': False, + 'properties': {'cloud-region': {'type': 'string'}, + 'cloud-tag': {'type': 'string'}, + 'keys': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['keys'], + 'type': 'object'}, + 'ModelUserInfo': {'additionalProperties': False, + 'properties': {'access': {'type': 'string'}, + 'display-name': {'type': 'string'}, + 'last-connection': {'format': 'date-time', + 'type': 'string'}, + 'user': {'type': 'string'}}, + 'required': ['user', + 'display-name', + 'last-connection', + 'access'], + 'type': 'object'}, + 'ModelVolumeInfo': {'additionalProperties': False, + 'properties': {'detachable': {'type': 'boolean'}, + 'id': {'type': 'string'}, + 'message': {'type': 'string'}, + 'provider-id': {'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['id'], + 'type': 'object'}, + 'ModifyModelAccess': {'additionalProperties': False, + 'properties': {'access': {'type': 'string'}, + 'action': {'type': 'string'}, + 'model-tag': {'type': 'string'}, + 'user-tag': {'type': 'string'}}, + 'required': ['user-tag', + 'action', + 'access', + 'model-tag'], + 'type': 'object'}, + 'ModifyModelAccessRequest': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyModelAccess'}, + 'type': 'array'}}, + 'required': ['changes'], + 'type': 'object'}, + 'Number': {'additionalProperties': False, + 'properties': {'Build': {'type': 'integer'}, + 'Major': {'type': 'integer'}, + 'Minor': {'type': 'integer'}, + 'Patch': {'type': 'integer'}, + 'Tag': {'type': 'string'}}, + 'required': ['Major', + 'Minor', + 'Tag', + 'Patch', + 'Build'], + 'type': 'object'}, + 'RegionDefaults': {'additionalProperties': False, + 'properties': {'region-name': {'type': 'string'}, + 'value': {'additionalProperties': True, + 'type': 'object'}}, + 'required': ['region-name', 'value'], + 'type': 'object'}, + 'SetModelDefaults': {'additionalProperties': False, + 'properties': {'config': {'items': {'$ref': '#/definitions/ModelDefaultValues'}, + 'type': 'array'}}, + 'required': ['config'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'StringResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'UnsetModelDefaults': {'additionalProperties': False, + 'properties': {'keys': {'items': {'$ref': '#/definitions/ModelUnsetKeys'}, + 'type': 'array'}}, + 'required': ['keys'], + 'type': 'object'}, + 'UserModel': {'additionalProperties': False, + 'properties': {'last-connection': {'format': 'date-time', + 'type': 'string'}, + 'model': {'$ref': '#/definitions/Model'}}, + 'required': ['model', 'last-connection'], + 'type': 'object'}, + 'UserModelList': {'additionalProperties': False, + 'properties': {'user-models': {'items': {'$ref': '#/definitions/UserModel'}, + 'type': 'array'}}, + 'required': ['user-models'], + 'type': 'object'}}, + 'properties': {'ChangeModelCredential': {'properties': {'Params': {'$ref': '#/definitions/ChangeModelCredentialsParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'CreateModel': {'properties': {'Params': {'$ref': '#/definitions/ModelCreateArgs'}, + 'Result': {'$ref': '#/definitions/ModelInfo'}}, + 'type': 'object'}, + 'DestroyModels': {'properties': {'Params': {'$ref': '#/definitions/DestroyModelsParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'DumpModels': {'properties': {'Params': {'$ref': '#/definitions/DumpModelRequest'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'DumpModelsDB': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/MapResults'}}, + 'type': 'object'}, + 'ListModelSummaries': {'properties': {'Params': {'$ref': '#/definitions/ModelSummariesRequest'}, + 'Result': {'$ref': '#/definitions/ModelSummaryResults'}}, + 'type': 'object'}, + 'ListModels': {'properties': {'Params': {'$ref': '#/definitions/Entity'}, + 'Result': {'$ref': '#/definitions/UserModelList'}}, + 'type': 'object'}, + 'ModelDefaults': {'properties': {'Result': {'$ref': '#/definitions/ModelDefaultsResult'}}, + 'type': 'object'}, + 'ModelInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ModelInfoResults'}}, + 'type': 'object'}, + 'ModelStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ModelStatusResults'}}, + 'type': 'object'}, + 'ModifyModelAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyModelAccessRequest'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetModelDefaults': {'properties': {'Params': {'$ref': '#/definitions/SetModelDefaults'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'UnsetModelDefaults': {'properties': {'Params': {'$ref': '#/definitions/UnsetModelDefaults'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ErrorResults) + async def ChangeModelCredential(self, model_credentials): + ''' + model_credentials : typing.Sequence[~ChangeModelCredentialParams] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='ChangeModelCredential', + version=5, + params=_params) + _params['model-credentials'] = model_credentials + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelInfo) + async def CreateModel(self, cloud_tag, config, credential, name, owner_tag, region): + ''' + cloud_tag : str + config : typing.Mapping[str, typing.Any] + credential : str + name : str + owner_tag : str + region : str + Returns -> typing.Union[_ForwardRef('Number'), str, typing.Sequence[~ModelMachineInfo], _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence[~ModelUserInfo]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='CreateModel', + version=5, + params=_params) + _params['cloud-tag'] = cloud_tag + _params['config'] = config + _params['credential'] = credential + _params['name'] = name + _params['owner-tag'] = owner_tag + _params['region'] = region + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def DestroyModels(self, models): + ''' + models : typing.Sequence[~DestroyModelParams] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='DestroyModels', + version=5, + params=_params) + _params['models'] = models + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def DumpModels(self, entities, simplified): + ''' + entities : typing.Sequence[~Entity] + simplified : bool + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='DumpModels', + version=5, + params=_params) + _params['entities'] = entities + _params['simplified'] = simplified + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MapResults) + async def DumpModelsDB(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MapResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='DumpModelsDB', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelSummaryResults) + async def ListModelSummaries(self, all_, user_tag): + ''' + all_ : bool + user_tag : str + Returns -> typing.Sequence[~ModelSummaryResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='ListModelSummaries', + version=5, + params=_params) + _params['all'] = all_ + _params['user-tag'] = user_tag + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(UserModelList) + async def ListModels(self, tag): + ''' + tag : str + Returns -> typing.Sequence[~UserModel] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='ListModels', + version=5, + params=_params) + _params['tag'] = tag + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelDefaultsResult) + async def ModelDefaults(self): + ''' + + Returns -> typing.Mapping[str, ~ModelDefaults] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='ModelDefaults', + version=5, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelInfoResults) + async def ModelInfo(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ModelInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='ModelInfo', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelStatusResults) + async def ModelStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ModelStatus] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='ModelStatus', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def ModifyModelAccess(self, changes): + ''' + changes : typing.Sequence[~ModifyModelAccess] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='ModifyModelAccess', + version=5, + params=_params) + _params['changes'] = changes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetModelDefaults(self, config): + ''' + config : typing.Sequence[~ModelDefaultValues] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='SetModelDefaults', + version=5, + params=_params) + _params['config'] = config + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def UnsetModelDefaults(self, keys): + ''' + keys : typing.Sequence[~ModelUnsetKeys] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='ModelManager', + request='UnsetModelDefaults', + version=5, + params=_params) + _params['keys'] = keys + reply = await self.rpc(msg) + return reply + + + +class UniterFacade(Type): + name = 'Uniter' + version = 5 + schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, + 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, + 'type': 'array'}, + 'type': 'array'}}, + 'required': ['servers'], + 'type': 'object'}, + 'Action': {'additionalProperties': False, + 'properties': {'name': {'type': 'string'}, + 'parameters': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'receiver': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'receiver', 'name'], + 'type': 'object'}, + 'ActionExecutionResult': {'additionalProperties': False, + 'properties': {'action-tag': {'type': 'string'}, + 'message': {'type': 'string'}, + 'results': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'status': {'type': 'string'}}, + 'required': ['action-tag', 'status'], + 'type': 'object'}, + 'ActionExecutionResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ActionExecutionResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ActionResult': {'additionalProperties': False, + 'properties': {'action': {'$ref': '#/definitions/Action'}, + 'completed': {'format': 'date-time', + 'type': 'string'}, + 'enqueued': {'format': 'date-time', + 'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}, + 'message': {'type': 'string'}, + 'output': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'started': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'type': 'object'}, + 'ActionResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Address': {'additionalProperties': False, + 'properties': {'scope': {'type': 'string'}, + 'space-name': {'type': 'string'}, + 'type': {'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['value', 'type', 'scope'], + 'type': 'object'}, + 'ApplicationStatusResult': {'additionalProperties': False, + 'properties': {'application': {'$ref': '#/definitions/StatusResult'}, + 'error': {'$ref': '#/definitions/Error'}, + 'units': {'patternProperties': {'.*': {'$ref': '#/definitions/StatusResult'}}, + 'type': 'object'}}, + 'required': ['application', + 'units'], + 'type': 'object'}, + 'ApplicationStatusResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationStatusResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'BoolResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'boolean'}}, + 'required': ['result'], + 'type': 'object'}, + 'BoolResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'BytesResult': {'additionalProperties': False, + 'properties': {'result': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['result'], + 'type': 'object'}, + 'CharmRelation': {'additionalProperties': False, + 'properties': {'interface': {'type': 'string'}, + 'limit': {'type': 'integer'}, + 'name': {'type': 'string'}, + 'optional': {'type': 'boolean'}, + 'role': {'type': 'string'}, + 'scope': {'type': 'string'}}, + 'required': ['name', + 'role', + 'interface', + 'optional', + 'limit', + 'scope'], + 'type': 'object'}, + 'CharmURL': {'additionalProperties': False, + 'properties': {'url': {'type': 'string'}}, + 'required': ['url'], + 'type': 'object'}, + 'CharmURLs': {'additionalProperties': False, + 'properties': {'urls': {'items': {'$ref': '#/definitions/CharmURL'}, + 'type': 'array'}}, + 'required': ['urls'], + 'type': 'object'}, + 'ConfigSettingsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'settings': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['settings'], + 'type': 'object'}, + 'ConfigSettingsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ConfigSettingsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Endpoint': {'additionalProperties': False, + 'properties': {'application-name': {'type': 'string'}, + 'relation': {'$ref': '#/definitions/CharmRelation'}}, + 'required': ['application-name', 'relation'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'EntitiesCharmURL': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityCharmURL'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'EntitiesPortRanges': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityPortRange'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityCharmURL': {'additionalProperties': False, + 'properties': {'charm-url': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'charm-url'], + 'type': 'object'}, + 'EntityPortRange': {'additionalProperties': False, + 'properties': {'from-port': {'type': 'integer'}, + 'protocol': {'type': 'string'}, + 'tag': {'type': 'string'}, + 'to-port': {'type': 'integer'}}, + 'required': ['tag', + 'protocol', + 'from-port', + 'to-port'], + 'type': 'object'}, + 'EntityStatusArgs': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'status': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', + 'status', + 'info', + 'data'], + 'type': 'object'}, + 'EntityWorkloadVersion': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}, + 'workload-version': {'type': 'string'}}, + 'required': ['tag', + 'workload-version'], + 'type': 'object'}, + 'EntityWorkloadVersions': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityWorkloadVersion'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'GetLeadershipSettingsBulkResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/GetLeadershipSettingsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'GetLeadershipSettingsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'required': ['settings'], + 'type': 'object'}, + 'HostPort': {'additionalProperties': False, + 'properties': {'Address': {'$ref': '#/definitions/Address'}, + 'port': {'type': 'integer'}}, + 'required': ['Address', 'port'], + 'type': 'object'}, + 'IntResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'integer'}}, + 'required': ['result'], + 'type': 'object'}, + 'IntResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/IntResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'InterfaceAddress': {'additionalProperties': False, + 'properties': {'cidr': {'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['value', 'cidr'], + 'type': 'object'}, + 'LifeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'life': {'type': 'string'}}, + 'required': ['life'], + 'type': 'object'}, + 'LifeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MachinePortRange': {'additionalProperties': False, + 'properties': {'port-range': {'$ref': '#/definitions/PortRange'}, + 'relation-tag': {'type': 'string'}, + 'unit-tag': {'type': 'string'}}, + 'required': ['unit-tag', + 'relation-tag', + 'port-range'], + 'type': 'object'}, + 'MachinePortsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'ports': {'items': {'$ref': '#/definitions/MachinePortRange'}, + 'type': 'array'}}, + 'required': ['ports'], + 'type': 'object'}, + 'MachinePortsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/MachinePortsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'MergeLeadershipSettingsBulkParams': {'additionalProperties': False, + 'properties': {'params': {'items': {'$ref': '#/definitions/MergeLeadershipSettingsParam'}, + 'type': 'array'}}, + 'required': ['params'], + 'type': 'object'}, + 'MergeLeadershipSettingsParam': {'additionalProperties': False, + 'properties': {'application-tag': {'type': 'string'}, + 'settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'required': ['application-tag', + 'settings'], + 'type': 'object'}, + 'MeterStatusResult': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}, + 'info': {'type': 'string'}}, + 'required': ['code', 'info'], + 'type': 'object'}, + 'MeterStatusResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/MeterStatusResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Metric': {'additionalProperties': False, + 'properties': {'key': {'type': 'string'}, + 'time': {'format': 'date-time', + 'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['key', 'value', 'time'], + 'type': 'object'}, + 'MetricBatch': {'additionalProperties': False, + 'properties': {'charm-url': {'type': 'string'}, + 'created': {'format': 'date-time', + 'type': 'string'}, + 'metrics': {'items': {'$ref': '#/definitions/Metric'}, + 'type': 'array'}, + 'uuid': {'type': 'string'}}, + 'required': ['uuid', + 'charm-url', + 'created', + 'metrics'], + 'type': 'object'}, + 'MetricBatchParam': {'additionalProperties': False, + 'properties': {'batch': {'$ref': '#/definitions/MetricBatch'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'batch'], + 'type': 'object'}, + 'MetricBatchParams': {'additionalProperties': False, + 'properties': {'batches': {'items': {'$ref': '#/definitions/MetricBatchParam'}, + 'type': 'array'}}, + 'required': ['batches'], + 'type': 'object'}, + 'ModelConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ModelResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'name': {'type': 'string'}, + 'uuid': {'type': 'string'}}, + 'required': ['name', 'uuid'], + 'type': 'object'}, + 'NetworkInfo': {'additionalProperties': False, + 'properties': {'addresses': {'items': {'$ref': '#/definitions/InterfaceAddress'}, + 'type': 'array'}, + 'interface-name': {'type': 'string'}, + 'mac-address': {'type': 'string'}}, + 'required': ['mac-address', + 'interface-name', + 'addresses'], + 'type': 'object'}, + 'NetworkInfoParams': {'additionalProperties': False, + 'properties': {'bindings': {'items': {'type': 'string'}, + 'type': 'array'}, + 'unit': {'type': 'string'}}, + 'required': ['unit', 'bindings'], + 'type': 'object'}, + 'NetworkInfoResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'network-info': {'items': {'$ref': '#/definitions/NetworkInfo'}, + 'type': 'array'}}, + 'required': ['network-info'], + 'type': 'object'}, + 'NetworkInfoResults': {'additionalProperties': False, + 'properties': {'results': {'patternProperties': {'.*': {'$ref': '#/definitions/NetworkInfoResult'}}, + 'type': 'object'}}, + 'required': ['results'], + 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'PortRange': {'additionalProperties': False, + 'properties': {'from-port': {'type': 'integer'}, + 'protocol': {'type': 'string'}, + 'to-port': {'type': 'integer'}}, + 'required': ['from-port', 'to-port', 'protocol'], + 'type': 'object'}, + 'RelationIds': {'additionalProperties': False, + 'properties': {'relation-ids': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['relation-ids'], + 'type': 'object'}, + 'RelationResult': {'additionalProperties': False, + 'properties': {'endpoint': {'$ref': '#/definitions/Endpoint'}, + 'error': {'$ref': '#/definitions/Error'}, + 'id': {'type': 'integer'}, + 'key': {'type': 'string'}, + 'life': {'type': 'string'}}, + 'required': ['life', + 'id', + 'key', + 'endpoint'], + 'type': 'object'}, + 'RelationResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/RelationResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'RelationUnit': {'additionalProperties': False, + 'properties': {'relation': {'type': 'string'}, + 'unit': {'type': 'string'}}, + 'required': ['relation', 'unit'], + 'type': 'object'}, + 'RelationUnitPair': {'additionalProperties': False, + 'properties': {'local-unit': {'type': 'string'}, + 'relation': {'type': 'string'}, + 'remote-unit': {'type': 'string'}}, + 'required': ['relation', + 'local-unit', + 'remote-unit'], + 'type': 'object'}, + 'RelationUnitPairs': {'additionalProperties': False, + 'properties': {'relation-unit-pairs': {'items': {'$ref': '#/definitions/RelationUnitPair'}, + 'type': 'array'}}, + 'required': ['relation-unit-pairs'], + 'type': 'object'}, + 'RelationUnitSettings': {'additionalProperties': False, + 'properties': {'relation': {'type': 'string'}, + 'settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'unit': {'type': 'string'}}, + 'required': ['relation', + 'unit', + 'settings'], + 'type': 'object'}, + 'RelationUnits': {'additionalProperties': False, + 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnit'}, + 'type': 'array'}}, + 'required': ['relation-units'], + 'type': 'object'}, + 'RelationUnitsChange': {'additionalProperties': False, + 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}}, + 'type': 'object'}, + 'departed': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['changed'], + 'type': 'object'}, + 'RelationUnitsSettings': {'additionalProperties': False, + 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnitSettings'}, + 'type': 'array'}}, + 'required': ['relation-units'], + 'type': 'object'}, + 'RelationUnitsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'$ref': '#/definitions/RelationUnitsChange'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id', + 'changes'], + 'type': 'object'}, + 'RelationUnitsWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/RelationUnitsWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ResolvedModeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'mode': {'type': 'string'}}, + 'required': ['mode'], + 'type': 'object'}, + 'ResolvedModeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ResolvedModeResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'SetStatus': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'SettingsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'required': ['settings'], + 'type': 'object'}, + 'SettingsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/SettingsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StatusResult': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'error': {'$ref': '#/definitions/Error'}, + 'id': {'type': 'string'}, + 'info': {'type': 'string'}, + 'life': {'type': 'string'}, + 'since': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['id', + 'life', + 'status', + 'info', + 'data', + 'since'], + 'type': 'object'}, + 'StatusResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StatusResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StorageAddParams': {'additionalProperties': False, + 'properties': {'name': {'type': 'string'}, + 'storage': {'$ref': '#/definitions/StorageConstraints'}, + 'unit': {'type': 'string'}}, + 'required': ['unit', 'name', 'storage'], + 'type': 'object'}, + 'StorageAttachment': {'additionalProperties': False, + 'properties': {'kind': {'type': 'integer'}, + 'life': {'type': 'string'}, + 'location': {'type': 'string'}, + 'owner-tag': {'type': 'string'}, + 'storage-tag': {'type': 'string'}, + 'unit-tag': {'type': 'string'}}, + 'required': ['storage-tag', + 'owner-tag', + 'unit-tag', + 'kind', + 'location', + 'life'], + 'type': 'object'}, + 'StorageAttachmentId': {'additionalProperties': False, + 'properties': {'storage-tag': {'type': 'string'}, + 'unit-tag': {'type': 'string'}}, + 'required': ['storage-tag', + 'unit-tag'], + 'type': 'object'}, + 'StorageAttachmentIds': {'additionalProperties': False, + 'properties': {'ids': {'items': {'$ref': '#/definitions/StorageAttachmentId'}, + 'type': 'array'}}, + 'required': ['ids'], + 'type': 'object'}, + 'StorageAttachmentIdsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/StorageAttachmentIds'}}, + 'required': ['result'], + 'type': 'object'}, + 'StorageAttachmentIdsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StorageAttachmentIdsResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StorageAttachmentResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/StorageAttachment'}}, + 'required': ['result'], + 'type': 'object'}, + 'StorageAttachmentResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StorageAttachmentResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StorageConstraints': {'additionalProperties': False, + 'properties': {'count': {'type': 'integer'}, + 'pool': {'type': 'string'}, + 'size': {'type': 'integer'}}, + 'type': 'object'}, + 'StoragesAddParams': {'additionalProperties': False, + 'properties': {'storages': {'items': {'$ref': '#/definitions/StorageAddParams'}, + 'type': 'array'}}, + 'required': ['storages'], + 'type': 'object'}, + 'StringBoolResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'ok': {'type': 'boolean'}, + 'result': {'type': 'string'}}, + 'required': ['result', 'ok'], + 'type': 'object'}, + 'StringBoolResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringBoolResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'StringResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StringsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}, + 'StringsWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'UnitSettings': {'additionalProperties': False, + 'properties': {'version': {'type': 'integer'}}, + 'required': ['version'], + 'type': 'object'}}, + 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, + 'type': 'object'}, + 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, + 'type': 'object'}, + 'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionResults'}}, + 'type': 'object'}, + 'AddMetricBatches': {'properties': {'Params': {'$ref': '#/definitions/MetricBatchParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'AddUnitStorage': {'properties': {'Params': {'$ref': '#/definitions/StoragesAddParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'AllMachinePorts': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/MachinePortsResults'}}, + 'type': 'object'}, + 'ApplicationStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ApplicationStatusResults'}}, + 'type': 'object'}, + 'AssignedMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'AvailabilityZone': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'BeginActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, + 'type': 'object'}, + 'CharmArchiveSha256': {'properties': {'Params': {'$ref': '#/definitions/CharmURLs'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'CharmModifiedVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/IntResults'}}, + 'type': 'object'}, + 'CharmURL': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringBoolResults'}}, + 'type': 'object'}, + 'ClearResolved': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'ClosePorts': {'properties': {'Params': {'$ref': '#/definitions/EntitiesPortRanges'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'ConfigSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ConfigSettingsResults'}}, + 'type': 'object'}, + 'CurrentModel': {'properties': {'Result': {'$ref': '#/definitions/ModelResult'}}, + 'type': 'object'}, + 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'DestroyAllSubordinates': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'DestroyUnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'EnterScope': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'FinishActions': {'properties': {'Params': {'$ref': '#/definitions/ActionExecutionResults'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'GetMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/MeterStatusResults'}}, + 'type': 'object'}, + 'GetPrincipal': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringBoolResults'}}, + 'type': 'object'}, + 'HasSubordinates': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/BoolResults'}}, + 'type': 'object'}, + 'JoinedRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsResults'}}, + 'type': 'object'}, + 'LeaveScope': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/LifeResults'}}, + 'type': 'object'}, + 'Merge': {'properties': {'Params': {'$ref': '#/definitions/MergeLeadershipSettingsBulkParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, + 'type': 'object'}, + 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'NetworkInfo': {'properties': {'Params': {'$ref': '#/definitions/NetworkInfoParams'}, + 'Result': {'$ref': '#/definitions/NetworkInfoResults'}}, + 'type': 'object'}, + 'OpenPorts': {'properties': {'Params': {'$ref': '#/definitions/EntitiesPortRanges'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'ProviderType': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'Read': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/GetLeadershipSettingsBulkResults'}}, + 'type': 'object'}, + 'ReadRemoteSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnitPairs'}, + 'Result': {'$ref': '#/definitions/SettingsResults'}}, + 'type': 'object'}, + 'ReadSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, + 'Result': {'$ref': '#/definitions/SettingsResults'}}, + 'type': 'object'}, + 'Relation': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, + 'Result': {'$ref': '#/definitions/RelationResults'}}, + 'type': 'object'}, + 'RelationById': {'properties': {'Params': {'$ref': '#/definitions/RelationIds'}, + 'Result': {'$ref': '#/definitions/RelationResults'}}, + 'type': 'object'}, + 'RemoveStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'RequestReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Resolved': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ResolvedModeResults'}}, + 'type': 'object'}, + 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'SetAgentStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetApplicationStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/EntitiesCharmURL'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetUnitStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetWorkloadVersion': {'properties': {'Params': {'$ref': '#/definitions/EntityWorkloadVersions'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'StorageAttachmentLife': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, + 'Result': {'$ref': '#/definitions/LifeResults'}}, + 'type': 'object'}, + 'StorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, + 'Result': {'$ref': '#/definitions/StorageAttachmentResults'}}, + 'type': 'object'}, + 'UnitStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StatusResults'}}, + 'type': 'object'}, + 'UnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StorageAttachmentIdsResults'}}, + 'type': 'object'}, + 'UpdateSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnitsSettings'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}, + 'WatchActionNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WatchConfigSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}, + 'WatchLeadershipSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchRelationUnits': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, + 'Result': {'$ref': '#/definitions/RelationUnitsWatchResults'}}, + 'type': 'object'}, + 'WatchStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchUnitAddresses': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchUnitRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WatchUnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WorkloadVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(StringsResult) + async def APIAddresses(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='APIAddresses', + version=5, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(APIHostPortsResult) + async def APIHostPorts(self): + ''' + + Returns -> typing.Sequence[~HostPort] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='APIHostPorts', + version=5, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionResults) + async def Actions(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Actions', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def AddMetricBatches(self, batches): + ''' + batches : typing.Sequence[~MetricBatchParam] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='AddMetricBatches', + version=5, + params=_params) + _params['batches'] = batches + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def AddUnitStorage(self, storages): + ''' + storages : typing.Sequence[~StorageAddParams] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='AddUnitStorage', + version=5, + params=_params) + _params['storages'] = storages + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MachinePortsResults) + async def AllMachinePorts(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MachinePortsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='AllMachinePorts', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ApplicationStatusResults) + async def ApplicationStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ApplicationStatusResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ApplicationStatus', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def AssignedMachine(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='AssignedMachine', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def AvailabilityZone(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='AvailabilityZone', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def BeginActions(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='BeginActions', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(BytesResult) + async def CACert(self): + ''' + + Returns -> typing.Sequence[int] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='CACert', + version=5, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def CharmArchiveSha256(self, urls): + ''' + urls : typing.Sequence[~CharmURL] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='CharmArchiveSha256', + version=5, + params=_params) + _params['urls'] = urls + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(IntResults) + async def CharmModifiedVersion(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~IntResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='CharmModifiedVersion', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringBoolResults) + async def CharmURL(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringBoolResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='CharmURL', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def ClearResolved(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ClearResolved', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def ClosePorts(self, entities): + ''' + entities : typing.Sequence[~EntityPortRange] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ClosePorts', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ConfigSettingsResults) + async def ConfigSettings(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ConfigSettingsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ConfigSettings', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelResult) + async def CurrentModel(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='CurrentModel', + version=5, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Destroy(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Destroy', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def DestroyAllSubordinates(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='DestroyAllSubordinates', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def DestroyUnitStorageAttachments(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='DestroyUnitStorageAttachments', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def EnsureDead(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='EnsureDead', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def EnterScope(self, relation_units): + ''' + relation_units : typing.Sequence[~RelationUnit] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='EnterScope', + version=5, + params=_params) + _params['relation-units'] = relation_units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def FinishActions(self, results): + ''' + results : typing.Sequence[~ActionExecutionResult] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='FinishActions', + version=5, + params=_params) + _params['results'] = results + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MeterStatusResults) + async def GetMeterStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MeterStatusResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='GetMeterStatus', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringBoolResults) + async def GetPrincipal(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringBoolResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='GetPrincipal', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(BoolResults) + async def HasSubordinates(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~BoolResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='HasSubordinates', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsResults) + async def JoinedRelations(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='JoinedRelations', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def LeaveScope(self, relation_units): + ''' + relation_units : typing.Sequence[~RelationUnit] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='LeaveScope', + version=5, + params=_params) + _params['relation-units'] = relation_units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(LifeResults) + async def Life(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~LifeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Life', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Merge(self, params): + ''' + params : typing.Sequence[~MergeLeadershipSettingsParam] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Merge', + version=5, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelConfigResult) + async def ModelConfig(self): + ''' + + Returns -> typing.Mapping[str, typing.Any] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ModelConfig', + version=5, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def ModelUUID(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ModelUUID', + version=5, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NetworkInfoResults) + async def NetworkInfo(self, bindings, unit): + ''' + bindings : typing.Sequence[str] + unit : str + Returns -> typing.Mapping[str, ~NetworkInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='NetworkInfo', + version=5, + params=_params) + _params['bindings'] = bindings + _params['unit'] = unit + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def OpenPorts(self, entities): + ''' + entities : typing.Sequence[~EntityPortRange] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='OpenPorts', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def PrivateAddress(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='PrivateAddress', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def ProviderType(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ProviderType', + version=5, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def PublicAddress(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='PublicAddress', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(GetLeadershipSettingsBulkResults) + async def Read(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~GetLeadershipSettingsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Read', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(SettingsResults) + async def ReadRemoteSettings(self, relation_unit_pairs): + ''' + relation_unit_pairs : typing.Sequence[~RelationUnitPair] + Returns -> typing.Sequence[~SettingsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ReadRemoteSettings', + version=5, + params=_params) + _params['relation-unit-pairs'] = relation_unit_pairs + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(SettingsResults) + async def ReadSettings(self, relation_units): + ''' + relation_units : typing.Sequence[~RelationUnit] + Returns -> typing.Sequence[~SettingsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ReadSettings', + version=5, + params=_params) + _params['relation-units'] = relation_units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(RelationResults) + async def Relation(self, relation_units): + ''' + relation_units : typing.Sequence[~RelationUnit] + Returns -> typing.Sequence[~RelationResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Relation', + version=5, + params=_params) + _params['relation-units'] = relation_units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(RelationResults) + async def RelationById(self, relation_ids): + ''' + relation_ids : typing.Sequence[int] + Returns -> typing.Sequence[~RelationResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='RelationById', + version=5, + params=_params) + _params['relation-ids'] = relation_ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def RemoveStorageAttachments(self, ids): + ''' + ids : typing.Sequence[~StorageAttachmentId] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='RemoveStorageAttachments', + version=5, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def RequestReboot(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='RequestReboot', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ResolvedModeResults) + async def Resolved(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ResolvedModeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Resolved', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def SLALevel(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='SLALevel', + version=5, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetAgentStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='SetAgentStatus', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetApplicationStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='SetApplicationStatus', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetCharmURL(self, entities): + ''' + entities : typing.Sequence[~EntityCharmURL] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='SetCharmURL', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='SetStatus', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetUnitStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='SetUnitStatus', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetWorkloadVersion(self, entities): + ''' + entities : typing.Sequence[~EntityWorkloadVersion] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='SetWorkloadVersion', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(LifeResults) + async def StorageAttachmentLife(self, ids): + ''' + ids : typing.Sequence[~StorageAttachmentId] + Returns -> typing.Sequence[~LifeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='StorageAttachmentLife', + version=5, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StorageAttachmentResults) + async def StorageAttachments(self, ids): + ''' + ids : typing.Sequence[~StorageAttachmentId] + Returns -> typing.Sequence[~StorageAttachmentResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='StorageAttachments', + version=5, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StatusResults) + async def UnitStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StatusResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='UnitStatus', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StorageAttachmentIdsResults) + async def UnitStorageAttachments(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StorageAttachmentIdsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='UnitStorageAttachments', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def UpdateSettings(self, relation_units): + ''' + relation_units : typing.Sequence[~RelationUnitSettings] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='UpdateSettings', + version=5, + params=_params) + _params['relation-units'] = relation_units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def Watch(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Watch', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchAPIHostPorts(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchAPIHostPorts', + version=5, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchActionNotifications(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchActionNotifications', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchConfigSettings(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchConfigSettings', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchForModelConfigChanges(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchForModelConfigChanges', + version=5, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchLeadershipSettings(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchLeadershipSettings', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchMeterStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchMeterStatus', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(RelationUnitsWatchResults) + async def WatchRelationUnits(self, relation_units): + ''' + relation_units : typing.Sequence[~RelationUnit] + Returns -> typing.Sequence[~RelationUnitsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchRelationUnits', + version=5, + params=_params) + _params['relation-units'] = relation_units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchStorageAttachments(self, ids): + ''' + ids : typing.Sequence[~StorageAttachmentId] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchStorageAttachments', + version=5, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchUnitAddresses(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchUnitAddresses', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchUnitRelations(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchUnitRelations', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchUnitStorageAttachments(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchUnitStorageAttachments', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def WorkloadVersion(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WorkloadVersion', + version=5, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply diff --git a/modules/libjuju/juju/client/_client7.py b/modules/libjuju/juju/client/_client7.py new file mode 100644 index 0000000..1d6cd48 --- /dev/null +++ b/modules/libjuju/juju/client/_client7.py @@ -0,0 +1,1770 @@ +# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. +# Changes will be overwritten/lost when the file is regenerated. + +from juju.client.facade import Type, ReturnMapping +from juju.client._definitions import * + + +class ProvisionerFacade(Type): + name = 'Provisioner' + version = 7 + schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, + 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, + 'type': 'array'}, + 'type': 'array'}}, + 'required': ['servers'], + 'type': 'object'}, + 'Address': {'additionalProperties': False, + 'properties': {'scope': {'type': 'string'}, + 'space-name': {'type': 'string'}, + 'type': {'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['value', 'type', 'scope'], + 'type': 'object'}, + 'Binary': {'additionalProperties': False, + 'properties': {'Arch': {'type': 'string'}, + 'Number': {'$ref': '#/definitions/Number'}, + 'Series': {'type': 'string'}}, + 'required': ['Number', 'Series', 'Arch'], + 'type': 'object'}, + 'BoolResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'boolean'}}, + 'required': ['result'], + 'type': 'object'}, + 'BoolResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'BytesResult': {'additionalProperties': False, + 'properties': {'result': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['result'], + 'type': 'object'}, + 'CharmLXDProfile': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'description': {'type': 'string'}, + 'devices': {'patternProperties': {'.*': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config', + 'description', + 'devices'], + 'type': 'object'}, + 'CloudImageMetadata': {'additionalProperties': False, + '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'}}, + 'required': ['image-id', + 'region', + 'version', + 'series', + 'arch', + 'source', + 'priority'], + 'type': 'object'}, + 'ConstraintsResult': {'additionalProperties': False, + 'properties': {'constraints': {'$ref': '#/definitions/Value'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['constraints'], + 'type': 'object'}, + 'ConstraintsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ConstraintsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ContainerConfig': {'additionalProperties': False, + 'properties': {'UpdateBehavior': {'$ref': '#/definitions/UpdateBehavior'}, + 'apt-mirror': {'type': 'string'}, + 'apt-proxy': {'$ref': '#/definitions/Settings'}, + 'authorized-keys': {'type': 'string'}, + 'cloudinit-userdata': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'container-inherit-properties': {'type': 'string'}, + 'juju-proxy': {'$ref': '#/definitions/Settings'}, + 'legacy-proxy': {'$ref': '#/definitions/Settings'}, + 'provider-type': {'type': 'string'}, + 'snap-proxy': {'$ref': '#/definitions/Settings'}, + 'ssl-hostname-verification': {'type': 'boolean'}}, + 'required': ['provider-type', + 'authorized-keys', + 'ssl-hostname-verification', + 'legacy-proxy', + 'juju-proxy', + 'apt-proxy', + 'snap-proxy', + 'apt-mirror', + 'UpdateBehavior'], + 'type': 'object'}, + 'ContainerLXDProfile': {'additionalProperties': False, + 'properties': {'name': {'type': 'string'}, + 'profile': {'$ref': '#/definitions/CharmLXDProfile'}}, + 'required': ['profile', 'name'], + 'type': 'object'}, + 'ContainerManagerConfig': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ContainerManagerConfigParams': {'additionalProperties': False, + 'properties': {'type': {'type': 'string'}}, + 'required': ['type'], + 'type': 'object'}, + 'ContainerProfileResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'lxd-profiles': {'items': {'$ref': '#/definitions/ContainerLXDProfile'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ContainerProfileResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ContainerProfileResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ControllerAPIInfoResult': {'additionalProperties': False, + 'properties': {'addresses': {'items': {'type': 'string'}, + 'type': 'array'}, + 'cacert': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['addresses', + 'cacert'], + 'type': 'object'}, + 'ControllerAPIInfoResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ControllerAPIInfoResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ControllerConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'DeviceBridgeInfo': {'additionalProperties': False, + 'properties': {'bridge-name': {'type': 'string'}, + 'host-device-name': {'type': 'string'}, + 'mac-address': {'type': 'string'}}, + 'required': ['host-device-name', + 'bridge-name', + 'mac-address'], + 'type': 'object'}, + 'DistributionGroupResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['result'], + 'type': 'object'}, + 'DistributionGroupResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/DistributionGroupResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityPassword': {'additionalProperties': False, + 'properties': {'password': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'password'], + 'type': 'object'}, + 'EntityPasswords': {'additionalProperties': False, + 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'}, + 'type': 'array'}}, + 'required': ['changes'], + 'type': 'object'}, + 'EntityStatusArgs': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'status': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', + 'status', + 'info', + 'data'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'FindToolsParams': {'additionalProperties': False, + 'properties': {'agentstream': {'type': 'string'}, + 'arch': {'type': 'string'}, + 'major': {'type': 'integer'}, + 'minor': {'type': 'integer'}, + 'number': {'$ref': '#/definitions/Number'}, + 'series': {'type': 'string'}}, + 'required': ['number', + 'major', + 'minor', + 'arch', + 'series', + 'agentstream'], + 'type': 'object'}, + 'FindToolsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'list': {'items': {'$ref': '#/definitions/Tools'}, + 'type': 'array'}}, + 'required': ['list'], + 'type': 'object'}, + 'HardwareCharacteristics': {'additionalProperties': False, + 'properties': {'arch': {'type': 'string'}, + 'availability-zone': {'type': 'string'}, + 'cpu-cores': {'type': 'integer'}, + 'cpu-power': {'type': 'integer'}, + 'mem': {'type': 'integer'}, + 'root-disk': {'type': 'integer'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'HostNetworkChange': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'new-bridges': {'items': {'$ref': '#/definitions/DeviceBridgeInfo'}, + 'type': 'array'}, + 'reconfigure-delay': {'type': 'integer'}}, + 'required': ['new-bridges', + 'reconfigure-delay'], + 'type': 'object'}, + 'HostNetworkChangeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/HostNetworkChange'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'HostPort': {'additionalProperties': False, + 'properties': {'Address': {'$ref': '#/definitions/Address'}, + 'port': {'type': 'integer'}}, + 'required': ['Address', 'port'], + 'type': 'object'}, + 'InstanceInfo': {'additionalProperties': False, + 'properties': {'characteristics': {'$ref': '#/definitions/HardwareCharacteristics'}, + 'charm-profiles': {'items': {'type': 'string'}, + 'type': 'array'}, + 'instance-id': {'type': 'string'}, + 'network-config': {'items': {'$ref': '#/definitions/NetworkConfig'}, + 'type': 'array'}, + 'nonce': {'type': 'string'}, + 'tag': {'type': 'string'}, + 'volume-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/VolumeAttachmentInfo'}}, + 'type': 'object'}, + 'volumes': {'items': {'$ref': '#/definitions/Volume'}, + 'type': 'array'}}, + 'required': ['tag', + 'instance-id', + 'nonce', + 'characteristics', + 'volumes', + 'volume-attachments', + 'network-config', + 'charm-profiles'], + 'type': 'object'}, + 'InstancesInfo': {'additionalProperties': False, + 'properties': {'machines': {'items': {'$ref': '#/definitions/InstanceInfo'}, + 'type': 'array'}}, + 'required': ['machines'], + 'type': 'object'}, + 'LifeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'life': {'type': 'string'}}, + 'required': ['life'], + 'type': 'object'}, + 'LifeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MachineContainers': {'additionalProperties': False, + 'properties': {'container-types': {'items': {'type': 'string'}, + 'type': 'array'}, + 'machine-tag': {'type': 'string'}}, + 'required': ['machine-tag', + 'container-types'], + 'type': 'object'}, + 'MachineContainersParams': {'additionalProperties': False, + 'properties': {'params': {'items': {'$ref': '#/definitions/MachineContainers'}, + 'type': 'array'}}, + 'required': ['params'], + 'type': 'object'}, + 'MachineNetworkConfigResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'info': {'items': {'$ref': '#/definitions/NetworkConfig'}, + 'type': 'array'}}, + 'required': ['info'], + 'type': 'object'}, + 'MachineNetworkConfigResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/MachineNetworkConfigResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ModelConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'NetworkConfig': {'additionalProperties': False, + 'properties': {'address': {'type': 'string'}, + 'cidr': {'type': 'string'}, + 'config-type': {'type': 'string'}, + 'device-index': {'type': 'integer'}, + 'disabled': {'type': 'boolean'}, + 'dns-search-domains': {'items': {'type': 'string'}, + 'type': 'array'}, + 'dns-servers': {'items': {'type': 'string'}, + 'type': 'array'}, + 'gateway-address': {'type': 'string'}, + 'interface-name': {'type': 'string'}, + 'interface-type': {'type': 'string'}, + 'is-default-gateway': {'type': 'boolean'}, + 'mac-address': {'type': 'string'}, + 'mtu': {'type': 'integer'}, + 'no-auto-start': {'type': 'boolean'}, + 'parent-interface-name': {'type': 'string'}, + 'provider-address-id': {'type': 'string'}, + 'provider-id': {'type': 'string'}, + 'provider-space-id': {'type': 'string'}, + 'provider-subnet-id': {'type': 'string'}, + 'provider-vlan-id': {'type': 'string'}, + 'routes': {'items': {'$ref': '#/definitions/NetworkRoute'}, + 'type': 'array'}, + 'vlan-tag': {'type': 'integer'}}, + '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'], + 'type': 'object'}, + 'NetworkRoute': {'additionalProperties': False, + 'properties': {'destination-cidr': {'type': 'string'}, + 'gateway-ip': {'type': 'string'}, + 'metric': {'type': 'integer'}}, + 'required': ['destination-cidr', + 'gateway-ip', + 'metric'], + 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'Number': {'additionalProperties': False, + 'properties': {'Build': {'type': 'integer'}, + 'Major': {'type': 'integer'}, + 'Minor': {'type': 'integer'}, + 'Patch': {'type': 'integer'}, + 'Tag': {'type': 'string'}}, + 'required': ['Major', + 'Minor', + 'Tag', + 'Patch', + 'Build'], + 'type': 'object'}, + 'ProfileChangeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'new-profile-name': {'type': 'string'}, + 'old-profile-name': {'type': 'string'}, + 'profile': {'$ref': '#/definitions/CharmLXDProfile'}, + 'subordinate': {'type': 'boolean'}}, + 'type': 'object'}, + 'ProfileChangeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ProfileChangeResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ProvisioningInfo': {'additionalProperties': False, + 'properties': {'charm-lxd-profiles': {'items': {'type': 'string'}, + 'type': 'array'}, + 'cloudinit-userdata': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'constraints': {'$ref': '#/definitions/Value'}, + 'controller-config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'image-metadata': {'items': {'$ref': '#/definitions/CloudImageMetadata'}, + 'type': 'array'}, + 'jobs': {'items': {'type': 'string'}, + 'type': 'array'}, + 'placement': {'type': 'string'}, + 'series': {'type': 'string'}, + 'subnets-to-zones': {'patternProperties': {'.*': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'tags': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'volume-attachments': {'items': {'$ref': '#/definitions/VolumeAttachmentParams'}, + 'type': 'array'}, + 'volumes': {'items': {'$ref': '#/definitions/VolumeParams'}, + 'type': 'array'}}, + 'required': ['constraints', + 'series', + 'placement', + 'jobs'], + 'type': 'object'}, + 'ProvisioningInfoResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/ProvisioningInfo'}}, + 'required': ['result'], + 'type': 'object'}, + 'ProvisioningInfoResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ProvisioningInfoResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'SetMachineNetworkConfig': {'additionalProperties': False, + 'properties': {'config': {'items': {'$ref': '#/definitions/NetworkConfig'}, + 'type': 'array'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'config'], + 'type': 'object'}, + 'SetProfileArg': {'additionalProperties': False, + 'properties': {'entity': {'$ref': '#/definitions/Entity'}, + 'profiles': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['entity', 'profiles'], + 'type': 'object'}, + 'SetProfileArgs': {'additionalProperties': False, + 'properties': {'args': {'items': {'$ref': '#/definitions/SetProfileArg'}, + 'type': 'array'}}, + 'required': ['args'], + 'type': 'object'}, + 'SetProfileUpgradeCompleteArg': {'additionalProperties': False, + 'properties': {'entity': {'$ref': '#/definitions/Entity'}, + 'message': {'type': 'string'}}, + 'required': ['entity', + 'message'], + 'type': 'object'}, + 'SetProfileUpgradeCompleteArgs': {'additionalProperties': False, + 'properties': {'args': {'items': {'$ref': '#/definitions/SetProfileUpgradeCompleteArg'}, + 'type': 'array'}}, + 'required': ['args'], + 'type': 'object'}, + 'SetStatus': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Settings': {'additionalProperties': False, + 'properties': {'AutoNoProxy': {'type': 'string'}, + 'Ftp': {'type': 'string'}, + 'Http': {'type': 'string'}, + 'Https': {'type': 'string'}, + 'NoProxy': {'type': 'string'}}, + 'required': ['Http', + 'Https', + 'Ftp', + 'NoProxy', + 'AutoNoProxy'], + 'type': 'object'}, + 'StatusResult': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'error': {'$ref': '#/definitions/Error'}, + 'id': {'type': 'string'}, + 'info': {'type': 'string'}, + 'life': {'type': 'string'}, + 'since': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['id', + 'life', + 'status', + 'info', + 'data', + 'since'], + 'type': 'object'}, + 'StatusResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StatusResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'StringResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StringsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}, + 'StringsWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Tools': {'additionalProperties': False, + 'properties': {'sha256': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'url': {'type': 'string'}, + 'version': {'$ref': '#/definitions/Binary'}}, + 'required': ['version', 'url', 'size'], + 'type': 'object'}, + 'ToolsResult': {'additionalProperties': False, + 'properties': {'disable-ssl-hostname-verification': {'type': 'boolean'}, + 'error': {'$ref': '#/definitions/Error'}, + 'tools': {'items': {'$ref': '#/definitions/Tools'}, + 'type': 'array'}}, + 'required': ['tools', + 'disable-ssl-hostname-verification'], + 'type': 'object'}, + 'ToolsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ToolsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'UpdateBehavior': {'additionalProperties': False, + 'properties': {'enable-os-refresh-update': {'type': 'boolean'}, + 'enable-os-upgrade': {'type': 'boolean'}}, + 'required': ['enable-os-refresh-update', + 'enable-os-upgrade'], + 'type': 'object'}, + 'Value': {'additionalProperties': False, + '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': {'items': {'type': 'string'}, + 'type': 'array'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}, + 'virt-type': {'type': 'string'}, + 'zones': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Volume': {'additionalProperties': False, + 'properties': {'info': {'$ref': '#/definitions/VolumeInfo'}, + 'volume-tag': {'type': 'string'}}, + 'required': ['volume-tag', 'info'], + 'type': 'object'}, + 'VolumeAttachmentInfo': {'additionalProperties': False, + 'properties': {'bus-address': {'type': 'string'}, + 'device-link': {'type': 'string'}, + 'device-name': {'type': 'string'}, + 'plan-info': {'$ref': '#/definitions/VolumeAttachmentPlanInfo'}, + 'read-only': {'type': 'boolean'}}, + 'type': 'object'}, + 'VolumeAttachmentParams': {'additionalProperties': False, + 'properties': {'instance-id': {'type': 'string'}, + 'machine-tag': {'type': 'string'}, + 'provider': {'type': 'string'}, + 'read-only': {'type': 'boolean'}, + 'volume-id': {'type': 'string'}, + 'volume-tag': {'type': 'string'}}, + 'required': ['volume-tag', + 'machine-tag', + 'provider'], + 'type': 'object'}, + 'VolumeAttachmentPlanInfo': {'additionalProperties': False, + 'properties': {'device-attributes': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'device-type': {'type': 'string'}}, + 'type': 'object'}, + 'VolumeInfo': {'additionalProperties': False, + 'properties': {'hardware-id': {'type': 'string'}, + 'persistent': {'type': 'boolean'}, + 'pool': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'volume-id': {'type': 'string'}, + 'wwn': {'type': 'string'}}, + 'required': ['volume-id', 'size', 'persistent'], + 'type': 'object'}, + 'VolumeParams': {'additionalProperties': False, + 'properties': {'attachment': {'$ref': '#/definitions/VolumeAttachmentParams'}, + 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'provider': {'type': 'string'}, + 'size': {'type': 'integer'}, + 'tags': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'volume-tag': {'type': 'string'}}, + 'required': ['volume-tag', + 'size', + 'provider'], + 'type': 'object'}, + 'WatchContainer': {'additionalProperties': False, + 'properties': {'container-type': {'type': 'string'}, + 'machine-tag': {'type': 'string'}}, + 'required': ['machine-tag', + 'container-type'], + 'type': 'object'}, + 'WatchContainers': {'additionalProperties': False, + 'properties': {'params': {'items': {'$ref': '#/definitions/WatchContainer'}, + 'type': 'array'}}, + 'required': ['params'], + 'type': 'object'}}, + 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, + 'type': 'object'}, + 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, + 'type': 'object'}, + 'AvailabilityZone': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, + 'type': 'object'}, + 'CharmProfileChangeInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ProfileChangeResults'}}, + 'type': 'object'}, + 'Constraints': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ConstraintsResults'}}, + 'type': 'object'}, + 'ContainerConfig': {'properties': {'Result': {'$ref': '#/definitions/ContainerConfig'}}, + 'type': 'object'}, + 'ContainerManagerConfig': {'properties': {'Params': {'$ref': '#/definitions/ContainerManagerConfigParams'}, + 'Result': {'$ref': '#/definitions/ContainerManagerConfig'}}, + 'type': 'object'}, + 'ControllerAPIInfoForModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ControllerAPIInfoResults'}}, + 'type': 'object'}, + 'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}}, + 'type': 'object'}, + 'DistributionGroup': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/DistributionGroupResults'}}, + 'type': 'object'}, + 'DistributionGroupByMachineId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsResults'}}, + 'type': 'object'}, + 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'FindTools': {'properties': {'Params': {'$ref': '#/definitions/FindToolsParams'}, + 'Result': {'$ref': '#/definitions/FindToolsResult'}}, + 'type': 'object'}, + 'GetContainerInterfaceInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/MachineNetworkConfigResults'}}, + 'type': 'object'}, + 'GetContainerProfileInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ContainerProfileResults'}}, + 'type': 'object'}, + 'HostChangesForContainers': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/HostNetworkChangeResults'}}, + 'type': 'object'}, + 'InstanceId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'InstanceStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StatusResults'}}, + 'type': 'object'}, + 'KeepInstance': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/BoolResults'}}, + 'type': 'object'}, + 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/LifeResults'}}, + 'type': 'object'}, + 'MachinesWithTransientErrors': {'properties': {'Result': {'$ref': '#/definitions/StatusResults'}}, + 'type': 'object'}, + 'MarkMachinesForRemoval': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, + 'type': 'object'}, + 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'PrepareContainerInterfaceInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/MachineNetworkConfigResults'}}, + 'type': 'object'}, + 'ProvisioningInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ProvisioningInfoResults'}}, + 'type': 'object'}, + 'ReleaseContainerAddresses': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Remove': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'RemoveUpgradeCharmProfileData': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Series': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'SetCharmProfiles': {'properties': {'Params': {'$ref': '#/definitions/SetProfileArgs'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetHostMachineNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/SetMachineNetworkConfig'}}, + 'type': 'object'}, + 'SetInstanceInfo': {'properties': {'Params': {'$ref': '#/definitions/InstancesInfo'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetInstanceStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetObservedNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/SetMachineNetworkConfig'}}, + 'type': 'object'}, + 'SetPasswords': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetProviderNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetSupportedContainers': {'properties': {'Params': {'$ref': '#/definitions/MachineContainersParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetUpgradeCharmProfileComplete': {'properties': {'Params': {'$ref': '#/definitions/SetProfileUpgradeCompleteArgs'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'StateAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, + 'type': 'object'}, + 'Status': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StatusResults'}}, + 'type': 'object'}, + 'Tools': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ToolsResults'}}, + 'type': 'object'}, + 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}, + 'WatchAllContainers': {'properties': {'Params': {'$ref': '#/definitions/WatchContainers'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WatchContainers': {'properties': {'Params': {'$ref': '#/definitions/WatchContainers'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WatchContainersCharmProfiles': {'properties': {'Params': {'$ref': '#/definitions/WatchContainers'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}, + 'WatchMachineErrorRetry': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}, + 'WatchModelMachines': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, + 'type': 'object'}, + 'WatchModelMachinesCharmProfiles': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(StringsResult) + async def APIAddresses(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='APIAddresses', + version=7, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(APIHostPortsResult) + async def APIHostPorts(self): + ''' + + Returns -> typing.Sequence[~HostPort] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='APIHostPorts', + version=7, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def AvailabilityZone(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='AvailabilityZone', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(BytesResult) + async def CACert(self): + ''' + + Returns -> typing.Sequence[int] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='CACert', + version=7, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ProfileChangeResults) + async def CharmProfileChangeInfo(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ProfileChangeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='CharmProfileChangeInfo', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ConstraintsResults) + async def Constraints(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ConstraintsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='Constraints', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ContainerConfig) + async def ContainerConfig(self): + ''' + + Returns -> typing.Union[_ForwardRef('UpdateBehavior'), str, _ForwardRef('Settings'), bool] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='ContainerConfig', + version=7, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ContainerManagerConfig) + async def ContainerManagerConfig(self, type_): + ''' + type_ : str + Returns -> typing.Mapping[str, str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='ContainerManagerConfig', + version=7, + params=_params) + _params['type'] = type_ + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ControllerAPIInfoResults) + async def ControllerAPIInfoForModels(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ControllerAPIInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='ControllerAPIInfoForModels', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ControllerConfigResult) + async def ControllerConfig(self): + ''' + + Returns -> typing.Mapping[str, typing.Any] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='ControllerConfig', + version=7, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(DistributionGroupResults) + async def DistributionGroup(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~DistributionGroupResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='DistributionGroup', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsResults) + async def DistributionGroupByMachineId(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='DistributionGroupByMachineId', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def EnsureDead(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='EnsureDead', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(FindToolsResult) + async def FindTools(self, arch, major, minor, number, series): + ''' + arch : str + major : int + minor : int + number : Number + series : str + Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[~Tools]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='FindTools', + version=7, + params=_params) + _params['arch'] = arch + _params['major'] = major + _params['minor'] = minor + _params['number'] = number + _params['series'] = series + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MachineNetworkConfigResults) + async def GetContainerInterfaceInfo(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MachineNetworkConfigResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='GetContainerInterfaceInfo', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ContainerProfileResults) + async def GetContainerProfileInfo(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ContainerProfileResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='GetContainerProfileInfo', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(HostNetworkChangeResults) + async def HostChangesForContainers(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~HostNetworkChange] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='HostChangesForContainers', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def InstanceId(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='InstanceId', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StatusResults) + async def InstanceStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StatusResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='InstanceStatus', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(BoolResults) + async def KeepInstance(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~BoolResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='KeepInstance', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(LifeResults) + async def Life(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~LifeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='Life', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StatusResults) + async def MachinesWithTransientErrors(self): + ''' + + Returns -> typing.Sequence[~StatusResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='MachinesWithTransientErrors', + version=7, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def MarkMachinesForRemoval(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='MarkMachinesForRemoval', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelConfigResult) + async def ModelConfig(self): + ''' + + Returns -> typing.Mapping[str, typing.Any] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='ModelConfig', + version=7, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def ModelUUID(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='ModelUUID', + version=7, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MachineNetworkConfigResults) + async def PrepareContainerInterfaceInfo(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MachineNetworkConfigResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='PrepareContainerInterfaceInfo', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ProvisioningInfoResults) + async def ProvisioningInfo(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ProvisioningInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='ProvisioningInfo', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def ReleaseContainerAddresses(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='ReleaseContainerAddresses', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Remove(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='Remove', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def RemoveUpgradeCharmProfileData(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='RemoveUpgradeCharmProfileData', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def Series(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='Series', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetCharmProfiles(self, args): + ''' + args : typing.Sequence[~SetProfileArg] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='SetCharmProfiles', + version=7, + params=_params) + _params['args'] = args + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetHostMachineNetworkConfig(self, config, tag): + ''' + config : typing.Sequence[~NetworkConfig] + tag : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='SetHostMachineNetworkConfig', + version=7, + params=_params) + _params['config'] = config + _params['tag'] = tag + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetInstanceInfo(self, machines): + ''' + machines : typing.Sequence[~InstanceInfo] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='SetInstanceInfo', + version=7, + params=_params) + _params['machines'] = machines + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetInstanceStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='SetInstanceStatus', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetObservedNetworkConfig(self, config, tag): + ''' + config : typing.Sequence[~NetworkConfig] + tag : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='SetObservedNetworkConfig', + version=7, + params=_params) + _params['config'] = config + _params['tag'] = tag + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetPasswords(self, changes): + ''' + changes : typing.Sequence[~EntityPassword] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='SetPasswords', + version=7, + params=_params) + _params['changes'] = changes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetProviderNetworkConfig(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='SetProviderNetworkConfig', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='SetStatus', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetSupportedContainers(self, params): + ''' + params : typing.Sequence[~MachineContainers] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='SetSupportedContainers', + version=7, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetUpgradeCharmProfileComplete(self, args): + ''' + args : typing.Sequence[~SetProfileUpgradeCompleteArg] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='SetUpgradeCharmProfileComplete', + version=7, + params=_params) + _params['args'] = args + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsResult) + async def StateAddresses(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='StateAddresses', + version=7, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StatusResults) + async def Status(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StatusResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='Status', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ToolsResults) + async def Tools(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ToolsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='Tools', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def UpdateStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='UpdateStatus', + version=7, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchAPIHostPorts(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='WatchAPIHostPorts', + version=7, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchAllContainers(self, params): + ''' + params : typing.Sequence[~WatchContainer] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='WatchAllContainers', + version=7, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchContainers(self, params): + ''' + params : typing.Sequence[~WatchContainer] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='WatchContainers', + version=7, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchContainersCharmProfiles(self, params): + ''' + params : typing.Sequence[~WatchContainer] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='WatchContainersCharmProfiles', + version=7, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchForModelConfigChanges(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='WatchForModelConfigChanges', + version=7, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchMachineErrorRetry(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='WatchMachineErrorRetry', + version=7, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResult) + async def WatchModelMachines(self): + ''' + + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='WatchModelMachines', + version=7, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResult) + async def WatchModelMachinesCharmProfiles(self): + ''' + + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Provisioner', + request='WatchModelMachinesCharmProfiles', + version=7, + params=_params) + + reply = await self.rpc(msg) + return reply + + diff --git a/modules/libjuju/juju/client/_client8.py b/modules/libjuju/juju/client/_client8.py new file mode 100644 index 0000000..35d3caf --- /dev/null +++ b/modules/libjuju/juju/client/_client8.py @@ -0,0 +1,1278 @@ +# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. +# Changes will be overwritten/lost when the file is regenerated. + +from juju.client.facade import Type, ReturnMapping +from juju.client._definitions import * + + +class ApplicationFacade(Type): + name = 'Application' + version = 8 + schema = {'definitions': {'AddApplicationUnits': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'attach-storage': {'items': {'type': 'string'}, + 'type': 'array'}, + 'num-units': {'type': 'integer'}, + 'placement': {'items': {'$ref': '#/definitions/Placement'}, + 'type': 'array'}, + 'policy': {'type': 'string'}}, + 'required': ['application', + 'num-units', + 'placement'], + 'type': 'object'}, + 'AddApplicationUnitsResults': {'additionalProperties': False, + 'properties': {'units': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['units'], + 'type': 'object'}, + 'AddRelation': {'additionalProperties': False, + 'properties': {'endpoints': {'items': {'type': 'string'}, + 'type': 'array'}, + 'via-cidrs': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['endpoints'], + 'type': 'object'}, + 'AddRelationResults': {'additionalProperties': False, + 'properties': {'endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, + 'type': 'object'}}, + 'required': ['endpoints'], + 'type': 'object'}, + 'ApplicationCharmRelations': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationCharmRelationsResults': {'additionalProperties': False, + 'properties': {'charm-relations': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['charm-relations'], + 'type': 'object'}, + 'ApplicationConfigSet': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'config': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'required': ['application', 'config'], + 'type': 'object'}, + 'ApplicationConfigSetArgs': {'additionalProperties': False, + 'properties': {'Args': {'items': {'$ref': '#/definitions/ApplicationConfigSet'}, + 'type': 'array'}}, + 'required': ['Args'], + 'type': 'object'}, + 'ApplicationConfigUnsetArgs': {'additionalProperties': False, + 'properties': {'Args': {'items': {'$ref': '#/definitions/ApplicationUnset'}, + 'type': 'array'}}, + 'required': ['Args'], + 'type': 'object'}, + 'ApplicationConstraint': {'additionalProperties': False, + 'properties': {'constraints': {'$ref': '#/definitions/Value'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['constraints'], + 'type': 'object'}, + 'ApplicationDeploy': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'attach-storage': {'items': {'type': 'string'}, + 'type': 'array'}, + 'channel': {'type': 'string'}, + 'charm-url': {'type': 'string'}, + 'config': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'config-yaml': {'type': 'string'}, + 'constraints': {'$ref': '#/definitions/Value'}, + 'devices': {'patternProperties': {'.*': {'$ref': '#/definitions/Constraints'}}, + 'type': 'object'}, + 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'num-units': {'type': 'integer'}, + 'placement': {'items': {'$ref': '#/definitions/Placement'}, + 'type': 'array'}, + 'policy': {'type': 'string'}, + 'resources': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'series': {'type': 'string'}, + 'storage': {'patternProperties': {'.*': {'$ref': '#/definitions/Constraints'}}, + 'type': 'object'}}, + 'required': ['application', + 'series', + 'charm-url', + 'channel', + 'num-units', + 'config-yaml', + 'constraints'], + 'type': 'object'}, + 'ApplicationDestroy': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationExpose': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationGet': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationGetConfigResults': {'additionalProperties': False, + 'properties': {'Results': {'items': {'$ref': '#/definitions/ConfigResult'}, + 'type': 'array'}}, + 'required': ['Results'], + 'type': 'object'}, + 'ApplicationGetConstraintsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationConstraint'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ApplicationGetResults': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'application-config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'charm': {'type': 'string'}, + 'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'constraints': {'$ref': '#/definitions/Value'}, + 'series': {'type': 'string'}}, + 'required': ['application', + 'charm', + 'config', + 'constraints', + 'series'], + 'type': 'object'}, + 'ApplicationMetricCredential': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'metrics-credentials': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['application', + 'metrics-credentials'], + 'type': 'object'}, + 'ApplicationMetricCredentials': {'additionalProperties': False, + 'properties': {'creds': {'items': {'$ref': '#/definitions/ApplicationMetricCredential'}, + 'type': 'array'}}, + 'required': ['creds'], + 'type': 'object'}, + 'ApplicationOfferDetails': {'additionalProperties': False, + 'properties': {'application-description': {'type': 'string'}, + 'bindings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'}, + 'type': 'array'}, + 'offer-name': {'type': 'string'}, + 'offer-url': {'type': 'string'}, + 'offer-uuid': {'type': 'string'}, + 'source-model-tag': {'type': 'string'}, + 'spaces': {'items': {'$ref': '#/definitions/RemoteSpace'}, + 'type': 'array'}, + 'users': {'items': {'$ref': '#/definitions/OfferUserDetails'}, + 'type': 'array'}}, + 'required': ['source-model-tag', + 'offer-uuid', + 'offer-url', + 'offer-name', + 'application-description'], + 'type': 'object'}, + 'ApplicationSet': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'options': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'required': ['application', 'options'], + 'type': 'object'}, + 'ApplicationSetCharm': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'channel': {'type': 'string'}, + 'charm-url': {'type': 'string'}, + 'config-settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'config-settings-yaml': {'type': 'string'}, + 'force': {'type': 'boolean'}, + 'force-series': {'type': 'boolean'}, + 'force-units': {'type': 'boolean'}, + 'resource-ids': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'storage-constraints': {'patternProperties': {'.*': {'$ref': '#/definitions/StorageConstraints'}}, + 'type': 'object'}}, + 'required': ['application', + 'charm-url', + 'channel', + 'force', + 'force-units', + 'force-series'], + 'type': 'object'}, + 'ApplicationSetCharmProfile': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'charm-url': {'type': 'string'}}, + 'required': ['application', + 'charm-url'], + 'type': 'object'}, + 'ApplicationUnexpose': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}}, + 'required': ['application'], + 'type': 'object'}, + 'ApplicationUnset': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'options': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['application', 'options'], + 'type': 'object'}, + 'ApplicationUpdate': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'charm-url': {'type': 'string'}, + 'constraints': {'$ref': '#/definitions/Value'}, + 'force': {'type': 'boolean'}, + 'force-charm-url': {'type': 'boolean'}, + 'force-series': {'type': 'boolean'}, + 'min-units': {'type': 'integer'}, + 'settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'settings-yaml': {'type': 'string'}}, + 'required': ['application', + 'charm-url', + 'force-charm-url', + 'force-series', + 'force', + 'settings-yaml'], + 'type': 'object'}, + 'ApplicationsDeploy': {'additionalProperties': False, + 'properties': {'applications': {'items': {'$ref': '#/definitions/ApplicationDeploy'}, + 'type': 'array'}}, + 'required': ['applications'], + 'type': 'object'}, + 'CharmRelation': {'additionalProperties': False, + 'properties': {'interface': {'type': 'string'}, + 'limit': {'type': 'integer'}, + 'name': {'type': 'string'}, + 'optional': {'type': 'boolean'}, + 'role': {'type': 'string'}, + 'scope': {'type': 'string'}}, + 'required': ['name', + 'role', + 'interface', + 'optional', + 'limit', + 'scope'], + 'type': 'object'}, + 'ConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['config'], + 'type': 'object'}, + 'Constraints': {'additionalProperties': False, + 'properties': {'Count': {'type': 'integer'}, + 'Pool': {'type': 'string'}, + 'Size': {'type': 'integer'}}, + 'required': ['Pool', 'Size', 'Count'], + 'type': 'object'}, + 'ConsumeApplicationArg': {'additionalProperties': False, + 'properties': {'ApplicationOfferDetails': {'$ref': '#/definitions/ApplicationOfferDetails'}, + 'application-alias': {'type': 'string'}, + 'external-controller': {'$ref': '#/definitions/ExternalControllerInfo'}, + 'macaroon': {'$ref': '#/definitions/Macaroon'}}, + 'required': ['ApplicationOfferDetails'], + 'type': 'object'}, + 'ConsumeApplicationArgs': {'additionalProperties': False, + 'properties': {'args': {'items': {'$ref': '#/definitions/ConsumeApplicationArg'}, + 'type': 'array'}}, + 'type': 'object'}, + 'DestroyApplicationInfo': {'additionalProperties': False, + 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}, + 'destroyed-units': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}, + 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'type': 'object'}, + 'DestroyApplicationParams': {'additionalProperties': False, + 'properties': {'application-tag': {'type': 'string'}, + 'destroy-storage': {'type': 'boolean'}}, + 'required': ['application-tag'], + 'type': 'object'}, + 'DestroyApplicationResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'info': {'$ref': '#/definitions/DestroyApplicationInfo'}}, + 'type': 'object'}, + 'DestroyApplicationResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyApplicationResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'DestroyApplicationUnits': {'additionalProperties': False, + 'properties': {'unit-names': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['unit-names'], + 'type': 'object'}, + 'DestroyApplicationsParams': {'additionalProperties': False, + 'properties': {'applications': {'items': {'$ref': '#/definitions/DestroyApplicationParams'}, + 'type': 'array'}}, + 'required': ['applications'], + 'type': 'object'}, + 'DestroyConsumedApplicationParams': {'additionalProperties': False, + 'properties': {'application-tag': {'type': 'string'}}, + 'required': ['application-tag'], + 'type': 'object'}, + 'DestroyConsumedApplicationsParams': {'additionalProperties': False, + 'properties': {'applications': {'items': {'$ref': '#/definitions/DestroyConsumedApplicationParams'}, + 'type': 'array'}}, + 'required': ['applications'], + 'type': 'object'}, + 'DestroyRelation': {'additionalProperties': False, + 'properties': {'endpoints': {'items': {'type': 'string'}, + 'type': 'array'}, + 'relation-id': {'type': 'integer'}}, + 'required': ['relation-id'], + 'type': 'object'}, + 'DestroyUnitInfo': {'additionalProperties': False, + 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}, + 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'type': 'object'}, + 'DestroyUnitParams': {'additionalProperties': False, + 'properties': {'destroy-storage': {'type': 'boolean'}, + 'unit-tag': {'type': 'string'}}, + 'required': ['unit-tag'], + 'type': 'object'}, + 'DestroyUnitResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'info': {'$ref': '#/definitions/DestroyUnitInfo'}}, + 'type': 'object'}, + 'DestroyUnitResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyUnitResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'DestroyUnitsParams': {'additionalProperties': False, + 'properties': {'units': {'items': {'$ref': '#/definitions/DestroyUnitParams'}, + 'type': 'array'}}, + 'required': ['units'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ExternalControllerInfo': {'additionalProperties': False, + 'properties': {'addrs': {'items': {'type': 'string'}, + 'type': 'array'}, + 'ca-cert': {'type': 'string'}, + 'controller-alias': {'type': 'string'}, + 'controller-tag': {'type': 'string'}}, + 'required': ['controller-tag', + 'controller-alias', + 'addrs', + 'ca-cert'], + 'type': 'object'}, + 'LXDProfileUpgradeMessages': {'additionalProperties': False, + 'properties': {'application': {'$ref': '#/definitions/Entity'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['application', + 'watcher-id'], + 'type': 'object'}, + 'LXDProfileUpgradeMessagesResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'message': {'type': 'string'}, + 'unit-name': {'type': 'string'}}, + 'required': ['unit-name', + 'message'], + 'type': 'object'}, + 'LXDProfileUpgradeMessagesResults': {'additionalProperties': False, + 'properties': {'args': {'items': {'$ref': '#/definitions/LXDProfileUpgradeMessagesResult'}, + 'type': 'array'}}, + 'required': ['args'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'OfferUserDetails': {'additionalProperties': False, + 'properties': {'access': {'type': 'string'}, + 'display-name': {'type': 'string'}, + 'user': {'type': 'string'}}, + 'required': ['user', + 'display-name', + 'access'], + 'type': 'object'}, + 'Placement': {'additionalProperties': False, + 'properties': {'directive': {'type': 'string'}, + 'scope': {'type': 'string'}}, + 'required': ['scope', 'directive'], + 'type': 'object'}, + 'RelationSuspendedArg': {'additionalProperties': False, + 'properties': {'message': {'type': 'string'}, + 'relation-id': {'type': 'integer'}, + 'suspended': {'type': 'boolean'}}, + 'required': ['relation-id', + 'message', + 'suspended'], + 'type': 'object'}, + 'RelationSuspendedArgs': {'additionalProperties': False, + 'properties': {'args': {'items': {'$ref': '#/definitions/RelationSuspendedArg'}, + 'type': 'array'}}, + 'required': ['args'], + 'type': 'object'}, + 'RemoteEndpoint': {'additionalProperties': False, + 'properties': {'interface': {'type': 'string'}, + 'limit': {'type': 'integer'}, + 'name': {'type': 'string'}, + 'role': {'type': 'string'}}, + 'required': ['name', + 'role', + 'interface', + 'limit'], + 'type': 'object'}, + 'RemoteSpace': {'additionalProperties': False, + 'properties': {'cloud-type': {'type': 'string'}, + 'name': {'type': 'string'}, + 'provider-attributes': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'provider-id': {'type': 'string'}, + 'subnets': {'items': {'$ref': '#/definitions/Subnet'}, + 'type': 'array'}}, + 'required': ['cloud-type', + 'name', + 'provider-id', + 'provider-attributes', + 'subnets'], + 'type': 'object'}, + 'ScaleApplicationInfo': {'additionalProperties': False, + 'properties': {'num-units': {'type': 'integer'}}, + 'required': ['num-units'], + 'type': 'object'}, + 'ScaleApplicationParams': {'additionalProperties': False, + 'properties': {'application-tag': {'type': 'string'}, + 'scale': {'type': 'integer'}, + 'scale-change': {'type': 'integer'}}, + 'required': ['application-tag', + 'scale'], + 'type': 'object'}, + 'ScaleApplicationResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'info': {'$ref': '#/definitions/ScaleApplicationInfo'}}, + 'type': 'object'}, + 'ScaleApplicationResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ScaleApplicationResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ScaleApplicationsParams': {'additionalProperties': False, + 'properties': {'applications': {'items': {'$ref': '#/definitions/ScaleApplicationParams'}, + 'type': 'array'}}, + 'required': ['applications'], + 'type': 'object'}, + 'SetConstraints': {'additionalProperties': False, + 'properties': {'application': {'type': 'string'}, + 'constraints': {'$ref': '#/definitions/Value'}}, + 'required': ['application', 'constraints'], + 'type': 'object'}, + 'StorageConstraints': {'additionalProperties': False, + 'properties': {'count': {'type': 'integer'}, + 'pool': {'type': 'string'}, + 'size': {'type': 'integer'}}, + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'Subnet': {'additionalProperties': False, + 'properties': {'cidr': {'type': 'string'}, + 'life': {'type': 'string'}, + 'provider-id': {'type': 'string'}, + 'provider-network-id': {'type': 'string'}, + 'provider-space-id': {'type': 'string'}, + 'space-tag': {'type': 'string'}, + 'status': {'type': 'string'}, + 'vlan-tag': {'type': 'integer'}, + 'zones': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['cidr', + 'vlan-tag', + 'life', + 'space-tag', + 'zones'], + 'type': 'object'}, + 'UnitsResolved': {'additionalProperties': False, + 'properties': {'all': {'type': 'boolean'}, + 'retry': {'type': 'boolean'}, + 'tags': {'$ref': '#/definitions/Entities'}}, + 'type': 'object'}, + 'UpdateSeriesArg': {'additionalProperties': False, + 'properties': {'force': {'type': 'boolean'}, + 'series': {'type': 'string'}, + 'tag': {'$ref': '#/definitions/Entity'}}, + 'required': ['tag', 'force', 'series'], + 'type': 'object'}, + 'UpdateSeriesArgs': {'additionalProperties': False, + 'properties': {'args': {'items': {'$ref': '#/definitions/UpdateSeriesArg'}, + 'type': 'array'}}, + 'required': ['args'], + 'type': 'object'}, + 'Value': {'additionalProperties': False, + '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': {'items': {'type': 'string'}, + 'type': 'array'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}, + 'virt-type': {'type': 'string'}, + 'zones': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}}, + 'properties': {'AddRelation': {'properties': {'Params': {'$ref': '#/definitions/AddRelation'}, + 'Result': {'$ref': '#/definitions/AddRelationResults'}}, + 'type': 'object'}, + 'AddUnits': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationUnits'}, + 'Result': {'$ref': '#/definitions/AddApplicationUnitsResults'}}, + 'type': 'object'}, + 'CharmConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ApplicationGetConfigResults'}}, + 'type': 'object'}, + 'CharmRelations': {'properties': {'Params': {'$ref': '#/definitions/ApplicationCharmRelations'}, + 'Result': {'$ref': '#/definitions/ApplicationCharmRelationsResults'}}, + 'type': 'object'}, + 'Consume': {'properties': {'Params': {'$ref': '#/definitions/ConsumeApplicationArgs'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Deploy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationsDeploy'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationDestroy'}}, + 'type': 'object'}, + 'DestroyApplication': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationsParams'}, + 'Result': {'$ref': '#/definitions/DestroyApplicationResults'}}, + 'type': 'object'}, + 'DestroyConsumedApplications': {'properties': {'Params': {'$ref': '#/definitions/DestroyConsumedApplicationsParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'DestroyRelation': {'properties': {'Params': {'$ref': '#/definitions/DestroyRelation'}}, + 'type': 'object'}, + 'DestroyUnit': {'properties': {'Params': {'$ref': '#/definitions/DestroyUnitsParams'}, + 'Result': {'$ref': '#/definitions/DestroyUnitResults'}}, + 'type': 'object'}, + 'DestroyUnits': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationUnits'}}, + 'type': 'object'}, + 'Expose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationExpose'}}, + 'type': 'object'}, + 'Get': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, + 'Result': {'$ref': '#/definitions/ApplicationGetResults'}}, + 'type': 'object'}, + 'GetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, + 'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'GetConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ApplicationGetConfigResults'}}, + 'type': 'object'}, + 'GetConstraints': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ApplicationGetConstraintsResults'}}, + 'type': 'object'}, + 'GetLXDProfileUpgradeMessages': {'properties': {'Params': {'$ref': '#/definitions/LXDProfileUpgradeMessages'}, + 'Result': {'$ref': '#/definitions/LXDProfileUpgradeMessagesResults'}}, + 'type': 'object'}, + 'ResolveUnitErrors': {'properties': {'Params': {'$ref': '#/definitions/UnitsResolved'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'ScaleApplications': {'properties': {'Params': {'$ref': '#/definitions/ScaleApplicationsParams'}, + 'Result': {'$ref': '#/definitions/ScaleApplicationResults'}}, + 'type': 'object'}, + 'Set': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSet'}}, + 'type': 'object'}, + 'SetApplicationsConfig': {'properties': {'Params': {'$ref': '#/definitions/ApplicationConfigSetArgs'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetCharm': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSetCharm'}}, + 'type': 'object'}, + 'SetCharmProfile': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSetCharmProfile'}}, + 'type': 'object'}, + 'SetConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, + 'type': 'object'}, + 'SetMetricCredentials': {'properties': {'Params': {'$ref': '#/definitions/ApplicationMetricCredentials'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetRelationsSuspended': {'properties': {'Params': {'$ref': '#/definitions/RelationSuspendedArgs'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Unexpose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnexpose'}}, + 'type': 'object'}, + 'Unset': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnset'}}, + 'type': 'object'}, + 'UnsetApplicationsConfig': {'properties': {'Params': {'$ref': '#/definitions/ApplicationConfigUnsetArgs'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Update': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUpdate'}}, + 'type': 'object'}, + 'UpdateApplicationSeries': {'properties': {'Params': {'$ref': '#/definitions/UpdateSeriesArgs'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'WatchLXDProfileUpgradeNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entity'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(AddRelationResults) + async def AddRelation(self, endpoints): + ''' + endpoints : typing.Sequence[str] + Returns -> typing.Mapping[str, ~CharmRelation] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='AddRelation', + version=8, + params=_params) + _params['endpoints'] = endpoints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(AddApplicationUnitsResults) + async def AddUnits(self, application, num_units, placement): + ''' + application : str + num_units : int + placement : typing.Sequence[~Placement] + Returns -> typing.Sequence[str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='AddUnits', + version=8, + params=_params) + _params['application'] = application + _params['num-units'] = num_units + _params['placement'] = placement + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ApplicationGetConfigResults) + async def CharmConfig(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ConfigResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='CharmConfig', + version=8, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ApplicationCharmRelationsResults) + async def CharmRelations(self, application): + ''' + application : str + Returns -> typing.Sequence[str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='CharmRelations', + version=8, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Consume(self, args): + ''' + args : typing.Sequence[~ConsumeApplicationArg] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Consume', + version=8, + params=_params) + _params['args'] = args + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Deploy(self, applications): + ''' + applications : typing.Sequence[~ApplicationDeploy] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Deploy', + version=8, + params=_params) + _params['applications'] = applications + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Destroy(self, application): + ''' + application : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Destroy', + version=8, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(DestroyApplicationResults) + async def DestroyApplication(self, applications): + ''' + applications : typing.Sequence[~DestroyApplicationParams] + Returns -> typing.Sequence[~DestroyApplicationResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='DestroyApplication', + version=8, + params=_params) + _params['applications'] = applications + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def DestroyConsumedApplications(self, applications): + ''' + applications : typing.Sequence[~DestroyConsumedApplicationParams] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='DestroyConsumedApplications', + version=8, + params=_params) + _params['applications'] = applications + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def DestroyRelation(self, endpoints): + ''' + endpoints : typing.Sequence[str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='DestroyRelation', + version=8, + params=_params) + _params['endpoints'] = endpoints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(DestroyUnitResults) + async def DestroyUnit(self, units): + ''' + units : typing.Sequence[~DestroyUnitParams] + Returns -> typing.Sequence[~DestroyUnitResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='DestroyUnit', + version=8, + params=_params) + _params['units'] = units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def DestroyUnits(self, unit_names): + ''' + unit_names : typing.Sequence[str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='DestroyUnits', + version=8, + params=_params) + _params['unit-names'] = unit_names + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Expose(self, application): + ''' + application : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Expose', + version=8, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ApplicationGetResults) + async def Get(self, application): + ''' + application : str + Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Get', + version=8, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def GetCharmURL(self, application): + ''' + application : str + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='GetCharmURL', + version=8, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ApplicationGetConfigResults) + async def GetConfig(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ConfigResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='GetConfig', + version=8, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ApplicationGetConstraintsResults) + async def GetConstraints(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ApplicationConstraint] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='GetConstraints', + version=8, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(LXDProfileUpgradeMessagesResults) + async def GetLXDProfileUpgradeMessages(self, application, watcher_id): + ''' + application : Entity + watcher_id : str + Returns -> typing.Sequence[~LXDProfileUpgradeMessagesResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='GetLXDProfileUpgradeMessages', + version=8, + params=_params) + _params['application'] = application + _params['watcher-id'] = watcher_id + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def ResolveUnitErrors(self, all_, retry, tags): + ''' + all_ : bool + retry : bool + tags : Entities + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='ResolveUnitErrors', + version=8, + params=_params) + _params['all'] = all_ + _params['retry'] = retry + _params['tags'] = tags + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ScaleApplicationResults) + async def ScaleApplications(self, applications): + ''' + applications : typing.Sequence[~ScaleApplicationParams] + Returns -> typing.Sequence[~ScaleApplicationResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='ScaleApplications', + version=8, + params=_params) + _params['applications'] = applications + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Set(self, application, options): + ''' + application : str + options : typing.Mapping[str, str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Set', + version=8, + params=_params) + _params['application'] = application + _params['options'] = options + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetApplicationsConfig(self, args): + ''' + args : typing.Sequence[~ApplicationConfigSet] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='SetApplicationsConfig', + version=8, + params=_params) + _params['Args'] = args + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetCharm(self, application, channel, charm_url, config_settings, config_settings_yaml, force_series, force_units, resource_ids, storage_constraints): + ''' + application : str + channel : str + charm_url : str + config_settings : typing.Mapping[str, str] + config_settings_yaml : str + force_series : bool + force_units : bool + resource_ids : typing.Mapping[str, str] + storage_constraints : typing.Mapping[str, ~StorageConstraints] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='SetCharm', + version=8, + params=_params) + _params['application'] = application + _params['channel'] = channel + _params['charm-url'] = charm_url + _params['config-settings'] = config_settings + _params['config-settings-yaml'] = config_settings_yaml + _params['force-series'] = force_series + _params['force-units'] = force_units + _params['resource-ids'] = resource_ids + _params['storage-constraints'] = storage_constraints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetCharmProfile(self, application, charm_url): + ''' + application : str + charm_url : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='SetCharmProfile', + version=8, + params=_params) + _params['application'] = application + _params['charm-url'] = charm_url + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def SetConstraints(self, application, constraints): + ''' + application : str + constraints : Value + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='SetConstraints', + version=8, + params=_params) + _params['application'] = application + _params['constraints'] = constraints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetMetricCredentials(self, creds): + ''' + creds : typing.Sequence[~ApplicationMetricCredential] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='SetMetricCredentials', + version=8, + params=_params) + _params['creds'] = creds + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetRelationsSuspended(self, args): + ''' + args : typing.Sequence[~RelationSuspendedArg] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='SetRelationsSuspended', + version=8, + params=_params) + _params['args'] = args + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Unexpose(self, application): + ''' + application : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Unexpose', + version=8, + params=_params) + _params['application'] = application + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Unset(self, application, options): + ''' + application : str + options : typing.Sequence[str] + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Unset', + version=8, + params=_params) + _params['application'] = application + _params['options'] = options + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def UnsetApplicationsConfig(self, args): + ''' + args : typing.Sequence[~ApplicationUnset] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='UnsetApplicationsConfig', + version=8, + params=_params) + _params['Args'] = args + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Update(self, application, charm_url, constraints, force_charm_url, force_series, min_units, settings, settings_yaml): + ''' + application : str + charm_url : str + constraints : Value + force_charm_url : bool + force_series : bool + min_units : int + settings : typing.Mapping[str, str] + settings_yaml : str + Returns -> None + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='Update', + version=8, + params=_params) + _params['application'] = application + _params['charm-url'] = charm_url + _params['constraints'] = constraints + _params['force-charm-url'] = force_charm_url + _params['force-series'] = force_series + _params['min-units'] = min_units + _params['settings'] = settings + _params['settings-yaml'] = settings_yaml + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def UpdateApplicationSeries(self, args): + ''' + args : typing.Sequence[~UpdateSeriesArg] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='UpdateApplicationSeries', + version=8, + params=_params) + _params['args'] = args + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchLXDProfileUpgradeNotifications(self, tag): + ''' + tag : str + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Application', + request='WatchLXDProfileUpgradeNotifications', + version=8, + params=_params) + _params['tag'] = tag + reply = await self.rpc(msg) + return reply + + diff --git a/modules/libjuju/juju/client/_client9.py b/modules/libjuju/juju/client/_client9.py new file mode 100644 index 0000000..d87dd8f --- /dev/null +++ b/modules/libjuju/juju/client/_client9.py @@ -0,0 +1,2385 @@ +# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. +# Changes will be overwritten/lost when the file is regenerated. + +from juju.client.facade import Type, ReturnMapping +from juju.client._definitions import * + + +class UniterFacade(Type): + name = 'Uniter' + version = 9 + schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, + 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, + 'type': 'array'}, + 'type': 'array'}}, + 'required': ['servers'], + 'type': 'object'}, + 'Action': {'additionalProperties': False, + 'properties': {'name': {'type': 'string'}, + 'parameters': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'receiver': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'receiver', 'name'], + 'type': 'object'}, + 'ActionExecutionResult': {'additionalProperties': False, + 'properties': {'action-tag': {'type': 'string'}, + 'message': {'type': 'string'}, + 'results': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'status': {'type': 'string'}}, + 'required': ['action-tag', 'status'], + 'type': 'object'}, + 'ActionExecutionResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ActionExecutionResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ActionResult': {'additionalProperties': False, + 'properties': {'action': {'$ref': '#/definitions/Action'}, + 'completed': {'format': 'date-time', + 'type': 'string'}, + 'enqueued': {'format': 'date-time', + 'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}, + 'message': {'type': 'string'}, + 'output': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'started': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'type': 'object'}, + 'ActionResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Address': {'additionalProperties': False, + 'properties': {'scope': {'type': 'string'}, + 'space-name': {'type': 'string'}, + 'type': {'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['value', 'type', 'scope'], + 'type': 'object'}, + 'ApplicationStatusResult': {'additionalProperties': False, + 'properties': {'application': {'$ref': '#/definitions/StatusResult'}, + 'error': {'$ref': '#/definitions/Error'}, + 'units': {'patternProperties': {'.*': {'$ref': '#/definitions/StatusResult'}}, + 'type': 'object'}}, + 'required': ['application', + 'units'], + 'type': 'object'}, + 'ApplicationStatusResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationStatusResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'BoolResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'boolean'}}, + 'required': ['result'], + 'type': 'object'}, + 'BoolResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'CharmRelation': {'additionalProperties': False, + 'properties': {'interface': {'type': 'string'}, + 'limit': {'type': 'integer'}, + 'name': {'type': 'string'}, + 'optional': {'type': 'boolean'}, + 'role': {'type': 'string'}, + 'scope': {'type': 'string'}}, + 'required': ['name', + 'role', + 'interface', + 'optional', + 'limit', + 'scope'], + 'type': 'object'}, + 'CharmURL': {'additionalProperties': False, + 'properties': {'url': {'type': 'string'}}, + 'required': ['url'], + 'type': 'object'}, + 'CharmURLs': {'additionalProperties': False, + 'properties': {'urls': {'items': {'$ref': '#/definitions/CharmURL'}, + 'type': 'array'}}, + 'required': ['urls'], + 'type': 'object'}, + 'CloudCredential': {'additionalProperties': False, + 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'auth-type': {'type': 'string'}, + 'redacted': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['auth-type'], + 'type': 'object'}, + 'CloudSpec': {'additionalProperties': False, + 'properties': {'cacertificates': {'items': {'type': 'string'}, + 'type': 'array'}, + 'credential': {'$ref': '#/definitions/CloudCredential'}, + 'endpoint': {'type': 'string'}, + 'identity-endpoint': {'type': 'string'}, + 'name': {'type': 'string'}, + 'region': {'type': 'string'}, + 'storage-endpoint': {'type': 'string'}, + 'type': {'type': 'string'}}, + 'required': ['type', 'name'], + 'type': 'object'}, + 'CloudSpecResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/CloudSpec'}}, + 'type': 'object'}, + 'ConfigSettingsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'settings': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['settings'], + 'type': 'object'}, + 'ConfigSettingsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ConfigSettingsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Endpoint': {'additionalProperties': False, + 'properties': {'application-name': {'type': 'string'}, + 'relation': {'$ref': '#/definitions/CharmRelation'}}, + 'required': ['application-name', 'relation'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'EntitiesCharmURL': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityCharmURL'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'EntitiesPortRanges': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityPortRange'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}}, + 'required': ['tag'], + 'type': 'object'}, + 'EntityCharmURL': {'additionalProperties': False, + 'properties': {'charm-url': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'charm-url'], + 'type': 'object'}, + 'EntityPortRange': {'additionalProperties': False, + 'properties': {'from-port': {'type': 'integer'}, + 'protocol': {'type': 'string'}, + 'tag': {'type': 'string'}, + 'to-port': {'type': 'integer'}}, + 'required': ['tag', + 'protocol', + 'from-port', + 'to-port'], + 'type': 'object'}, + 'EntityStatusArgs': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'info': {'type': 'string'}, + 'status': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', + 'status', + 'info', + 'data'], + 'type': 'object'}, + 'EntityString': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['tag', 'value'], + 'type': 'object'}, + 'EntityWorkloadVersion': {'additionalProperties': False, + 'properties': {'tag': {'type': 'string'}, + 'workload-version': {'type': 'string'}}, + 'required': ['tag', + 'workload-version'], + 'type': 'object'}, + 'EntityWorkloadVersions': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityWorkloadVersion'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'GetLeadershipSettingsBulkResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/GetLeadershipSettingsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'GetLeadershipSettingsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'required': ['settings'], + 'type': 'object'}, + 'GoalState': {'additionalProperties': False, + 'properties': {'relations': {'patternProperties': {'.*': {'patternProperties': {'.*': {'$ref': '#/definitions/GoalStateStatus'}}, + 'type': 'object'}}, + 'type': 'object'}, + 'units': {'patternProperties': {'.*': {'$ref': '#/definitions/GoalStateStatus'}}, + 'type': 'object'}}, + 'required': ['units', 'relations'], + 'type': 'object'}, + 'GoalStateResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/GoalState'}}, + 'required': ['result', 'error'], + 'type': 'object'}, + 'GoalStateResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/GoalStateResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'GoalStateStatus': {'additionalProperties': False, + 'properties': {'since': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['status', 'since'], + 'type': 'object'}, + 'HostPort': {'additionalProperties': False, + 'properties': {'Address': {'$ref': '#/definitions/Address'}, + 'port': {'type': 'integer'}}, + 'required': ['Address', 'port'], + 'type': 'object'}, + 'IntResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'integer'}}, + 'required': ['result'], + 'type': 'object'}, + 'IntResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/IntResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'InterfaceAddress': {'additionalProperties': False, + 'properties': {'cidr': {'type': 'string'}, + 'hostname': {'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['hostname', 'value', 'cidr'], + 'type': 'object'}, + 'LifeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'life': {'type': 'string'}}, + 'required': ['life'], + 'type': 'object'}, + 'LifeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, + 'MachinePortRange': {'additionalProperties': False, + 'properties': {'port-range': {'$ref': '#/definitions/PortRange'}, + 'relation-tag': {'type': 'string'}, + 'unit-tag': {'type': 'string'}}, + 'required': ['unit-tag', + 'relation-tag', + 'port-range'], + 'type': 'object'}, + 'MachinePortsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'ports': {'items': {'$ref': '#/definitions/MachinePortRange'}, + 'type': 'array'}}, + 'required': ['ports'], + 'type': 'object'}, + 'MachinePortsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/MachinePortsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'MergeLeadershipSettingsBulkParams': {'additionalProperties': False, + 'properties': {'params': {'items': {'$ref': '#/definitions/MergeLeadershipSettingsParam'}, + 'type': 'array'}}, + 'required': ['params'], + 'type': 'object'}, + 'MergeLeadershipSettingsParam': {'additionalProperties': False, + 'properties': {'application-tag': {'type': 'string'}, + 'settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'unit-tag': {'type': 'string'}}, + 'required': ['settings'], + 'type': 'object'}, + 'MeterStatusResult': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}, + 'info': {'type': 'string'}}, + 'required': ['code', 'info'], + 'type': 'object'}, + 'MeterStatusResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/MeterStatusResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'Metric': {'additionalProperties': False, + 'properties': {'key': {'type': 'string'}, + 'labels': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'time': {'format': 'date-time', + 'type': 'string'}, + 'value': {'type': 'string'}}, + 'required': ['key', 'value', 'time'], + 'type': 'object'}, + 'MetricBatch': {'additionalProperties': False, + 'properties': {'charm-url': {'type': 'string'}, + 'created': {'format': 'date-time', + 'type': 'string'}, + 'metrics': {'items': {'$ref': '#/definitions/Metric'}, + 'type': 'array'}, + 'uuid': {'type': 'string'}}, + 'required': ['uuid', + 'charm-url', + 'created', + 'metrics'], + 'type': 'object'}, + 'MetricBatchParam': {'additionalProperties': False, + 'properties': {'batch': {'$ref': '#/definitions/MetricBatch'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'batch'], + 'type': 'object'}, + 'MetricBatchParams': {'additionalProperties': False, + 'properties': {'batches': {'items': {'$ref': '#/definitions/MetricBatchParam'}, + 'type': 'array'}}, + 'required': ['batches'], + 'type': 'object'}, + 'ModelConfigResult': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], + 'type': 'object'}, + 'ModelResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'name': {'type': 'string'}, + 'type': {'type': 'string'}, + 'uuid': {'type': 'string'}}, + 'required': ['name', 'uuid', 'type'], + 'type': 'object'}, + 'NetworkInfo': {'additionalProperties': False, + 'properties': {'addresses': {'items': {'$ref': '#/definitions/InterfaceAddress'}, + 'type': 'array'}, + 'interface-name': {'type': 'string'}, + 'mac-address': {'type': 'string'}}, + 'required': ['mac-address', + 'interface-name', + 'addresses'], + 'type': 'object'}, + 'NetworkInfoParams': {'additionalProperties': False, + 'properties': {'bindings': {'items': {'type': 'string'}, + 'type': 'array'}, + 'relation-id': {'type': 'integer'}, + 'unit': {'type': 'string'}}, + 'required': ['unit', 'bindings'], + 'type': 'object'}, + 'NetworkInfoResult': {'additionalProperties': False, + 'properties': {'bind-addresses': {'items': {'$ref': '#/definitions/NetworkInfo'}, + 'type': 'array'}, + 'egress-subnets': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'ingress-addresses': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'NetworkInfoResults': {'additionalProperties': False, + 'properties': {'results': {'patternProperties': {'.*': {'$ref': '#/definitions/NetworkInfoResult'}}, + 'type': 'object'}}, + 'required': ['results'], + 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'NotifyWatcherId': {'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['NotifyWatcherId'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'PortRange': {'additionalProperties': False, + 'properties': {'from-port': {'type': 'integer'}, + 'protocol': {'type': 'string'}, + 'to-port': {'type': 'integer'}}, + 'required': ['from-port', 'to-port', 'protocol'], + 'type': 'object'}, + 'RelationIds': {'additionalProperties': False, + 'properties': {'relation-ids': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['relation-ids'], + 'type': 'object'}, + 'RelationResult': {'additionalProperties': False, + 'properties': {'bool': {'type': 'boolean'}, + 'endpoint': {'$ref': '#/definitions/Endpoint'}, + 'error': {'$ref': '#/definitions/Error'}, + 'id': {'type': 'integer'}, + 'key': {'type': 'string'}, + 'life': {'type': 'string'}, + 'other-application': {'type': 'string'}}, + 'required': ['life', + 'id', + 'key', + 'endpoint'], + 'type': 'object'}, + 'RelationResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/RelationResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'RelationStatusArg': {'additionalProperties': False, + 'properties': {'message': {'type': 'string'}, + 'relation-id': {'type': 'integer'}, + 'status': {'type': 'string'}, + 'unit-tag': {'type': 'string'}}, + 'required': ['unit-tag', + 'relation-id', + 'status', + 'message'], + 'type': 'object'}, + 'RelationStatusArgs': {'additionalProperties': False, + 'properties': {'args': {'items': {'$ref': '#/definitions/RelationStatusArg'}, + 'type': 'array'}}, + 'required': ['args'], + 'type': 'object'}, + 'RelationUnit': {'additionalProperties': False, + 'properties': {'relation': {'type': 'string'}, + 'unit': {'type': 'string'}}, + 'required': ['relation', 'unit'], + 'type': 'object'}, + 'RelationUnitPair': {'additionalProperties': False, + 'properties': {'local-unit': {'type': 'string'}, + 'relation': {'type': 'string'}, + 'remote-unit': {'type': 'string'}}, + 'required': ['relation', + 'local-unit', + 'remote-unit'], + 'type': 'object'}, + 'RelationUnitPairs': {'additionalProperties': False, + 'properties': {'relation-unit-pairs': {'items': {'$ref': '#/definitions/RelationUnitPair'}, + 'type': 'array'}}, + 'required': ['relation-unit-pairs'], + 'type': 'object'}, + 'RelationUnitSettings': {'additionalProperties': False, + 'properties': {'relation': {'type': 'string'}, + 'settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'unit': {'type': 'string'}}, + 'required': ['relation', + 'unit', + 'settings'], + 'type': 'object'}, + 'RelationUnitStatus': {'additionalProperties': False, + 'properties': {'in-scope': {'type': 'boolean'}, + 'relation-tag': {'type': 'string'}, + 'suspended': {'type': 'boolean'}}, + 'required': ['relation-tag', + 'in-scope', + 'suspended'], + 'type': 'object'}, + 'RelationUnitStatusResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'results': {'items': {'$ref': '#/definitions/RelationUnitStatus'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'RelationUnitStatusResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/RelationUnitStatusResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'RelationUnits': {'additionalProperties': False, + 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnit'}, + 'type': 'array'}}, + 'required': ['relation-units'], + 'type': 'object'}, + 'RelationUnitsChange': {'additionalProperties': False, + 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}}, + 'type': 'object'}, + 'departed': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['changed'], + 'type': 'object'}, + 'RelationUnitsSettings': {'additionalProperties': False, + 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnitSettings'}, + 'type': 'array'}}, + 'required': ['relation-units'], + 'type': 'object'}, + 'RelationUnitsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'$ref': '#/definitions/RelationUnitsChange'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id', + 'changes'], + 'type': 'object'}, + 'RelationUnitsWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/RelationUnitsWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'ResolvedModeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'mode': {'type': 'string'}}, + 'required': ['mode'], + 'type': 'object'}, + 'ResolvedModeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ResolvedModeResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'SetPodSpecParams': {'additionalProperties': False, + 'properties': {'specs': {'items': {'$ref': '#/definitions/EntityString'}, + 'type': 'array'}}, + 'required': ['specs'], + 'type': 'object'}, + 'SetStatus': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, + 'type': 'array'}}, + 'required': ['entities'], + 'type': 'object'}, + 'SettingsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'settings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'required': ['settings'], + 'type': 'object'}, + 'SettingsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/SettingsResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StatusResult': {'additionalProperties': False, + 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'error': {'$ref': '#/definitions/Error'}, + 'id': {'type': 'string'}, + 'info': {'type': 'string'}, + 'life': {'type': 'string'}, + 'since': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['id', + 'life', + 'status', + 'info', + 'data', + 'since'], + 'type': 'object'}, + 'StatusResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StatusResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StorageAddParams': {'additionalProperties': False, + 'properties': {'name': {'type': 'string'}, + 'storage': {'$ref': '#/definitions/StorageConstraints'}, + 'unit': {'type': 'string'}}, + 'required': ['unit', 'name', 'storage'], + 'type': 'object'}, + 'StorageAttachment': {'additionalProperties': False, + 'properties': {'kind': {'type': 'integer'}, + 'life': {'type': 'string'}, + 'location': {'type': 'string'}, + 'owner-tag': {'type': 'string'}, + 'storage-tag': {'type': 'string'}, + 'unit-tag': {'type': 'string'}}, + 'required': ['storage-tag', + 'owner-tag', + 'unit-tag', + 'kind', + 'location', + 'life'], + 'type': 'object'}, + 'StorageAttachmentId': {'additionalProperties': False, + 'properties': {'storage-tag': {'type': 'string'}, + 'unit-tag': {'type': 'string'}}, + 'required': ['storage-tag', + 'unit-tag'], + 'type': 'object'}, + 'StorageAttachmentIds': {'additionalProperties': False, + 'properties': {'ids': {'items': {'$ref': '#/definitions/StorageAttachmentId'}, + 'type': 'array'}}, + 'required': ['ids'], + 'type': 'object'}, + 'StorageAttachmentIdsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/StorageAttachmentIds'}}, + 'required': ['result'], + 'type': 'object'}, + 'StorageAttachmentIdsResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StorageAttachmentIdsResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StorageAttachmentResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'$ref': '#/definitions/StorageAttachment'}}, + 'required': ['result'], + 'type': 'object'}, + 'StorageAttachmentResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StorageAttachmentResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StorageConstraints': {'additionalProperties': False, + 'properties': {'count': {'type': 'integer'}, + 'pool': {'type': 'string'}, + 'size': {'type': 'integer'}}, + 'type': 'object'}, + 'StoragesAddParams': {'additionalProperties': False, + 'properties': {'storages': {'items': {'$ref': '#/definitions/StorageAddParams'}, + 'type': 'array'}}, + 'required': ['storages'], + 'type': 'object'}, + 'StringBoolResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'ok': {'type': 'boolean'}, + 'result': {'type': 'string'}}, + 'required': ['result', 'ok'], + 'type': 'object'}, + 'StringBoolResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringBoolResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'required': ['result'], + 'type': 'object'}, + 'StringResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'StringsResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], + 'type': 'object'}, + 'StringsWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], + 'type': 'object'}, + 'UnitRefreshResult': {'additionalProperties': False, + 'properties': {'Error': {'$ref': '#/definitions/Error'}, + 'Life': {'type': 'string'}, + 'Resolved': {'type': 'string'}}, + 'required': ['Life', + 'Resolved', + 'Error'], + 'type': 'object'}, + 'UnitRefreshResults': {'additionalProperties': False, + 'properties': {'Results': {'items': {'$ref': '#/definitions/UnitRefreshResult'}, + 'type': 'array'}}, + 'required': ['Results'], + 'type': 'object'}, + 'UnitSettings': {'additionalProperties': False, + 'properties': {'version': {'type': 'integer'}}, + 'required': ['version'], + 'type': 'object'}, + 'UpgradeSeriesStatusParam': {'additionalProperties': False, + 'properties': {'entity': {'$ref': '#/definitions/Entity'}, + 'message': {'type': 'string'}, + 'status': {'type': 'string'}}, + 'required': ['entity', + 'status', + 'message'], + 'type': 'object'}, + 'UpgradeSeriesStatusParams': {'additionalProperties': False, + 'properties': {'params': {'items': {'$ref': '#/definitions/UpgradeSeriesStatusParam'}, + 'type': 'array'}}, + 'required': ['params'], + 'type': 'object'}, + 'UpgradeSeriesStatusResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'status': {'type': 'string'}}, + 'type': 'object'}, + 'UpgradeSeriesStatusResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/UpgradeSeriesStatusResult'}, + 'type': 'array'}}, + 'type': 'object'}}, + 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, + 'type': 'object'}, + 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, + 'type': 'object'}, + 'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionResults'}}, + 'type': 'object'}, + 'AddMetricBatches': {'properties': {'Params': {'$ref': '#/definitions/MetricBatchParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'AddUnitStorage': {'properties': {'Params': {'$ref': '#/definitions/StoragesAddParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'AllMachinePorts': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/MachinePortsResults'}}, + 'type': 'object'}, + 'ApplicationStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ApplicationStatusResults'}}, + 'type': 'object'}, + 'AssignedMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'AvailabilityZone': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'BeginActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'CharmArchiveSha256': {'properties': {'Params': {'$ref': '#/definitions/CharmURLs'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'CharmModifiedVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/IntResults'}}, + 'type': 'object'}, + 'CharmURL': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringBoolResults'}}, + 'type': 'object'}, + 'ClearResolved': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'ClosePorts': {'properties': {'Params': {'$ref': '#/definitions/EntitiesPortRanges'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'CloudSpec': {'properties': {'Result': {'$ref': '#/definitions/CloudSpecResult'}}, + 'type': 'object'}, + 'ConfigSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ConfigSettingsResults'}}, + 'type': 'object'}, + 'CurrentModel': {'properties': {'Result': {'$ref': '#/definitions/ModelResult'}}, + 'type': 'object'}, + 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'DestroyAllSubordinates': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'DestroyUnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'EnterScope': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'FinishActions': {'properties': {'Params': {'$ref': '#/definitions/ActionExecutionResults'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'GetMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/MeterStatusResults'}}, + 'type': 'object'}, + 'GetPrincipal': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringBoolResults'}}, + 'type': 'object'}, + 'GoalStates': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/GoalStateResults'}}, + 'type': 'object'}, + 'HasSubordinates': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/BoolResults'}}, + 'type': 'object'}, + 'LeaveScope': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/LifeResults'}}, + 'type': 'object'}, + 'Merge': {'properties': {'Params': {'$ref': '#/definitions/MergeLeadershipSettingsBulkParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, + 'type': 'object'}, + 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'NetworkInfo': {'properties': {'Params': {'$ref': '#/definitions/NetworkInfoParams'}, + 'Result': {'$ref': '#/definitions/NetworkInfoResults'}}, + 'type': 'object'}, + 'OpenPorts': {'properties': {'Params': {'$ref': '#/definitions/EntitiesPortRanges'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'ProviderType': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}, + 'Read': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/GetLeadershipSettingsBulkResults'}}, + 'type': 'object'}, + 'ReadRemoteSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnitPairs'}, + 'Result': {'$ref': '#/definitions/SettingsResults'}}, + 'type': 'object'}, + 'ReadSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, + 'Result': {'$ref': '#/definitions/SettingsResults'}}, + 'type': 'object'}, + 'Refresh': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/UnitRefreshResults'}}, + 'type': 'object'}, + 'Relation': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, + 'Result': {'$ref': '#/definitions/RelationResults'}}, + 'type': 'object'}, + 'RelationById': {'properties': {'Params': {'$ref': '#/definitions/RelationIds'}, + 'Result': {'$ref': '#/definitions/RelationResults'}}, + 'type': 'object'}, + 'RelationsStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/RelationUnitStatusResults'}}, + 'type': 'object'}, + 'RemoveStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'RequestReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Resolved': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ResolvedModeResults'}}, + 'type': 'object'}, + 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, + 'type': 'object'}, + 'SetAgentStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetApplicationStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/EntitiesCharmURL'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetPodSpec': {'properties': {'Params': {'$ref': '#/definitions/SetPodSpecParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetRelationStatus': {'properties': {'Params': {'$ref': '#/definitions/RelationStatusArgs'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetUnitStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetUpgradeSeriesUnitStatus': {'properties': {'Params': {'$ref': '#/definitions/UpgradeSeriesStatusParams'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'SetWorkloadVersion': {'properties': {'Params': {'$ref': '#/definitions/EntityWorkloadVersions'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'StorageAttachmentLife': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, + 'Result': {'$ref': '#/definitions/LifeResults'}}, + 'type': 'object'}, + 'StorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, + 'Result': {'$ref': '#/definitions/StorageAttachmentResults'}}, + 'type': 'object'}, + 'UnitStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StatusResults'}}, + 'type': 'object'}, + 'UnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StorageAttachmentIdsResults'}}, + 'type': 'object'}, + 'UpdateSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnitsSettings'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'UpgradeSeriesUnitStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/UpgradeSeriesStatusResults'}}, + 'type': 'object'}, + 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}, + 'WatchActionNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WatchConfigSettingsHash': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}, + 'WatchLeadershipSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchRelationUnits': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, + 'Result': {'$ref': '#/definitions/RelationUnitsWatchResults'}}, + 'type': 'object'}, + 'WatchStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WatchTrustConfigSettingsHash': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WatchUnitAddressesHash': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WatchUnitRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WatchUnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, + 'WatchUpgradeSeriesNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}, + 'WorkloadVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(StringsResult) + async def APIAddresses(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='APIAddresses', + version=9, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(APIHostPortsResult) + async def APIHostPorts(self): + ''' + + Returns -> typing.Sequence[~HostPort] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='APIHostPorts', + version=9, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionResults) + async def Actions(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Actions', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def AddMetricBatches(self, batches): + ''' + batches : typing.Sequence[~MetricBatchParam] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='AddMetricBatches', + version=9, + params=_params) + _params['batches'] = batches + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def AddUnitStorage(self, storages): + ''' + storages : typing.Sequence[~StorageAddParams] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='AddUnitStorage', + version=9, + params=_params) + _params['storages'] = storages + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MachinePortsResults) + async def AllMachinePorts(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MachinePortsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='AllMachinePorts', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ApplicationStatusResults) + async def ApplicationStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ApplicationStatusResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ApplicationStatus', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def AssignedMachine(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='AssignedMachine', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def AvailabilityZone(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='AvailabilityZone', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def BeginActions(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='BeginActions', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def CharmArchiveSha256(self, urls): + ''' + urls : typing.Sequence[~CharmURL] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='CharmArchiveSha256', + version=9, + params=_params) + _params['urls'] = urls + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(IntResults) + async def CharmModifiedVersion(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~IntResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='CharmModifiedVersion', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringBoolResults) + async def CharmURL(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringBoolResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='CharmURL', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def ClearResolved(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ClearResolved', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def ClosePorts(self, entities): + ''' + entities : typing.Sequence[~EntityPortRange] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ClosePorts', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(CloudSpecResult) + async def CloudSpec(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='CloudSpec', + version=9, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ConfigSettingsResults) + async def ConfigSettings(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ConfigSettingsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ConfigSettings', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelResult) + async def CurrentModel(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='CurrentModel', + version=9, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Destroy(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Destroy', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def DestroyAllSubordinates(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='DestroyAllSubordinates', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def DestroyUnitStorageAttachments(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='DestroyUnitStorageAttachments', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def EnsureDead(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='EnsureDead', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def EnterScope(self, relation_units): + ''' + relation_units : typing.Sequence[~RelationUnit] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='EnterScope', + version=9, + params=_params) + _params['relation-units'] = relation_units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def FinishActions(self, results): + ''' + results : typing.Sequence[~ActionExecutionResult] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='FinishActions', + version=9, + params=_params) + _params['results'] = results + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(MeterStatusResults) + async def GetMeterStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MeterStatusResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='GetMeterStatus', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringBoolResults) + async def GetPrincipal(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringBoolResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='GetPrincipal', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(GoalStateResults) + async def GoalStates(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~GoalStateResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='GoalStates', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(BoolResults) + async def HasSubordinates(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~BoolResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='HasSubordinates', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def LeaveScope(self, relation_units): + ''' + relation_units : typing.Sequence[~RelationUnit] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='LeaveScope', + version=9, + params=_params) + _params['relation-units'] = relation_units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(LifeResults) + async def Life(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~LifeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Life', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def Merge(self, params): + ''' + params : typing.Sequence[~MergeLeadershipSettingsParam] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Merge', + version=9, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ModelConfigResult) + async def ModelConfig(self): + ''' + + Returns -> typing.Mapping[str, typing.Any] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ModelConfig', + version=9, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def ModelUUID(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ModelUUID', + version=9, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NetworkInfoResults) + async def NetworkInfo(self, bindings, unit): + ''' + bindings : typing.Sequence[str] + unit : str + Returns -> typing.Mapping[str, ~NetworkInfoResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='NetworkInfo', + version=9, + params=_params) + _params['bindings'] = bindings + _params['unit'] = unit + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def OpenPorts(self, entities): + ''' + entities : typing.Sequence[~EntityPortRange] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='OpenPorts', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def PrivateAddress(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='PrivateAddress', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def ProviderType(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ProviderType', + version=9, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def PublicAddress(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='PublicAddress', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(GetLeadershipSettingsBulkResults) + async def Read(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~GetLeadershipSettingsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Read', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(SettingsResults) + async def ReadRemoteSettings(self, relation_unit_pairs): + ''' + relation_unit_pairs : typing.Sequence[~RelationUnitPair] + Returns -> typing.Sequence[~SettingsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ReadRemoteSettings', + version=9, + params=_params) + _params['relation-unit-pairs'] = relation_unit_pairs + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(SettingsResults) + async def ReadSettings(self, relation_units): + ''' + relation_units : typing.Sequence[~RelationUnit] + Returns -> typing.Sequence[~SettingsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='ReadSettings', + version=9, + params=_params) + _params['relation-units'] = relation_units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(UnitRefreshResults) + async def Refresh(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~UnitRefreshResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Refresh', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(RelationResults) + async def Relation(self, relation_units): + ''' + relation_units : typing.Sequence[~RelationUnit] + Returns -> typing.Sequence[~RelationResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Relation', + version=9, + params=_params) + _params['relation-units'] = relation_units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(RelationResults) + async def RelationById(self, relation_ids): + ''' + relation_ids : typing.Sequence[int] + Returns -> typing.Sequence[~RelationResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='RelationById', + version=9, + params=_params) + _params['relation-ids'] = relation_ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(RelationUnitStatusResults) + async def RelationsStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~RelationUnitStatusResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='RelationsStatus', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def RemoveStorageAttachments(self, ids): + ''' + ids : typing.Sequence[~StorageAttachmentId] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='RemoveStorageAttachments', + version=9, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def RequestReboot(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='RequestReboot', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ResolvedModeResults) + async def Resolved(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ResolvedModeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Resolved', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResult) + async def SLALevel(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), str] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='SLALevel', + version=9, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetAgentStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='SetAgentStatus', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetApplicationStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='SetApplicationStatus', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetCharmURL(self, entities): + ''' + entities : typing.Sequence[~EntityCharmURL] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='SetCharmURL', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetPodSpec(self, specs): + ''' + specs : typing.Sequence[~EntityString] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='SetPodSpec', + version=9, + params=_params) + _params['specs'] = specs + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetRelationStatus(self, args): + ''' + args : typing.Sequence[~RelationStatusArg] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='SetRelationStatus', + version=9, + params=_params) + _params['args'] = args + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='SetStatus', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetUnitStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='SetUnitStatus', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetUpgradeSeriesUnitStatus(self, params): + ''' + params : typing.Sequence[~UpgradeSeriesStatusParam] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='SetUpgradeSeriesUnitStatus', + version=9, + params=_params) + _params['params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetWorkloadVersion(self, entities): + ''' + entities : typing.Sequence[~EntityWorkloadVersion] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='SetWorkloadVersion', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(LifeResults) + async def StorageAttachmentLife(self, ids): + ''' + ids : typing.Sequence[~StorageAttachmentId] + Returns -> typing.Sequence[~LifeResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='StorageAttachmentLife', + version=9, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StorageAttachmentResults) + async def StorageAttachments(self, ids): + ''' + ids : typing.Sequence[~StorageAttachmentId] + Returns -> typing.Sequence[~StorageAttachmentResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='StorageAttachments', + version=9, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StatusResults) + async def UnitStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StatusResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='UnitStatus', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StorageAttachmentIdsResults) + async def UnitStorageAttachments(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StorageAttachmentIdsResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='UnitStorageAttachments', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def UpdateSettings(self, relation_units): + ''' + relation_units : typing.Sequence[~RelationUnitSettings] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='UpdateSettings', + version=9, + params=_params) + _params['relation-units'] = relation_units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(UpgradeSeriesStatusResults) + async def UpgradeSeriesUnitStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~UpgradeSeriesStatusResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='UpgradeSeriesUnitStatus', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def Watch(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='Watch', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchAPIHostPorts(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchAPIHostPorts', + version=9, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchActionNotifications(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchActionNotifications', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchConfigSettingsHash(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchConfigSettingsHash', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResult) + async def WatchForModelConfigChanges(self): + ''' + + Returns -> typing.Union[str, _ForwardRef('Error')] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchForModelConfigChanges', + version=9, + params=_params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchLeadershipSettings(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchLeadershipSettings', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchMeterStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchMeterStatus', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(RelationUnitsWatchResults) + async def WatchRelationUnits(self, relation_units): + ''' + relation_units : typing.Sequence[~RelationUnit] + Returns -> typing.Sequence[~RelationUnitsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchRelationUnits', + version=9, + params=_params) + _params['relation-units'] = relation_units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchStorageAttachments(self, ids): + ''' + ids : typing.Sequence[~StorageAttachmentId] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchStorageAttachments', + version=9, + params=_params) + _params['ids'] = ids + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchTrustConfigSettingsHash(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchTrustConfigSettingsHash', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchUnitAddressesHash(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchUnitAddressesHash', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchUnitRelations(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchUnitRelations', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchUnitStorageAttachments(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchUnitStorageAttachments', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(NotifyWatchResults) + async def WatchUpgradeSeriesNotifications(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WatchUpgradeSeriesNotifications', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def WorkloadVersion(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Uniter', + request='WorkloadVersion', + version=9, + params=_params) + _params['entities'] = entities + reply = await self.rpc(msg) + return reply + + diff --git a/modules/libjuju/juju/client/_definitions.py b/modules/libjuju/juju/client/_definitions.py new file mode 100644 index 0000000..2d25e39 --- /dev/null +++ b/modules/libjuju/juju/client/_definitions.py @@ -0,0 +1,11058 @@ +# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. +# Changes will be overwritten/lost when the file is regenerated. + +from juju.client.facade import ReturnMapping, Type + + +class APIHostPortsResult(Type): + _toSchema = {'servers': 'servers'} + _toPy = {'servers': 'servers'} + def __init__(self, servers=None, **unknown_fields): + ''' + servers : typing.Sequence[~HostPort] + ''' + self.servers = [HostPort.from_json(o) for o in servers or []] + + + +class Action(Type): + _toSchema = {'name': 'name', 'parameters': 'parameters', 'receiver': 'receiver', 'tag': 'tag'} + _toPy = {'name': 'name', 'parameters': 'parameters', 'receiver': 'receiver', 'tag': 'tag'} + def __init__(self, name=None, parameters=None, receiver=None, tag=None, **unknown_fields): + ''' + name : str + parameters : typing.Mapping[str, typing.Any] + receiver : str + tag : str + ''' + self.name = name + self.parameters = parameters + self.receiver = receiver + self.tag = tag + + + +class ActionExecutionResult(Type): + _toSchema = {'action_tag': 'action-tag', 'message': 'message', 'results': 'results', 'status': 'status'} + _toPy = {'action-tag': 'action_tag', 'message': 'message', 'results': 'results', 'status': 'status'} + def __init__(self, action_tag=None, message=None, results=None, status=None, **unknown_fields): + ''' + action_tag : str + message : str + results : typing.Mapping[str, typing.Any] + status : str + ''' + self.action_tag = action_tag + self.message = message + self.results = results + self.status = status + + + +class ActionExecutionResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ActionExecutionResult] + ''' + self.results = [ActionExecutionResult.from_json(o) for o in results or []] + + + +class ActionPruneArgs(Type): + _toSchema = {'max_history_mb': 'max-history-mb', 'max_history_time': 'max-history-time'} + _toPy = {'max-history-mb': 'max_history_mb', 'max-history-time': 'max_history_time'} + def __init__(self, max_history_mb=None, max_history_time=None, **unknown_fields): + ''' + max_history_mb : int + max_history_time : int + ''' + self.max_history_mb = max_history_mb + self.max_history_time = max_history_time + + + +class ActionResult(Type): + _toSchema = {'action': 'action', 'completed': 'completed', 'enqueued': 'enqueued', 'error': 'error', 'message': 'message', 'output': 'output', 'started': 'started', 'status': 'status'} + _toPy = {'action': 'action', 'completed': 'completed', 'enqueued': 'enqueued', 'error': 'error', 'message': 'message', 'output': 'output', 'started': 'started', 'status': 'status'} + def __init__(self, action=None, completed=None, enqueued=None, error=None, message=None, output=None, started=None, status=None, **unknown_fields): + ''' + action : Action + completed : str + enqueued : str + error : Error + message : str + output : typing.Mapping[str, typing.Any] + started : str + status : str + ''' + self.action = Action.from_json(action) if action else None + self.completed = completed + self.enqueued = enqueued + self.error = Error.from_json(error) if error else None + self.message = message + self.output = output + self.started = started + self.status = status + + + +class ActionResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ActionResult] + ''' + self.results = [ActionResult.from_json(o) for o in results or []] + + + +class ActionSpec(Type): + _toSchema = {'description': 'description', 'params': 'params'} + _toPy = {'description': 'description', 'params': 'params'} + def __init__(self, description=None, params=None, **unknown_fields): + ''' + description : str + params : typing.Mapping[str, typing.Any] + ''' + self.description = description + self.params = params + + + +class Actions(Type): + _toSchema = {'actions': 'actions'} + _toPy = {'actions': 'actions'} + def __init__(self, actions=None, **unknown_fields): + ''' + actions : typing.Sequence[~Action] + ''' + self.actions = [Action.from_json(o) for o in actions or []] + + + +class ActionsByName(Type): + _toSchema = {'actions': 'actions', 'error': 'error', 'name': 'name'} + _toPy = {'actions': 'actions', 'error': 'error', 'name': 'name'} + def __init__(self, actions=None, error=None, name=None, **unknown_fields): + ''' + actions : typing.Sequence[~ActionResult] + error : Error + name : str + ''' + self.actions = [ActionResult.from_json(o) for o in actions or []] + self.error = Error.from_json(error) if error else None + self.name = name + + + +class ActionsByNames(Type): + _toSchema = {'actions': 'actions'} + _toPy = {'actions': 'actions'} + def __init__(self, actions=None, **unknown_fields): + ''' + actions : typing.Sequence[~ActionsByName] + ''' + self.actions = [ActionsByName.from_json(o) for o in actions or []] + + + +class ActionsByReceiver(Type): + _toSchema = {'actions': 'actions', 'error': 'error', 'receiver': 'receiver'} + _toPy = {'actions': 'actions', 'error': 'error', 'receiver': 'receiver'} + def __init__(self, actions=None, error=None, receiver=None, **unknown_fields): + ''' + actions : typing.Sequence[~ActionResult] + error : Error + receiver : str + ''' + self.actions = [ActionResult.from_json(o) for o in actions or []] + self.error = Error.from_json(error) if error else None + self.receiver = receiver + + + +class ActionsByReceivers(Type): + _toSchema = {'actions': 'actions'} + _toPy = {'actions': 'actions'} + def __init__(self, actions=None, **unknown_fields): + ''' + actions : typing.Sequence[~ActionsByReceiver] + ''' + self.actions = [ActionsByReceiver.from_json(o) for o in actions or []] + + + +class AddApplicationOffer(Type): + _toSchema = {'application_description': 'application-description', 'application_name': 'application-name', 'endpoints': 'endpoints', 'model_tag': 'model-tag', 'offer_name': 'offer-name'} + _toPy = {'application-description': 'application_description', 'application-name': 'application_name', 'endpoints': 'endpoints', 'model-tag': 'model_tag', 'offer-name': 'offer_name'} + def __init__(self, application_description=None, application_name=None, endpoints=None, model_tag=None, offer_name=None, **unknown_fields): + ''' + application_description : str + application_name : str + endpoints : typing.Mapping[str, str] + model_tag : str + offer_name : str + ''' + self.application_description = application_description + self.application_name = application_name + self.endpoints = endpoints + self.model_tag = model_tag + self.offer_name = offer_name + + + +class AddApplicationOffers(Type): + _toSchema = {'offers': 'Offers'} + _toPy = {'Offers': 'offers'} + def __init__(self, offers=None, **unknown_fields): + ''' + offers : typing.Sequence[~AddApplicationOffer] + ''' + self.offers = [AddApplicationOffer.from_json(o) for o in offers or []] + + + +class AddApplicationUnits(Type): + _toSchema = {'application': 'application', 'num_units': 'num-units', 'placement': 'placement'} + _toPy = {'application': 'application', 'num-units': 'num_units', 'placement': 'placement'} + def __init__(self, application=None, num_units=None, placement=None, **unknown_fields): + ''' + application : str + num_units : int + placement : typing.Sequence[~Placement] + ''' + self.application = application + self.num_units = num_units + self.placement = [Placement.from_json(o) for o in placement or []] + + + +class AddApplicationUnitsResults(Type): + _toSchema = {'units': 'units'} + _toPy = {'units': 'units'} + def __init__(self, units=None, **unknown_fields): + ''' + units : typing.Sequence[str] + ''' + self.units = units + + + +class AddCharm(Type): + _toSchema = {'channel': 'channel', 'url': 'url'} + _toPy = {'channel': 'channel', 'url': 'url'} + def __init__(self, channel=None, url=None, **unknown_fields): + ''' + channel : str + url : str + ''' + self.channel = channel + self.url = url + + + +class AddCharmWithAuthorization(Type): + _toSchema = {'channel': 'channel', 'macaroon': 'macaroon', 'url': 'url'} + _toPy = {'channel': 'channel', 'macaroon': 'macaroon', 'url': 'url'} + def __init__(self, channel=None, macaroon=None, url=None, **unknown_fields): + ''' + channel : str + macaroon : Macaroon + url : str + ''' + self.channel = channel + self.macaroon = Macaroon.from_json(macaroon) if macaroon else None + self.url = url + + + +class AddCloudArgs(Type): + _toSchema = {'cloud': 'cloud', 'name': 'name'} + _toPy = {'cloud': 'cloud', 'name': 'name'} + def __init__(self, cloud=None, name=None, **unknown_fields): + ''' + cloud : Cloud + name : str + ''' + self.cloud = Cloud.from_json(cloud) if cloud else None + self.name = name + + + +class AddMachineParams(Type): + _toSchema = {'addresses': 'addresses', 'constraints': 'constraints', 'container_type': 'container-type', 'disks': 'disks', 'hardware_characteristics': 'hardware-characteristics', 'instance_id': 'instance-id', 'jobs': 'jobs', 'nonce': 'nonce', 'parent_id': 'parent-id', 'placement': 'placement', 'series': 'series'} + _toPy = {'addresses': 'addresses', 'constraints': 'constraints', 'container-type': 'container_type', 'disks': 'disks', 'hardware-characteristics': 'hardware_characteristics', 'instance-id': 'instance_id', 'jobs': 'jobs', 'nonce': 'nonce', 'parent-id': 'parent_id', 'placement': 'placement', 'series': 'series'} + def __init__(self, addresses=None, constraints=None, container_type=None, disks=None, hardware_characteristics=None, instance_id=None, jobs=None, nonce=None, parent_id=None, placement=None, series=None, **unknown_fields): + ''' + addresses : typing.Sequence[~Address] + constraints : Value + container_type : str + disks : typing.Sequence[~Constraints] + hardware_characteristics : HardwareCharacteristics + instance_id : str + jobs : typing.Sequence[str] + nonce : str + parent_id : str + placement : Placement + series : str + ''' + self.addresses = [Address.from_json(o) for o in addresses or []] + self.constraints = Value.from_json(constraints) if constraints else None + self.container_type = container_type + self.disks = [Constraints.from_json(o) for o in disks or []] + self.hardware_characteristics = HardwareCharacteristics.from_json(hardware_characteristics) if hardware_characteristics else None + self.instance_id = instance_id + self.jobs = jobs + self.nonce = nonce + self.parent_id = parent_id + self.placement = Placement.from_json(placement) if placement else None + self.series = series + + + +class AddMachines(Type): + _toSchema = {'params': 'params'} + _toPy = {'params': 'params'} + def __init__(self, params=None, **unknown_fields): + ''' + params : typing.Sequence[~AddMachineParams] + ''' + self.params = [AddMachineParams.from_json(o) for o in params or []] + + + +class AddMachinesResult(Type): + _toSchema = {'error': 'error', 'machine': 'machine'} + _toPy = {'error': 'error', 'machine': 'machine'} + def __init__(self, error=None, machine=None, **unknown_fields): + ''' + error : Error + machine : str + ''' + self.error = Error.from_json(error) if error else None + self.machine = machine + + + +class AddMachinesResults(Type): + _toSchema = {'machines': 'machines'} + _toPy = {'machines': 'machines'} + def __init__(self, machines=None, **unknown_fields): + ''' + machines : typing.Sequence[~AddMachinesResult] + ''' + self.machines = [AddMachinesResult.from_json(o) for o in machines or []] + + + +class AddPendingResourcesArgs(Type): + _toSchema = {'addcharmwithauthorization': 'AddCharmWithAuthorization', 'entity': 'Entity', 'resources': 'Resources'} + _toPy = {'AddCharmWithAuthorization': 'addcharmwithauthorization', 'Entity': 'entity', 'Resources': 'resources'} + def __init__(self, addcharmwithauthorization=None, entity=None, resources=None, **unknown_fields): + ''' + addcharmwithauthorization : AddCharmWithAuthorization + entity : Entity + resources : typing.Sequence[~CharmResource] + ''' + self.addcharmwithauthorization = AddCharmWithAuthorization.from_json(addcharmwithauthorization) if addcharmwithauthorization else None + self.entity = Entity.from_json(entity) if entity else None + self.resources = [CharmResource.from_json(o) for o in resources or []] + + + +class AddPendingResourcesResult(Type): + _toSchema = {'errorresult': 'ErrorResult', 'pending_ids': 'pending-ids'} + _toPy = {'ErrorResult': 'errorresult', 'pending-ids': 'pending_ids'} + def __init__(self, errorresult=None, pending_ids=None, **unknown_fields): + ''' + errorresult : ErrorResult + pending_ids : typing.Sequence[str] + ''' + self.errorresult = ErrorResult.from_json(errorresult) if errorresult else None + self.pending_ids = pending_ids + + + +class AddRelation(Type): + _toSchema = {'endpoints': 'endpoints'} + _toPy = {'endpoints': 'endpoints'} + def __init__(self, endpoints=None, **unknown_fields): + ''' + endpoints : typing.Sequence[str] + ''' + self.endpoints = endpoints + + + +class AddRelationResults(Type): + _toSchema = {'endpoints': 'endpoints'} + _toPy = {'endpoints': 'endpoints'} + def __init__(self, endpoints=None, **unknown_fields): + ''' + endpoints : typing.Mapping[str, ~CharmRelation] + ''' + self.endpoints = endpoints + + + +class AddStorageDetails(Type): + _toSchema = {'storage_tags': 'storage-tags'} + _toPy = {'storage-tags': 'storage_tags'} + def __init__(self, storage_tags=None, **unknown_fields): + ''' + storage_tags : typing.Sequence[str] + ''' + self.storage_tags = storage_tags + + + +class AddStorageResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : AddStorageDetails + ''' + self.error = Error.from_json(error) if error else None + self.result = AddStorageDetails.from_json(result) if result else None + + + +class AddStorageResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~AddStorageResult] + ''' + self.results = [AddStorageResult.from_json(o) for o in results or []] + + + +class AddSubnetParams(Type): + _toSchema = {'space_tag': 'space-tag', 'subnet_provider_id': 'subnet-provider-id', 'subnet_tag': 'subnet-tag', 'zones': 'zones'} + _toPy = {'space-tag': 'space_tag', 'subnet-provider-id': 'subnet_provider_id', 'subnet-tag': 'subnet_tag', 'zones': 'zones'} + def __init__(self, space_tag=None, subnet_provider_id=None, subnet_tag=None, zones=None, **unknown_fields): + ''' + space_tag : str + subnet_provider_id : str + subnet_tag : str + zones : typing.Sequence[str] + ''' + self.space_tag = space_tag + self.subnet_provider_id = subnet_provider_id + self.subnet_tag = subnet_tag + self.zones = zones + + + +class AddSubnetsParams(Type): + _toSchema = {'subnets': 'subnets'} + _toPy = {'subnets': 'subnets'} + def __init__(self, subnets=None, **unknown_fields): + ''' + subnets : typing.Sequence[~AddSubnetParams] + ''' + self.subnets = [AddSubnetParams.from_json(o) for o in subnets or []] + + + +class AddUser(Type): + _toSchema = {'display_name': 'display-name', 'password': 'password', 'username': 'username'} + _toPy = {'display-name': 'display_name', 'password': 'password', 'username': 'username'} + def __init__(self, display_name=None, password=None, username=None, **unknown_fields): + ''' + display_name : str + password : str + username : str + ''' + self.display_name = display_name + self.password = password + self.username = username + + + +class AddUserResult(Type): + _toSchema = {'error': 'error', 'secret_key': 'secret-key', 'tag': 'tag'} + _toPy = {'error': 'error', 'secret-key': 'secret_key', 'tag': 'tag'} + def __init__(self, error=None, secret_key=None, tag=None, **unknown_fields): + ''' + error : Error + secret_key : typing.Sequence[int] + tag : str + ''' + self.error = Error.from_json(error) if error else None + self.secret_key = secret_key + self.tag = tag + + + +class AddUserResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~AddUserResult] + ''' + self.results = [AddUserResult.from_json(o) for o in results or []] + + + +class AddUsers(Type): + _toSchema = {'users': 'users'} + _toPy = {'users': 'users'} + def __init__(self, users=None, **unknown_fields): + ''' + users : typing.Sequence[~AddUser] + ''' + self.users = [AddUser.from_json(o) for o in users or []] + + + +class Address(Type): + _toSchema = {'scope': 'scope', 'space_name': 'space-name', 'type_': 'type', 'value': 'value'} + _toPy = {'scope': 'scope', 'space-name': 'space_name', 'type': 'type_', 'value': 'value'} + def __init__(self, scope=None, space_name=None, type_=None, value=None, **unknown_fields): + ''' + scope : str + space_name : str + type_ : str + value : str + ''' + self.scope = scope + self.space_name = space_name + self.type_ = type_ + self.value = value + + + +class AdoptResourcesArgs(Type): + _toSchema = {'model_tag': 'model-tag', 'source_controller_version': 'source-controller-version'} + _toPy = {'model-tag': 'model_tag', 'source-controller-version': 'source_controller_version'} + def __init__(self, model_tag=None, source_controller_version=None, **unknown_fields): + ''' + model_tag : str + source_controller_version : Number + ''' + self.model_tag = model_tag + self.source_controller_version = Number.from_json(source_controller_version) if source_controller_version else None + + + +class AgentGetEntitiesResult(Type): + _toSchema = {'container_type': 'container-type', 'error': 'error', 'jobs': 'jobs', 'life': 'life'} + _toPy = {'container-type': 'container_type', 'error': 'error', 'jobs': 'jobs', 'life': 'life'} + def __init__(self, container_type=None, error=None, jobs=None, life=None, **unknown_fields): + ''' + container_type : str + error : Error + jobs : typing.Sequence[str] + life : str + ''' + self.container_type = container_type + self.error = Error.from_json(error) if error else None + self.jobs = jobs + self.life = life + + + +class AgentGetEntitiesResults(Type): + _toSchema = {'entities': 'entities'} + _toPy = {'entities': 'entities'} + def __init__(self, entities=None, **unknown_fields): + ''' + entities : typing.Sequence[~AgentGetEntitiesResult] + ''' + self.entities = [AgentGetEntitiesResult.from_json(o) for o in entities or []] + + + +class AgentVersionResult(Type): + _toSchema = {'version': 'version'} + _toPy = {'version': 'version'} + def __init__(self, version=None, **unknown_fields): + ''' + version : Number + ''' + self.version = Number.from_json(version) if version else None + + + +class AllWatcherId(Type): + _toSchema = {'watcher_id': 'watcher-id'} + _toPy = {'watcher-id': 'watcher_id'} + def __init__(self, watcher_id=None, **unknown_fields): + ''' + watcher_id : str + ''' + self.watcher_id = watcher_id + + + +class AllWatcherNextResults(Type): + _toSchema = {'deltas': 'deltas'} + _toPy = {'deltas': 'deltas'} + def __init__(self, deltas=None, **unknown_fields): + ''' + deltas : typing.Sequence[~Delta] + ''' + self.deltas = [Delta.from_json(o) for o in deltas or []] + + + +class AnnotationsGetResult(Type): + _toSchema = {'annotations': 'annotations', 'entity': 'entity', 'error': 'error'} + _toPy = {'annotations': 'annotations', 'entity': 'entity', 'error': 'error'} + def __init__(self, annotations=None, entity=None, error=None, **unknown_fields): + ''' + annotations : typing.Mapping[str, str] + entity : str + error : ErrorResult + ''' + self.annotations = annotations + self.entity = entity + self.error = ErrorResult.from_json(error) if error else None + + + +class AnnotationsGetResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~AnnotationsGetResult] + ''' + self.results = [AnnotationsGetResult.from_json(o) for o in results or []] + + + +class AnnotationsSet(Type): + _toSchema = {'annotations': 'annotations'} + _toPy = {'annotations': 'annotations'} + def __init__(self, annotations=None, **unknown_fields): + ''' + annotations : typing.Sequence[~EntityAnnotations] + ''' + self.annotations = [EntityAnnotations.from_json(o) for o in annotations or []] + + + +class ApplicationCharm(Type): + _toSchema = {'charm_modified_version': 'charm-modified-version', 'force_upgrade': 'force-upgrade', 'sha256': 'sha256', 'url': 'url'} + _toPy = {'charm-modified-version': 'charm_modified_version', 'force-upgrade': 'force_upgrade', 'sha256': 'sha256', 'url': 'url'} + def __init__(self, charm_modified_version=None, force_upgrade=None, sha256=None, url=None, **unknown_fields): + ''' + charm_modified_version : int + force_upgrade : bool + sha256 : str + url : str + ''' + self.charm_modified_version = charm_modified_version + self.force_upgrade = force_upgrade + self.sha256 = sha256 + self.url = url + + + +class ApplicationCharmActionsResult(Type): + _toSchema = {'actions': 'actions', 'application_tag': 'application-tag', 'error': 'error'} + _toPy = {'actions': 'actions', 'application-tag': 'application_tag', 'error': 'error'} + def __init__(self, actions=None, application_tag=None, error=None, **unknown_fields): + ''' + actions : typing.Mapping[str, ~ActionSpec] + application_tag : str + error : Error + ''' + self.actions = actions + self.application_tag = application_tag + self.error = Error.from_json(error) if error else None + + + +class ApplicationCharmRelations(Type): + _toSchema = {'application': 'application'} + _toPy = {'application': 'application'} + def __init__(self, application=None, **unknown_fields): + ''' + application : str + ''' + self.application = application + + + +class ApplicationCharmRelationsResults(Type): + _toSchema = {'charm_relations': 'charm-relations'} + _toPy = {'charm-relations': 'charm_relations'} + def __init__(self, charm_relations=None, **unknown_fields): + ''' + charm_relations : typing.Sequence[str] + ''' + self.charm_relations = charm_relations + + + +class ApplicationCharmResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : ApplicationCharm + ''' + self.error = Error.from_json(error) if error else None + self.result = ApplicationCharm.from_json(result) if result else None + + + +class ApplicationCharmResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ApplicationCharmResult] + ''' + self.results = [ApplicationCharmResult.from_json(o) for o in results or []] + + + +class ApplicationConfigSet(Type): + _toSchema = {'application': 'application', 'config': 'config'} + _toPy = {'application': 'application', 'config': 'config'} + def __init__(self, application=None, config=None, **unknown_fields): + ''' + application : str + config : typing.Mapping[str, str] + ''' + self.application = application + self.config = config + + + +class ApplicationConfigSetArgs(Type): + _toSchema = {'args': 'Args'} + _toPy = {'Args': 'args'} + def __init__(self, args=None, **unknown_fields): + ''' + args : typing.Sequence[~ApplicationConfigSet] + ''' + self.args = [ApplicationConfigSet.from_json(o) for o in args or []] + + + +class ApplicationConfigUnsetArgs(Type): + _toSchema = {'args': 'Args'} + _toPy = {'Args': 'args'} + def __init__(self, args=None, **unknown_fields): + ''' + args : typing.Sequence[~ApplicationUnset] + ''' + self.args = [ApplicationUnset.from_json(o) for o in args or []] + + + +class ApplicationConstraint(Type): + _toSchema = {'constraints': 'constraints', 'error': 'error'} + _toPy = {'constraints': 'constraints', 'error': 'error'} + def __init__(self, constraints=None, error=None, **unknown_fields): + ''' + constraints : Value + error : Error + ''' + self.constraints = Value.from_json(constraints) if constraints else None + self.error = Error.from_json(error) if error else None + + + +class ApplicationDeploy(Type): + _toSchema = {'application': 'application', 'attach_storage': 'attach-storage', 'channel': 'channel', 'charm_url': 'charm-url', 'config': 'config', 'config_yaml': 'config-yaml', 'constraints': 'constraints', 'devices': 'devices', 'endpoint_bindings': 'endpoint-bindings', 'num_units': 'num-units', 'placement': 'placement', 'policy': 'policy', 'resources': 'resources', 'series': 'series', 'storage': 'storage'} + _toPy = {'application': 'application', 'attach-storage': 'attach_storage', 'channel': 'channel', 'charm-url': 'charm_url', 'config': 'config', 'config-yaml': 'config_yaml', 'constraints': 'constraints', 'devices': 'devices', 'endpoint-bindings': 'endpoint_bindings', 'num-units': 'num_units', 'placement': 'placement', 'policy': 'policy', 'resources': 'resources', 'series': 'series', 'storage': 'storage'} + def __init__(self, application=None, attach_storage=None, channel=None, charm_url=None, config=None, config_yaml=None, constraints=None, devices=None, endpoint_bindings=None, num_units=None, placement=None, policy=None, resources=None, series=None, storage=None, **unknown_fields): + ''' + application : str + attach_storage : typing.Sequence[str] + channel : str + charm_url : str + config : typing.Mapping[str, str] + config_yaml : str + constraints : Value + devices : typing.Mapping[str, ~Constraints] + endpoint_bindings : typing.Mapping[str, str] + num_units : int + placement : typing.Sequence[~Placement] + policy : str + resources : typing.Mapping[str, str] + series : str + storage : typing.Mapping[str, ~Constraints] + ''' + self.application = application + self.attach_storage = attach_storage + self.channel = channel + self.charm_url = charm_url + self.config = config + self.config_yaml = config_yaml + self.constraints = Value.from_json(constraints) if constraints else None + self.devices = devices + self.endpoint_bindings = endpoint_bindings + self.num_units = num_units + self.placement = [Placement.from_json(o) for o in placement or []] + self.policy = policy + self.resources = resources + self.series = series + self.storage = storage + + + +class ApplicationDestroy(Type): + _toSchema = {'application': 'application'} + _toPy = {'application': 'application'} + def __init__(self, application=None, **unknown_fields): + ''' + application : str + ''' + self.application = application + + + +class ApplicationExpose(Type): + _toSchema = {'application': 'application'} + _toPy = {'application': 'application'} + def __init__(self, application=None, **unknown_fields): + ''' + application : str + ''' + self.application = application + + + +class ApplicationGet(Type): + _toSchema = {'application': 'application'} + _toPy = {'application': 'application'} + def __init__(self, application=None, **unknown_fields): + ''' + application : str + ''' + self.application = application + + + +class ApplicationGetConfigResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ConfigResult] + ''' + self.results = [ConfigResult.from_json(o) for o in results or []] + + + +class ApplicationGetConstraintsResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ApplicationConstraint] + ''' + self.results = [ApplicationConstraint.from_json(o) for o in results or []] + + + +class ApplicationGetResults(Type): + _toSchema = {'application': 'application', 'charm': 'charm', 'config': 'config', 'constraints': 'constraints', 'series': 'series'} + _toPy = {'application': 'application', 'charm': 'charm', 'config': 'config', 'constraints': 'constraints', 'series': 'series'} + def __init__(self, application=None, charm=None, config=None, constraints=None, series=None, **unknown_fields): + ''' + application : str + charm : str + config : typing.Mapping[str, typing.Any] + constraints : Value + series : str + ''' + self.application = application + self.charm = charm + self.config = config + self.constraints = Value.from_json(constraints) if constraints else None + self.series = series + + + +class ApplicationMetricCredential(Type): + _toSchema = {'application': 'application', 'metrics_credentials': 'metrics-credentials'} + _toPy = {'application': 'application', 'metrics-credentials': 'metrics_credentials'} + def __init__(self, application=None, metrics_credentials=None, **unknown_fields): + ''' + application : str + metrics_credentials : typing.Sequence[int] + ''' + self.application = application + self.metrics_credentials = metrics_credentials + + + +class ApplicationMetricCredentials(Type): + _toSchema = {'creds': 'creds'} + _toPy = {'creds': 'creds'} + def __init__(self, creds=None, **unknown_fields): + ''' + creds : typing.Sequence[~ApplicationMetricCredential] + ''' + self.creds = [ApplicationMetricCredential.from_json(o) for o in creds or []] + + + +class ApplicationOffer(Type): + _toSchema = {'access': 'access', 'application_description': 'application-description', 'bindings': 'bindings', 'endpoints': 'endpoints', 'offer_name': 'offer-name', 'offer_url': 'offer-url', 'source_model_tag': 'source-model-tag', 'spaces': 'spaces'} + _toPy = {'access': 'access', 'application-description': 'application_description', 'bindings': 'bindings', 'endpoints': 'endpoints', 'offer-name': 'offer_name', 'offer-url': 'offer_url', 'source-model-tag': 'source_model_tag', 'spaces': 'spaces'} + def __init__(self, access=None, application_description=None, bindings=None, endpoints=None, offer_name=None, offer_url=None, source_model_tag=None, spaces=None, **unknown_fields): + ''' + access : str + application_description : str + bindings : typing.Mapping[str, str] + endpoints : typing.Sequence[~RemoteEndpoint] + offer_name : str + offer_url : str + source_model_tag : str + spaces : typing.Sequence[~RemoteSpace] + ''' + self.access = access + self.application_description = application_description + self.bindings = bindings + self.endpoints = [RemoteEndpoint.from_json(o) for o in endpoints or []] + self.offer_name = offer_name + self.offer_url = offer_url + self.source_model_tag = source_model_tag + self.spaces = [RemoteSpace.from_json(o) for o in spaces or []] + + + +class ApplicationOfferAdminDetails(Type): + _toSchema = {'application_name': 'application-name', 'applicationofferdetails': 'ApplicationOfferDetails', 'charm_url': 'charm-url', 'connections': 'connections'} + _toPy = {'ApplicationOfferDetails': 'applicationofferdetails', 'application-name': 'application_name', 'charm-url': 'charm_url', 'connections': 'connections'} + def __init__(self, applicationofferdetails=None, application_name=None, charm_url=None, connections=None, **unknown_fields): + ''' + applicationofferdetails : ApplicationOfferDetails + application_name : str + charm_url : str + connections : typing.Sequence[~OfferConnection] + ''' + self.applicationofferdetails = ApplicationOfferDetails.from_json(applicationofferdetails) if applicationofferdetails else None + self.application_name = application_name + self.charm_url = charm_url + self.connections = [OfferConnection.from_json(o) for o in connections or []] + + + +class ApplicationOfferDetails(Type): + _toSchema = {'application_description': 'application-description', 'bindings': 'bindings', 'endpoints': 'endpoints', 'offer_name': 'offer-name', 'offer_url': 'offer-url', 'offer_uuid': 'offer-uuid', 'source_model_tag': 'source-model-tag', 'spaces': 'spaces', 'users': 'users'} + _toPy = {'application-description': 'application_description', 'bindings': 'bindings', 'endpoints': 'endpoints', 'offer-name': 'offer_name', 'offer-url': 'offer_url', 'offer-uuid': 'offer_uuid', 'source-model-tag': 'source_model_tag', 'spaces': 'spaces', 'users': 'users'} + def __init__(self, application_description=None, bindings=None, endpoints=None, offer_name=None, offer_url=None, offer_uuid=None, source_model_tag=None, spaces=None, users=None, **unknown_fields): + ''' + application_description : str + bindings : typing.Mapping[str, str] + endpoints : typing.Sequence[~RemoteEndpoint] + offer_name : str + offer_url : str + offer_uuid : str + source_model_tag : str + spaces : typing.Sequence[~RemoteSpace] + users : typing.Sequence[~OfferUserDetails] + ''' + self.application_description = application_description + self.bindings = bindings + self.endpoints = [RemoteEndpoint.from_json(o) for o in endpoints or []] + self.offer_name = offer_name + self.offer_url = offer_url + self.offer_uuid = offer_uuid + self.source_model_tag = source_model_tag + self.spaces = [RemoteSpace.from_json(o) for o in spaces or []] + self.users = [OfferUserDetails.from_json(o) for o in users or []] + + + +class ApplicationOfferResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : ApplicationOfferAdminDetails + ''' + self.error = Error.from_json(error) if error else None + self.result = ApplicationOfferAdminDetails.from_json(result) if result else None + + + +class ApplicationOfferStatus(Type): + _toSchema = {'active_connected_count': 'active-connected-count', 'application_name': 'application-name', 'charm': 'charm', 'endpoints': 'endpoints', 'err': 'err', 'offer_name': 'offer-name', 'total_connected_count': 'total-connected-count'} + _toPy = {'active-connected-count': 'active_connected_count', 'application-name': 'application_name', 'charm': 'charm', 'endpoints': 'endpoints', 'err': 'err', 'offer-name': 'offer_name', 'total-connected-count': 'total_connected_count'} + def __init__(self, active_connected_count=None, application_name=None, charm=None, endpoints=None, err=None, offer_name=None, total_connected_count=None, **unknown_fields): + ''' + active_connected_count : int + application_name : str + charm : str + endpoints : typing.Mapping[str, ~RemoteEndpoint] + err : typing.Mapping[str, typing.Any] + offer_name : str + total_connected_count : int + ''' + self.active_connected_count = active_connected_count + self.application_name = application_name + self.charm = charm + self.endpoints = endpoints + self.err = err + self.offer_name = offer_name + self.total_connected_count = total_connected_count + + + +class ApplicationOffersResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ApplicationOfferResult] + ''' + self.results = [ApplicationOfferResult.from_json(o) for o in results or []] + + + +class ApplicationRelationsChange(Type): + _toSchema = {'changed': 'changed', 'removed': 'removed'} + _toPy = {'changed': 'changed', 'removed': 'removed'} + def __init__(self, changed=None, removed=None, **unknown_fields): + ''' + changed : typing.Sequence[~RelationChange] + removed : typing.Sequence[int] + ''' + self.changed = [RelationChange.from_json(o) for o in changed or []] + self.removed = removed + + + +class ApplicationRelationsWatchResult(Type): + _toSchema = {'applicationrelationswatcherid': 'ApplicationRelationsWatcherId', 'changes': 'changes', 'error': 'error'} + _toPy = {'ApplicationRelationsWatcherId': 'applicationrelationswatcherid', 'changes': 'changes', 'error': 'error'} + def __init__(self, applicationrelationswatcherid=None, changes=None, error=None, **unknown_fields): + ''' + applicationrelationswatcherid : str + changes : ApplicationRelationsChange + error : Error + ''' + self.applicationrelationswatcherid = applicationrelationswatcherid + self.changes = ApplicationRelationsChange.from_json(changes) if changes else None + self.error = Error.from_json(error) if error else None + + + +class ApplicationSet(Type): + _toSchema = {'application': 'application', 'options': 'options'} + _toPy = {'application': 'application', 'options': 'options'} + def __init__(self, application=None, options=None, **unknown_fields): + ''' + application : str + options : typing.Mapping[str, str] + ''' + self.application = application + self.options = options + + + +class ApplicationSetCharm(Type): + _toSchema = {'application': 'application', 'channel': 'channel', 'charm_url': 'charm-url', 'config_settings': 'config-settings', 'config_settings_yaml': 'config-settings-yaml', 'force_series': 'force-series', 'force_units': 'force-units', 'resource_ids': 'resource-ids', 'storage_constraints': 'storage-constraints'} + _toPy = {'application': 'application', 'channel': 'channel', 'charm-url': 'charm_url', 'config-settings': 'config_settings', 'config-settings-yaml': 'config_settings_yaml', 'force-series': 'force_series', 'force-units': 'force_units', 'resource-ids': 'resource_ids', 'storage-constraints': 'storage_constraints'} + def __init__(self, application=None, channel=None, charm_url=None, config_settings=None, config_settings_yaml=None, force_series=None, force_units=None, resource_ids=None, storage_constraints=None, **unknown_fields): + ''' + application : str + channel : str + charm_url : str + config_settings : typing.Mapping[str, str] + config_settings_yaml : str + force_series : bool + force_units : bool + resource_ids : typing.Mapping[str, str] + storage_constraints : typing.Mapping[str, ~StorageConstraints] + ''' + self.application = application + self.channel = channel + self.charm_url = charm_url + self.config_settings = config_settings + self.config_settings_yaml = config_settings_yaml + self.force_series = force_series + self.force_units = force_units + self.resource_ids = resource_ids + self.storage_constraints = storage_constraints + + + +class ApplicationSetCharmProfile(Type): + _toSchema = {'application': 'application', 'charm_url': 'charm-url'} + _toPy = {'application': 'application', 'charm-url': 'charm_url'} + def __init__(self, application=None, charm_url=None, **unknown_fields): + ''' + application : str + charm_url : str + ''' + self.application = application + self.charm_url = charm_url + + + +class ApplicationStatus(Type): + _toSchema = {'can_upgrade_to': 'can-upgrade-to', 'charm': 'charm', 'err': 'err', 'exposed': 'exposed', 'life': 'life', 'meter_statuses': 'meter-statuses', 'relations': 'relations', 'series': 'series', 'status': 'status', 'subordinate_to': 'subordinate-to', 'units': 'units', 'workload_version': 'workload-version'} + _toPy = {'can-upgrade-to': 'can_upgrade_to', 'charm': 'charm', 'err': 'err', 'exposed': 'exposed', 'life': 'life', 'meter-statuses': 'meter_statuses', 'relations': 'relations', 'series': 'series', 'status': 'status', 'subordinate-to': 'subordinate_to', 'units': 'units', 'workload-version': 'workload_version'} + def __init__(self, can_upgrade_to=None, charm=None, err=None, exposed=None, life=None, meter_statuses=None, relations=None, series=None, status=None, subordinate_to=None, units=None, workload_version=None, **unknown_fields): + ''' + can_upgrade_to : str + charm : str + err : typing.Mapping[str, typing.Any] + exposed : bool + life : str + meter_statuses : typing.Mapping[str, ~MeterStatus] + relations : typing.Sequence[str] + series : str + status : DetailedStatus + subordinate_to : typing.Sequence[str] + units : typing.Mapping[str, ~UnitStatus] + workload_version : str + ''' + self.can_upgrade_to = can_upgrade_to + self.charm = charm + self.err = err + self.exposed = exposed + self.life = life + self.meter_statuses = meter_statuses + self.relations = relations + self.series = series + self.status = DetailedStatus.from_json(status) if status else None + self.subordinate_to = subordinate_to + self.units = units + self.workload_version = workload_version + + + +class ApplicationStatusResult(Type): + _toSchema = {'application': 'application', 'error': 'error', 'units': 'units'} + _toPy = {'application': 'application', 'error': 'error', 'units': 'units'} + def __init__(self, application=None, error=None, units=None, **unknown_fields): + ''' + application : StatusResult + error : Error + units : typing.Mapping[str, ~StatusResult] + ''' + self.application = StatusResult.from_json(application) if application else None + self.error = Error.from_json(error) if error else None + self.units = units + + + +class ApplicationStatusResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ApplicationStatusResult] + ''' + self.results = [ApplicationStatusResult.from_json(o) for o in results or []] + + + +class ApplicationTag(Type): + _toSchema = {'name': 'Name'} + _toPy = {'Name': 'name'} + def __init__(self, name=None, **unknown_fields): + ''' + name : str + ''' + self.name = name + + + +class ApplicationURLs(Type): + _toSchema = {'application_urls': 'application-urls'} + _toPy = {'application-urls': 'application_urls'} + def __init__(self, application_urls=None, **unknown_fields): + ''' + application_urls : typing.Sequence[str] + ''' + self.application_urls = application_urls + + + +class ApplicationUnexpose(Type): + _toSchema = {'application': 'application'} + _toPy = {'application': 'application'} + def __init__(self, application=None, **unknown_fields): + ''' + application : str + ''' + self.application = application + + + +class ApplicationUnitParams(Type): + _toSchema = {'address': 'address', 'data': 'data', 'filesystem_info': 'filesystem-info', 'info': 'info', 'ports': 'ports', 'provider_id': 'provider-id', 'status': 'status', 'unit_tag': 'unit-tag'} + _toPy = {'address': 'address', 'data': 'data', 'filesystem-info': 'filesystem_info', 'info': 'info', 'ports': 'ports', 'provider-id': 'provider_id', 'status': 'status', 'unit-tag': 'unit_tag'} + def __init__(self, address=None, data=None, filesystem_info=None, info=None, ports=None, provider_id=None, status=None, unit_tag=None, **unknown_fields): + ''' + address : str + data : typing.Mapping[str, typing.Any] + filesystem_info : typing.Sequence[~KubernetesFilesystemInfo] + info : str + ports : typing.Sequence[str] + provider_id : str + status : str + unit_tag : str + ''' + self.address = address + self.data = data + self.filesystem_info = [KubernetesFilesystemInfo.from_json(o) for o in filesystem_info or []] + self.info = info + self.ports = ports + self.provider_id = provider_id + self.status = status + self.unit_tag = unit_tag + + + +class ApplicationUnset(Type): + _toSchema = {'application': 'application', 'options': 'options'} + _toPy = {'application': 'application', 'options': 'options'} + def __init__(self, application=None, options=None, **unknown_fields): + ''' + application : str + options : typing.Sequence[str] + ''' + self.application = application + self.options = options + + + +class ApplicationUpdate(Type): + _toSchema = {'application': 'application', 'charm_url': 'charm-url', 'constraints': 'constraints', 'force_charm_url': 'force-charm-url', 'force_series': 'force-series', 'min_units': 'min-units', 'settings': 'settings', 'settings_yaml': 'settings-yaml'} + _toPy = {'application': 'application', 'charm-url': 'charm_url', 'constraints': 'constraints', 'force-charm-url': 'force_charm_url', 'force-series': 'force_series', 'min-units': 'min_units', 'settings': 'settings', 'settings-yaml': 'settings_yaml'} + def __init__(self, application=None, charm_url=None, constraints=None, force_charm_url=None, force_series=None, min_units=None, settings=None, settings_yaml=None, **unknown_fields): + ''' + application : str + charm_url : str + constraints : Value + force_charm_url : bool + force_series : bool + min_units : int + settings : typing.Mapping[str, str] + settings_yaml : str + ''' + self.application = application + self.charm_url = charm_url + self.constraints = Value.from_json(constraints) if constraints else None + self.force_charm_url = force_charm_url + self.force_series = force_series + self.min_units = min_units + self.settings = settings + self.settings_yaml = settings_yaml + + + +class ApplicationsCharmActionsResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ApplicationCharmActionsResult] + ''' + self.results = [ApplicationCharmActionsResult.from_json(o) for o in results or []] + + + +class ApplicationsDeploy(Type): + _toSchema = {'applications': 'applications'} + _toPy = {'applications': 'applications'} + def __init__(self, applications=None, **unknown_fields): + ''' + applications : typing.Sequence[~ApplicationDeploy] + ''' + self.applications = [ApplicationDeploy.from_json(o) for o in applications or []] + + + +class BackupsCreateArgs(Type): + _toSchema = {'notes': 'notes'} + _toPy = {'notes': 'notes'} + def __init__(self, notes=None, **unknown_fields): + ''' + notes : str + ''' + self.notes = notes + + + +class BackupsInfoArgs(Type): + _toSchema = {'id_': 'id'} + _toPy = {'id': 'id_'} + def __init__(self, id_=None, **unknown_fields): + ''' + id_ : str + ''' + self.id_ = id_ + + + +class BackupsListArgs(Type): + _toSchema = {} + _toPy = {} + def __init__(self, **unknown_fields): + ''' + + ''' + pass + + + +class BackupsListResult(Type): + _toSchema = {'list_': 'list'} + _toPy = {'list': 'list_'} + def __init__(self, list_=None, **unknown_fields): + ''' + list_ : typing.Sequence[~BackupsMetadataResult] + ''' + self.list_ = [BackupsMetadataResult.from_json(o) for o in list_ or []] + + + +class BackupsMetadataResult(Type): + _toSchema = {'ca_cert': 'ca-cert', 'ca_private_key': 'ca-private-key', 'checksum': 'checksum', 'checksum_format': 'checksum-format', 'finished': 'finished', 'hostname': 'hostname', 'id_': 'id', 'machine': 'machine', 'model': 'model', 'notes': 'notes', 'series': 'series', 'size': 'size', 'started': 'started', 'stored': 'stored', 'version': 'version'} + _toPy = {'ca-cert': 'ca_cert', 'ca-private-key': 'ca_private_key', 'checksum': 'checksum', 'checksum-format': 'checksum_format', 'finished': 'finished', 'hostname': 'hostname', 'id': 'id_', 'machine': 'machine', 'model': 'model', 'notes': 'notes', 'series': 'series', 'size': 'size', 'started': 'started', 'stored': 'stored', 'version': 'version'} + def __init__(self, ca_cert=None, ca_private_key=None, checksum=None, checksum_format=None, finished=None, hostname=None, id_=None, machine=None, model=None, notes=None, series=None, size=None, started=None, stored=None, version=None, **unknown_fields): + ''' + ca_cert : str + ca_private_key : str + checksum : str + checksum_format : str + finished : str + hostname : str + id_ : str + machine : str + model : str + notes : str + series : str + size : int + started : str + stored : str + version : Number + ''' + self.ca_cert = ca_cert + self.ca_private_key = ca_private_key + self.checksum = checksum + self.checksum_format = checksum_format + self.finished = finished + self.hostname = hostname + self.id_ = id_ + self.machine = machine + self.model = model + self.notes = notes + self.series = series + self.size = size + self.started = started + self.stored = stored + self.version = Number.from_json(version) if version else None + + + +class BackupsRemoveArgs(Type): + _toSchema = {'id_': 'id'} + _toPy = {'id': 'id_'} + def __init__(self, id_=None, **unknown_fields): + ''' + id_ : str + ''' + self.id_ = id_ + + + +class Binary(Type): + _toSchema = {'arch': 'Arch', 'number': 'Number', 'series': 'Series'} + _toPy = {'Arch': 'arch', 'Number': 'number', 'Series': 'series'} + def __init__(self, arch=None, number=None, series=None, **unknown_fields): + ''' + arch : str + number : Number + series : str + ''' + self.arch = arch + self.number = Number.from_json(number) if number else None + self.series = series + + + +class Block(Type): + _toSchema = {'id_': 'id', 'message': 'message', 'tag': 'tag', 'type_': 'type'} + _toPy = {'id': 'id_', 'message': 'message', 'tag': 'tag', 'type': 'type_'} + def __init__(self, id_=None, message=None, tag=None, type_=None, **unknown_fields): + ''' + id_ : str + message : str + tag : str + type_ : str + ''' + self.id_ = id_ + self.message = message + self.tag = tag + self.type_ = type_ + + + +class BlockDevice(Type): + _toSchema = {'busaddress': 'BusAddress', 'devicelinks': 'DeviceLinks', 'devicename': 'DeviceName', 'filesystemtype': 'FilesystemType', 'hardwareid': 'HardwareId', 'inuse': 'InUse', 'label': 'Label', 'mountpoint': 'MountPoint', 'size': 'Size', 'uuid': 'UUID'} + _toPy = {'BusAddress': 'busaddress', 'DeviceLinks': 'devicelinks', 'DeviceName': 'devicename', 'FilesystemType': 'filesystemtype', 'HardwareId': 'hardwareid', 'InUse': 'inuse', 'Label': 'label', 'MountPoint': 'mountpoint', 'Size': 'size', 'UUID': 'uuid'} + def __init__(self, busaddress=None, devicelinks=None, devicename=None, filesystemtype=None, hardwareid=None, inuse=None, label=None, mountpoint=None, size=None, uuid=None, **unknown_fields): + ''' + busaddress : str + devicelinks : typing.Sequence[str] + devicename : str + filesystemtype : str + hardwareid : str + inuse : bool + label : str + mountpoint : str + size : int + uuid : str + ''' + self.busaddress = busaddress + self.devicelinks = devicelinks + self.devicename = devicename + self.filesystemtype = filesystemtype + self.hardwareid = hardwareid + self.inuse = inuse + self.label = label + self.mountpoint = mountpoint + self.size = size + self.uuid = uuid + + + +class BlockDeviceResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : BlockDevice + ''' + self.error = Error.from_json(error) if error else None + self.result = BlockDevice.from_json(result) if result else None + + + +class BlockDeviceResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~BlockDeviceResult] + ''' + self.results = [BlockDeviceResult.from_json(o) for o in results or []] + + + +class BlockResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : Block + ''' + self.error = Error.from_json(error) if error else None + self.result = Block.from_json(result) if result else None + + + +class BlockResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~BlockResult] + ''' + self.results = [BlockResult.from_json(o) for o in results or []] + + + +class BlockSwitchParams(Type): + _toSchema = {'message': 'message', 'type_': 'type'} + _toPy = {'message': 'message', 'type': 'type_'} + def __init__(self, message=None, type_=None, **unknown_fields): + ''' + message : str + type_ : str + ''' + self.message = message + self.type_ = type_ + + + +class BoolResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : bool + ''' + self.error = Error.from_json(error) if error else None + self.result = result + + + +class BoolResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~BoolResult] + ''' + self.results = [BoolResult.from_json(o) for o in results or []] + + + +class BulkImportStorageParams(Type): + _toSchema = {'storage': 'storage'} + _toPy = {'storage': 'storage'} + def __init__(self, storage=None, **unknown_fields): + ''' + storage : typing.Sequence[~ImportStorageParams] + ''' + self.storage = [ImportStorageParams.from_json(o) for o in storage or []] + + + +class BundleChange(Type): + _toSchema = {'args': 'args', 'id_': 'id', 'method': 'method', 'requires': 'requires'} + _toPy = {'args': 'args', 'id': 'id_', 'method': 'method', 'requires': 'requires'} + def __init__(self, args=None, id_=None, method=None, requires=None, **unknown_fields): + ''' + args : typing.Sequence[typing.Any] + id_ : str + method : str + requires : typing.Sequence[str] + ''' + self.args = args + self.id_ = id_ + self.method = method + self.requires = requires + + + +class BundleChangesParams(Type): + _toSchema = {'yaml': 'yaml'} + _toPy = {'yaml': 'yaml'} + def __init__(self, yaml=None, **unknown_fields): + ''' + yaml : str + ''' + self.yaml = yaml + + + +class BundleChangesResults(Type): + _toSchema = {'changes': 'changes', 'errors': 'errors'} + _toPy = {'changes': 'changes', 'errors': 'errors'} + def __init__(self, changes=None, errors=None, **unknown_fields): + ''' + changes : typing.Sequence[~BundleChange] + errors : typing.Sequence[str] + ''' + self.changes = [BundleChange.from_json(o) for o in changes or []] + self.errors = errors + + + +class BytesResult(Type): + _toSchema = {'result': 'result'} + _toPy = {'result': 'result'} + def __init__(self, result=None, **unknown_fields): + ''' + result : typing.Sequence[int] + ''' + self.result = result + + + +class ChangeModelCredentialParams(Type): + _toSchema = {'credential_tag': 'credential-tag', 'model_tag': 'model-tag'} + _toPy = {'credential-tag': 'credential_tag', 'model-tag': 'model_tag'} + def __init__(self, credential_tag=None, model_tag=None, **unknown_fields): + ''' + credential_tag : str + model_tag : str + ''' + self.credential_tag = credential_tag + self.model_tag = model_tag + + + +class ChangeModelCredentialsParams(Type): + _toSchema = {'model_credentials': 'model-credentials'} + _toPy = {'model-credentials': 'model_credentials'} + def __init__(self, model_credentials=None, **unknown_fields): + ''' + model_credentials : typing.Sequence[~ChangeModelCredentialParams] + ''' + self.model_credentials = [ChangeModelCredentialParams.from_json(o) for o in model_credentials or []] + + + +class CharmActionSpec(Type): + _toSchema = {'description': 'description', 'params': 'params'} + _toPy = {'description': 'description', 'params': 'params'} + def __init__(self, description=None, params=None, **unknown_fields): + ''' + description : str + params : typing.Mapping[str, typing.Any] + ''' + self.description = description + self.params = params + + + +class CharmActions(Type): + _toSchema = {'specs': 'specs'} + _toPy = {'specs': 'specs'} + def __init__(self, specs=None, **unknown_fields): + ''' + specs : typing.Mapping[str, ~CharmActionSpec] + ''' + self.specs = specs + + + +class CharmDevice(Type): + _toSchema = {'countmax': 'CountMax', 'countmin': 'CountMin', 'description': 'Description', 'name': 'Name', 'type_': 'Type'} + _toPy = {'CountMax': 'countmax', 'CountMin': 'countmin', 'Description': 'description', 'Name': 'name', 'Type': 'type_'} + def __init__(self, countmax=None, countmin=None, description=None, name=None, type_=None, **unknown_fields): + ''' + countmax : int + countmin : int + description : str + name : str + type_ : str + ''' + self.countmax = countmax + self.countmin = countmin + self.description = description + self.name = name + self.type_ = type_ + + + +class CharmInfo(Type): + _toSchema = {'actions': 'actions', 'config': 'config', 'meta': 'meta', 'metrics': 'metrics', 'revision': 'revision', 'url': 'url'} + _toPy = {'actions': 'actions', 'config': 'config', 'meta': 'meta', 'metrics': 'metrics', 'revision': 'revision', 'url': 'url'} + def __init__(self, actions=None, config=None, meta=None, metrics=None, revision=None, url=None, **unknown_fields): + ''' + actions : CharmActions + config : typing.Mapping[str, ~CharmOption] + meta : CharmMeta + metrics : CharmMetrics + revision : int + url : str + ''' + self.actions = CharmActions.from_json(actions) if actions else None + self.config = config + self.meta = CharmMeta.from_json(meta) if meta else None + self.metrics = CharmMetrics.from_json(metrics) if metrics else None + self.revision = revision + self.url = url + + + +class CharmLXDProfile(Type): + _toSchema = {'config': 'config', 'description': 'description', 'devices': 'devices'} + _toPy = {'config': 'config', 'description': 'description', 'devices': 'devices'} + def __init__(self, config=None, description=None, devices=None, **unknown_fields): + ''' + config : typing.Mapping[str, str] + description : str + devices : typing.Mapping[str, typing.Any] + ''' + self.config = config + self.description = description + self.devices = devices + + + +class CharmMeta(Type): + _toSchema = {'categories': 'categories', 'description': 'description', 'extra_bindings': 'extra-bindings', 'min_juju_version': 'min-juju-version', 'name': 'name', 'payload_classes': 'payload-classes', 'peers': 'peers', 'provides': 'provides', 'requires': 'requires', 'resources': 'resources', 'series': 'series', 'storage': 'storage', 'subordinate': 'subordinate', 'summary': 'summary', 'tags': 'tags', 'terms': 'terms'} + _toPy = {'categories': 'categories', 'description': 'description', 'extra-bindings': 'extra_bindings', 'min-juju-version': 'min_juju_version', 'name': 'name', 'payload-classes': 'payload_classes', 'peers': 'peers', 'provides': 'provides', 'requires': 'requires', 'resources': 'resources', 'series': 'series', 'storage': 'storage', 'subordinate': 'subordinate', 'summary': 'summary', 'tags': 'tags', 'terms': 'terms'} + def __init__(self, categories=None, description=None, extra_bindings=None, min_juju_version=None, name=None, payload_classes=None, peers=None, provides=None, requires=None, resources=None, series=None, storage=None, subordinate=None, summary=None, tags=None, terms=None, **unknown_fields): + ''' + categories : typing.Sequence[str] + description : str + extra_bindings : typing.Mapping[str, str] + min_juju_version : str + name : str + payload_classes : typing.Mapping[str, ~CharmPayloadClass] + peers : typing.Mapping[str, ~CharmRelation] + provides : typing.Mapping[str, ~CharmRelation] + requires : typing.Mapping[str, ~CharmRelation] + resources : typing.Mapping[str, ~CharmResourceMeta] + series : typing.Sequence[str] + storage : typing.Mapping[str, ~CharmStorage] + subordinate : bool + summary : str + tags : typing.Sequence[str] + terms : typing.Sequence[str] + ''' + self.categories = categories + self.description = description + self.extra_bindings = extra_bindings + self.min_juju_version = min_juju_version + self.name = name + self.payload_classes = payload_classes + self.peers = peers + self.provides = provides + self.requires = requires + self.resources = resources + self.series = series + self.storage = storage + self.subordinate = subordinate + self.summary = summary + self.tags = tags + self.terms = terms + + + +class CharmMetric(Type): + _toSchema = {'description': 'description', 'type_': 'type'} + _toPy = {'description': 'description', 'type': 'type_'} + def __init__(self, description=None, type_=None, **unknown_fields): + ''' + description : str + type_ : str + ''' + self.description = description + self.type_ = type_ + + + +class CharmMetrics(Type): + _toSchema = {'metrics': 'metrics', 'plan': 'plan'} + _toPy = {'metrics': 'metrics', 'plan': 'plan'} + def __init__(self, metrics=None, plan=None, **unknown_fields): + ''' + metrics : typing.Mapping[str, ~CharmMetric] + plan : CharmPlan + ''' + self.metrics = metrics + self.plan = CharmPlan.from_json(plan) if plan else None + + + +class CharmOption(Type): + _toSchema = {'default': 'default', 'description': 'description', 'type_': 'type'} + _toPy = {'default': 'default', 'description': 'description', 'type': 'type_'} + def __init__(self, default=None, description=None, type_=None, **unknown_fields): + ''' + default : typing.Mapping[str, typing.Any] + description : str + type_ : str + ''' + self.default = default + self.description = description + self.type_ = type_ + + + +class CharmPayloadClass(Type): + _toSchema = {'name': 'name', 'type_': 'type'} + _toPy = {'name': 'name', 'type': 'type_'} + def __init__(self, name=None, type_=None, **unknown_fields): + ''' + name : str + type_ : str + ''' + self.name = name + self.type_ = type_ + + + +class CharmPlan(Type): + _toSchema = {'required': 'required'} + _toPy = {'required': 'required'} + def __init__(self, required=None, **unknown_fields): + ''' + required : bool + ''' + self.required = required + + + +class CharmRelation(Type): + _toSchema = {'interface': 'interface', 'limit': 'limit', 'name': 'name', 'optional': 'optional', 'role': 'role', 'scope': 'scope'} + _toPy = {'interface': 'interface', 'limit': 'limit', 'name': 'name', 'optional': 'optional', 'role': 'role', 'scope': 'scope'} + def __init__(self, interface=None, limit=None, name=None, optional=None, role=None, scope=None, **unknown_fields): + ''' + interface : str + limit : int + name : str + optional : bool + role : str + scope : str + ''' + self.interface = interface + self.limit = limit + self.name = name + self.optional = optional + self.role = role + self.scope = scope + + + +class CharmResource(Type): + _toSchema = {'description': 'description', 'fingerprint': 'fingerprint', 'name': 'name', 'origin': 'origin', 'path': 'path', 'revision': 'revision', 'size': 'size', 'type_': 'type'} + _toPy = {'description': 'description', 'fingerprint': 'fingerprint', 'name': 'name', 'origin': 'origin', 'path': 'path', 'revision': 'revision', 'size': 'size', 'type': 'type_'} + def __init__(self, description=None, fingerprint=None, name=None, origin=None, path=None, revision=None, size=None, type_=None, **unknown_fields): + ''' + description : str + fingerprint : typing.Sequence[int] + name : str + origin : str + path : str + revision : int + size : int + type_ : str + ''' + self.description = description + self.fingerprint = fingerprint + self.name = name + self.origin = origin + self.path = path + self.revision = revision + self.size = size + self.type_ = type_ + + + +class CharmResourceMeta(Type): + _toSchema = {'description': 'description', 'name': 'name', 'path': 'path', 'type_': 'type'} + _toPy = {'description': 'description', 'name': 'name', 'path': 'path', 'type': 'type_'} + def __init__(self, description=None, name=None, path=None, type_=None, **unknown_fields): + ''' + description : str + name : str + path : str + type_ : str + ''' + self.description = description + self.name = name + self.path = path + self.type_ = type_ + + + +class CharmStorage(Type): + _toSchema = {'count_max': 'count-max', 'count_min': 'count-min', 'description': 'description', 'location': 'location', 'minimum_size': 'minimum-size', 'name': 'name', 'properties': 'properties', 'read_only': 'read-only', 'shared': 'shared', 'type_': 'type'} + _toPy = {'count-max': 'count_max', 'count-min': 'count_min', 'description': 'description', 'location': 'location', 'minimum-size': 'minimum_size', 'name': 'name', 'properties': 'properties', 'read-only': 'read_only', 'shared': 'shared', 'type': 'type_'} + def __init__(self, count_max=None, count_min=None, description=None, location=None, minimum_size=None, name=None, properties=None, read_only=None, shared=None, type_=None, **unknown_fields): + ''' + count_max : int + count_min : int + description : str + location : str + minimum_size : int + name : str + properties : typing.Sequence[str] + read_only : bool + shared : bool + type_ : str + ''' + self.count_max = count_max + self.count_min = count_min + self.description = description + self.location = location + self.minimum_size = minimum_size + self.name = name + self.properties = properties + self.read_only = read_only + self.shared = shared + self.type_ = type_ + + + +class CharmURL(Type): + _toSchema = {'url': 'url'} + _toPy = {'url': 'url'} + def __init__(self, url=None, **unknown_fields): + ''' + url : str + ''' + self.url = url + + + +class CharmURLs(Type): + _toSchema = {'urls': 'urls'} + _toPy = {'urls': 'urls'} + def __init__(self, urls=None, **unknown_fields): + ''' + urls : typing.Sequence[~CharmURL] + ''' + self.urls = [CharmURL.from_json(o) for o in urls or []] + + + +class CharmsList(Type): + _toSchema = {'names': 'names'} + _toPy = {'names': 'names'} + def __init__(self, names=None, **unknown_fields): + ''' + names : typing.Sequence[str] + ''' + self.names = names + + + +class CharmsListResult(Type): + _toSchema = {'charm_urls': 'charm-urls'} + _toPy = {'charm-urls': 'charm_urls'} + def __init__(self, charm_urls=None, **unknown_fields): + ''' + charm_urls : typing.Sequence[str] + ''' + self.charm_urls = charm_urls + + + +class ClaimLeadershipBulkParams(Type): + _toSchema = {'params': 'params'} + _toPy = {'params': 'params'} + def __init__(self, params=None, **unknown_fields): + ''' + params : typing.Sequence[~ClaimLeadershipParams] + ''' + self.params = [ClaimLeadershipParams.from_json(o) for o in params or []] + + + +class ClaimLeadershipBulkResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ErrorResult] + ''' + self.results = [ErrorResult.from_json(o) for o in results or []] + + + +class ClaimLeadershipParams(Type): + _toSchema = {'application_tag': 'application-tag', 'duration': 'duration', 'unit_tag': 'unit-tag'} + _toPy = {'application-tag': 'application_tag', 'duration': 'duration', 'unit-tag': 'unit_tag'} + def __init__(self, application_tag=None, duration=None, unit_tag=None, **unknown_fields): + ''' + application_tag : str + duration : float + unit_tag : str + ''' + self.application_tag = application_tag + self.duration = duration + self.unit_tag = unit_tag + + + +class Cloud(Type): + _toSchema = {'auth_types': 'auth-types', 'endpoint': 'endpoint', 'identity_endpoint': 'identity-endpoint', 'regions': 'regions', 'storage_endpoint': 'storage-endpoint', 'type_': 'type'} + _toPy = {'auth-types': 'auth_types', 'endpoint': 'endpoint', 'identity-endpoint': 'identity_endpoint', 'regions': 'regions', 'storage-endpoint': 'storage_endpoint', 'type': 'type_'} + def __init__(self, auth_types=None, endpoint=None, identity_endpoint=None, regions=None, storage_endpoint=None, type_=None, **unknown_fields): + ''' + auth_types : typing.Sequence[str] + endpoint : str + identity_endpoint : str + regions : typing.Sequence[~CloudRegion] + storage_endpoint : str + type_ : str + ''' + self.auth_types = auth_types + self.endpoint = endpoint + self.identity_endpoint = identity_endpoint + self.regions = [CloudRegion.from_json(o) for o in regions or []] + self.storage_endpoint = storage_endpoint + self.type_ = type_ + + + +class CloudCredential(Type): + _toSchema = {'attrs': 'attrs', 'auth_type': 'auth-type', 'redacted': 'redacted'} + _toPy = {'attrs': 'attrs', 'auth-type': 'auth_type', 'redacted': 'redacted'} + def __init__(self, attrs=None, auth_type=None, redacted=None, **unknown_fields): + ''' + attrs : typing.Mapping[str, str] + auth_type : str + redacted : typing.Sequence[str] + ''' + self.attrs = attrs + self.auth_type = auth_type + self.redacted = redacted + + + +class CloudCredentialArg(Type): + _toSchema = {'cloud_name': 'cloud-name', 'credential_name': 'credential-name'} + _toPy = {'cloud-name': 'cloud_name', 'credential-name': 'credential_name'} + def __init__(self, cloud_name=None, credential_name=None, **unknown_fields): + ''' + cloud_name : str + credential_name : str + ''' + self.cloud_name = cloud_name + self.credential_name = credential_name + + + +class CloudCredentialArgs(Type): + _toSchema = {'credentials': 'credentials', 'include_secrets': 'include-secrets'} + _toPy = {'credentials': 'credentials', 'include-secrets': 'include_secrets'} + def __init__(self, credentials=None, include_secrets=None, **unknown_fields): + ''' + credentials : typing.Sequence[~CloudCredentialArg] + include_secrets : bool + ''' + self.credentials = [CloudCredentialArg.from_json(o) for o in credentials or []] + self.include_secrets = include_secrets + + + +class CloudCredentialResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : CloudCredential + ''' + self.error = Error.from_json(error) if error else None + self.result = CloudCredential.from_json(result) if result else None + + + +class CloudCredentialResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~CloudCredentialResult] + ''' + self.results = [CloudCredentialResult.from_json(o) for o in results or []] + + + +class CloudDetails(Type): + _toSchema = {'auth_types': 'auth-types', 'endpoint': 'endpoint', 'identity_endpoint': 'identity-endpoint', 'regions': 'regions', 'storage_endpoint': 'storage-endpoint', 'type_': 'type'} + _toPy = {'auth-types': 'auth_types', 'endpoint': 'endpoint', 'identity-endpoint': 'identity_endpoint', 'regions': 'regions', 'storage-endpoint': 'storage_endpoint', 'type': 'type_'} + def __init__(self, auth_types=None, endpoint=None, identity_endpoint=None, regions=None, storage_endpoint=None, type_=None, **unknown_fields): + ''' + auth_types : typing.Sequence[str] + endpoint : str + identity_endpoint : str + regions : typing.Sequence[~CloudRegion] + storage_endpoint : str + type_ : str + ''' + self.auth_types = auth_types + self.endpoint = endpoint + self.identity_endpoint = identity_endpoint + self.regions = [CloudRegion.from_json(o) for o in regions or []] + self.storage_endpoint = storage_endpoint + self.type_ = type_ + + + +class CloudImageMetadata(Type): + _toSchema = {'arch': 'arch', 'image_id': 'image-id', 'priority': 'priority', 'region': 'region', 'root_storage_size': 'root-storage-size', 'root_storage_type': 'root-storage-type', 'series': 'series', 'source': 'source', 'stream': 'stream', 'version': 'version', 'virt_type': 'virt-type'} + _toPy = {'arch': 'arch', 'image-id': 'image_id', 'priority': 'priority', 'region': 'region', 'root-storage-size': 'root_storage_size', 'root-storage-type': 'root_storage_type', 'series': 'series', 'source': 'source', 'stream': 'stream', 'version': 'version', 'virt-type': 'virt_type'} + def __init__(self, arch=None, image_id=None, priority=None, region=None, root_storage_size=None, root_storage_type=None, series=None, source=None, stream=None, version=None, virt_type=None, **unknown_fields): + ''' + arch : str + image_id : str + priority : int + region : str + root_storage_size : int + root_storage_type : str + series : str + source : str + stream : str + version : str + virt_type : str + ''' + self.arch = arch + self.image_id = image_id + self.priority = priority + self.region = region + self.root_storage_size = root_storage_size + self.root_storage_type = root_storage_type + self.series = series + self.source = source + self.stream = stream + self.version = version + self.virt_type = virt_type + + + +class CloudImageMetadataList(Type): + _toSchema = {'metadata': 'metadata'} + _toPy = {'metadata': 'metadata'} + def __init__(self, metadata=None, **unknown_fields): + ''' + metadata : typing.Sequence[~CloudImageMetadata] + ''' + self.metadata = [CloudImageMetadata.from_json(o) for o in metadata or []] + + + +class CloudInfo(Type): + _toSchema = {'clouddetails': 'CloudDetails', 'users': 'users'} + _toPy = {'CloudDetails': 'clouddetails', 'users': 'users'} + def __init__(self, clouddetails=None, users=None, **unknown_fields): + ''' + clouddetails : CloudDetails + users : typing.Sequence[~CloudUserInfo] + ''' + self.clouddetails = CloudDetails.from_json(clouddetails) if clouddetails else None + self.users = [CloudUserInfo.from_json(o) for o in users or []] + + + +class CloudInfoResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : CloudInfo + ''' + self.error = Error.from_json(error) if error else None + self.result = CloudInfo.from_json(result) if result else None + + + +class CloudInfoResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~CloudInfoResult] + ''' + self.results = [CloudInfoResult.from_json(o) for o in results or []] + + + +class CloudInstanceTypesConstraint(Type): + _toSchema = {'cloud_tag': 'cloud-tag', 'constraints': 'constraints', 'region': 'region'} + _toPy = {'cloud-tag': 'cloud_tag', 'constraints': 'constraints', 'region': 'region'} + def __init__(self, cloud_tag=None, constraints=None, region=None, **unknown_fields): + ''' + cloud_tag : str + constraints : Value + region : str + ''' + self.cloud_tag = cloud_tag + self.constraints = Value.from_json(constraints) if constraints else None + self.region = region + + + +class CloudInstanceTypesConstraints(Type): + _toSchema = {'constraints': 'constraints'} + _toPy = {'constraints': 'constraints'} + def __init__(self, constraints=None, **unknown_fields): + ''' + constraints : typing.Sequence[~CloudInstanceTypesConstraint] + ''' + self.constraints = [CloudInstanceTypesConstraint.from_json(o) for o in constraints or []] + + + +class CloudRegion(Type): + _toSchema = {'endpoint': 'endpoint', 'identity_endpoint': 'identity-endpoint', 'name': 'name', 'storage_endpoint': 'storage-endpoint'} + _toPy = {'endpoint': 'endpoint', 'identity-endpoint': 'identity_endpoint', 'name': 'name', 'storage-endpoint': 'storage_endpoint'} + def __init__(self, endpoint=None, identity_endpoint=None, name=None, storage_endpoint=None, **unknown_fields): + ''' + endpoint : str + identity_endpoint : str + name : str + storage_endpoint : str + ''' + self.endpoint = endpoint + self.identity_endpoint = identity_endpoint + self.name = name + self.storage_endpoint = storage_endpoint + + + +class CloudResult(Type): + _toSchema = {'cloud': 'cloud', 'error': 'error'} + _toPy = {'cloud': 'cloud', 'error': 'error'} + def __init__(self, cloud=None, error=None, **unknown_fields): + ''' + cloud : Cloud + error : Error + ''' + self.cloud = Cloud.from_json(cloud) if cloud else None + self.error = Error.from_json(error) if error else None + + + +class CloudResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~CloudResult] + ''' + self.results = [CloudResult.from_json(o) for o in results or []] + + + +class CloudSpec(Type): + _toSchema = {'credential': 'credential', 'endpoint': 'endpoint', 'identity_endpoint': 'identity-endpoint', 'name': 'name', 'region': 'region', 'storage_endpoint': 'storage-endpoint', 'type_': 'type'} + _toPy = {'credential': 'credential', 'endpoint': 'endpoint', 'identity-endpoint': 'identity_endpoint', 'name': 'name', 'region': 'region', 'storage-endpoint': 'storage_endpoint', 'type': 'type_'} + def __init__(self, credential=None, endpoint=None, identity_endpoint=None, name=None, region=None, storage_endpoint=None, type_=None, **unknown_fields): + ''' + credential : CloudCredential + endpoint : str + identity_endpoint : str + name : str + region : str + storage_endpoint : str + type_ : str + ''' + self.credential = CloudCredential.from_json(credential) if credential else None + self.endpoint = endpoint + self.identity_endpoint = identity_endpoint + self.name = name + self.region = region + self.storage_endpoint = storage_endpoint + self.type_ = type_ + + + +class CloudSpecResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : CloudSpec + ''' + self.error = Error.from_json(error) if error else None + self.result = CloudSpec.from_json(result) if result else None + + + +class CloudSpecResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~CloudSpecResult] + ''' + self.results = [CloudSpecResult.from_json(o) for o in results or []] + + + +class CloudUserInfo(Type): + _toSchema = {'access': 'access', 'display_name': 'display-name', 'user': 'user'} + _toPy = {'access': 'access', 'display-name': 'display_name', 'user': 'user'} + def __init__(self, access=None, display_name=None, user=None, **unknown_fields): + ''' + access : str + display_name : str + user : str + ''' + self.access = access + self.display_name = display_name + self.user = user + + + +class CloudsResult(Type): + _toSchema = {'clouds': 'clouds'} + _toPy = {'clouds': 'clouds'} + def __init__(self, clouds=None, **unknown_fields): + ''' + clouds : typing.Mapping[str, ~Cloud] + ''' + self.clouds = clouds + + + +class ConfigResult(Type): + _toSchema = {'config': 'config', 'error': 'error'} + _toPy = {'config': 'config', 'error': 'error'} + def __init__(self, config=None, error=None, **unknown_fields): + ''' + config : typing.Mapping[str, typing.Any] + error : Error + ''' + self.config = config + self.error = Error.from_json(error) if error else None + + + +class ConfigSettingsResult(Type): + _toSchema = {'error': 'error', 'settings': 'settings'} + _toPy = {'error': 'error', 'settings': 'settings'} + def __init__(self, error=None, settings=None, **unknown_fields): + ''' + error : Error + settings : typing.Mapping[str, typing.Any] + ''' + self.error = Error.from_json(error) if error else None + self.settings = settings + + + +class ConfigSettingsResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ConfigSettingsResult] + ''' + self.results = [ConfigSettingsResult.from_json(o) for o in results or []] + + + +class ConfigValue(Type): + _toSchema = {'source': 'source', 'value': 'value'} + _toPy = {'source': 'source', 'value': 'value'} + def __init__(self, source=None, value=None, **unknown_fields): + ''' + source : str + value : typing.Mapping[str, typing.Any] + ''' + self.source = source + self.value = value + + + +class Constraints(Type): + _toSchema = {'count': 'Count', 'pool': 'Pool', 'size': 'Size'} + _toPy = {'Count': 'count', 'Pool': 'pool', 'Size': 'size'} + def __init__(self, count=None, pool=None, size=None, **unknown_fields): + ''' + count : int + pool : str + size : int + ''' + self.count = count + self.pool = pool + self.size = size + + + +class ConstraintsResult(Type): + _toSchema = {'constraints': 'constraints', 'error': 'error'} + _toPy = {'constraints': 'constraints', 'error': 'error'} + def __init__(self, constraints=None, error=None, **unknown_fields): + ''' + constraints : Value + error : Error + ''' + self.constraints = Value.from_json(constraints) if constraints else None + self.error = Error.from_json(error) if error else None + + + +class ConstraintsResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ConstraintsResult] + ''' + self.results = [ConstraintsResult.from_json(o) for o in results or []] + + + +class ConsumeApplicationArg(Type): + _toSchema = {'application_alias': 'application-alias', 'application_url': 'application-url'} + _toPy = {'application-alias': 'application_alias', 'application-url': 'application_url'} + def __init__(self, application_alias=None, application_url=None, **unknown_fields): + ''' + application_alias : str + application_url : str + ''' + self.application_alias = application_alias + self.application_url = application_url + + + +class ConsumeApplicationArgs(Type): + _toSchema = {'args': 'args'} + _toPy = {'args': 'args'} + def __init__(self, args=None, **unknown_fields): + ''' + args : typing.Sequence[~ConsumeApplicationArg] + ''' + self.args = [ConsumeApplicationArg.from_json(o) for o in args or []] + + + +class ConsumeApplicationResult(Type): + _toSchema = {'error': 'error', 'local_name': 'local-name'} + _toPy = {'error': 'error', 'local-name': 'local_name'} + def __init__(self, error=None, local_name=None, **unknown_fields): + ''' + error : Error + local_name : str + ''' + self.error = Error.from_json(error) if error else None + self.local_name = local_name + + + +class ConsumeApplicationResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ConsumeApplicationResult] + ''' + self.results = [ConsumeApplicationResult.from_json(o) for o in results or []] + + + +class ConsumeOfferDetails(Type): + _toSchema = {'external_controller': 'external-controller', 'macaroon': 'macaroon', 'offer': 'offer'} + _toPy = {'external-controller': 'external_controller', 'macaroon': 'macaroon', 'offer': 'offer'} + def __init__(self, external_controller=None, macaroon=None, offer=None, **unknown_fields): + ''' + external_controller : ExternalControllerInfo + macaroon : Macaroon + offer : ApplicationOfferDetails + ''' + self.external_controller = ExternalControllerInfo.from_json(external_controller) if external_controller else None + self.macaroon = Macaroon.from_json(macaroon) if macaroon else None + self.offer = ApplicationOfferDetails.from_json(offer) if offer else None + + + +class ConsumeOfferDetailsResult(Type): + _toSchema = {'consumeofferdetails': 'ConsumeOfferDetails', 'error': 'error'} + _toPy = {'ConsumeOfferDetails': 'consumeofferdetails', 'error': 'error'} + def __init__(self, consumeofferdetails=None, error=None, **unknown_fields): + ''' + consumeofferdetails : ConsumeOfferDetails + error : Error + ''' + self.consumeofferdetails = ConsumeOfferDetails.from_json(consumeofferdetails) if consumeofferdetails else None + self.error = Error.from_json(error) if error else None + + + +class ConsumeOfferDetailsResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ConsumeOfferDetailsResult] + ''' + self.results = [ConsumeOfferDetailsResult.from_json(o) for o in results or []] + + + +class ContainerConfig(Type): + _toSchema = {'apt_mirror': 'apt-mirror', 'apt_proxy': 'apt-proxy', 'authorized_keys': 'authorized-keys', 'provider_type': 'provider-type', 'proxy': 'proxy', 'ssl_hostname_verification': 'ssl-hostname-verification', 'updatebehavior': 'UpdateBehavior'} + _toPy = {'UpdateBehavior': 'updatebehavior', 'apt-mirror': 'apt_mirror', 'apt-proxy': 'apt_proxy', 'authorized-keys': 'authorized_keys', 'provider-type': 'provider_type', 'proxy': 'proxy', 'ssl-hostname-verification': 'ssl_hostname_verification'} + def __init__(self, updatebehavior=None, apt_mirror=None, apt_proxy=None, authorized_keys=None, provider_type=None, proxy=None, ssl_hostname_verification=None, **unknown_fields): + ''' + updatebehavior : UpdateBehavior + apt_mirror : str + apt_proxy : Settings + authorized_keys : str + provider_type : str + proxy : Settings + ssl_hostname_verification : bool + ''' + self.updatebehavior = UpdateBehavior.from_json(updatebehavior) if updatebehavior else None + self.apt_mirror = apt_mirror + self.apt_proxy = Settings.from_json(apt_proxy) if apt_proxy else None + self.authorized_keys = authorized_keys + self.provider_type = provider_type + self.proxy = Settings.from_json(proxy) if proxy else None + self.ssl_hostname_verification = ssl_hostname_verification + + + +class ContainerLXDProfile(Type): + _toSchema = {'name': 'name', 'profile': 'profile'} + _toPy = {'name': 'name', 'profile': 'profile'} + def __init__(self, name=None, profile=None, **unknown_fields): + ''' + name : str + profile : CharmLXDProfile + ''' + self.name = name + self.profile = CharmLXDProfile.from_json(profile) if profile else None + + + +class ContainerManagerConfig(Type): + _toSchema = {'config': 'config'} + _toPy = {'config': 'config'} + def __init__(self, config=None, **unknown_fields): + ''' + config : typing.Mapping[str, str] + ''' + self.config = config + + + +class ContainerManagerConfigParams(Type): + _toSchema = {'type_': 'type'} + _toPy = {'type': 'type_'} + def __init__(self, type_=None, **unknown_fields): + ''' + type_ : str + ''' + self.type_ = type_ + + + +class ContainerProfileResult(Type): + _toSchema = {'error': 'error', 'lxd_profiles': 'lxd-profiles'} + _toPy = {'error': 'error', 'lxd-profiles': 'lxd_profiles'} + def __init__(self, error=None, lxd_profiles=None, **unknown_fields): + ''' + error : Error + lxd_profiles : typing.Sequence[~ContainerLXDProfile] + ''' + self.error = Error.from_json(error) if error else None + self.lxd_profiles = [ContainerLXDProfile.from_json(o) for o in lxd_profiles or []] + + + +class ContainerProfileResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ContainerProfileResult] + ''' + self.results = [ContainerProfileResult.from_json(o) for o in results or []] + + + +class ControllerAPIInfoResult(Type): + _toSchema = {'addresses': 'addresses', 'cacert': 'cacert', 'error': 'error'} + _toPy = {'addresses': 'addresses', 'cacert': 'cacert', 'error': 'error'} + def __init__(self, addresses=None, cacert=None, error=None, **unknown_fields): + ''' + addresses : typing.Sequence[str] + cacert : str + error : Error + ''' + self.addresses = addresses + self.cacert = cacert + self.error = Error.from_json(error) if error else None + + + +class ControllerAPIInfoResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ControllerAPIInfoResult] + ''' + self.results = [ControllerAPIInfoResult.from_json(o) for o in results or []] + + + +class ControllerConfigResult(Type): + _toSchema = {'config': 'config'} + _toPy = {'config': 'config'} + def __init__(self, config=None, **unknown_fields): + ''' + config : typing.Mapping[str, typing.Any] + ''' + self.config = config + + + +class ControllerConfigSet(Type): + _toSchema = {'config': 'config'} + _toPy = {'config': 'config'} + def __init__(self, config=None, **unknown_fields): + ''' + config : typing.Mapping[str, typing.Any] + ''' + self.config = config + + + +class ControllerCredentialInfo(Type): + _toSchema = {'content': 'content', 'models': 'models'} + _toPy = {'content': 'content', 'models': 'models'} + def __init__(self, content=None, models=None, **unknown_fields): + ''' + content : CredentialContent + models : typing.Sequence[~ModelAccess] + ''' + self.content = CredentialContent.from_json(content) if content else None + self.models = [ModelAccess.from_json(o) for o in models or []] + + + +class ControllersChangeResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : ControllersChanges + ''' + self.error = Error.from_json(error) if error else None + self.result = ControllersChanges.from_json(result) if result else None + + + +class ControllersChangeResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ControllersChangeResult] + ''' + self.results = [ControllersChangeResult.from_json(o) for o in results or []] + + + +class ControllersChanges(Type): + _toSchema = {'added': 'added', 'converted': 'converted', 'demoted': 'demoted', 'maintained': 'maintained', 'promoted': 'promoted', 'removed': 'removed'} + _toPy = {'added': 'added', 'converted': 'converted', 'demoted': 'demoted', 'maintained': 'maintained', 'promoted': 'promoted', 'removed': 'removed'} + def __init__(self, added=None, converted=None, demoted=None, maintained=None, promoted=None, removed=None, **unknown_fields): + ''' + added : typing.Sequence[str] + converted : typing.Sequence[str] + demoted : typing.Sequence[str] + maintained : typing.Sequence[str] + promoted : typing.Sequence[str] + removed : typing.Sequence[str] + ''' + self.added = added + self.converted = converted + self.demoted = demoted + self.maintained = maintained + self.promoted = promoted + self.removed = removed + + + +class ControllersSpec(Type): + _toSchema = {'constraints': 'constraints', 'num_controllers': 'num-controllers', 'placement': 'placement', 'series': 'series'} + _toPy = {'constraints': 'constraints', 'num-controllers': 'num_controllers', 'placement': 'placement', 'series': 'series'} + def __init__(self, constraints=None, num_controllers=None, placement=None, series=None, **unknown_fields): + ''' + constraints : Value + num_controllers : int + placement : typing.Sequence[str] + series : str + ''' + self.constraints = Value.from_json(constraints) if constraints else None + self.num_controllers = num_controllers + self.placement = placement + self.series = series + + + +class ControllersSpecs(Type): + _toSchema = {'specs': 'specs'} + _toPy = {'specs': 'specs'} + def __init__(self, specs=None, **unknown_fields): + ''' + specs : typing.Sequence[~ControllersSpec] + ''' + self.specs = [ControllersSpec.from_json(o) for o in specs or []] + + + +class CreateSpaceParams(Type): + _toSchema = {'provider_id': 'provider-id', 'public': 'public', 'space_tag': 'space-tag', 'subnet_tags': 'subnet-tags'} + _toPy = {'provider-id': 'provider_id', 'public': 'public', 'space-tag': 'space_tag', 'subnet-tags': 'subnet_tags'} + def __init__(self, provider_id=None, public=None, space_tag=None, subnet_tags=None, **unknown_fields): + ''' + provider_id : str + public : bool + space_tag : str + subnet_tags : typing.Sequence[str] + ''' + self.provider_id = provider_id + self.public = public + self.space_tag = space_tag + self.subnet_tags = subnet_tags + + + +class CreateSpacesParams(Type): + _toSchema = {'spaces': 'spaces'} + _toPy = {'spaces': 'spaces'} + def __init__(self, spaces=None, **unknown_fields): + ''' + spaces : typing.Sequence[~CreateSpaceParams] + ''' + self.spaces = [CreateSpaceParams.from_json(o) for o in spaces or []] + + + +class CredentialContent(Type): + _toSchema = {'attrs': 'attrs', 'auth_type': 'auth-type', 'cloud': 'cloud', 'name': 'name'} + _toPy = {'attrs': 'attrs', 'auth-type': 'auth_type', 'cloud': 'cloud', 'name': 'name'} + def __init__(self, attrs=None, auth_type=None, cloud=None, name=None, **unknown_fields): + ''' + attrs : typing.Mapping[str, str] + auth_type : str + cloud : str + name : str + ''' + self.attrs = attrs + self.auth_type = auth_type + self.cloud = cloud + self.name = name + + + +class CredentialContentResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : ControllerCredentialInfo + ''' + self.error = Error.from_json(error) if error else None + self.result = ControllerCredentialInfo.from_json(result) if result else None + + + +class CredentialContentResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~CredentialContentResult] + ''' + self.results = [CredentialContentResult.from_json(o) for o in results or []] + + + +class Delta(Type): + _toSchema = {'entity': 'entity', 'removed': 'removed'} + _toPy = {'entity': 'entity', 'removed': 'removed'} + def __init__(self, entity=None, removed=None, **unknown_fields): + ''' + entity : typing.Mapping[str, typing.Any] + removed : bool + ''' + self.entity = entity + self.removed = removed + + + +class DeployerConnectionValues(Type): + _toSchema = {'api_addresses': 'api-addresses', 'state_addresses': 'state-addresses'} + _toPy = {'api-addresses': 'api_addresses', 'state-addresses': 'state_addresses'} + def __init__(self, api_addresses=None, state_addresses=None, **unknown_fields): + ''' + api_addresses : typing.Sequence[str] + state_addresses : typing.Sequence[str] + ''' + self.api_addresses = api_addresses + self.state_addresses = state_addresses + + + +class DestroyApplicationInfo(Type): + _toSchema = {'destroyed_storage': 'destroyed-storage', 'destroyed_units': 'destroyed-units', 'detached_storage': 'detached-storage'} + _toPy = {'destroyed-storage': 'destroyed_storage', 'destroyed-units': 'destroyed_units', 'detached-storage': 'detached_storage'} + def __init__(self, destroyed_storage=None, destroyed_units=None, detached_storage=None, **unknown_fields): + ''' + destroyed_storage : typing.Sequence[~Entity] + destroyed_units : typing.Sequence[~Entity] + detached_storage : typing.Sequence[~Entity] + ''' + self.destroyed_storage = [Entity.from_json(o) for o in destroyed_storage or []] + self.destroyed_units = [Entity.from_json(o) for o in destroyed_units or []] + self.detached_storage = [Entity.from_json(o) for o in detached_storage or []] + + + +class DestroyApplicationOffers(Type): + _toSchema = {'force': 'force', 'offer_urls': 'offer-urls'} + _toPy = {'force': 'force', 'offer-urls': 'offer_urls'} + def __init__(self, force=None, offer_urls=None, **unknown_fields): + ''' + force : bool + offer_urls : typing.Sequence[str] + ''' + self.force = force + self.offer_urls = offer_urls + + + +class DestroyApplicationParams(Type): + _toSchema = {'application_tag': 'application-tag', 'destroy_storage': 'destroy-storage'} + _toPy = {'application-tag': 'application_tag', 'destroy-storage': 'destroy_storage'} + def __init__(self, application_tag=None, destroy_storage=None, **unknown_fields): + ''' + application_tag : str + destroy_storage : bool + ''' + self.application_tag = application_tag + self.destroy_storage = destroy_storage + + + +class DestroyApplicationResult(Type): + _toSchema = {'error': 'error', 'info': 'info'} + _toPy = {'error': 'error', 'info': 'info'} + def __init__(self, error=None, info=None, **unknown_fields): + ''' + error : Error + info : DestroyApplicationInfo + ''' + self.error = Error.from_json(error) if error else None + self.info = DestroyApplicationInfo.from_json(info) if info else None + + + +class DestroyApplicationResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~DestroyApplicationResult] + ''' + self.results = [DestroyApplicationResult.from_json(o) for o in results or []] + + + +class DestroyApplicationUnits(Type): + _toSchema = {'unit_names': 'unit-names'} + _toPy = {'unit-names': 'unit_names'} + def __init__(self, unit_names=None, **unknown_fields): + ''' + unit_names : typing.Sequence[str] + ''' + self.unit_names = unit_names + + + +class DestroyApplicationsParams(Type): + _toSchema = {'applications': 'applications'} + _toPy = {'applications': 'applications'} + def __init__(self, applications=None, **unknown_fields): + ''' + applications : typing.Sequence[~DestroyApplicationParams] + ''' + self.applications = [DestroyApplicationParams.from_json(o) for o in applications or []] + + + +class DestroyConsumedApplicationParams(Type): + _toSchema = {'application_tag': 'application-tag'} + _toPy = {'application-tag': 'application_tag'} + def __init__(self, application_tag=None, **unknown_fields): + ''' + application_tag : str + ''' + self.application_tag = application_tag + + + +class DestroyConsumedApplicationsParams(Type): + _toSchema = {'applications': 'applications'} + _toPy = {'applications': 'applications'} + def __init__(self, applications=None, **unknown_fields): + ''' + applications : typing.Sequence[~DestroyConsumedApplicationParams] + ''' + self.applications = [DestroyConsumedApplicationParams.from_json(o) for o in applications or []] + + + +class DestroyControllerArgs(Type): + _toSchema = {'destroy_models': 'destroy-models'} + _toPy = {'destroy-models': 'destroy_models'} + def __init__(self, destroy_models=None, **unknown_fields): + ''' + destroy_models : bool + ''' + self.destroy_models = destroy_models + + + +class DestroyMachineInfo(Type): + _toSchema = {'destroyed_storage': 'destroyed-storage', 'destroyed_units': 'destroyed-units', 'detached_storage': 'detached-storage'} + _toPy = {'destroyed-storage': 'destroyed_storage', 'destroyed-units': 'destroyed_units', 'detached-storage': 'detached_storage'} + def __init__(self, destroyed_storage=None, destroyed_units=None, detached_storage=None, **unknown_fields): + ''' + destroyed_storage : typing.Sequence[~Entity] + destroyed_units : typing.Sequence[~Entity] + detached_storage : typing.Sequence[~Entity] + ''' + self.destroyed_storage = [Entity.from_json(o) for o in destroyed_storage or []] + self.destroyed_units = [Entity.from_json(o) for o in destroyed_units or []] + self.detached_storage = [Entity.from_json(o) for o in detached_storage or []] + + + +class DestroyMachineResult(Type): + _toSchema = {'error': 'error', 'info': 'info'} + _toPy = {'error': 'error', 'info': 'info'} + def __init__(self, error=None, info=None, **unknown_fields): + ''' + error : Error + info : DestroyMachineInfo + ''' + self.error = Error.from_json(error) if error else None + self.info = DestroyMachineInfo.from_json(info) if info else None + + + +class DestroyMachineResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~DestroyMachineResult] + ''' + self.results = [DestroyMachineResult.from_json(o) for o in results or []] + + + +class DestroyMachines(Type): + _toSchema = {'force': 'force', 'machine_names': 'machine-names'} + _toPy = {'force': 'force', 'machine-names': 'machine_names'} + def __init__(self, force=None, machine_names=None, **unknown_fields): + ''' + force : bool + machine_names : typing.Sequence[str] + ''' + self.force = force + self.machine_names = machine_names + + + +class DestroyMachinesParams(Type): + _toSchema = {'force': 'force', 'keep': 'keep', 'machine_tags': 'machine-tags'} + _toPy = {'force': 'force', 'keep': 'keep', 'machine-tags': 'machine_tags'} + def __init__(self, force=None, keep=None, machine_tags=None, **unknown_fields): + ''' + force : bool + keep : bool + machine_tags : typing.Sequence[str] + ''' + self.force = force + self.keep = keep + self.machine_tags = machine_tags + + + +class DestroyModelParams(Type): + _toSchema = {'destroy_storage': 'destroy-storage', 'model_tag': 'model-tag'} + _toPy = {'destroy-storage': 'destroy_storage', 'model-tag': 'model_tag'} + def __init__(self, destroy_storage=None, model_tag=None, **unknown_fields): + ''' + destroy_storage : bool + model_tag : str + ''' + self.destroy_storage = destroy_storage + self.model_tag = model_tag + + + +class DestroyModelsParams(Type): + _toSchema = {'models': 'models'} + _toPy = {'models': 'models'} + def __init__(self, models=None, **unknown_fields): + ''' + models : typing.Sequence[~DestroyModelParams] + ''' + self.models = [DestroyModelParams.from_json(o) for o in models or []] + + + +class DestroyRelation(Type): + _toSchema = {'endpoints': 'endpoints'} + _toPy = {'endpoints': 'endpoints'} + def __init__(self, endpoints=None, **unknown_fields): + ''' + endpoints : typing.Sequence[str] + ''' + self.endpoints = endpoints + + + +class DestroyUnitInfo(Type): + _toSchema = {'destroyed_storage': 'destroyed-storage', 'detached_storage': 'detached-storage'} + _toPy = {'destroyed-storage': 'destroyed_storage', 'detached-storage': 'detached_storage'} + def __init__(self, destroyed_storage=None, detached_storage=None, **unknown_fields): + ''' + destroyed_storage : typing.Sequence[~Entity] + detached_storage : typing.Sequence[~Entity] + ''' + self.destroyed_storage = [Entity.from_json(o) for o in destroyed_storage or []] + self.detached_storage = [Entity.from_json(o) for o in detached_storage or []] + + + +class DestroyUnitParams(Type): + _toSchema = {'destroy_storage': 'destroy-storage', 'unit_tag': 'unit-tag'} + _toPy = {'destroy-storage': 'destroy_storage', 'unit-tag': 'unit_tag'} + def __init__(self, destroy_storage=None, unit_tag=None, **unknown_fields): + ''' + destroy_storage : bool + unit_tag : str + ''' + self.destroy_storage = destroy_storage + self.unit_tag = unit_tag + + + +class DestroyUnitResult(Type): + _toSchema = {'error': 'error', 'info': 'info'} + _toPy = {'error': 'error', 'info': 'info'} + def __init__(self, error=None, info=None, **unknown_fields): + ''' + error : Error + info : DestroyUnitInfo + ''' + self.error = Error.from_json(error) if error else None + self.info = DestroyUnitInfo.from_json(info) if info else None + + + +class DestroyUnitResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~DestroyUnitResult] + ''' + self.results = [DestroyUnitResult.from_json(o) for o in results or []] + + + +class DestroyUnitsParams(Type): + _toSchema = {'units': 'units'} + _toPy = {'units': 'units'} + def __init__(self, units=None, **unknown_fields): + ''' + units : typing.Sequence[~DestroyUnitParams] + ''' + self.units = [DestroyUnitParams.from_json(o) for o in units or []] + + + +class DetailedStatus(Type): + _toSchema = {'data': 'data', 'err': 'err', 'info': 'info', 'kind': 'kind', 'life': 'life', 'since': 'since', 'status': 'status', 'version': 'version'} + _toPy = {'data': 'data', 'err': 'err', 'info': 'info', 'kind': 'kind', 'life': 'life', 'since': 'since', 'status': 'status', 'version': 'version'} + def __init__(self, data=None, err=None, info=None, kind=None, life=None, since=None, status=None, version=None, **unknown_fields): + ''' + data : typing.Mapping[str, typing.Any] + err : typing.Mapping[str, typing.Any] + info : str + kind : str + life : str + since : str + status : str + version : str + ''' + self.data = data + self.err = err + self.info = info + self.kind = kind + self.life = life + self.since = since + self.status = status + self.version = version + + + +class DeviceBridgeInfo(Type): + _toSchema = {'bridge_name': 'bridge-name', 'host_device_name': 'host-device-name'} + _toPy = {'bridge-name': 'bridge_name', 'host-device-name': 'host_device_name'} + def __init__(self, bridge_name=None, host_device_name=None, **unknown_fields): + ''' + bridge_name : str + host_device_name : str + ''' + self.bridge_name = bridge_name + self.host_device_name = host_device_name + + + +class DiscoverSpacesResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ProviderSpace] + ''' + self.results = [ProviderSpace.from_json(o) for o in results or []] + + + +class DistributionGroupResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : typing.Sequence[str] + ''' + self.error = Error.from_json(error) if error else None + self.result = result + + + +class DistributionGroupResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~DistributionGroupResult] + ''' + self.results = [DistributionGroupResult.from_json(o) for o in results or []] + + + +class DumpModelRequest(Type): + _toSchema = {'entities': 'entities', 'simplified': 'simplified'} + _toPy = {'entities': 'entities', 'simplified': 'simplified'} + def __init__(self, entities=None, simplified=None, **unknown_fields): + ''' + entities : typing.Sequence[~Entity] + simplified : bool + ''' + self.entities = [Entity.from_json(o) for o in entities or []] + self.simplified = simplified + + + +class Endpoint(Type): + _toSchema = {'application_name': 'application-name', 'relation': 'relation'} + _toPy = {'application-name': 'application_name', 'relation': 'relation'} + def __init__(self, application_name=None, relation=None, **unknown_fields): + ''' + application_name : str + relation : CharmRelation + ''' + self.application_name = application_name + self.relation = CharmRelation.from_json(relation) if relation else None + + + +class EndpointFilterAttributes(Type): + _toSchema = {'interface': 'interface', 'name': 'name', 'role': 'role'} + _toPy = {'interface': 'interface', 'name': 'name', 'role': 'role'} + def __init__(self, interface=None, name=None, role=None, **unknown_fields): + ''' + interface : str + name : str + role : str + ''' + self.interface = interface + self.name = name + self.role = role + + + +class EndpointStatus(Type): + _toSchema = {'application': 'application', 'name': 'name', 'role': 'role', 'subordinate': 'subordinate'} + _toPy = {'application': 'application', 'name': 'name', 'role': 'role', 'subordinate': 'subordinate'} + def __init__(self, application=None, name=None, role=None, subordinate=None, **unknown_fields): + ''' + application : str + name : str + role : str + subordinate : bool + ''' + self.application = application + self.name = name + self.role = role + self.subordinate = subordinate + + + +class Entities(Type): + _toSchema = {'entities': 'entities'} + _toPy = {'entities': 'entities'} + def __init__(self, entities=None, **unknown_fields): + ''' + entities : typing.Sequence[~Entity] + ''' + self.entities = [Entity.from_json(o) for o in entities or []] + + + +class EntitiesCharmURL(Type): + _toSchema = {'entities': 'entities'} + _toPy = {'entities': 'entities'} + def __init__(self, entities=None, **unknown_fields): + ''' + entities : typing.Sequence[~EntityCharmURL] + ''' + self.entities = [EntityCharmURL.from_json(o) for o in entities or []] + + + +class EntitiesPortRanges(Type): + _toSchema = {'entities': 'entities'} + _toPy = {'entities': 'entities'} + def __init__(self, entities=None, **unknown_fields): + ''' + entities : typing.Sequence[~EntityPortRange] + ''' + self.entities = [EntityPortRange.from_json(o) for o in entities or []] + + + +class EntitiesResult(Type): + _toSchema = {'entities': 'entities', 'error': 'error'} + _toPy = {'entities': 'entities', 'error': 'error'} + def __init__(self, entities=None, error=None, **unknown_fields): + ''' + entities : typing.Sequence[~Entity] + error : Error + ''' + self.entities = [Entity.from_json(o) for o in entities or []] + self.error = Error.from_json(error) if error else None + + + +class EntitiesResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~EntitiesResult] + ''' + self.results = [EntitiesResult.from_json(o) for o in results or []] + + + +class EntitiesVersion(Type): + _toSchema = {'agent_tools': 'agent-tools'} + _toPy = {'agent-tools': 'agent_tools'} + def __init__(self, agent_tools=None, **unknown_fields): + ''' + agent_tools : typing.Sequence[~EntityVersion] + ''' + self.agent_tools = [EntityVersion.from_json(o) for o in agent_tools or []] + + + +class EntitiesWatchResult(Type): + _toSchema = {'changes': 'changes', 'error': 'error', 'watcher_id': 'watcher-id'} + _toPy = {'changes': 'changes', 'error': 'error', 'watcher-id': 'watcher_id'} + def __init__(self, changes=None, error=None, watcher_id=None, **unknown_fields): + ''' + changes : typing.Sequence[str] + error : Error + watcher_id : str + ''' + self.changes = changes + self.error = Error.from_json(error) if error else None + self.watcher_id = watcher_id + + + +class Entity(Type): + _toSchema = {'tag': 'tag'} + _toPy = {'tag': 'tag'} + def __init__(self, tag=None, **unknown_fields): + ''' + tag : str + ''' + self.tag = tag + + + +class EntityAnnotations(Type): + _toSchema = {'annotations': 'annotations', 'entity': 'entity'} + _toPy = {'annotations': 'annotations', 'entity': 'entity'} + def __init__(self, annotations=None, entity=None, **unknown_fields): + ''' + annotations : typing.Mapping[str, str] + entity : str + ''' + self.annotations = annotations + self.entity = entity + + + +class EntityCharmURL(Type): + _toSchema = {'charm_url': 'charm-url', 'tag': 'tag'} + _toPy = {'charm-url': 'charm_url', 'tag': 'tag'} + def __init__(self, charm_url=None, tag=None, **unknown_fields): + ''' + charm_url : str + tag : str + ''' + self.charm_url = charm_url + self.tag = tag + + + +class EntityMacaroonArg(Type): + _toSchema = {'macaroon': 'macaroon', 'tag': 'tag'} + _toPy = {'macaroon': 'macaroon', 'tag': 'tag'} + def __init__(self, macaroon=None, tag=None, **unknown_fields): + ''' + macaroon : Macaroon + tag : str + ''' + self.macaroon = Macaroon.from_json(macaroon) if macaroon else None + self.tag = tag + + + +class EntityMacaroonArgs(Type): + _toSchema = {'args': 'Args'} + _toPy = {'Args': 'args'} + def __init__(self, args=None, **unknown_fields): + ''' + args : typing.Sequence[~EntityMacaroonArg] + ''' + self.args = [EntityMacaroonArg.from_json(o) for o in args or []] + + + +class EntityMetrics(Type): + _toSchema = {'error': 'error', 'metrics': 'metrics'} + _toPy = {'error': 'error', 'metrics': 'metrics'} + def __init__(self, error=None, metrics=None, **unknown_fields): + ''' + error : Error + metrics : typing.Sequence[~MetricResult] + ''' + self.error = Error.from_json(error) if error else None + self.metrics = [MetricResult.from_json(o) for o in metrics or []] + + + +class EntityPassword(Type): + _toSchema = {'password': 'password', 'tag': 'tag'} + _toPy = {'password': 'password', 'tag': 'tag'} + def __init__(self, password=None, tag=None, **unknown_fields): + ''' + password : str + tag : str + ''' + self.password = password + self.tag = tag + + + +class EntityPasswords(Type): + _toSchema = {'changes': 'changes'} + _toPy = {'changes': 'changes'} + def __init__(self, changes=None, **unknown_fields): + ''' + changes : typing.Sequence[~EntityPassword] + ''' + self.changes = [EntityPassword.from_json(o) for o in changes or []] + + + +class EntityPortRange(Type): + _toSchema = {'from_port': 'from-port', 'protocol': 'protocol', 'tag': 'tag', 'to_port': 'to-port'} + _toPy = {'from-port': 'from_port', 'protocol': 'protocol', 'tag': 'tag', 'to-port': 'to_port'} + def __init__(self, from_port=None, protocol=None, tag=None, to_port=None, **unknown_fields): + ''' + from_port : int + protocol : str + tag : str + to_port : int + ''' + self.from_port = from_port + self.protocol = protocol + self.tag = tag + self.to_port = to_port + + + +class EntityStatus(Type): + _toSchema = {'data': 'data', 'info': 'info', 'since': 'since', 'status': 'status'} + _toPy = {'data': 'data', 'info': 'info', 'since': 'since', 'status': 'status'} + def __init__(self, data=None, info=None, since=None, status=None, **unknown_fields): + ''' + data : typing.Mapping[str, typing.Any] + info : str + since : str + status : str + ''' + self.data = data + self.info = info + self.since = since + self.status = status + + + +class EntityStatusArgs(Type): + _toSchema = {'data': 'data', 'info': 'info', 'status': 'status', 'tag': 'tag'} + _toPy = {'data': 'data', 'info': 'info', 'status': 'status', 'tag': 'tag'} + def __init__(self, data=None, info=None, status=None, tag=None, **unknown_fields): + ''' + data : typing.Mapping[str, typing.Any] + info : str + status : str + tag : str + ''' + self.data = data + self.info = info + self.status = status + self.tag = tag + + + +class EntityString(Type): + _toSchema = {'tag': 'tag', 'value': 'value'} + _toPy = {'tag': 'tag', 'value': 'value'} + def __init__(self, tag=None, value=None, **unknown_fields): + ''' + tag : str + value : str + ''' + self.tag = tag + self.value = value + + + +class EntityVersion(Type): + _toSchema = {'tag': 'tag', 'tools': 'tools'} + _toPy = {'tag': 'tag', 'tools': 'tools'} + def __init__(self, tag=None, tools=None, **unknown_fields): + ''' + tag : str + tools : Version + ''' + self.tag = tag + self.tools = Version.from_json(tools) if tools else None + + + +class EntityWorkloadVersion(Type): + _toSchema = {'tag': 'tag', 'workload_version': 'workload-version'} + _toPy = {'tag': 'tag', 'workload-version': 'workload_version'} + def __init__(self, tag=None, workload_version=None, **unknown_fields): + ''' + tag : str + workload_version : str + ''' + self.tag = tag + self.workload_version = workload_version + + + +class EntityWorkloadVersions(Type): + _toSchema = {'entities': 'entities'} + _toPy = {'entities': 'entities'} + def __init__(self, entities=None, **unknown_fields): + ''' + entities : typing.Sequence[~EntityWorkloadVersion] + ''' + self.entities = [EntityWorkloadVersion.from_json(o) for o in entities or []] + + + +class EnvListArgs(Type): + _toSchema = {'patterns': 'patterns'} + _toPy = {'patterns': 'patterns'} + def __init__(self, patterns=None, **unknown_fields): + ''' + patterns : typing.Sequence[str] + ''' + self.patterns = patterns + + + +class EnvListResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~Payload] + ''' + self.results = [Payload.from_json(o) for o in results or []] + + + +class Error(Type): + _toSchema = {'code': 'code', 'info': 'info', 'message': 'message'} + _toPy = {'code': 'code', 'info': 'info', 'message': 'message'} + def __init__(self, code=None, info=None, message=None, **unknown_fields): + ''' + code : str + info : ErrorInfo + message : str + ''' + self.code = code + self.info = ErrorInfo.from_json(info) if info else None + self.message = message + + + +class ErrorInfo(Type): + _toSchema = {'macaroon': 'macaroon', 'macaroon_path': 'macaroon-path'} + _toPy = {'macaroon': 'macaroon', 'macaroon-path': 'macaroon_path'} + def __init__(self, macaroon=None, macaroon_path=None, **unknown_fields): + ''' + macaroon : Macaroon + macaroon_path : str + ''' + self.macaroon = Macaroon.from_json(macaroon) if macaroon else None + self.macaroon_path = macaroon_path + + + +class ErrorResult(Type): + _toSchema = {'error': 'error'} + _toPy = {'error': 'error'} + def __init__(self, error=None, **unknown_fields): + ''' + error : Error + ''' + self.error = Error.from_json(error) if error else None + + + +class ErrorResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ErrorResult] + ''' + self.results = [ErrorResult.from_json(o) for o in results or []] + + + +class ExternalControllerInfo(Type): + _toSchema = {'addrs': 'addrs', 'ca_cert': 'ca-cert', 'controller_alias': 'controller-alias', 'controller_tag': 'controller-tag'} + _toPy = {'addrs': 'addrs', 'ca-cert': 'ca_cert', 'controller-alias': 'controller_alias', 'controller-tag': 'controller_tag'} + def __init__(self, addrs=None, ca_cert=None, controller_alias=None, controller_tag=None, **unknown_fields): + ''' + addrs : typing.Sequence[str] + ca_cert : str + controller_alias : str + controller_tag : str + ''' + self.addrs = addrs + self.ca_cert = ca_cert + self.controller_alias = controller_alias + self.controller_tag = controller_tag + + + +class ExternalControllerInfoResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : ExternalControllerInfo + ''' + self.error = Error.from_json(error) if error else None + self.result = ExternalControllerInfo.from_json(result) if result else None + + + +class ExternalControllerInfoResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ExternalControllerInfoResult] + ''' + self.results = [ExternalControllerInfoResult.from_json(o) for o in results or []] + + + +class FanConfigEntry(Type): + _toSchema = {'overlay': 'overlay', 'underlay': 'underlay'} + _toPy = {'overlay': 'overlay', 'underlay': 'underlay'} + def __init__(self, overlay=None, underlay=None, **unknown_fields): + ''' + overlay : str + underlay : str + ''' + self.overlay = overlay + self.underlay = underlay + + + +class FanConfigResult(Type): + _toSchema = {'fans': 'fans'} + _toPy = {'fans': 'fans'} + def __init__(self, fans=None, **unknown_fields): + ''' + fans : typing.Sequence[~FanConfigEntry] + ''' + self.fans = [FanConfigEntry.from_json(o) for o in fans or []] + + + +class Filesystem(Type): + _toSchema = {'filesystem_tag': 'filesystem-tag', 'info': 'info', 'volume_tag': 'volume-tag'} + _toPy = {'filesystem-tag': 'filesystem_tag', 'info': 'info', 'volume-tag': 'volume_tag'} + def __init__(self, filesystem_tag=None, info=None, volume_tag=None, **unknown_fields): + ''' + filesystem_tag : str + info : FilesystemInfo + volume_tag : str + ''' + self.filesystem_tag = filesystem_tag + self.info = FilesystemInfo.from_json(info) if info else None + self.volume_tag = volume_tag + + + +class FilesystemAttachment(Type): + _toSchema = {'filesystem_tag': 'filesystem-tag', 'info': 'info', 'machine_tag': 'machine-tag'} + _toPy = {'filesystem-tag': 'filesystem_tag', 'info': 'info', 'machine-tag': 'machine_tag'} + def __init__(self, filesystem_tag=None, info=None, machine_tag=None, **unknown_fields): + ''' + filesystem_tag : str + info : FilesystemAttachmentInfo + machine_tag : str + ''' + self.filesystem_tag = filesystem_tag + self.info = FilesystemAttachmentInfo.from_json(info) if info else None + self.machine_tag = machine_tag + + + +class FilesystemAttachmentDetails(Type): + _toSchema = {'filesystemattachmentinfo': 'FilesystemAttachmentInfo', 'life': 'life'} + _toPy = {'FilesystemAttachmentInfo': 'filesystemattachmentinfo', 'life': 'life'} + def __init__(self, filesystemattachmentinfo=None, life=None, **unknown_fields): + ''' + filesystemattachmentinfo : FilesystemAttachmentInfo + life : str + ''' + self.filesystemattachmentinfo = FilesystemAttachmentInfo.from_json(filesystemattachmentinfo) if filesystemattachmentinfo else None + self.life = life + + + +class FilesystemAttachmentInfo(Type): + _toSchema = {'mount_point': 'mount-point', 'read_only': 'read-only'} + _toPy = {'mount-point': 'mount_point', 'read-only': 'read_only'} + def __init__(self, mount_point=None, read_only=None, **unknown_fields): + ''' + mount_point : str + read_only : bool + ''' + self.mount_point = mount_point + self.read_only = read_only + + + +class FilesystemAttachmentParams(Type): + _toSchema = {'filesystem_id': 'filesystem-id', 'filesystem_tag': 'filesystem-tag', 'instance_id': 'instance-id', 'machine_tag': 'machine-tag', 'mount_point': 'mount-point', 'provider': 'provider', 'read_only': 'read-only'} + _toPy = {'filesystem-id': 'filesystem_id', 'filesystem-tag': 'filesystem_tag', 'instance-id': 'instance_id', 'machine-tag': 'machine_tag', 'mount-point': 'mount_point', 'provider': 'provider', 'read-only': 'read_only'} + def __init__(self, filesystem_id=None, filesystem_tag=None, instance_id=None, machine_tag=None, mount_point=None, provider=None, read_only=None, **unknown_fields): + ''' + filesystem_id : str + filesystem_tag : str + instance_id : str + machine_tag : str + mount_point : str + provider : str + read_only : bool + ''' + self.filesystem_id = filesystem_id + self.filesystem_tag = filesystem_tag + self.instance_id = instance_id + self.machine_tag = machine_tag + self.mount_point = mount_point + self.provider = provider + self.read_only = read_only + + + +class FilesystemAttachmentParamsResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : FilesystemAttachmentParams + ''' + self.error = Error.from_json(error) if error else None + self.result = FilesystemAttachmentParams.from_json(result) if result else None + + + +class FilesystemAttachmentParamsResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~FilesystemAttachmentParamsResult] + ''' + self.results = [FilesystemAttachmentParamsResult.from_json(o) for o in results or []] + + + +class FilesystemAttachmentResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : FilesystemAttachment + ''' + self.error = Error.from_json(error) if error else None + self.result = FilesystemAttachment.from_json(result) if result else None + + + +class FilesystemAttachmentResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~FilesystemAttachmentResult] + ''' + self.results = [FilesystemAttachmentResult.from_json(o) for o in results or []] + + + +class FilesystemAttachments(Type): + _toSchema = {'filesystem_attachments': 'filesystem-attachments'} + _toPy = {'filesystem-attachments': 'filesystem_attachments'} + def __init__(self, filesystem_attachments=None, **unknown_fields): + ''' + filesystem_attachments : typing.Sequence[~FilesystemAttachment] + ''' + self.filesystem_attachments = [FilesystemAttachment.from_json(o) for o in filesystem_attachments or []] + + + +class FilesystemDetails(Type): + _toSchema = {'filesystem_tag': 'filesystem-tag', 'info': 'info', 'machine_attachments': 'machine-attachments', 'status': 'status', 'storage': 'storage', 'volume_tag': 'volume-tag'} + _toPy = {'filesystem-tag': 'filesystem_tag', 'info': 'info', 'machine-attachments': 'machine_attachments', 'status': 'status', 'storage': 'storage', 'volume-tag': 'volume_tag'} + def __init__(self, filesystem_tag=None, info=None, machine_attachments=None, status=None, storage=None, volume_tag=None, **unknown_fields): + ''' + filesystem_tag : str + info : FilesystemInfo + machine_attachments : typing.Mapping[str, ~FilesystemAttachmentInfo] + status : EntityStatus + storage : StorageDetails + volume_tag : str + ''' + self.filesystem_tag = filesystem_tag + self.info = FilesystemInfo.from_json(info) if info else None + self.machine_attachments = machine_attachments + self.status = EntityStatus.from_json(status) if status else None + self.storage = StorageDetails.from_json(storage) if storage else None + self.volume_tag = volume_tag + + + +class FilesystemDetailsListResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : typing.Sequence[~FilesystemDetails] + ''' + self.error = Error.from_json(error) if error else None + self.result = [FilesystemDetails.from_json(o) for o in result or []] + + + +class FilesystemDetailsListResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~FilesystemDetailsListResult] + ''' + self.results = [FilesystemDetailsListResult.from_json(o) for o in results or []] + + + +class FilesystemFilter(Type): + _toSchema = {'machines': 'machines'} + _toPy = {'machines': 'machines'} + def __init__(self, machines=None, **unknown_fields): + ''' + machines : typing.Sequence[str] + ''' + self.machines = machines + + + +class FilesystemFilters(Type): + _toSchema = {'filters': 'filters'} + _toPy = {'filters': 'filters'} + def __init__(self, filters=None, **unknown_fields): + ''' + filters : typing.Sequence[~FilesystemFilter] + ''' + self.filters = [FilesystemFilter.from_json(o) for o in filters or []] + + + +class FilesystemInfo(Type): + _toSchema = {'filesystem_id': 'filesystem-id', 'size': 'size'} + _toPy = {'filesystem-id': 'filesystem_id', 'size': 'size'} + def __init__(self, filesystem_id=None, size=None, **unknown_fields): + ''' + filesystem_id : str + size : int + ''' + self.filesystem_id = filesystem_id + self.size = size + + + +class FilesystemParams(Type): + _toSchema = {'attachment': 'attachment', 'attributes': 'attributes', 'filesystem_tag': 'filesystem-tag', 'provider': 'provider', 'size': 'size', 'tags': 'tags', 'volume_tag': 'volume-tag'} + _toPy = {'attachment': 'attachment', 'attributes': 'attributes', 'filesystem-tag': 'filesystem_tag', 'provider': 'provider', 'size': 'size', 'tags': 'tags', 'volume-tag': 'volume_tag'} + def __init__(self, attachment=None, attributes=None, filesystem_tag=None, provider=None, size=None, tags=None, volume_tag=None, **unknown_fields): + ''' + attachment : FilesystemAttachmentParams + attributes : typing.Mapping[str, typing.Any] + filesystem_tag : str + provider : str + size : int + tags : typing.Mapping[str, str] + volume_tag : str + ''' + self.attachment = FilesystemAttachmentParams.from_json(attachment) if attachment else None + self.attributes = attributes + self.filesystem_tag = filesystem_tag + self.provider = provider + self.size = size + self.tags = tags + self.volume_tag = volume_tag + + + +class FilesystemParamsResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : FilesystemParams + ''' + self.error = Error.from_json(error) if error else None + self.result = FilesystemParams.from_json(result) if result else None + + + +class FilesystemParamsResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~FilesystemParamsResult] + ''' + self.results = [FilesystemParamsResult.from_json(o) for o in results or []] + + + +class FilesystemResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : Filesystem + ''' + self.error = Error.from_json(error) if error else None + self.result = Filesystem.from_json(result) if result else None + + + +class FilesystemResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~FilesystemResult] + ''' + self.results = [FilesystemResult.from_json(o) for o in results or []] + + + +class Filesystems(Type): + _toSchema = {'filesystems': 'filesystems'} + _toPy = {'filesystems': 'filesystems'} + def __init__(self, filesystems=None, **unknown_fields): + ''' + filesystems : typing.Sequence[~Filesystem] + ''' + self.filesystems = [Filesystem.from_json(o) for o in filesystems or []] + + + +class FindActionsByNames(Type): + _toSchema = {'names': 'names'} + _toPy = {'names': 'names'} + def __init__(self, names=None, **unknown_fields): + ''' + names : typing.Sequence[str] + ''' + self.names = names + + + +class FindTags(Type): + _toSchema = {'prefixes': 'prefixes'} + _toPy = {'prefixes': 'prefixes'} + def __init__(self, prefixes=None, **unknown_fields): + ''' + prefixes : typing.Sequence[str] + ''' + self.prefixes = prefixes + + + +class FindTagsResults(Type): + _toSchema = {'matches': 'matches'} + _toPy = {'matches': 'matches'} + def __init__(self, matches=None, **unknown_fields): + ''' + matches : typing.Sequence[~Entity] + ''' + self.matches = [Entity.from_json(o) for o in matches or []] + + + +class FindToolsParams(Type): + _toSchema = {'arch': 'arch', 'major': 'major', 'minor': 'minor', 'number': 'number', 'series': 'series'} + _toPy = {'arch': 'arch', 'major': 'major', 'minor': 'minor', 'number': 'number', 'series': 'series'} + def __init__(self, arch=None, major=None, minor=None, number=None, series=None, **unknown_fields): + ''' + arch : str + major : int + minor : int + number : Number + series : str + ''' + self.arch = arch + self.major = major + self.minor = minor + self.number = Number.from_json(number) if number else None + self.series = series + + + +class FindToolsResult(Type): + _toSchema = {'error': 'error', 'list_': 'list'} + _toPy = {'error': 'error', 'list': 'list_'} + def __init__(self, error=None, list_=None, **unknown_fields): + ''' + error : Error + list_ : typing.Sequence[~Tools] + ''' + self.error = Error.from_json(error) if error else None + self.list_ = [Tools.from_json(o) for o in list_ or []] + + + +class FirewallRule(Type): + _toSchema = {'known_service': 'known-service', 'whitelist_cidrs': 'whitelist-cidrs'} + _toPy = {'known-service': 'known_service', 'whitelist-cidrs': 'whitelist_cidrs'} + def __init__(self, known_service=None, whitelist_cidrs=None, **unknown_fields): + ''' + known_service : str + whitelist_cidrs : typing.Sequence[str] + ''' + self.known_service = known_service + self.whitelist_cidrs = whitelist_cidrs + + + +class FirewallRuleArgs(Type): + _toSchema = {'args': 'args'} + _toPy = {'args': 'args'} + def __init__(self, args=None, **unknown_fields): + ''' + args : typing.Sequence[~FirewallRule] + ''' + self.args = [FirewallRule.from_json(o) for o in args or []] + + + +class FullStatus(Type): + _toSchema = {'applications': 'applications', 'controller_timestamp': 'controller-timestamp', 'machines': 'machines', 'model': 'model', 'offers': 'offers', 'relations': 'relations', 'remote_applications': 'remote-applications'} + _toPy = {'applications': 'applications', 'controller-timestamp': 'controller_timestamp', 'machines': 'machines', 'model': 'model', 'offers': 'offers', 'relations': 'relations', 'remote-applications': 'remote_applications'} + def __init__(self, applications=None, controller_timestamp=None, machines=None, model=None, offers=None, relations=None, remote_applications=None, **unknown_fields): + ''' + applications : typing.Mapping[str, ~ApplicationStatus] + controller_timestamp : str + machines : typing.Mapping[str, ~MachineStatus] + model : ModelStatusInfo + offers : typing.Mapping[str, ~ApplicationOfferStatus] + relations : typing.Sequence[~RelationStatus] + remote_applications : typing.Mapping[str, ~RemoteApplicationStatus] + ''' + self.applications = applications + self.controller_timestamp = controller_timestamp + self.machines = machines + self.model = ModelStatusInfo.from_json(model) if model else None + self.offers = offers + self.relations = [RelationStatus.from_json(o) for o in relations or []] + self.remote_applications = remote_applications + + + +class GetApplicationConstraints(Type): + _toSchema = {'application': 'application'} + _toPy = {'application': 'application'} + def __init__(self, application=None, **unknown_fields): + ''' + application : str + ''' + self.application = application + + + +class GetConstraintsResults(Type): + _toSchema = {'constraints': 'constraints'} + _toPy = {'constraints': 'constraints'} + def __init__(self, constraints=None, **unknown_fields): + ''' + constraints : Value + ''' + self.constraints = Value.from_json(constraints) if constraints else None + + + +class GetLeadershipSettingsBulkResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~GetLeadershipSettingsResult] + ''' + self.results = [GetLeadershipSettingsResult.from_json(o) for o in results or []] + + + +class GetLeadershipSettingsResult(Type): + _toSchema = {'error': 'error', 'settings': 'settings'} + _toPy = {'error': 'error', 'settings': 'settings'} + def __init__(self, error=None, settings=None, **unknown_fields): + ''' + error : Error + settings : typing.Mapping[str, str] + ''' + self.error = Error.from_json(error) if error else None + self.settings = settings + + + +class GetTokenArg(Type): + _toSchema = {'tag': 'tag'} + _toPy = {'tag': 'tag'} + def __init__(self, tag=None, **unknown_fields): + ''' + tag : str + ''' + self.tag = tag + + + +class GetTokenArgs(Type): + _toSchema = {'args': 'Args'} + _toPy = {'Args': 'args'} + def __init__(self, args=None, **unknown_fields): + ''' + args : typing.Sequence[~GetTokenArg] + ''' + self.args = [GetTokenArg.from_json(o) for o in args or []] + + + +class GoalState(Type): + _toSchema = {'relations': 'relations', 'units': 'units'} + _toPy = {'relations': 'relations', 'units': 'units'} + def __init__(self, relations=None, units=None, **unknown_fields): + ''' + relations : typing.Mapping[str, typing.Any] + units : typing.Mapping[str, ~GoalStateStatus] + ''' + self.relations = relations + self.units = units + + + +class GoalStateResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : GoalState + ''' + self.error = Error.from_json(error) if error else None + self.result = GoalState.from_json(result) if result else None + + + +class GoalStateResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~GoalStateResult] + ''' + self.results = [GoalStateResult.from_json(o) for o in results or []] + + + +class GoalStateStatus(Type): + _toSchema = {'since': 'since', 'status': 'status'} + _toPy = {'since': 'since', 'status': 'status'} + def __init__(self, since=None, status=None, **unknown_fields): + ''' + since : str + status : str + ''' + self.since = since + self.status = status + + + +class HAMember(Type): + _toSchema = {'public_address': 'public-address', 'series': 'series', 'tag': 'tag'} + _toPy = {'public-address': 'public_address', 'series': 'series', 'tag': 'tag'} + def __init__(self, public_address=None, series=None, tag=None, **unknown_fields): + ''' + public_address : Address + series : str + tag : str + ''' + self.public_address = Address.from_json(public_address) if public_address else None + self.series = series + self.tag = tag + + + +class HardwareCharacteristics(Type): + _toSchema = {'arch': 'arch', 'availability_zone': 'availability-zone', 'cpu_cores': 'cpu-cores', 'cpu_power': 'cpu-power', 'mem': 'mem', 'root_disk': 'root-disk', 'tags': 'tags'} + _toPy = {'arch': 'arch', 'availability-zone': 'availability_zone', 'cpu-cores': 'cpu_cores', 'cpu-power': 'cpu_power', 'mem': 'mem', 'root-disk': 'root_disk', 'tags': 'tags'} + def __init__(self, arch=None, availability_zone=None, cpu_cores=None, cpu_power=None, mem=None, root_disk=None, tags=None, **unknown_fields): + ''' + arch : str + availability_zone : str + cpu_cores : int + cpu_power : int + mem : int + root_disk : int + tags : typing.Sequence[str] + ''' + self.arch = arch + self.availability_zone = availability_zone + self.cpu_cores = cpu_cores + self.cpu_power = cpu_power + self.mem = mem + self.root_disk = root_disk + self.tags = tags + + + +class History(Type): + _toSchema = {'error': 'error', 'statuses': 'statuses'} + _toPy = {'error': 'error', 'statuses': 'statuses'} + def __init__(self, error=None, statuses=None, **unknown_fields): + ''' + error : Error + statuses : typing.Sequence[~DetailedStatus] + ''' + self.error = Error.from_json(error) if error else None + self.statuses = [DetailedStatus.from_json(o) for o in statuses or []] + + + +class HostNetworkChange(Type): + _toSchema = {'error': 'error', 'new_bridges': 'new-bridges', 'reconfigure_delay': 'reconfigure-delay'} + _toPy = {'error': 'error', 'new-bridges': 'new_bridges', 'reconfigure-delay': 'reconfigure_delay'} + def __init__(self, error=None, new_bridges=None, reconfigure_delay=None, **unknown_fields): + ''' + error : Error + new_bridges : typing.Sequence[~DeviceBridgeInfo] + reconfigure_delay : int + ''' + self.error = Error.from_json(error) if error else None + self.new_bridges = [DeviceBridgeInfo.from_json(o) for o in new_bridges or []] + self.reconfigure_delay = reconfigure_delay + + + +class HostNetworkChangeResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~HostNetworkChange] + ''' + self.results = [HostNetworkChange.from_json(o) for o in results or []] + + + +class HostPort(Type): + _toSchema = {'address': 'Address', 'port': 'port'} + _toPy = {'Address': 'address', 'port': 'port'} + def __init__(self, address=None, port=None, **unknown_fields): + ''' + address : Address + port : int + ''' + self.address = Address.from_json(address) if address else None + self.port = port + + + +class HostedModelConfig(Type): + _toSchema = {'cloud_spec': 'cloud-spec', 'config': 'config', 'error': 'error', 'name': 'name', 'owner': 'owner'} + _toPy = {'cloud-spec': 'cloud_spec', 'config': 'config', 'error': 'error', 'name': 'name', 'owner': 'owner'} + def __init__(self, cloud_spec=None, config=None, error=None, name=None, owner=None, **unknown_fields): + ''' + cloud_spec : CloudSpec + config : typing.Mapping[str, typing.Any] + error : Error + name : str + owner : str + ''' + self.cloud_spec = CloudSpec.from_json(cloud_spec) if cloud_spec else None + self.config = config + self.error = Error.from_json(error) if error else None + self.name = name + self.owner = owner + + + +class HostedModelConfigsResults(Type): + _toSchema = {'models': 'models'} + _toPy = {'models': 'models'} + def __init__(self, models=None, **unknown_fields): + ''' + models : typing.Sequence[~HostedModelConfig] + ''' + self.models = [HostedModelConfig.from_json(o) for o in models or []] + + + +class ImageFilterParams(Type): + _toSchema = {'images': 'images'} + _toPy = {'images': 'images'} + def __init__(self, images=None, **unknown_fields): + ''' + images : typing.Sequence[~ImageSpec] + ''' + self.images = [ImageSpec.from_json(o) for o in images or []] + + + +class ImageMetadata(Type): + _toSchema = {'arch': 'arch', 'created': 'created', 'kind': 'kind', 'series': 'series', 'url': 'url'} + _toPy = {'arch': 'arch', 'created': 'created', 'kind': 'kind', 'series': 'series', 'url': 'url'} + def __init__(self, arch=None, created=None, kind=None, series=None, url=None, **unknown_fields): + ''' + arch : str + created : str + kind : str + series : str + url : str + ''' + self.arch = arch + self.created = created + self.kind = kind + self.series = series + self.url = url + + + +class ImageMetadataFilter(Type): + _toSchema = {'arches': 'arches', 'region': 'region', 'root_storage_type': 'root-storage-type', 'series': 'series', 'stream': 'stream', 'virt_type': 'virt-type'} + _toPy = {'arches': 'arches', 'region': 'region', 'root-storage-type': 'root_storage_type', 'series': 'series', 'stream': 'stream', 'virt-type': 'virt_type'} + def __init__(self, arches=None, region=None, root_storage_type=None, series=None, stream=None, virt_type=None, **unknown_fields): + ''' + arches : typing.Sequence[str] + region : str + root_storage_type : str + series : typing.Sequence[str] + stream : str + virt_type : str + ''' + self.arches = arches + self.region = region + self.root_storage_type = root_storage_type + self.series = series + self.stream = stream + self.virt_type = virt_type + + + +class ImageSpec(Type): + _toSchema = {'arch': 'arch', 'kind': 'kind', 'series': 'series'} + _toPy = {'arch': 'arch', 'kind': 'kind', 'series': 'series'} + def __init__(self, arch=None, kind=None, series=None, **unknown_fields): + ''' + arch : str + kind : str + series : str + ''' + self.arch = arch + self.kind = kind + self.series = series + + + +class ImportStorageDetails(Type): + _toSchema = {'storage_tag': 'storage-tag'} + _toPy = {'storage-tag': 'storage_tag'} + def __init__(self, storage_tag=None, **unknown_fields): + ''' + storage_tag : str + ''' + self.storage_tag = storage_tag + + + +class ImportStorageParams(Type): + _toSchema = {'kind': 'kind', 'pool': 'pool', 'provider_id': 'provider-id', 'storage_name': 'storage-name'} + _toPy = {'kind': 'kind', 'pool': 'pool', 'provider-id': 'provider_id', 'storage-name': 'storage_name'} + def __init__(self, kind=None, pool=None, provider_id=None, storage_name=None, **unknown_fields): + ''' + kind : int + pool : str + provider_id : str + storage_name : str + ''' + self.kind = kind + self.pool = pool + self.provider_id = provider_id + self.storage_name = storage_name + + + +class ImportStorageResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : ImportStorageDetails + ''' + self.error = Error.from_json(error) if error else None + self.result = ImportStorageDetails.from_json(result) if result else None + + + +class ImportStorageResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ImportStorageResult] + ''' + self.results = [ImportStorageResult.from_json(o) for o in results or []] + + + +class IngressNetworksChangeEvent(Type): + _toSchema = {'application_token': 'application-token', 'ingress_required': 'ingress-required', 'macaroons': 'macaroons', 'networks': 'networks', 'relation_token': 'relation-token'} + _toPy = {'application-token': 'application_token', 'ingress-required': 'ingress_required', 'macaroons': 'macaroons', 'networks': 'networks', 'relation-token': 'relation_token'} + def __init__(self, application_token=None, ingress_required=None, macaroons=None, networks=None, relation_token=None, **unknown_fields): + ''' + application_token : str + ingress_required : bool + macaroons : typing.Sequence[~Macaroon] + networks : typing.Sequence[str] + relation_token : str + ''' + self.application_token = application_token + self.ingress_required = ingress_required + self.macaroons = [Macaroon.from_json(o) for o in macaroons or []] + self.networks = networks + self.relation_token = relation_token + + + +class IngressNetworksChanges(Type): + _toSchema = {'changes': 'changes'} + _toPy = {'changes': 'changes'} + def __init__(self, changes=None, **unknown_fields): + ''' + changes : typing.Sequence[~IngressNetworksChangeEvent] + ''' + self.changes = [IngressNetworksChangeEvent.from_json(o) for o in changes or []] + + + +class InitiateMigrationArgs(Type): + _toSchema = {'specs': 'specs'} + _toPy = {'specs': 'specs'} + def __init__(self, specs=None, **unknown_fields): + ''' + specs : typing.Sequence[~MigrationSpec] + ''' + self.specs = [MigrationSpec.from_json(o) for o in specs or []] + + + +class InitiateMigrationResult(Type): + _toSchema = {'error': 'error', 'migration_id': 'migration-id', 'model_tag': 'model-tag'} + _toPy = {'error': 'error', 'migration-id': 'migration_id', 'model-tag': 'model_tag'} + def __init__(self, error=None, migration_id=None, model_tag=None, **unknown_fields): + ''' + error : Error + migration_id : str + model_tag : str + ''' + self.error = Error.from_json(error) if error else None + self.migration_id = migration_id + self.model_tag = model_tag + + + +class InitiateMigrationResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~InitiateMigrationResult] + ''' + self.results = [InitiateMigrationResult.from_json(o) for o in results or []] + + + +class InstanceInfo(Type): + _toSchema = {'characteristics': 'characteristics', 'instance_id': 'instance-id', 'network_config': 'network-config', 'nonce': 'nonce', 'tag': 'tag', 'volume_attachments': 'volume-attachments', 'volumes': 'volumes'} + _toPy = {'characteristics': 'characteristics', 'instance-id': 'instance_id', 'network-config': 'network_config', 'nonce': 'nonce', 'tag': 'tag', 'volume-attachments': 'volume_attachments', 'volumes': 'volumes'} + def __init__(self, characteristics=None, instance_id=None, network_config=None, nonce=None, tag=None, volume_attachments=None, volumes=None, **unknown_fields): + ''' + characteristics : HardwareCharacteristics + instance_id : str + network_config : typing.Sequence[~NetworkConfig] + nonce : str + tag : str + volume_attachments : typing.Mapping[str, ~VolumeAttachmentInfo] + volumes : typing.Sequence[~Volume] + ''' + self.characteristics = HardwareCharacteristics.from_json(characteristics) if characteristics else None + self.instance_id = instance_id + self.network_config = [NetworkConfig.from_json(o) for o in network_config or []] + self.nonce = nonce + self.tag = tag + self.volume_attachments = volume_attachments + self.volumes = [Volume.from_json(o) for o in volumes or []] + + + +class InstanceType(Type): + _toSchema = {'arches': 'arches', 'cost': 'cost', 'cpu_cores': 'cpu-cores', 'deprecated': 'deprecated', 'memory': 'memory', 'name': 'name', 'root_disk': 'root-disk', 'virt_type': 'virt-type'} + _toPy = {'arches': 'arches', 'cost': 'cost', 'cpu-cores': 'cpu_cores', 'deprecated': 'deprecated', 'memory': 'memory', 'name': 'name', 'root-disk': 'root_disk', 'virt-type': 'virt_type'} + def __init__(self, arches=None, cost=None, cpu_cores=None, deprecated=None, memory=None, name=None, root_disk=None, virt_type=None, **unknown_fields): + ''' + arches : typing.Sequence[str] + cost : int + cpu_cores : int + deprecated : bool + memory : int + name : str + root_disk : int + virt_type : str + ''' + self.arches = arches + self.cost = cost + self.cpu_cores = cpu_cores + self.deprecated = deprecated + self.memory = memory + self.name = name + self.root_disk = root_disk + self.virt_type = virt_type + + + +class InstanceTypesResult(Type): + _toSchema = {'cost_currency': 'cost-currency', 'cost_divisor': 'cost-divisor', 'cost_unit': 'cost-unit', 'error': 'error', 'instance_types': 'instance-types'} + _toPy = {'cost-currency': 'cost_currency', 'cost-divisor': 'cost_divisor', 'cost-unit': 'cost_unit', 'error': 'error', 'instance-types': 'instance_types'} + def __init__(self, cost_currency=None, cost_divisor=None, cost_unit=None, error=None, instance_types=None, **unknown_fields): + ''' + cost_currency : str + cost_divisor : int + cost_unit : str + error : Error + instance_types : typing.Sequence[~InstanceType] + ''' + self.cost_currency = cost_currency + self.cost_divisor = cost_divisor + self.cost_unit = cost_unit + self.error = Error.from_json(error) if error else None + self.instance_types = [InstanceType.from_json(o) for o in instance_types or []] + + + +class InstanceTypesResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~InstanceTypesResult] + ''' + self.results = [InstanceTypesResult.from_json(o) for o in results or []] + + + +class InstancesInfo(Type): + _toSchema = {'machines': 'machines'} + _toPy = {'machines': 'machines'} + def __init__(self, machines=None, **unknown_fields): + ''' + machines : typing.Sequence[~InstanceInfo] + ''' + self.machines = [InstanceInfo.from_json(o) for o in machines or []] + + + +class IntResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : int + ''' + self.error = Error.from_json(error) if error else None + self.result = result + + + +class IntResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~IntResult] + ''' + self.results = [IntResult.from_json(o) for o in results or []] + + + +class InterfaceAddress(Type): + _toSchema = {'cidr': 'cidr', 'value': 'value'} + _toPy = {'cidr': 'cidr', 'value': 'value'} + def __init__(self, cidr=None, value=None, **unknown_fields): + ''' + cidr : str + value : str + ''' + self.cidr = cidr + self.value = value + + + +class InvalidateCredentialArg(Type): + _toSchema = {'reason': 'reason'} + _toPy = {'reason': 'reason'} + def __init__(self, reason=None, **unknown_fields): + ''' + reason : str + ''' + self.reason = reason + + + +class IsMasterResult(Type): + _toSchema = {'master': 'master'} + _toPy = {'master': 'master'} + def __init__(self, master=None, **unknown_fields): + ''' + master : bool + ''' + self.master = master + + + +class IsMeteredResult(Type): + _toSchema = {'metered': 'metered'} + _toPy = {'metered': 'metered'} + def __init__(self, metered=None, **unknown_fields): + ''' + metered : bool + ''' + self.metered = metered + + + +class JobsResult(Type): + _toSchema = {'error': 'error', 'jobs': 'jobs'} + _toPy = {'error': 'error', 'jobs': 'jobs'} + def __init__(self, error=None, jobs=None, **unknown_fields): + ''' + error : Error + jobs : typing.Sequence[str] + ''' + self.error = Error.from_json(error) if error else None + self.jobs = jobs + + + +class JobsResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~JobsResult] + ''' + self.results = [JobsResult.from_json(o) for o in results or []] + + + +class KnownServiceArgs(Type): + _toSchema = {'known_services': 'known-services'} + _toPy = {'known-services': 'known_services'} + def __init__(self, known_services=None, **unknown_fields): + ''' + known_services : typing.Sequence[str] + ''' + self.known_services = known_services + + + +class KubernetesDeviceParams(Type): + _toSchema = {'attributes': 'Attributes', 'count': 'Count', 'type_': 'Type'} + _toPy = {'Attributes': 'attributes', 'Count': 'count', 'Type': 'type_'} + def __init__(self, attributes=None, count=None, type_=None, **unknown_fields): + ''' + attributes : typing.Mapping[str, str] + count : int + type_ : str + ''' + self.attributes = attributes + self.count = count + self.type_ = type_ + + + +class KubernetesFilesystemAttachmentParams(Type): + _toSchema = {'mount_point': 'mount-point', 'provider': 'provider', 'read_only': 'read-only'} + _toPy = {'mount-point': 'mount_point', 'provider': 'provider', 'read-only': 'read_only'} + def __init__(self, mount_point=None, provider=None, read_only=None, **unknown_fields): + ''' + mount_point : str + provider : str + read_only : bool + ''' + self.mount_point = mount_point + self.provider = provider + self.read_only = read_only + + + +class KubernetesFilesystemInfo(Type): + _toSchema = {'data': 'data', 'filesystem_id': 'filesystem-id', 'info': 'info', 'mount_point': 'mount-point', 'pool': 'pool', 'read_only': 'read-only', 'size': 'size', 'status': 'status', 'storagename': 'storagename', 'volume': 'volume'} + _toPy = {'data': 'data', 'filesystem-id': 'filesystem_id', 'info': 'info', 'mount-point': 'mount_point', 'pool': 'pool', 'read-only': 'read_only', 'size': 'size', 'status': 'status', 'storagename': 'storagename', 'volume': 'volume'} + def __init__(self, data=None, filesystem_id=None, info=None, mount_point=None, pool=None, read_only=None, size=None, status=None, storagename=None, volume=None, **unknown_fields): + ''' + data : typing.Mapping[str, typing.Any] + filesystem_id : str + info : str + mount_point : str + pool : str + read_only : bool + size : int + status : str + storagename : str + volume : KubernetesVolumeInfo + ''' + self.data = data + self.filesystem_id = filesystem_id + self.info = info + self.mount_point = mount_point + self.pool = pool + self.read_only = read_only + self.size = size + self.status = status + self.storagename = storagename + self.volume = KubernetesVolumeInfo.from_json(volume) if volume else None + + + +class KubernetesFilesystemParams(Type): + _toSchema = {'attachment': 'attachment', 'attributes': 'attributes', 'provider': 'provider', 'size': 'size', 'storagename': 'storagename', 'tags': 'tags'} + _toPy = {'attachment': 'attachment', 'attributes': 'attributes', 'provider': 'provider', 'size': 'size', 'storagename': 'storagename', 'tags': 'tags'} + def __init__(self, attachment=None, attributes=None, provider=None, size=None, storagename=None, tags=None, **unknown_fields): + ''' + attachment : KubernetesFilesystemAttachmentParams + attributes : typing.Mapping[str, typing.Any] + provider : str + size : int + storagename : str + tags : typing.Mapping[str, str] + ''' + self.attachment = KubernetesFilesystemAttachmentParams.from_json(attachment) if attachment else None + self.attributes = attributes + self.provider = provider + self.size = size + self.storagename = storagename + self.tags = tags + + + +class KubernetesProvisioningInfo(Type): + _toSchema = {'constraints': 'constraints', 'devices': 'devices', 'filesystems': 'filesystems', 'placement': 'placement', 'pod_spec': 'pod-spec', 'tags': 'tags', 'volumes': 'volumes'} + _toPy = {'constraints': 'constraints', 'devices': 'devices', 'filesystems': 'filesystems', 'placement': 'placement', 'pod-spec': 'pod_spec', 'tags': 'tags', 'volumes': 'volumes'} + def __init__(self, constraints=None, devices=None, filesystems=None, placement=None, pod_spec=None, tags=None, volumes=None, **unknown_fields): + ''' + constraints : Value + devices : typing.Sequence[~KubernetesDeviceParams] + filesystems : typing.Sequence[~KubernetesFilesystemParams] + placement : str + pod_spec : str + tags : typing.Mapping[str, str] + volumes : typing.Sequence[~KubernetesVolumeParams] + ''' + self.constraints = Value.from_json(constraints) if constraints else None + self.devices = [KubernetesDeviceParams.from_json(o) for o in devices or []] + self.filesystems = [KubernetesFilesystemParams.from_json(o) for o in filesystems or []] + self.placement = placement + self.pod_spec = pod_spec + self.tags = tags + self.volumes = [KubernetesVolumeParams.from_json(o) for o in volumes or []] + + + +class KubernetesProvisioningInfoResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : KubernetesProvisioningInfo + ''' + self.error = Error.from_json(error) if error else None + self.result = KubernetesProvisioningInfo.from_json(result) if result else None + + + +class KubernetesProvisioningInfoResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~KubernetesProvisioningInfoResult] + ''' + self.results = [KubernetesProvisioningInfoResult.from_json(o) for o in results or []] + + + +class KubernetesVolumeAttachmentParams(Type): + _toSchema = {'provider': 'provider', 'read_only': 'read-only'} + _toPy = {'provider': 'provider', 'read-only': 'read_only'} + def __init__(self, provider=None, read_only=None, **unknown_fields): + ''' + provider : str + read_only : bool + ''' + self.provider = provider + self.read_only = read_only + + + +class KubernetesVolumeInfo(Type): + _toSchema = {'data': 'data', 'info': 'info', 'persistent': 'persistent', 'pool': 'pool', 'size': 'size', 'status': 'status', 'volume_id': 'volume-id'} + _toPy = {'data': 'data', 'info': 'info', 'persistent': 'persistent', 'pool': 'pool', 'size': 'size', 'status': 'status', 'volume-id': 'volume_id'} + def __init__(self, data=None, info=None, persistent=None, pool=None, size=None, status=None, volume_id=None, **unknown_fields): + ''' + data : typing.Mapping[str, typing.Any] + info : str + persistent : bool + pool : str + size : int + status : str + volume_id : str + ''' + self.data = data + self.info = info + self.persistent = persistent + self.pool = pool + self.size = size + self.status = status + self.volume_id = volume_id + + + +class KubernetesVolumeParams(Type): + _toSchema = {'attachment': 'attachment', 'attributes': 'attributes', 'provider': 'provider', 'size': 'size', 'storagename': 'storagename', 'tags': 'tags'} + _toPy = {'attachment': 'attachment', 'attributes': 'attributes', 'provider': 'provider', 'size': 'size', 'storagename': 'storagename', 'tags': 'tags'} + def __init__(self, attachment=None, attributes=None, provider=None, size=None, storagename=None, tags=None, **unknown_fields): + ''' + attachment : KubernetesVolumeAttachmentParams + attributes : typing.Mapping[str, typing.Any] + provider : str + size : int + storagename : str + tags : typing.Mapping[str, str] + ''' + self.attachment = KubernetesVolumeAttachmentParams.from_json(attachment) if attachment else None + self.attributes = attributes + self.provider = provider + self.size = size + self.storagename = storagename + self.tags = tags + + + +class LXDProfile(Type): + _toSchema = {'config': 'config', 'description': 'description', 'devices': 'devices'} + _toPy = {'config': 'config', 'description': 'description', 'devices': 'devices'} + def __init__(self, config=None, description=None, devices=None, **unknown_fields): + ''' + config : typing.Mapping[str, str] + description : str + devices : typing.Mapping[str, typing.Any] + ''' + self.config = config + self.description = description + self.devices = devices + + + +class LXDProfileUpgradeMessages(Type): + _toSchema = {'application': 'application', 'watcher_id': 'watcher-id'} + _toPy = {'application': 'application', 'watcher-id': 'watcher_id'} + def __init__(self, application=None, watcher_id=None, **unknown_fields): + ''' + application : Entity + watcher_id : str + ''' + self.application = Entity.from_json(application) if application else None + self.watcher_id = watcher_id + + + +class LXDProfileUpgradeMessagesResult(Type): + _toSchema = {'error': 'error', 'message': 'message', 'unit_name': 'unit-name'} + _toPy = {'error': 'error', 'message': 'message', 'unit-name': 'unit_name'} + def __init__(self, error=None, message=None, unit_name=None, **unknown_fields): + ''' + error : Error + message : str + unit_name : str + ''' + self.error = Error.from_json(error) if error else None + self.message = message + self.unit_name = unit_name + + + +class LXDProfileUpgradeMessagesResults(Type): + _toSchema = {'args': 'args'} + _toPy = {'args': 'args'} + def __init__(self, args=None, **unknown_fields): + ''' + args : typing.Sequence[~LXDProfileUpgradeMessagesResult] + ''' + self.args = [LXDProfileUpgradeMessagesResult.from_json(o) for o in args or []] + + + +class LifeResult(Type): + _toSchema = {'error': 'error', 'life': 'life'} + _toPy = {'error': 'error', 'life': 'life'} + def __init__(self, error=None, life=None, **unknown_fields): + ''' + error : Error + life : str + ''' + self.error = Error.from_json(error) if error else None + self.life = life + + + +class LifeResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~LifeResult] + ''' + self.results = [LifeResult.from_json(o) for o in results or []] + + + +class ListCloudImageMetadataResult(Type): + _toSchema = {'result': 'result'} + _toPy = {'result': 'result'} + def __init__(self, result=None, **unknown_fields): + ''' + result : typing.Sequence[~CloudImageMetadata] + ''' + self.result = [CloudImageMetadata.from_json(o) for o in result or []] + + + +class ListCloudInfo(Type): + _toSchema = {'clouddetails': 'CloudDetails', 'user_access': 'user-access'} + _toPy = {'CloudDetails': 'clouddetails', 'user-access': 'user_access'} + def __init__(self, clouddetails=None, user_access=None, **unknown_fields): + ''' + clouddetails : CloudDetails + user_access : str + ''' + self.clouddetails = CloudDetails.from_json(clouddetails) if clouddetails else None + self.user_access = user_access + + + +class ListCloudInfoResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : ListCloudInfo + ''' + self.error = Error.from_json(error) if error else None + self.result = ListCloudInfo.from_json(result) if result else None + + + +class ListCloudInfoResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ListCloudInfoResult] + ''' + self.results = [ListCloudInfoResult.from_json(o) for o in results or []] + + + +class ListCloudsRequest(Type): + _toSchema = {'all_': 'all', 'user_tag': 'user-tag'} + _toPy = {'all': 'all_', 'user-tag': 'user_tag'} + def __init__(self, all_=None, user_tag=None, **unknown_fields): + ''' + all_ : bool + user_tag : str + ''' + self.all_ = all_ + self.user_tag = user_tag + + + +class ListFirewallRulesResults(Type): + _toSchema = {'rules': 'Rules'} + _toPy = {'Rules': 'rules'} + def __init__(self, rules=None, **unknown_fields): + ''' + rules : typing.Sequence[~FirewallRule] + ''' + self.rules = [FirewallRule.from_json(o) for o in rules or []] + + + +class ListImageResult(Type): + _toSchema = {'result': 'result'} + _toPy = {'result': 'result'} + def __init__(self, result=None, **unknown_fields): + ''' + result : typing.Sequence[~ImageMetadata] + ''' + self.result = [ImageMetadata.from_json(o) for o in result or []] + + + +class ListResourcesArgs(Type): + _toSchema = {'entities': 'entities'} + _toPy = {'entities': 'entities'} + def __init__(self, entities=None, **unknown_fields): + ''' + entities : typing.Sequence[~Entity] + ''' + self.entities = [Entity.from_json(o) for o in entities or []] + + + +class ListSSHKeys(Type): + _toSchema = {'entities': 'entities', 'mode': 'mode'} + _toPy = {'entities': 'entities', 'mode': 'mode'} + def __init__(self, entities=None, mode=None, **unknown_fields): + ''' + entities : Entities + mode : bool + ''' + self.entities = Entities.from_json(entities) if entities else None + self.mode = mode + + + +class ListSpacesResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~Space] + ''' + self.results = [Space.from_json(o) for o in results or []] + + + +class ListSubnetsResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~Subnet] + ''' + self.results = [Subnet.from_json(o) for o in results or []] + + + +class ListUnitResourcesArgs(Type): + _toSchema = {'resource_names': 'resource-names'} + _toPy = {'resource-names': 'resource_names'} + def __init__(self, resource_names=None, **unknown_fields): + ''' + resource_names : typing.Sequence[str] + ''' + self.resource_names = resource_names + + + +class LogForwardingGetLastSentParams(Type): + _toSchema = {'ids': 'ids'} + _toPy = {'ids': 'ids'} + def __init__(self, ids=None, **unknown_fields): + ''' + ids : typing.Sequence[~LogForwardingID] + ''' + self.ids = [LogForwardingID.from_json(o) for o in ids or []] + + + +class LogForwardingGetLastSentResult(Type): + _toSchema = {'err': 'err', 'record_id': 'record-id', 'record_timestamp': 'record-timestamp'} + _toPy = {'err': 'err', 'record-id': 'record_id', 'record-timestamp': 'record_timestamp'} + def __init__(self, err=None, record_id=None, record_timestamp=None, **unknown_fields): + ''' + err : Error + record_id : int + record_timestamp : int + ''' + self.err = Error.from_json(err) if err else None + self.record_id = record_id + self.record_timestamp = record_timestamp + + + +class LogForwardingGetLastSentResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~LogForwardingGetLastSentResult] + ''' + self.results = [LogForwardingGetLastSentResult.from_json(o) for o in results or []] + + + +class LogForwardingID(Type): + _toSchema = {'model': 'model', 'sink': 'sink'} + _toPy = {'model': 'model', 'sink': 'sink'} + def __init__(self, model=None, sink=None, **unknown_fields): + ''' + model : str + sink : str + ''' + self.model = model + self.sink = sink + + + +class LogForwardingSetLastSentParam(Type): + _toSchema = {'logforwardingid': 'LogForwardingID', 'record_id': 'record-id', 'record_timestamp': 'record-timestamp'} + _toPy = {'LogForwardingID': 'logforwardingid', 'record-id': 'record_id', 'record-timestamp': 'record_timestamp'} + def __init__(self, logforwardingid=None, record_id=None, record_timestamp=None, **unknown_fields): + ''' + logforwardingid : LogForwardingID + record_id : int + record_timestamp : int + ''' + self.logforwardingid = LogForwardingID.from_json(logforwardingid) if logforwardingid else None + self.record_id = record_id + self.record_timestamp = record_timestamp + + + +class LogForwardingSetLastSentParams(Type): + _toSchema = {'params': 'params'} + _toPy = {'params': 'params'} + def __init__(self, params=None, **unknown_fields): + ''' + params : typing.Sequence[~LogForwardingSetLastSentParam] + ''' + self.params = [LogForwardingSetLastSentParam.from_json(o) for o in params or []] + + + +class LookUpArg(Type): + _toSchema = {'id_': 'id', 'name': 'name'} + _toPy = {'id': 'id_', 'name': 'name'} + def __init__(self, id_=None, name=None, **unknown_fields): + ''' + id_ : str + name : str + ''' + self.id_ = id_ + self.name = name + + + +class LookUpArgs(Type): + _toSchema = {'args': 'args'} + _toPy = {'args': 'args'} + def __init__(self, args=None, **unknown_fields): + ''' + args : typing.Sequence[~LookUpArg] + ''' + self.args = [LookUpArg.from_json(o) for o in args or []] + + + +class LookUpPayloadArg(Type): + _toSchema = {'id_': 'id', 'name': 'name'} + _toPy = {'id': 'id_', 'name': 'name'} + def __init__(self, id_=None, name=None, **unknown_fields): + ''' + id_ : str + name : str + ''' + self.id_ = id_ + self.name = name + + + +class LookUpPayloadArgs(Type): + _toSchema = {'args': 'args'} + _toPy = {'args': 'args'} + def __init__(self, args=None, **unknown_fields): + ''' + args : typing.Sequence[~LookUpPayloadArg] + ''' + self.args = [LookUpPayloadArg.from_json(o) for o in args or []] + + + +class Macaroon(Type): + _toSchema = {} + _toPy = {} + def __init__(self, **unknown_fields): + ''' + + ''' + pass + + + +class MacaroonResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : Macaroon + ''' + self.error = Error.from_json(error) if error else None + self.result = Macaroon.from_json(result) if result else None + + + +class MacaroonResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~MacaroonResult] + ''' + self.results = [MacaroonResult.from_json(o) for o in results or []] + + + +class MachineAddresses(Type): + _toSchema = {'addresses': 'addresses', 'tag': 'tag'} + _toPy = {'addresses': 'addresses', 'tag': 'tag'} + def __init__(self, addresses=None, tag=None, **unknown_fields): + ''' + addresses : typing.Sequence[~Address] + tag : str + ''' + self.addresses = [Address.from_json(o) for o in addresses or []] + self.tag = tag + + + +class MachineAddressesResult(Type): + _toSchema = {'addresses': 'addresses', 'error': 'error'} + _toPy = {'addresses': 'addresses', 'error': 'error'} + def __init__(self, addresses=None, error=None, **unknown_fields): + ''' + addresses : typing.Sequence[~Address] + error : Error + ''' + self.addresses = [Address.from_json(o) for o in addresses or []] + self.error = Error.from_json(error) if error else None + + + +class MachineAddressesResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~MachineAddressesResult] + ''' + self.results = [MachineAddressesResult.from_json(o) for o in results or []] + + + +class MachineBlockDevices(Type): + _toSchema = {'block_devices': 'block-devices', 'machine': 'machine'} + _toPy = {'block-devices': 'block_devices', 'machine': 'machine'} + def __init__(self, block_devices=None, machine=None, **unknown_fields): + ''' + block_devices : typing.Sequence[~BlockDevice] + machine : str + ''' + self.block_devices = [BlockDevice.from_json(o) for o in block_devices or []] + self.machine = machine + + + +class MachineContainers(Type): + _toSchema = {'container_types': 'container-types', 'machine_tag': 'machine-tag'} + _toPy = {'container-types': 'container_types', 'machine-tag': 'machine_tag'} + def __init__(self, container_types=None, machine_tag=None, **unknown_fields): + ''' + container_types : typing.Sequence[str] + machine_tag : str + ''' + self.container_types = container_types + self.machine_tag = machine_tag + + + +class MachineContainersParams(Type): + _toSchema = {'params': 'params'} + _toPy = {'params': 'params'} + def __init__(self, params=None, **unknown_fields): + ''' + params : typing.Sequence[~MachineContainers] + ''' + self.params = [MachineContainers.from_json(o) for o in params or []] + + + +class MachineHardware(Type): + _toSchema = {'arch': 'arch', 'availability_zone': 'availability-zone', 'cores': 'cores', 'cpu_power': 'cpu-power', 'mem': 'mem', 'root_disk': 'root-disk', 'tags': 'tags'} + _toPy = {'arch': 'arch', 'availability-zone': 'availability_zone', 'cores': 'cores', 'cpu-power': 'cpu_power', 'mem': 'mem', 'root-disk': 'root_disk', 'tags': 'tags'} + def __init__(self, arch=None, availability_zone=None, cores=None, cpu_power=None, mem=None, root_disk=None, tags=None, **unknown_fields): + ''' + arch : str + availability_zone : str + cores : int + cpu_power : int + mem : int + root_disk : int + tags : typing.Sequence[str] + ''' + self.arch = arch + self.availability_zone = availability_zone + self.cores = cores + self.cpu_power = cpu_power + self.mem = mem + self.root_disk = root_disk + self.tags = tags + + + +class MachineNetworkConfigResult(Type): + _toSchema = {'error': 'error', 'info': 'info'} + _toPy = {'error': 'error', 'info': 'info'} + def __init__(self, error=None, info=None, **unknown_fields): + ''' + error : Error + info : typing.Sequence[~NetworkConfig] + ''' + self.error = Error.from_json(error) if error else None + self.info = [NetworkConfig.from_json(o) for o in info or []] + + + +class MachineNetworkConfigResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~MachineNetworkConfigResult] + ''' + self.results = [MachineNetworkConfigResult.from_json(o) for o in results or []] + + + +class MachinePortRange(Type): + _toSchema = {'port_range': 'port-range', 'relation_tag': 'relation-tag', 'unit_tag': 'unit-tag'} + _toPy = {'port-range': 'port_range', 'relation-tag': 'relation_tag', 'unit-tag': 'unit_tag'} + def __init__(self, port_range=None, relation_tag=None, unit_tag=None, **unknown_fields): + ''' + port_range : PortRange + relation_tag : str + unit_tag : str + ''' + self.port_range = PortRange.from_json(port_range) if port_range else None + self.relation_tag = relation_tag + self.unit_tag = unit_tag + + + +class MachinePorts(Type): + _toSchema = {'machine_tag': 'machine-tag', 'subnet_tag': 'subnet-tag'} + _toPy = {'machine-tag': 'machine_tag', 'subnet-tag': 'subnet_tag'} + def __init__(self, machine_tag=None, subnet_tag=None, **unknown_fields): + ''' + machine_tag : str + subnet_tag : str + ''' + self.machine_tag = machine_tag + self.subnet_tag = subnet_tag + + + +class MachinePortsParams(Type): + _toSchema = {'params': 'params'} + _toPy = {'params': 'params'} + def __init__(self, params=None, **unknown_fields): + ''' + params : typing.Sequence[~MachinePorts] + ''' + self.params = [MachinePorts.from_json(o) for o in params or []] + + + +class MachinePortsResult(Type): + _toSchema = {'error': 'error', 'ports': 'ports'} + _toPy = {'error': 'error', 'ports': 'ports'} + def __init__(self, error=None, ports=None, **unknown_fields): + ''' + error : Error + ports : typing.Sequence[~MachinePortRange] + ''' + self.error = Error.from_json(error) if error else None + self.ports = [MachinePortRange.from_json(o) for o in ports or []] + + + +class MachinePortsResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~MachinePortsResult] + ''' + self.results = [MachinePortsResult.from_json(o) for o in results or []] + + + +class MachineStatus(Type): + _toSchema = {'agent_status': 'agent-status', 'containers': 'containers', 'dns_name': 'dns-name', 'hardware': 'hardware', 'has_vote': 'has-vote', 'id_': 'id', 'instance_id': 'instance-id', 'instance_status': 'instance-status', 'ip_addresses': 'ip-addresses', 'jobs': 'jobs', 'series': 'series', 'wants_vote': 'wants-vote'} + _toPy = {'agent-status': 'agent_status', 'containers': 'containers', 'dns-name': 'dns_name', 'hardware': 'hardware', 'has-vote': 'has_vote', 'id': 'id_', 'instance-id': 'instance_id', 'instance-status': 'instance_status', 'ip-addresses': 'ip_addresses', 'jobs': 'jobs', 'series': 'series', 'wants-vote': 'wants_vote'} + def __init__(self, agent_status=None, containers=None, dns_name=None, hardware=None, has_vote=None, id_=None, instance_id=None, instance_status=None, ip_addresses=None, jobs=None, series=None, wants_vote=None, **unknown_fields): + ''' + agent_status : DetailedStatus + containers : typing.Mapping[str, ~MachineStatus] + dns_name : str + hardware : str + has_vote : bool + id_ : str + instance_id : str + instance_status : DetailedStatus + ip_addresses : typing.Sequence[str] + jobs : typing.Sequence[str] + series : str + wants_vote : bool + ''' + self.agent_status = DetailedStatus.from_json(agent_status) if agent_status else None + self.containers = containers + self.dns_name = dns_name + self.hardware = hardware + self.has_vote = has_vote + self.id_ = id_ + self.instance_id = instance_id + self.instance_status = DetailedStatus.from_json(instance_status) if instance_status else None + self.ip_addresses = ip_addresses + self.jobs = jobs + self.series = series + self.wants_vote = wants_vote + + + +class MachineStorageId(Type): + _toSchema = {'attachment_tag': 'attachment-tag', 'machine_tag': 'machine-tag'} + _toPy = {'attachment-tag': 'attachment_tag', 'machine-tag': 'machine_tag'} + def __init__(self, attachment_tag=None, machine_tag=None, **unknown_fields): + ''' + attachment_tag : str + machine_tag : str + ''' + self.attachment_tag = attachment_tag + self.machine_tag = machine_tag + + + +class MachineStorageIds(Type): + _toSchema = {'ids': 'ids'} + _toPy = {'ids': 'ids'} + def __init__(self, ids=None, **unknown_fields): + ''' + ids : typing.Sequence[~MachineStorageId] + ''' + self.ids = [MachineStorageId.from_json(o) for o in ids or []] + + + +class MachineStorageIdsWatchResult(Type): + _toSchema = {'changes': 'changes', 'error': 'error', 'watcher_id': 'watcher-id'} + _toPy = {'changes': 'changes', 'error': 'error', 'watcher-id': 'watcher_id'} + def __init__(self, changes=None, error=None, watcher_id=None, **unknown_fields): + ''' + changes : typing.Sequence[~MachineStorageId] + error : Error + watcher_id : str + ''' + self.changes = [MachineStorageId.from_json(o) for o in changes or []] + self.error = Error.from_json(error) if error else None + self.watcher_id = watcher_id + + + +class MachineStorageIdsWatchResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~MachineStorageIdsWatchResult] + ''' + self.results = [MachineStorageIdsWatchResult.from_json(o) for o in results or []] + + + +class MapResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : typing.Mapping[str, typing.Any] + ''' + self.error = Error.from_json(error) if error else None + self.result = result + + + +class MapResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~MapResult] + ''' + self.results = [MapResult.from_json(o) for o in results or []] + + + +class MasterMigrationStatus(Type): + _toSchema = {'migration_id': 'migration-id', 'phase': 'phase', 'phase_changed_time': 'phase-changed-time', 'spec': 'spec'} + _toPy = {'migration-id': 'migration_id', 'phase': 'phase', 'phase-changed-time': 'phase_changed_time', 'spec': 'spec'} + def __init__(self, migration_id=None, phase=None, phase_changed_time=None, spec=None, **unknown_fields): + ''' + migration_id : str + phase : str + phase_changed_time : str + spec : MigrationSpec + ''' + self.migration_id = migration_id + self.phase = phase + self.phase_changed_time = phase_changed_time + self.spec = MigrationSpec.from_json(spec) if spec else None + + + +class Member(Type): + _toSchema = {'address': 'Address', 'arbiter': 'Arbiter', 'buildindexes': 'BuildIndexes', 'hidden': 'Hidden', 'id_': 'Id', 'priority': 'Priority', 'slavedelay': 'SlaveDelay', 'tags': 'Tags', 'votes': 'Votes'} + _toPy = {'Address': 'address', 'Arbiter': 'arbiter', 'BuildIndexes': 'buildindexes', 'Hidden': 'hidden', 'Id': 'id_', 'Priority': 'priority', 'SlaveDelay': 'slavedelay', 'Tags': 'tags', 'Votes': 'votes'} + def __init__(self, address=None, arbiter=None, buildindexes=None, hidden=None, id_=None, priority=None, slavedelay=None, tags=None, votes=None, **unknown_fields): + ''' + address : str + arbiter : bool + buildindexes : bool + hidden : bool + id_ : int + priority : float + slavedelay : int + tags : typing.Mapping[str, str] + votes : int + ''' + self.address = address + self.arbiter = arbiter + self.buildindexes = buildindexes + self.hidden = hidden + self.id_ = id_ + self.priority = priority + self.slavedelay = slavedelay + self.tags = tags + self.votes = votes + + + +class MergeLeadershipSettingsBulkParams(Type): + _toSchema = {'params': 'params'} + _toPy = {'params': 'params'} + def __init__(self, params=None, **unknown_fields): + ''' + params : typing.Sequence[~MergeLeadershipSettingsParam] + ''' + self.params = [MergeLeadershipSettingsParam.from_json(o) for o in params or []] + + + +class MergeLeadershipSettingsParam(Type): + _toSchema = {'application_tag': 'application-tag', 'settings': 'settings'} + _toPy = {'application-tag': 'application_tag', 'settings': 'settings'} + def __init__(self, application_tag=None, settings=None, **unknown_fields): + ''' + application_tag : str + settings : typing.Mapping[str, str] + ''' + self.application_tag = application_tag + self.settings = settings + + + +class MetadataImageIds(Type): + _toSchema = {'image_ids': 'image-ids'} + _toPy = {'image-ids': 'image_ids'} + def __init__(self, image_ids=None, **unknown_fields): + ''' + image_ids : typing.Sequence[str] + ''' + self.image_ids = image_ids + + + +class MetadataSaveParams(Type): + _toSchema = {'metadata': 'metadata'} + _toPy = {'metadata': 'metadata'} + def __init__(self, metadata=None, **unknown_fields): + ''' + metadata : typing.Sequence[~CloudImageMetadataList] + ''' + self.metadata = [CloudImageMetadataList.from_json(o) for o in metadata or []] + + + +class MeterStatus(Type): + _toSchema = {'color': 'color', 'message': 'message'} + _toPy = {'color': 'color', 'message': 'message'} + def __init__(self, color=None, message=None, **unknown_fields): + ''' + color : str + message : str + ''' + self.color = color + self.message = message + + + +class MeterStatusParam(Type): + _toSchema = {'code': 'code', 'info': 'info', 'tag': 'tag'} + _toPy = {'code': 'code', 'info': 'info', 'tag': 'tag'} + def __init__(self, code=None, info=None, tag=None, **unknown_fields): + ''' + code : str + info : str + tag : str + ''' + self.code = code + self.info = info + self.tag = tag + + + +class MeterStatusParams(Type): + _toSchema = {'statues': 'statues'} + _toPy = {'statues': 'statues'} + def __init__(self, statues=None, **unknown_fields): + ''' + statues : typing.Sequence[~MeterStatusParam] + ''' + self.statues = [MeterStatusParam.from_json(o) for o in statues or []] + + + +class MeterStatusResult(Type): + _toSchema = {'code': 'code', 'error': 'error', 'info': 'info'} + _toPy = {'code': 'code', 'error': 'error', 'info': 'info'} + def __init__(self, code=None, error=None, info=None, **unknown_fields): + ''' + code : str + error : Error + info : str + ''' + self.code = code + self.error = Error.from_json(error) if error else None + self.info = info + + + +class MeterStatusResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~MeterStatusResult] + ''' + self.results = [MeterStatusResult.from_json(o) for o in results or []] + + + +class Metric(Type): + _toSchema = {'key': 'key', 'time': 'time', 'value': 'value'} + _toPy = {'key': 'key', 'time': 'time', 'value': 'value'} + def __init__(self, key=None, time=None, value=None, **unknown_fields): + ''' + key : str + time : str + value : str + ''' + self.key = key + self.time = time + self.value = value + + + +class MetricBatch(Type): + _toSchema = {'charm_url': 'charm-url', 'created': 'created', 'metrics': 'metrics', 'uuid': 'uuid'} + _toPy = {'charm-url': 'charm_url', 'created': 'created', 'metrics': 'metrics', 'uuid': 'uuid'} + def __init__(self, charm_url=None, created=None, metrics=None, uuid=None, **unknown_fields): + ''' + charm_url : str + created : str + metrics : typing.Sequence[~Metric] + uuid : str + ''' + self.charm_url = charm_url + self.created = created + self.metrics = [Metric.from_json(o) for o in metrics or []] + self.uuid = uuid + + + +class MetricBatchParam(Type): + _toSchema = {'batch': 'batch', 'tag': 'tag'} + _toPy = {'batch': 'batch', 'tag': 'tag'} + def __init__(self, batch=None, tag=None, **unknown_fields): + ''' + batch : MetricBatch + tag : str + ''' + self.batch = MetricBatch.from_json(batch) if batch else None + self.tag = tag + + + +class MetricBatchParams(Type): + _toSchema = {'batches': 'batches'} + _toPy = {'batches': 'batches'} + def __init__(self, batches=None, **unknown_fields): + ''' + batches : typing.Sequence[~MetricBatchParam] + ''' + self.batches = [MetricBatchParam.from_json(o) for o in batches or []] + + + +class MetricResult(Type): + _toSchema = {'key': 'key', 'time': 'time', 'unit': 'unit', 'value': 'value'} + _toPy = {'key': 'key', 'time': 'time', 'unit': 'unit', 'value': 'value'} + def __init__(self, key=None, time=None, unit=None, value=None, **unknown_fields): + ''' + key : str + time : str + unit : str + value : str + ''' + self.key = key + self.time = time + self.unit = unit + self.value = value + + + +class MetricResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~EntityMetrics] + ''' + self.results = [EntityMetrics.from_json(o) for o in results or []] + + + +class MigrationModelInfo(Type): + _toSchema = {'agent_version': 'agent-version', 'name': 'name', 'owner_tag': 'owner-tag', 'uuid': 'uuid'} + _toPy = {'agent-version': 'agent_version', 'name': 'name', 'owner-tag': 'owner_tag', 'uuid': 'uuid'} + def __init__(self, agent_version=None, name=None, owner_tag=None, uuid=None, **unknown_fields): + ''' + agent_version : Number + name : str + owner_tag : str + uuid : str + ''' + self.agent_version = Number.from_json(agent_version) if agent_version else None + self.name = name + self.owner_tag = owner_tag + self.uuid = uuid + + + +class MigrationSpec(Type): + _toSchema = {'external_control': 'external-control', 'model_tag': 'model-tag', 'skip_initial_prechecks': 'skip-initial-prechecks', 'target_info': 'target-info'} + _toPy = {'external-control': 'external_control', 'model-tag': 'model_tag', 'skip-initial-prechecks': 'skip_initial_prechecks', 'target-info': 'target_info'} + def __init__(self, external_control=None, model_tag=None, skip_initial_prechecks=None, target_info=None, **unknown_fields): + ''' + external_control : bool + model_tag : str + skip_initial_prechecks : bool + target_info : MigrationTargetInfo + ''' + self.external_control = external_control + self.model_tag = model_tag + self.skip_initial_prechecks = skip_initial_prechecks + self.target_info = MigrationTargetInfo.from_json(target_info) if target_info else None + + + +class MigrationStatus(Type): + _toSchema = {'attempt': 'attempt', 'external_control': 'external-control', 'migration_id': 'migration-id', 'phase': 'phase', 'source_api_addrs': 'source-api-addrs', 'source_ca_cert': 'source-ca-cert', 'target_api_addrs': 'target-api-addrs', 'target_ca_cert': 'target-ca-cert'} + _toPy = {'attempt': 'attempt', 'external-control': 'external_control', 'migration-id': 'migration_id', 'phase': 'phase', 'source-api-addrs': 'source_api_addrs', 'source-ca-cert': 'source_ca_cert', 'target-api-addrs': 'target_api_addrs', 'target-ca-cert': 'target_ca_cert'} + def __init__(self, attempt=None, external_control=None, migration_id=None, phase=None, source_api_addrs=None, source_ca_cert=None, target_api_addrs=None, target_ca_cert=None, **unknown_fields): + ''' + attempt : int + external_control : bool + migration_id : str + phase : str + source_api_addrs : typing.Sequence[str] + source_ca_cert : str + target_api_addrs : typing.Sequence[str] + target_ca_cert : str + ''' + self.attempt = attempt + self.external_control = external_control + self.migration_id = migration_id + self.phase = phase + self.source_api_addrs = source_api_addrs + self.source_ca_cert = source_ca_cert + self.target_api_addrs = target_api_addrs + self.target_ca_cert = target_ca_cert + + + +class MigrationTargetInfo(Type): + _toSchema = {'addrs': 'addrs', 'auth_tag': 'auth-tag', 'ca_cert': 'ca-cert', 'controller_tag': 'controller-tag', 'macaroons': 'macaroons', 'password': 'password'} + _toPy = {'addrs': 'addrs', 'auth-tag': 'auth_tag', 'ca-cert': 'ca_cert', 'controller-tag': 'controller_tag', 'macaroons': 'macaroons', 'password': 'password'} + def __init__(self, addrs=None, auth_tag=None, ca_cert=None, controller_tag=None, macaroons=None, password=None, **unknown_fields): + ''' + addrs : typing.Sequence[str] + auth_tag : str + ca_cert : str + controller_tag : str + macaroons : str + password : str + ''' + self.addrs = addrs + self.auth_tag = auth_tag + self.ca_cert = ca_cert + self.controller_tag = controller_tag + self.macaroons = macaroons + self.password = password + + + +class MinionReport(Type): + _toSchema = {'migration_id': 'migration-id', 'phase': 'phase', 'success': 'success'} + _toPy = {'migration-id': 'migration_id', 'phase': 'phase', 'success': 'success'} + def __init__(self, migration_id=None, phase=None, success=None, **unknown_fields): + ''' + migration_id : str + phase : str + success : bool + ''' + self.migration_id = migration_id + self.phase = phase + self.success = success + + + +class MinionReports(Type): + _toSchema = {'failed': 'failed', 'migration_id': 'migration-id', 'phase': 'phase', 'success_count': 'success-count', 'unknown_count': 'unknown-count', 'unknown_sample': 'unknown-sample'} + _toPy = {'failed': 'failed', 'migration-id': 'migration_id', 'phase': 'phase', 'success-count': 'success_count', 'unknown-count': 'unknown_count', 'unknown-sample': 'unknown_sample'} + def __init__(self, failed=None, migration_id=None, phase=None, success_count=None, unknown_count=None, unknown_sample=None, **unknown_fields): + ''' + failed : typing.Sequence[str] + migration_id : str + phase : str + success_count : int + unknown_count : int + unknown_sample : typing.Sequence[str] + ''' + self.failed = failed + self.migration_id = migration_id + self.phase = phase + self.success_count = success_count + self.unknown_count = unknown_count + self.unknown_sample = unknown_sample + + + +class Model(Type): + _toSchema = {'name': 'name', 'owner_tag': 'owner-tag', 'uuid': 'uuid'} + _toPy = {'name': 'name', 'owner-tag': 'owner_tag', 'uuid': 'uuid'} + def __init__(self, name=None, owner_tag=None, uuid=None, **unknown_fields): + ''' + name : str + owner_tag : str + uuid : str + ''' + self.name = name + self.owner_tag = owner_tag + self.uuid = uuid + + + +class ModelAccess(Type): + _toSchema = {'access': 'access', 'model': 'model'} + _toPy = {'access': 'access', 'model': 'model'} + def __init__(self, access=None, model=None, **unknown_fields): + ''' + access : str + model : str + ''' + self.access = access + self.model = model + + + +class ModelArgs(Type): + _toSchema = {'model_tag': 'model-tag'} + _toPy = {'model-tag': 'model_tag'} + def __init__(self, model_tag=None, **unknown_fields): + ''' + model_tag : str + ''' + self.model_tag = model_tag + + + +class ModelBlockInfo(Type): + _toSchema = {'blocks': 'blocks', 'model_uuid': 'model-uuid', 'name': 'name', 'owner_tag': 'owner-tag'} + _toPy = {'blocks': 'blocks', 'model-uuid': 'model_uuid', 'name': 'name', 'owner-tag': 'owner_tag'} + def __init__(self, blocks=None, model_uuid=None, name=None, owner_tag=None, **unknown_fields): + ''' + blocks : typing.Sequence[str] + model_uuid : str + name : str + owner_tag : str + ''' + self.blocks = blocks + self.model_uuid = model_uuid + self.name = name + self.owner_tag = owner_tag + + + +class ModelBlockInfoList(Type): + _toSchema = {'models': 'models'} + _toPy = {'models': 'models'} + def __init__(self, models=None, **unknown_fields): + ''' + models : typing.Sequence[~ModelBlockInfo] + ''' + self.models = [ModelBlockInfo.from_json(o) for o in models or []] + + + +class ModelConfigResult(Type): + _toSchema = {'config': 'config'} + _toPy = {'config': 'config'} + def __init__(self, config=None, **unknown_fields): + ''' + config : typing.Mapping[str, typing.Any] + ''' + self.config = config + + + +class ModelConfigResults(Type): + _toSchema = {'config': 'config'} + _toPy = {'config': 'config'} + def __init__(self, config=None, **unknown_fields): + ''' + config : typing.Mapping[str, ~ConfigValue] + ''' + self.config = config + + + +class ModelCreateArgs(Type): + _toSchema = {'cloud_tag': 'cloud-tag', 'config': 'config', 'credential': 'credential', 'name': 'name', 'owner_tag': 'owner-tag', 'region': 'region'} + _toPy = {'cloud-tag': 'cloud_tag', 'config': 'config', 'credential': 'credential', 'name': 'name', 'owner-tag': 'owner_tag', 'region': 'region'} + def __init__(self, cloud_tag=None, config=None, credential=None, name=None, owner_tag=None, region=None, **unknown_fields): + ''' + cloud_tag : str + config : typing.Mapping[str, typing.Any] + credential : str + name : str + owner_tag : str + region : str + ''' + self.cloud_tag = cloud_tag + self.config = config + self.credential = credential + self.name = name + self.owner_tag = owner_tag + self.region = region + + + +class ModelCredential(Type): + _toSchema = {'credential_tag': 'credential-tag', 'exists': 'exists', 'model_tag': 'model-tag', 'valid': 'valid'} + _toPy = {'credential-tag': 'credential_tag', 'exists': 'exists', 'model-tag': 'model_tag', 'valid': 'valid'} + def __init__(self, credential_tag=None, exists=None, model_tag=None, valid=None, **unknown_fields): + ''' + credential_tag : str + exists : bool + model_tag : str + valid : bool + ''' + self.credential_tag = credential_tag + self.exists = exists + self.model_tag = model_tag + self.valid = valid + + + +class ModelDefaultValues(Type): + _toSchema = {'cloud_region': 'cloud-region', 'cloud_tag': 'cloud-tag', 'config': 'config'} + _toPy = {'cloud-region': 'cloud_region', 'cloud-tag': 'cloud_tag', 'config': 'config'} + def __init__(self, cloud_region=None, cloud_tag=None, config=None, **unknown_fields): + ''' + cloud_region : str + cloud_tag : str + config : typing.Mapping[str, typing.Any] + ''' + self.cloud_region = cloud_region + self.cloud_tag = cloud_tag + self.config = config + + + +class ModelDefaults(Type): + _toSchema = {'controller': 'controller', 'default': 'default', 'regions': 'regions'} + _toPy = {'controller': 'controller', 'default': 'default', 'regions': 'regions'} + def __init__(self, controller=None, default=None, regions=None, **unknown_fields): + ''' + controller : typing.Mapping[str, typing.Any] + default : typing.Mapping[str, typing.Any] + regions : typing.Sequence[~RegionDefaults] + ''' + self.controller = controller + self.default = default + self.regions = [RegionDefaults.from_json(o) for o in regions or []] + + + +class ModelDefaultsResult(Type): + _toSchema = {'config': 'config'} + _toPy = {'config': 'config'} + def __init__(self, config=None, **unknown_fields): + ''' + config : typing.Mapping[str, ~ModelDefaults] + ''' + self.config = config + + + +class ModelEntityCount(Type): + _toSchema = {'count': 'count', 'entity': 'entity'} + _toPy = {'count': 'count', 'entity': 'entity'} + def __init__(self, count=None, entity=None, **unknown_fields): + ''' + count : int + entity : str + ''' + self.count = count + self.entity = entity + + + +class ModelFilesystemInfo(Type): + _toSchema = {'detachable': 'detachable', 'id_': 'id', 'message': 'message', 'provider_id': 'provider-id', 'status': 'status'} + _toPy = {'detachable': 'detachable', 'id': 'id_', 'message': 'message', 'provider-id': 'provider_id', 'status': 'status'} + def __init__(self, detachable=None, id_=None, message=None, provider_id=None, status=None, **unknown_fields): + ''' + detachable : bool + id_ : str + message : str + provider_id : str + status : str + ''' + self.detachable = detachable + self.id_ = id_ + self.message = message + self.provider_id = provider_id + self.status = status + + + +class ModelInfo(Type): + _toSchema = {'agent_version': 'agent-version', 'cloud_credential_tag': 'cloud-credential-tag', 'cloud_region': 'cloud-region', 'cloud_tag': 'cloud-tag', 'controller_uuid': 'controller-uuid', 'default_series': 'default-series', 'life': 'life', 'machines': 'machines', 'migration': 'migration', 'name': 'name', 'owner_tag': 'owner-tag', 'provider_type': 'provider-type', 'sla': 'sla', 'status': 'status', 'type_': 'type', 'users': 'users', 'uuid': 'uuid'} + _toPy = {'agent-version': 'agent_version', 'cloud-credential-tag': 'cloud_credential_tag', 'cloud-region': 'cloud_region', 'cloud-tag': 'cloud_tag', 'controller-uuid': 'controller_uuid', 'default-series': 'default_series', 'life': 'life', 'machines': 'machines', 'migration': 'migration', 'name': 'name', 'owner-tag': 'owner_tag', 'provider-type': 'provider_type', 'sla': 'sla', 'status': 'status', 'type': 'type_', 'users': 'users', 'uuid': 'uuid'} + def __init__(self, agent_version=None, cloud_credential_tag=None, cloud_region=None, cloud_tag=None, controller_uuid=None, default_series=None, life=None, machines=None, migration=None, name=None, owner_tag=None, provider_type=None, sla=None, status=None, type_=None, users=None, uuid=None, **unknown_fields): + ''' + agent_version : Number + cloud_credential_tag : str + cloud_region : str + cloud_tag : str + controller_uuid : str + default_series : str + life : str + machines : typing.Sequence[~ModelMachineInfo] + migration : ModelMigrationStatus + name : str + owner_tag : str + provider_type : str + sla : ModelSLAInfo + status : EntityStatus + type_ : str + users : typing.Sequence[~ModelUserInfo] + uuid : str + ''' + self.agent_version = Number.from_json(agent_version) if agent_version else None + self.cloud_credential_tag = cloud_credential_tag + self.cloud_region = cloud_region + self.cloud_tag = cloud_tag + self.controller_uuid = controller_uuid + self.default_series = default_series + self.life = life + self.machines = [ModelMachineInfo.from_json(o) for o in machines or []] + self.migration = ModelMigrationStatus.from_json(migration) if migration else None + self.name = name + self.owner_tag = owner_tag + self.provider_type = provider_type + self.sla = ModelSLAInfo.from_json(sla) if sla else None + self.status = EntityStatus.from_json(status) if status else None + self.type_ = type_ + self.users = [ModelUserInfo.from_json(o) for o in users or []] + self.uuid = uuid + + + +class ModelInfoResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : ModelInfo + ''' + self.error = Error.from_json(error) if error else None + self.result = ModelInfo.from_json(result) if result else None + + + +class ModelInfoResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ModelInfoResult] + ''' + self.results = [ModelInfoResult.from_json(o) for o in results or []] + + + +class ModelInstanceTypesConstraint(Type): + _toSchema = {'value': 'value'} + _toPy = {'value': 'value'} + def __init__(self, value=None, **unknown_fields): + ''' + value : Value + ''' + self.value = Value.from_json(value) if value else None + + + +class ModelInstanceTypesConstraints(Type): + _toSchema = {'constraints': 'constraints'} + _toPy = {'constraints': 'constraints'} + def __init__(self, constraints=None, **unknown_fields): + ''' + constraints : typing.Sequence[~ModelInstanceTypesConstraint] + ''' + self.constraints = [ModelInstanceTypesConstraint.from_json(o) for o in constraints or []] + + + +class ModelMachineInfo(Type): + _toSchema = {'hardware': 'hardware', 'has_vote': 'has-vote', 'id_': 'id', 'instance_id': 'instance-id', 'status': 'status', 'wants_vote': 'wants-vote'} + _toPy = {'hardware': 'hardware', 'has-vote': 'has_vote', 'id': 'id_', 'instance-id': 'instance_id', 'status': 'status', 'wants-vote': 'wants_vote'} + def __init__(self, hardware=None, has_vote=None, id_=None, instance_id=None, status=None, wants_vote=None, **unknown_fields): + ''' + hardware : MachineHardware + has_vote : bool + id_ : str + instance_id : str + status : str + wants_vote : bool + ''' + self.hardware = MachineHardware.from_json(hardware) if hardware else None + self.has_vote = has_vote + self.id_ = id_ + self.instance_id = instance_id + self.status = status + self.wants_vote = wants_vote + + + +class ModelMigrationStatus(Type): + _toSchema = {'end': 'end', 'start': 'start', 'status': 'status'} + _toPy = {'end': 'end', 'start': 'start', 'status': 'status'} + def __init__(self, end=None, start=None, status=None, **unknown_fields): + ''' + end : str + start : str + status : str + ''' + self.end = end + self.start = start + self.status = status + + + +class ModelResult(Type): + _toSchema = {'error': 'error', 'name': 'name', 'uuid': 'uuid'} + _toPy = {'error': 'error', 'name': 'name', 'uuid': 'uuid'} + def __init__(self, error=None, name=None, uuid=None, **unknown_fields): + ''' + error : Error + name : str + uuid : str + ''' + self.error = Error.from_json(error) if error else None + self.name = name + self.uuid = uuid + + + +class ModelSLA(Type): + _toSchema = {'creds': 'creds', 'level': 'level'} + _toPy = {'creds': 'creds', 'level': 'level'} + def __init__(self, creds=None, level=None, **unknown_fields): + ''' + creds : typing.Sequence[int] + level : str + ''' + self.creds = creds + self.level = level + + + +class ModelSLAInfo(Type): + _toSchema = {'level': 'level', 'owner': 'owner'} + _toPy = {'level': 'level', 'owner': 'owner'} + def __init__(self, level=None, owner=None, **unknown_fields): + ''' + level : str + owner : str + ''' + self.level = level + self.owner = owner + + + +class ModelSequencesResult(Type): + _toSchema = {'sequences': 'sequences'} + _toPy = {'sequences': 'sequences'} + def __init__(self, sequences=None, **unknown_fields): + ''' + sequences : typing.Mapping[str, int] + ''' + self.sequences = sequences + + + +class ModelSet(Type): + _toSchema = {'config': 'config'} + _toPy = {'config': 'config'} + def __init__(self, config=None, **unknown_fields): + ''' + config : typing.Mapping[str, typing.Any] + ''' + self.config = config + + + +class ModelStatus(Type): + _toSchema = {'application_count': 'application-count', 'hosted_machine_count': 'hosted-machine-count', 'life': 'life', 'machines': 'machines', 'model_tag': 'model-tag', 'owner_tag': 'owner-tag'} + _toPy = {'application-count': 'application_count', 'hosted-machine-count': 'hosted_machine_count', 'life': 'life', 'machines': 'machines', 'model-tag': 'model_tag', 'owner-tag': 'owner_tag'} + def __init__(self, application_count=None, hosted_machine_count=None, life=None, machines=None, model_tag=None, owner_tag=None, **unknown_fields): + ''' + application_count : int + hosted_machine_count : int + life : str + machines : typing.Sequence[~ModelMachineInfo] + model_tag : str + owner_tag : str + ''' + self.application_count = application_count + self.hosted_machine_count = hosted_machine_count + self.life = life + self.machines = [ModelMachineInfo.from_json(o) for o in machines or []] + self.model_tag = model_tag + self.owner_tag = owner_tag + + + +class ModelStatusInfo(Type): + _toSchema = {'available_version': 'available-version', 'cloud_tag': 'cloud-tag', 'meter_status': 'meter-status', 'model_status': 'model-status', 'name': 'name', 'region': 'region', 'sla': 'sla', 'type_': 'type', 'version': 'version'} + _toPy = {'available-version': 'available_version', 'cloud-tag': 'cloud_tag', 'meter-status': 'meter_status', 'model-status': 'model_status', 'name': 'name', 'region': 'region', 'sla': 'sla', 'type': 'type_', 'version': 'version'} + def __init__(self, available_version=None, cloud_tag=None, meter_status=None, model_status=None, name=None, region=None, sla=None, type_=None, version=None, **unknown_fields): + ''' + available_version : str + cloud_tag : str + meter_status : MeterStatus + model_status : DetailedStatus + name : str + region : str + sla : str + type_ : str + version : str + ''' + self.available_version = available_version + self.cloud_tag = cloud_tag + self.meter_status = MeterStatus.from_json(meter_status) if meter_status else None + self.model_status = DetailedStatus.from_json(model_status) if model_status else None + self.name = name + self.region = region + self.sla = sla + self.type_ = type_ + self.version = version + + + +class ModelStatusResults(Type): + _toSchema = {'models': 'models'} + _toPy = {'models': 'models'} + def __init__(self, models=None, **unknown_fields): + ''' + models : typing.Sequence[~ModelStatus] + ''' + self.models = [ModelStatus.from_json(o) for o in models or []] + + + +class ModelSummariesRequest(Type): + _toSchema = {'all_': 'all', 'user_tag': 'user-tag'} + _toPy = {'all': 'all_', 'user-tag': 'user_tag'} + def __init__(self, all_=None, user_tag=None, **unknown_fields): + ''' + all_ : bool + user_tag : str + ''' + self.all_ = all_ + self.user_tag = user_tag + + + +class ModelSummary(Type): + _toSchema = {'agent_version': 'agent-version', 'cloud_credential_tag': 'cloud-credential-tag', 'cloud_region': 'cloud-region', 'cloud_tag': 'cloud-tag', 'controller_uuid': 'controller-uuid', 'counts': 'counts', 'default_series': 'default-series', 'last_connection': 'last-connection', 'life': 'life', 'migration': 'migration', 'name': 'name', 'owner_tag': 'owner-tag', 'provider_type': 'provider-type', 'sla': 'sla', 'status': 'status', 'type_': 'type', 'user_access': 'user-access', 'uuid': 'uuid'} + _toPy = {'agent-version': 'agent_version', 'cloud-credential-tag': 'cloud_credential_tag', 'cloud-region': 'cloud_region', 'cloud-tag': 'cloud_tag', 'controller-uuid': 'controller_uuid', 'counts': 'counts', 'default-series': 'default_series', 'last-connection': 'last_connection', 'life': 'life', 'migration': 'migration', 'name': 'name', 'owner-tag': 'owner_tag', 'provider-type': 'provider_type', 'sla': 'sla', 'status': 'status', 'type': 'type_', 'user-access': 'user_access', 'uuid': 'uuid'} + def __init__(self, agent_version=None, cloud_credential_tag=None, cloud_region=None, cloud_tag=None, controller_uuid=None, counts=None, default_series=None, last_connection=None, life=None, migration=None, name=None, owner_tag=None, provider_type=None, sla=None, status=None, type_=None, user_access=None, uuid=None, **unknown_fields): + ''' + agent_version : Number + cloud_credential_tag : str + cloud_region : str + cloud_tag : str + controller_uuid : str + counts : typing.Sequence[~ModelEntityCount] + default_series : str + last_connection : str + life : str + migration : ModelMigrationStatus + name : str + owner_tag : str + provider_type : str + sla : ModelSLAInfo + status : EntityStatus + type_ : str + user_access : str + uuid : str + ''' + self.agent_version = Number.from_json(agent_version) if agent_version else None + self.cloud_credential_tag = cloud_credential_tag + self.cloud_region = cloud_region + self.cloud_tag = cloud_tag + self.controller_uuid = controller_uuid + self.counts = [ModelEntityCount.from_json(o) for o in counts or []] + self.default_series = default_series + self.last_connection = last_connection + self.life = life + self.migration = ModelMigrationStatus.from_json(migration) if migration else None + self.name = name + self.owner_tag = owner_tag + self.provider_type = provider_type + self.sla = ModelSLAInfo.from_json(sla) if sla else None + self.status = EntityStatus.from_json(status) if status else None + self.type_ = type_ + self.user_access = user_access + self.uuid = uuid + + + +class ModelSummaryResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : ModelSummary + ''' + self.error = Error.from_json(error) if error else None + self.result = ModelSummary.from_json(result) if result else None + + + +class ModelSummaryResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ModelSummaryResult] + ''' + self.results = [ModelSummaryResult.from_json(o) for o in results or []] + + + +class ModelTag(Type): + _toSchema = {} + _toPy = {} + def __init__(self, **unknown_fields): + ''' + + ''' + pass + + + +class ModelUnset(Type): + _toSchema = {'keys': 'keys'} + _toPy = {'keys': 'keys'} + def __init__(self, keys=None, **unknown_fields): + ''' + keys : typing.Sequence[str] + ''' + self.keys = keys + + + +class ModelUnsetKeys(Type): + _toSchema = {'cloud_region': 'cloud-region', 'cloud_tag': 'cloud-tag', 'keys': 'keys'} + _toPy = {'cloud-region': 'cloud_region', 'cloud-tag': 'cloud_tag', 'keys': 'keys'} + def __init__(self, cloud_region=None, cloud_tag=None, keys=None, **unknown_fields): + ''' + cloud_region : str + cloud_tag : str + keys : typing.Sequence[str] + ''' + self.cloud_region = cloud_region + self.cloud_tag = cloud_tag + self.keys = keys + + + +class ModelUserInfo(Type): + _toSchema = {'access': 'access', 'display_name': 'display-name', 'last_connection': 'last-connection', 'user': 'user'} + _toPy = {'access': 'access', 'display-name': 'display_name', 'last-connection': 'last_connection', 'user': 'user'} + def __init__(self, access=None, display_name=None, last_connection=None, user=None, **unknown_fields): + ''' + access : str + display_name : str + last_connection : str + user : str + ''' + self.access = access + self.display_name = display_name + self.last_connection = last_connection + self.user = user + + + +class ModelUserInfoResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : ModelUserInfo + ''' + self.error = Error.from_json(error) if error else None + self.result = ModelUserInfo.from_json(result) if result else None + + + +class ModelUserInfoResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ModelUserInfoResult] + ''' + self.results = [ModelUserInfoResult.from_json(o) for o in results or []] + + + +class ModelVolumeInfo(Type): + _toSchema = {'detachable': 'detachable', 'id_': 'id', 'message': 'message', 'provider_id': 'provider-id', 'status': 'status'} + _toPy = {'detachable': 'detachable', 'id': 'id_', 'message': 'message', 'provider-id': 'provider_id', 'status': 'status'} + def __init__(self, detachable=None, id_=None, message=None, provider_id=None, status=None, **unknown_fields): + ''' + detachable : bool + id_ : str + message : str + provider_id : str + status : str + ''' + self.detachable = detachable + self.id_ = id_ + self.message = message + self.provider_id = provider_id + self.status = status + + + +class ModifyCloudAccess(Type): + _toSchema = {'access': 'access', 'action': 'action', 'cloud_tag': 'cloud-tag', 'user_tag': 'user-tag'} + _toPy = {'access': 'access', 'action': 'action', 'cloud-tag': 'cloud_tag', 'user-tag': 'user_tag'} + def __init__(self, access=None, action=None, cloud_tag=None, user_tag=None, **unknown_fields): + ''' + access : str + action : str + cloud_tag : str + user_tag : str + ''' + self.access = access + self.action = action + self.cloud_tag = cloud_tag + self.user_tag = user_tag + + + +class ModifyCloudAccessRequest(Type): + _toSchema = {'changes': 'changes'} + _toPy = {'changes': 'changes'} + def __init__(self, changes=None, **unknown_fields): + ''' + changes : typing.Sequence[~ModifyCloudAccess] + ''' + self.changes = [ModifyCloudAccess.from_json(o) for o in changes or []] + + + +class ModifyControllerAccess(Type): + _toSchema = {'access': 'access', 'action': 'action', 'user_tag': 'user-tag'} + _toPy = {'access': 'access', 'action': 'action', 'user-tag': 'user_tag'} + def __init__(self, access=None, action=None, user_tag=None, **unknown_fields): + ''' + access : str + action : str + user_tag : str + ''' + self.access = access + self.action = action + self.user_tag = user_tag + + + +class ModifyControllerAccessRequest(Type): + _toSchema = {'changes': 'changes'} + _toPy = {'changes': 'changes'} + def __init__(self, changes=None, **unknown_fields): + ''' + changes : typing.Sequence[~ModifyControllerAccess] + ''' + self.changes = [ModifyControllerAccess.from_json(o) for o in changes or []] + + + +class ModifyModelAccess(Type): + _toSchema = {'access': 'access', 'action': 'action', 'model_tag': 'model-tag', 'user_tag': 'user-tag'} + _toPy = {'access': 'access', 'action': 'action', 'model-tag': 'model_tag', 'user-tag': 'user_tag'} + def __init__(self, access=None, action=None, model_tag=None, user_tag=None, **unknown_fields): + ''' + access : str + action : str + model_tag : str + user_tag : str + ''' + self.access = access + self.action = action + self.model_tag = model_tag + self.user_tag = user_tag + + + +class ModifyModelAccessRequest(Type): + _toSchema = {'changes': 'changes'} + _toPy = {'changes': 'changes'} + def __init__(self, changes=None, **unknown_fields): + ''' + changes : typing.Sequence[~ModifyModelAccess] + ''' + self.changes = [ModifyModelAccess.from_json(o) for o in changes or []] + + + +class ModifyOfferAccess(Type): + _toSchema = {'access': 'access', 'action': 'action', 'offer_url': 'offer-url', 'user_tag': 'user-tag'} + _toPy = {'access': 'access', 'action': 'action', 'offer-url': 'offer_url', 'user-tag': 'user_tag'} + def __init__(self, access=None, action=None, offer_url=None, user_tag=None, **unknown_fields): + ''' + access : str + action : str + offer_url : str + user_tag : str + ''' + self.access = access + self.action = action + self.offer_url = offer_url + self.user_tag = user_tag + + + +class ModifyOfferAccessRequest(Type): + _toSchema = {'changes': 'changes'} + _toPy = {'changes': 'changes'} + def __init__(self, changes=None, **unknown_fields): + ''' + changes : typing.Sequence[~ModifyOfferAccess] + ''' + self.changes = [ModifyOfferAccess.from_json(o) for o in changes or []] + + + +class ModifyUserSSHKeys(Type): + _toSchema = {'ssh_keys': 'ssh-keys', 'user': 'user'} + _toPy = {'ssh-keys': 'ssh_keys', 'user': 'user'} + def __init__(self, ssh_keys=None, user=None, **unknown_fields): + ''' + ssh_keys : typing.Sequence[str] + user : str + ''' + self.ssh_keys = ssh_keys + self.user = user + + + +class MongoUpgradeResults(Type): + _toSchema = {'ha_members': 'ha-members', 'master': 'master', 'rs_members': 'rs-members'} + _toPy = {'ha-members': 'ha_members', 'master': 'master', 'rs-members': 'rs_members'} + def __init__(self, ha_members=None, master=None, rs_members=None, **unknown_fields): + ''' + ha_members : typing.Sequence[~HAMember] + master : HAMember + rs_members : typing.Sequence[~Member] + ''' + self.ha_members = [HAMember.from_json(o) for o in ha_members or []] + self.master = HAMember.from_json(master) if master else None + self.rs_members = [Member.from_json(o) for o in rs_members or []] + + + +class MongoVersion(Type): + _toSchema = {'engine': 'engine', 'major': 'major', 'minor': 'minor', 'patch': 'patch'} + _toPy = {'engine': 'engine', 'major': 'major', 'minor': 'minor', 'patch': 'patch'} + def __init__(self, engine=None, major=None, minor=None, patch=None, **unknown_fields): + ''' + engine : str + major : int + minor : int + patch : str + ''' + self.engine = engine + self.major = major + self.minor = minor + self.patch = patch + + + +class NetworkConfig(Type): + _toSchema = {'address': 'address', 'cidr': 'cidr', 'config_type': 'config-type', 'device_index': 'device-index', 'disabled': 'disabled', 'dns_search_domains': 'dns-search-domains', 'dns_servers': 'dns-servers', 'gateway_address': 'gateway-address', 'interface_name': 'interface-name', 'interface_type': 'interface-type', 'mac_address': 'mac-address', 'mtu': 'mtu', 'no_auto_start': 'no-auto-start', 'parent_interface_name': 'parent-interface-name', 'provider_address_id': 'provider-address-id', 'provider_id': 'provider-id', 'provider_space_id': 'provider-space-id', 'provider_subnet_id': 'provider-subnet-id', 'provider_vlan_id': 'provider-vlan-id', 'vlan_tag': 'vlan-tag'} + _toPy = {'address': 'address', 'cidr': 'cidr', 'config-type': 'config_type', 'device-index': 'device_index', 'disabled': 'disabled', 'dns-search-domains': 'dns_search_domains', 'dns-servers': 'dns_servers', 'gateway-address': 'gateway_address', 'interface-name': 'interface_name', 'interface-type': 'interface_type', 'mac-address': 'mac_address', 'mtu': 'mtu', 'no-auto-start': 'no_auto_start', 'parent-interface-name': 'parent_interface_name', 'provider-address-id': 'provider_address_id', 'provider-id': 'provider_id', 'provider-space-id': 'provider_space_id', 'provider-subnet-id': 'provider_subnet_id', 'provider-vlan-id': 'provider_vlan_id', 'vlan-tag': 'vlan_tag'} + def __init__(self, address=None, cidr=None, config_type=None, device_index=None, disabled=None, dns_search_domains=None, dns_servers=None, gateway_address=None, interface_name=None, interface_type=None, mac_address=None, mtu=None, no_auto_start=None, parent_interface_name=None, provider_address_id=None, provider_id=None, provider_space_id=None, provider_subnet_id=None, provider_vlan_id=None, vlan_tag=None, **unknown_fields): + ''' + address : str + cidr : str + config_type : str + device_index : int + disabled : bool + dns_search_domains : typing.Sequence[str] + dns_servers : typing.Sequence[str] + gateway_address : str + interface_name : str + interface_type : str + mac_address : str + mtu : int + no_auto_start : bool + parent_interface_name : str + provider_address_id : str + provider_id : str + provider_space_id : str + provider_subnet_id : str + provider_vlan_id : str + vlan_tag : int + ''' + self.address = address + self.cidr = cidr + self.config_type = config_type + self.device_index = device_index + self.disabled = disabled + self.dns_search_domains = dns_search_domains + self.dns_servers = dns_servers + self.gateway_address = gateway_address + self.interface_name = interface_name + self.interface_type = interface_type + self.mac_address = mac_address + self.mtu = mtu + self.no_auto_start = no_auto_start + self.parent_interface_name = parent_interface_name + self.provider_address_id = provider_address_id + self.provider_id = provider_id + self.provider_space_id = provider_space_id + self.provider_subnet_id = provider_subnet_id + self.provider_vlan_id = provider_vlan_id + self.vlan_tag = vlan_tag + + + +class NetworkInfo(Type): + _toSchema = {'addresses': 'addresses', 'interface_name': 'interface-name', 'mac_address': 'mac-address'} + _toPy = {'addresses': 'addresses', 'interface-name': 'interface_name', 'mac-address': 'mac_address'} + def __init__(self, addresses=None, interface_name=None, mac_address=None, **unknown_fields): + ''' + addresses : typing.Sequence[~InterfaceAddress] + interface_name : str + mac_address : str + ''' + self.addresses = [InterfaceAddress.from_json(o) for o in addresses or []] + self.interface_name = interface_name + self.mac_address = mac_address + + + +class NetworkInfoParams(Type): + _toSchema = {'bindings': 'bindings', 'unit': 'unit'} + _toPy = {'bindings': 'bindings', 'unit': 'unit'} + def __init__(self, bindings=None, unit=None, **unknown_fields): + ''' + bindings : typing.Sequence[str] + unit : str + ''' + self.bindings = bindings + self.unit = unit + + + +class NetworkInfoResult(Type): + _toSchema = {'error': 'error', 'network_info': 'network-info'} + _toPy = {'error': 'error', 'network-info': 'network_info'} + def __init__(self, error=None, network_info=None, **unknown_fields): + ''' + error : Error + network_info : typing.Sequence[~NetworkInfo] + ''' + self.error = Error.from_json(error) if error else None + self.network_info = [NetworkInfo.from_json(o) for o in network_info or []] + + + +class NetworkInfoResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Mapping[str, ~NetworkInfoResult] + ''' + self.results = results + + + +class NetworkInterface(Type): + _toSchema = {'dns_nameservers': 'dns-nameservers', 'gateway': 'gateway', 'ip_addresses': 'ip-addresses', 'is_up': 'is-up', 'mac_address': 'mac-address', 'space': 'space'} + _toPy = {'dns-nameservers': 'dns_nameservers', 'gateway': 'gateway', 'ip-addresses': 'ip_addresses', 'is-up': 'is_up', 'mac-address': 'mac_address', 'space': 'space'} + def __init__(self, dns_nameservers=None, gateway=None, ip_addresses=None, is_up=None, mac_address=None, space=None, **unknown_fields): + ''' + dns_nameservers : typing.Sequence[str] + gateway : str + ip_addresses : typing.Sequence[str] + is_up : bool + mac_address : str + space : str + ''' + self.dns_nameservers = dns_nameservers + self.gateway = gateway + self.ip_addresses = ip_addresses + self.is_up = is_up + self.mac_address = mac_address + self.space = space + + + +class NetworkRoute(Type): + _toSchema = {'destination_cidr': 'destination-cidr', 'gateway_ip': 'gateway-ip', 'metric': 'metric'} + _toPy = {'destination-cidr': 'destination_cidr', 'gateway-ip': 'gateway_ip', 'metric': 'metric'} + def __init__(self, destination_cidr=None, gateway_ip=None, metric=None, **unknown_fields): + ''' + destination_cidr : str + gateway_ip : str + metric : int + ''' + self.destination_cidr = destination_cidr + self.gateway_ip = gateway_ip + self.metric = metric + + + +class NotifyWatchResult(Type): + _toSchema = {'error': 'error', 'notifywatcherid': 'NotifyWatcherId'} + _toPy = {'NotifyWatcherId': 'notifywatcherid', 'error': 'error'} + def __init__(self, notifywatcherid=None, error=None, **unknown_fields): + ''' + notifywatcherid : str + error : Error + ''' + self.notifywatcherid = notifywatcherid + self.error = Error.from_json(error) if error else None + + + +class NotifyWatchResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~NotifyWatchResult] + ''' + self.results = [NotifyWatchResult.from_json(o) for o in results or []] + + + +class Number(Type): + _toSchema = {'build': 'Build', 'major': 'Major', 'minor': 'Minor', 'patch': 'Patch', 'tag': 'Tag'} + _toPy = {'Build': 'build', 'Major': 'major', 'Minor': 'minor', 'Patch': 'patch', 'Tag': 'tag'} + def __init__(self, build=None, major=None, minor=None, patch=None, tag=None, **unknown_fields): + ''' + build : int + major : int + minor : int + patch : int + tag : str + ''' + self.build = build + self.major = major + self.minor = minor + self.patch = patch + self.tag = tag + + + +class OfferArg(Type): + _toSchema = {'macaroons': 'macaroons', 'offer_uuid': 'offer-uuid'} + _toPy = {'macaroons': 'macaroons', 'offer-uuid': 'offer_uuid'} + def __init__(self, macaroons=None, offer_uuid=None, **unknown_fields): + ''' + macaroons : typing.Sequence[~Macaroon] + offer_uuid : str + ''' + self.macaroons = [Macaroon.from_json(o) for o in macaroons or []] + self.offer_uuid = offer_uuid + + + +class OfferArgs(Type): + _toSchema = {'args': 'args'} + _toPy = {'args': 'args'} + def __init__(self, args=None, **unknown_fields): + ''' + args : typing.Sequence[~OfferArg] + ''' + self.args = [OfferArg.from_json(o) for o in args or []] + + + +class OfferConnection(Type): + _toSchema = {'endpoint': 'endpoint', 'ingress_subnets': 'ingress-subnets', 'relation_id': 'relation-id', 'source_model_tag': 'source-model-tag', 'status': 'status', 'username': 'username'} + _toPy = {'endpoint': 'endpoint', 'ingress-subnets': 'ingress_subnets', 'relation-id': 'relation_id', 'source-model-tag': 'source_model_tag', 'status': 'status', 'username': 'username'} + def __init__(self, endpoint=None, ingress_subnets=None, relation_id=None, source_model_tag=None, status=None, username=None, **unknown_fields): + ''' + endpoint : str + ingress_subnets : typing.Sequence[str] + relation_id : int + source_model_tag : str + status : EntityStatus + username : str + ''' + self.endpoint = endpoint + self.ingress_subnets = ingress_subnets + self.relation_id = relation_id + self.source_model_tag = source_model_tag + self.status = EntityStatus.from_json(status) if status else None + self.username = username + + + +class OfferFilter(Type): + _toSchema = {'allowed_users': 'allowed-users', 'application_description': 'application-description', 'application_name': 'application-name', 'application_user': 'application-user', 'connected_users': 'connected-users', 'endpoints': 'endpoints', 'model_name': 'model-name', 'offer_name': 'offer-name', 'owner_name': 'owner-name'} + _toPy = {'allowed-users': 'allowed_users', 'application-description': 'application_description', 'application-name': 'application_name', 'application-user': 'application_user', 'connected-users': 'connected_users', 'endpoints': 'endpoints', 'model-name': 'model_name', 'offer-name': 'offer_name', 'owner-name': 'owner_name'} + def __init__(self, allowed_users=None, application_description=None, application_name=None, application_user=None, connected_users=None, endpoints=None, model_name=None, offer_name=None, owner_name=None, **unknown_fields): + ''' + allowed_users : typing.Sequence[str] + application_description : str + application_name : str + application_user : str + connected_users : typing.Sequence[str] + endpoints : typing.Sequence[~EndpointFilterAttributes] + model_name : str + offer_name : str + owner_name : str + ''' + self.allowed_users = allowed_users + self.application_description = application_description + self.application_name = application_name + self.application_user = application_user + self.connected_users = connected_users + self.endpoints = [EndpointFilterAttributes.from_json(o) for o in endpoints or []] + self.model_name = model_name + self.offer_name = offer_name + self.owner_name = owner_name + + + +class OfferFilters(Type): + _toSchema = {'filters': 'Filters'} + _toPy = {'Filters': 'filters'} + def __init__(self, filters=None, **unknown_fields): + ''' + filters : typing.Sequence[~OfferFilter] + ''' + self.filters = [OfferFilter.from_json(o) for o in filters or []] + + + +class OfferStatusChange(Type): + _toSchema = {'offer_name': 'offer-name', 'status': 'status'} + _toPy = {'offer-name': 'offer_name', 'status': 'status'} + def __init__(self, offer_name=None, status=None, **unknown_fields): + ''' + offer_name : str + status : EntityStatus + ''' + self.offer_name = offer_name + self.status = EntityStatus.from_json(status) if status else None + + + +class OfferStatusWatchResult(Type): + _toSchema = {'changes': 'changes', 'error': 'error', 'watcher_id': 'watcher-id'} + _toPy = {'changes': 'changes', 'error': 'error', 'watcher-id': 'watcher_id'} + def __init__(self, changes=None, error=None, watcher_id=None, **unknown_fields): + ''' + changes : typing.Sequence[~OfferStatusChange] + error : Error + watcher_id : str + ''' + self.changes = [OfferStatusChange.from_json(o) for o in changes or []] + self.error = Error.from_json(error) if error else None + self.watcher_id = watcher_id + + + +class OfferStatusWatchResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~OfferStatusWatchResult] + ''' + self.results = [OfferStatusWatchResult.from_json(o) for o in results or []] + + + +class OfferURLs(Type): + _toSchema = {'offer_urls': 'offer-urls'} + _toPy = {'offer-urls': 'offer_urls'} + def __init__(self, offer_urls=None, **unknown_fields): + ''' + offer_urls : typing.Sequence[str] + ''' + self.offer_urls = offer_urls + + + +class OfferUserDetails(Type): + _toSchema = {'access': 'access', 'display_name': 'display-name', 'user': 'user'} + _toPy = {'access': 'access', 'display-name': 'display_name', 'user': 'user'} + def __init__(self, access=None, display_name=None, user=None, **unknown_fields): + ''' + access : str + display_name : str + user : str + ''' + self.access = access + self.display_name = display_name + self.user = user + + + +class OperatorProvisioningInfo(Type): + _toSchema = {'api_addresses': 'api-addresses', 'charm_storage': 'charm-storage', 'image_path': 'image-path', 'tags': 'tags', 'version': 'version'} + _toPy = {'api-addresses': 'api_addresses', 'charm-storage': 'charm_storage', 'image-path': 'image_path', 'tags': 'tags', 'version': 'version'} + def __init__(self, api_addresses=None, charm_storage=None, image_path=None, tags=None, version=None, **unknown_fields): + ''' + api_addresses : typing.Sequence[str] + charm_storage : KubernetesFilesystemParams + image_path : str + tags : typing.Mapping[str, str] + version : Number + ''' + self.api_addresses = api_addresses + self.charm_storage = KubernetesFilesystemParams.from_json(charm_storage) if charm_storage else None + self.image_path = image_path + self.tags = tags + self.version = Number.from_json(version) if version else None + + + +class Payload(Type): + _toSchema = {'class_': 'class', 'id_': 'id', 'labels': 'labels', 'machine': 'machine', 'status': 'status', 'type_': 'type', 'unit': 'unit'} + _toPy = {'class': 'class_', 'id': 'id_', 'labels': 'labels', 'machine': 'machine', 'status': 'status', 'type': 'type_', 'unit': 'unit'} + def __init__(self, class_=None, id_=None, labels=None, machine=None, status=None, type_=None, unit=None, **unknown_fields): + ''' + class_ : str + id_ : str + labels : typing.Sequence[str] + machine : str + status : str + type_ : str + unit : str + ''' + self.class_ = class_ + self.id_ = id_ + self.labels = labels + self.machine = machine + self.status = status + self.type_ = type_ + self.unit = unit + + + +class PayloadListArgs(Type): + _toSchema = {'patterns': 'patterns'} + _toPy = {'patterns': 'patterns'} + def __init__(self, patterns=None, **unknown_fields): + ''' + patterns : typing.Sequence[str] + ''' + self.patterns = patterns + + + +class PayloadListResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~Payload] + ''' + self.results = [Payload.from_json(o) for o in results or []] + + + +class PayloadResult(Type): + _toSchema = {'entity': 'Entity', 'error': 'error', 'not_found': 'not-found', 'payload': 'payload'} + _toPy = {'Entity': 'entity', 'error': 'error', 'not-found': 'not_found', 'payload': 'payload'} + def __init__(self, entity=None, error=None, not_found=None, payload=None, **unknown_fields): + ''' + entity : Entity + error : Error + not_found : bool + payload : Payload + ''' + self.entity = Entity.from_json(entity) if entity else None + self.error = Error.from_json(error) if error else None + self.not_found = not_found + self.payload = Payload.from_json(payload) if payload else None + + + +class PayloadResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~PayloadResult] + ''' + self.results = [PayloadResult.from_json(o) for o in results or []] + + + +class PhaseResult(Type): + _toSchema = {'error': 'error', 'phase': 'phase'} + _toPy = {'error': 'error', 'phase': 'phase'} + def __init__(self, error=None, phase=None, **unknown_fields): + ''' + error : Error + phase : str + ''' + self.error = Error.from_json(error) if error else None + self.phase = phase + + + +class PhaseResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~PhaseResult] + ''' + self.results = [PhaseResult.from_json(o) for o in results or []] + + + +class PinApplicationResult(Type): + _toSchema = {'application_name': 'application-name', 'error': 'error'} + _toPy = {'application-name': 'application_name', 'error': 'error'} + def __init__(self, application_name=None, error=None, **unknown_fields): + ''' + application_name : str + error : Error + ''' + self.application_name = application_name + self.error = Error.from_json(error) if error else None + + + +class PinApplicationsResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~PinApplicationResult] + ''' + self.results = [PinApplicationResult.from_json(o) for o in results or []] + + + +class PinnedLeadershipResult(Type): + _toSchema = {'result': 'result'} + _toPy = {'result': 'result'} + def __init__(self, result=None, **unknown_fields): + ''' + result : typing.Sequence[str] + ''' + self.result = result + + + +class Placement(Type): + _toSchema = {'directive': 'directive', 'scope': 'scope'} + _toPy = {'directive': 'directive', 'scope': 'scope'} + def __init__(self, directive=None, scope=None, **unknown_fields): + ''' + directive : str + scope : str + ''' + self.directive = directive + self.scope = scope + + + +class PortRange(Type): + _toSchema = {'from_port': 'from-port', 'protocol': 'protocol', 'to_port': 'to-port'} + _toPy = {'from-port': 'from_port', 'protocol': 'protocol', 'to-port': 'to_port'} + def __init__(self, from_port=None, protocol=None, to_port=None, **unknown_fields): + ''' + from_port : int + protocol : str + to_port : int + ''' + self.from_port = from_port + self.protocol = protocol + self.to_port = to_port + + + +class PrivateAddress(Type): + _toSchema = {'target': 'target'} + _toPy = {'target': 'target'} + def __init__(self, target=None, **unknown_fields): + ''' + target : str + ''' + self.target = target + + + +class PrivateAddressResults(Type): + _toSchema = {'private_address': 'private-address'} + _toPy = {'private-address': 'private_address'} + def __init__(self, private_address=None, **unknown_fields): + ''' + private_address : str + ''' + self.private_address = private_address + + + +class ProfileChangeResult(Type): + _toSchema = {'error': 'error', 'new_profile_name': 'new-profile-name', 'old_profile_name': 'old-profile-name', 'profile': 'profile', 'subordinate': 'subordinate'} + _toPy = {'error': 'error', 'new-profile-name': 'new_profile_name', 'old-profile-name': 'old_profile_name', 'profile': 'profile', 'subordinate': 'subordinate'} + def __init__(self, error=None, new_profile_name=None, old_profile_name=None, profile=None, subordinate=None, **unknown_fields): + ''' + error : Error + new_profile_name : str + old_profile_name : str + profile : CharmLXDProfile + subordinate : bool + ''' + self.error = Error.from_json(error) if error else None + self.new_profile_name = new_profile_name + self.old_profile_name = old_profile_name + self.profile = CharmLXDProfile.from_json(profile) if profile else None + self.subordinate = subordinate + + + +class ProfileChangeResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ProfileChangeResult] + ''' + self.results = [ProfileChangeResult.from_json(o) for o in results or []] + + + +class ProviderInterfaceInfo(Type): + _toSchema = {'interface_name': 'interface-name', 'mac_address': 'mac-address', 'provider_id': 'provider-id'} + _toPy = {'interface-name': 'interface_name', 'mac-address': 'mac_address', 'provider-id': 'provider_id'} + def __init__(self, interface_name=None, mac_address=None, provider_id=None, **unknown_fields): + ''' + interface_name : str + mac_address : str + provider_id : str + ''' + self.interface_name = interface_name + self.mac_address = mac_address + self.provider_id = provider_id + + + +class ProviderInterfaceInfoResult(Type): + _toSchema = {'error': 'error', 'interfaces': 'interfaces', 'machine_tag': 'machine-tag'} + _toPy = {'error': 'error', 'interfaces': 'interfaces', 'machine-tag': 'machine_tag'} + def __init__(self, error=None, interfaces=None, machine_tag=None, **unknown_fields): + ''' + error : Error + interfaces : typing.Sequence[~ProviderInterfaceInfo] + machine_tag : str + ''' + self.error = Error.from_json(error) if error else None + self.interfaces = [ProviderInterfaceInfo.from_json(o) for o in interfaces or []] + self.machine_tag = machine_tag + + + +class ProviderInterfaceInfoResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ProviderInterfaceInfoResult] + ''' + self.results = [ProviderInterfaceInfoResult.from_json(o) for o in results or []] + + + +class ProviderSpace(Type): + _toSchema = {'error': 'error', 'name': 'name', 'provider_id': 'provider-id', 'subnets': 'subnets'} + _toPy = {'error': 'error', 'name': 'name', 'provider-id': 'provider_id', 'subnets': 'subnets'} + def __init__(self, error=None, name=None, provider_id=None, subnets=None, **unknown_fields): + ''' + error : Error + name : str + provider_id : str + subnets : typing.Sequence[~Subnet] + ''' + self.error = Error.from_json(error) if error else None + self.name = name + self.provider_id = provider_id + self.subnets = [Subnet.from_json(o) for o in subnets or []] + + + +class ProvisioningInfo(Type): + _toSchema = {'constraints': 'constraints', 'controller_config': 'controller-config', 'endpoint_bindings': 'endpoint-bindings', 'image_metadata': 'image-metadata', 'jobs': 'jobs', 'placement': 'placement', 'series': 'series', 'subnets_to_zones': 'subnets-to-zones', 'tags': 'tags', 'volumes': 'volumes'} + _toPy = {'constraints': 'constraints', 'controller-config': 'controller_config', 'endpoint-bindings': 'endpoint_bindings', 'image-metadata': 'image_metadata', 'jobs': 'jobs', 'placement': 'placement', 'series': 'series', 'subnets-to-zones': 'subnets_to_zones', 'tags': 'tags', 'volumes': 'volumes'} + def __init__(self, constraints=None, controller_config=None, endpoint_bindings=None, image_metadata=None, jobs=None, placement=None, series=None, subnets_to_zones=None, tags=None, volumes=None, **unknown_fields): + ''' + constraints : Value + controller_config : typing.Mapping[str, typing.Any] + endpoint_bindings : typing.Mapping[str, str] + image_metadata : typing.Sequence[~CloudImageMetadata] + jobs : typing.Sequence[str] + placement : str + series : str + subnets_to_zones : typing.Sequence[str] + tags : typing.Mapping[str, str] + volumes : typing.Sequence[~VolumeParams] + ''' + self.constraints = Value.from_json(constraints) if constraints else None + self.controller_config = controller_config + self.endpoint_bindings = endpoint_bindings + self.image_metadata = [CloudImageMetadata.from_json(o) for o in image_metadata or []] + self.jobs = jobs + self.placement = placement + self.series = series + self.subnets_to_zones = subnets_to_zones + self.tags = tags + self.volumes = [VolumeParams.from_json(o) for o in volumes or []] + + + +class ProvisioningInfoResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : ProvisioningInfo + ''' + self.error = Error.from_json(error) if error else None + self.result = ProvisioningInfo.from_json(result) if result else None + + + +class ProvisioningInfoResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ProvisioningInfoResult] + ''' + self.results = [ProvisioningInfoResult.from_json(o) for o in results or []] + + + +class ProvisioningScriptParams(Type): + _toSchema = {'data_dir': 'data-dir', 'disable_package_commands': 'disable-package-commands', 'machine_id': 'machine-id', 'nonce': 'nonce'} + _toPy = {'data-dir': 'data_dir', 'disable-package-commands': 'disable_package_commands', 'machine-id': 'machine_id', 'nonce': 'nonce'} + def __init__(self, data_dir=None, disable_package_commands=None, machine_id=None, nonce=None, **unknown_fields): + ''' + data_dir : str + disable_package_commands : bool + machine_id : str + nonce : str + ''' + self.data_dir = data_dir + self.disable_package_commands = disable_package_commands + self.machine_id = machine_id + self.nonce = nonce + + + +class ProvisioningScriptResult(Type): + _toSchema = {'script': 'script'} + _toPy = {'script': 'script'} + def __init__(self, script=None, **unknown_fields): + ''' + script : str + ''' + self.script = script + + + +class ProxyConfig(Type): + _toSchema = {'ftp': 'ftp', 'http': 'http', 'https': 'https', 'no_proxy': 'no-proxy'} + _toPy = {'ftp': 'ftp', 'http': 'http', 'https': 'https', 'no-proxy': 'no_proxy'} + def __init__(self, ftp=None, http=None, https=None, no_proxy=None, **unknown_fields): + ''' + ftp : str + http : str + https : str + no_proxy : str + ''' + self.ftp = ftp + self.http = http + self.https = https + self.no_proxy = no_proxy + + + +class ProxyConfigResult(Type): + _toSchema = {'apt_proxy_settings': 'apt-proxy-settings', 'error': 'error', 'proxy_settings': 'proxy-settings'} + _toPy = {'apt-proxy-settings': 'apt_proxy_settings', 'error': 'error', 'proxy-settings': 'proxy_settings'} + def __init__(self, apt_proxy_settings=None, error=None, proxy_settings=None, **unknown_fields): + ''' + apt_proxy_settings : ProxyConfig + error : Error + proxy_settings : ProxyConfig + ''' + self.apt_proxy_settings = ProxyConfig.from_json(apt_proxy_settings) if apt_proxy_settings else None + self.error = Error.from_json(error) if error else None + self.proxy_settings = ProxyConfig.from_json(proxy_settings) if proxy_settings else None + + + +class ProxyConfigResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ProxyConfigResult] + ''' + self.results = [ProxyConfigResult.from_json(o) for o in results or []] + + + +class PublicAddress(Type): + _toSchema = {'target': 'target'} + _toPy = {'target': 'target'} + def __init__(self, target=None, **unknown_fields): + ''' + target : str + ''' + self.target = target + + + +class PublicAddressResults(Type): + _toSchema = {'public_address': 'public-address'} + _toPy = {'public-address': 'public_address'} + def __init__(self, public_address=None, **unknown_fields): + ''' + public_address : str + ''' + self.public_address = public_address + + + +class QueryApplicationOffersResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ApplicationOfferAdminDetails] + ''' + self.results = [ApplicationOfferAdminDetails.from_json(o) for o in results or []] + + + +class RebootActionResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : str + ''' + self.error = Error.from_json(error) if error else None + self.result = result + + + +class RebootActionResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~RebootActionResult] + ''' + self.results = [RebootActionResult.from_json(o) for o in results or []] + + + +class RegionDefaults(Type): + _toSchema = {'region_name': 'region-name', 'value': 'value'} + _toPy = {'region-name': 'region_name', 'value': 'value'} + def __init__(self, region_name=None, value=None, **unknown_fields): + ''' + region_name : str + value : typing.Mapping[str, typing.Any] + ''' + self.region_name = region_name + self.value = value + + + +class RegisterRemoteRelationArg(Type): + _toSchema = {'application_token': 'application-token', 'local_endpoint_name': 'local-endpoint-name', 'macaroons': 'macaroons', 'offer_uuid': 'offer-uuid', 'relation_token': 'relation-token', 'remote_endpoint': 'remote-endpoint', 'remote_space': 'remote-space', 'source_model_tag': 'source-model-tag'} + _toPy = {'application-token': 'application_token', 'local-endpoint-name': 'local_endpoint_name', 'macaroons': 'macaroons', 'offer-uuid': 'offer_uuid', 'relation-token': 'relation_token', 'remote-endpoint': 'remote_endpoint', 'remote-space': 'remote_space', 'source-model-tag': 'source_model_tag'} + def __init__(self, application_token=None, local_endpoint_name=None, macaroons=None, offer_uuid=None, relation_token=None, remote_endpoint=None, remote_space=None, source_model_tag=None, **unknown_fields): + ''' + application_token : str + local_endpoint_name : str + macaroons : typing.Sequence[~Macaroon] + offer_uuid : str + relation_token : str + remote_endpoint : RemoteEndpoint + remote_space : RemoteSpace + source_model_tag : str + ''' + self.application_token = application_token + self.local_endpoint_name = local_endpoint_name + self.macaroons = [Macaroon.from_json(o) for o in macaroons or []] + self.offer_uuid = offer_uuid + self.relation_token = relation_token + self.remote_endpoint = RemoteEndpoint.from_json(remote_endpoint) if remote_endpoint else None + self.remote_space = RemoteSpace.from_json(remote_space) if remote_space else None + self.source_model_tag = source_model_tag + + + +class RegisterRemoteRelationArgs(Type): + _toSchema = {'relations': 'relations'} + _toPy = {'relations': 'relations'} + def __init__(self, relations=None, **unknown_fields): + ''' + relations : typing.Sequence[~RegisterRemoteRelationArg] + ''' + self.relations = [RegisterRemoteRelationArg.from_json(o) for o in relations or []] + + + +class RegisterRemoteRelationResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : RemoteRelationDetails + ''' + self.error = Error.from_json(error) if error else None + self.result = RemoteRelationDetails.from_json(result) if result else None + + + +class RegisterRemoteRelationResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~RegisterRemoteRelationResult] + ''' + self.results = [RegisterRemoteRelationResult.from_json(o) for o in results or []] + + + +class RelationChange(Type): + _toSchema = {'changedunits': 'changedunits', 'departedunits': 'departedunits', 'id_': 'id', 'life': 'life'} + _toPy = {'changedunits': 'changedunits', 'departedunits': 'departedunits', 'id': 'id_', 'life': 'life'} + def __init__(self, changedunits=None, departedunits=None, id_=None, life=None, **unknown_fields): + ''' + changedunits : typing.Mapping[str, ~RelationUnitChange] + departedunits : typing.Sequence[str] + id_ : int + life : str + ''' + self.changedunits = changedunits + self.departedunits = departedunits + self.id_ = id_ + self.life = life + + + +class RelationIds(Type): + _toSchema = {'relation_ids': 'relation-ids'} + _toPy = {'relation-ids': 'relation_ids'} + def __init__(self, relation_ids=None, **unknown_fields): + ''' + relation_ids : typing.Sequence[int] + ''' + self.relation_ids = relation_ids + + + +class RelationLifeSuspendedStatusChange(Type): + _toSchema = {'key': 'key', 'life': 'life', 'suspended': 'suspended', 'suspended_reason': 'suspended-reason'} + _toPy = {'key': 'key', 'life': 'life', 'suspended': 'suspended', 'suspended-reason': 'suspended_reason'} + def __init__(self, key=None, life=None, suspended=None, suspended_reason=None, **unknown_fields): + ''' + key : str + life : str + suspended : bool + suspended_reason : str + ''' + self.key = key + self.life = life + self.suspended = suspended + self.suspended_reason = suspended_reason + + + +class RelationLifeSuspendedStatusWatchResult(Type): + _toSchema = {'changes': 'changes', 'error': 'error', 'watcher_id': 'watcher-id'} + _toPy = {'changes': 'changes', 'error': 'error', 'watcher-id': 'watcher_id'} + def __init__(self, changes=None, error=None, watcher_id=None, **unknown_fields): + ''' + changes : typing.Sequence[~RelationLifeSuspendedStatusChange] + error : Error + watcher_id : str + ''' + self.changes = [RelationLifeSuspendedStatusChange.from_json(o) for o in changes or []] + self.error = Error.from_json(error) if error else None + self.watcher_id = watcher_id + + + +class RelationResult(Type): + _toSchema = {'endpoint': 'endpoint', 'error': 'error', 'id_': 'id', 'key': 'key', 'life': 'life'} + _toPy = {'endpoint': 'endpoint', 'error': 'error', 'id': 'id_', 'key': 'key', 'life': 'life'} + def __init__(self, endpoint=None, error=None, id_=None, key=None, life=None, **unknown_fields): + ''' + endpoint : Endpoint + error : Error + id_ : int + key : str + life : str + ''' + self.endpoint = Endpoint.from_json(endpoint) if endpoint else None + self.error = Error.from_json(error) if error else None + self.id_ = id_ + self.key = key + self.life = life + + + +class RelationResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~RelationResult] + ''' + self.results = [RelationResult.from_json(o) for o in results or []] + + + +class RelationStatus(Type): + _toSchema = {'endpoints': 'endpoints', 'id_': 'id', 'interface': 'interface', 'key': 'key', 'scope': 'scope'} + _toPy = {'endpoints': 'endpoints', 'id': 'id_', 'interface': 'interface', 'key': 'key', 'scope': 'scope'} + def __init__(self, endpoints=None, id_=None, interface=None, key=None, scope=None, **unknown_fields): + ''' + endpoints : typing.Sequence[~EndpointStatus] + id_ : int + interface : str + key : str + scope : str + ''' + self.endpoints = [EndpointStatus.from_json(o) for o in endpoints or []] + self.id_ = id_ + self.interface = interface + self.key = key + self.scope = scope + + + +class RelationStatusArg(Type): + _toSchema = {'message': 'message', 'relation_id': 'relation-id', 'status': 'status', 'unit_tag': 'unit-tag'} + _toPy = {'message': 'message', 'relation-id': 'relation_id', 'status': 'status', 'unit-tag': 'unit_tag'} + def __init__(self, message=None, relation_id=None, status=None, unit_tag=None, **unknown_fields): + ''' + message : str + relation_id : int + status : str + unit_tag : str + ''' + self.message = message + self.relation_id = relation_id + self.status = status + self.unit_tag = unit_tag + + + +class RelationStatusArgs(Type): + _toSchema = {'args': 'args'} + _toPy = {'args': 'args'} + def __init__(self, args=None, **unknown_fields): + ''' + args : typing.Sequence[~RelationStatusArg] + ''' + self.args = [RelationStatusArg.from_json(o) for o in args or []] + + + +class RelationStatusWatchResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~RelationLifeSuspendedStatusWatchResult] + ''' + self.results = [RelationLifeSuspendedStatusWatchResult.from_json(o) for o in results or []] + + + +class RelationSuspendedArg(Type): + _toSchema = {'message': 'message', 'relation_id': 'relation-id', 'suspended': 'suspended'} + _toPy = {'message': 'message', 'relation-id': 'relation_id', 'suspended': 'suspended'} + def __init__(self, message=None, relation_id=None, suspended=None, **unknown_fields): + ''' + message : str + relation_id : int + suspended : bool + ''' + self.message = message + self.relation_id = relation_id + self.suspended = suspended + + + +class RelationSuspendedArgs(Type): + _toSchema = {'args': 'args'} + _toPy = {'args': 'args'} + def __init__(self, args=None, **unknown_fields): + ''' + args : typing.Sequence[~RelationSuspendedArg] + ''' + self.args = [RelationSuspendedArg.from_json(o) for o in args or []] + + + +class RelationUnit(Type): + _toSchema = {'relation': 'relation', 'unit': 'unit'} + _toPy = {'relation': 'relation', 'unit': 'unit'} + def __init__(self, relation=None, unit=None, **unknown_fields): + ''' + relation : str + unit : str + ''' + self.relation = relation + self.unit = unit + + + +class RelationUnitChange(Type): + _toSchema = {'settings': 'settings'} + _toPy = {'settings': 'settings'} + def __init__(self, settings=None, **unknown_fields): + ''' + settings : typing.Mapping[str, typing.Any] + ''' + self.settings = settings + + + +class RelationUnitPair(Type): + _toSchema = {'local_unit': 'local-unit', 'relation': 'relation', 'remote_unit': 'remote-unit'} + _toPy = {'local-unit': 'local_unit', 'relation': 'relation', 'remote-unit': 'remote_unit'} + def __init__(self, local_unit=None, relation=None, remote_unit=None, **unknown_fields): + ''' + local_unit : str + relation : str + remote_unit : str + ''' + self.local_unit = local_unit + self.relation = relation + self.remote_unit = remote_unit + + + +class RelationUnitPairs(Type): + _toSchema = {'relation_unit_pairs': 'relation-unit-pairs'} + _toPy = {'relation-unit-pairs': 'relation_unit_pairs'} + def __init__(self, relation_unit_pairs=None, **unknown_fields): + ''' + relation_unit_pairs : typing.Sequence[~RelationUnitPair] + ''' + self.relation_unit_pairs = [RelationUnitPair.from_json(o) for o in relation_unit_pairs or []] + + + +class RelationUnitSettings(Type): + _toSchema = {'relation': 'relation', 'settings': 'settings', 'unit': 'unit'} + _toPy = {'relation': 'relation', 'settings': 'settings', 'unit': 'unit'} + def __init__(self, relation=None, settings=None, unit=None, **unknown_fields): + ''' + relation : str + settings : typing.Mapping[str, str] + unit : str + ''' + self.relation = relation + self.settings = settings + self.unit = unit + + + +class RelationUnitStatus(Type): + _toSchema = {'in_scope': 'in-scope', 'relation_tag': 'relation-tag', 'suspended': 'suspended'} + _toPy = {'in-scope': 'in_scope', 'relation-tag': 'relation_tag', 'suspended': 'suspended'} + def __init__(self, in_scope=None, relation_tag=None, suspended=None, **unknown_fields): + ''' + in_scope : bool + relation_tag : str + suspended : bool + ''' + self.in_scope = in_scope + self.relation_tag = relation_tag + self.suspended = suspended + + + +class RelationUnitStatusResult(Type): + _toSchema = {'error': 'error', 'results': 'results'} + _toPy = {'error': 'error', 'results': 'results'} + def __init__(self, error=None, results=None, **unknown_fields): + ''' + error : Error + results : typing.Sequence[~RelationUnitStatus] + ''' + self.error = Error.from_json(error) if error else None + self.results = [RelationUnitStatus.from_json(o) for o in results or []] + + + +class RelationUnitStatusResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~RelationUnitStatusResult] + ''' + self.results = [RelationUnitStatusResult.from_json(o) for o in results or []] + + + +class RelationUnits(Type): + _toSchema = {'relation_units': 'relation-units'} + _toPy = {'relation-units': 'relation_units'} + def __init__(self, relation_units=None, **unknown_fields): + ''' + relation_units : typing.Sequence[~RelationUnit] + ''' + self.relation_units = [RelationUnit.from_json(o) for o in relation_units or []] + + + +class RelationUnitsChange(Type): + _toSchema = {'changed': 'changed', 'departed': 'departed'} + _toPy = {'changed': 'changed', 'departed': 'departed'} + def __init__(self, changed=None, departed=None, **unknown_fields): + ''' + changed : typing.Mapping[str, ~UnitSettings] + departed : typing.Sequence[str] + ''' + self.changed = changed + self.departed = departed + + + +class RelationUnitsSettings(Type): + _toSchema = {'relation_units': 'relation-units'} + _toPy = {'relation-units': 'relation_units'} + def __init__(self, relation_units=None, **unknown_fields): + ''' + relation_units : typing.Sequence[~RelationUnitSettings] + ''' + self.relation_units = [RelationUnitSettings.from_json(o) for o in relation_units or []] + + + +class RelationUnitsWatchResult(Type): + _toSchema = {'changes': 'changes', 'error': 'error', 'watcher_id': 'watcher-id'} + _toPy = {'changes': 'changes', 'error': 'error', 'watcher-id': 'watcher_id'} + def __init__(self, changes=None, error=None, watcher_id=None, **unknown_fields): + ''' + changes : RelationUnitsChange + error : Error + watcher_id : str + ''' + self.changes = RelationUnitsChange.from_json(changes) if changes else None + self.error = Error.from_json(error) if error else None + self.watcher_id = watcher_id + + + +class RelationUnitsWatchResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~RelationUnitsWatchResult] + ''' + self.results = [RelationUnitsWatchResult.from_json(o) for o in results or []] + + + +class RemoteApplication(Type): + _toSchema = {'is_consumer_proxy': 'is-consumer-proxy', 'life': 'life', 'macaroon': 'macaroon', 'model_uuid': 'model-uuid', 'name': 'name', 'offer_uuid': 'offer-uuid', 'status': 'status'} + _toPy = {'is-consumer-proxy': 'is_consumer_proxy', 'life': 'life', 'macaroon': 'macaroon', 'model-uuid': 'model_uuid', 'name': 'name', 'offer-uuid': 'offer_uuid', 'status': 'status'} + def __init__(self, is_consumer_proxy=None, life=None, macaroon=None, model_uuid=None, name=None, offer_uuid=None, status=None, **unknown_fields): + ''' + is_consumer_proxy : bool + life : str + macaroon : Macaroon + model_uuid : str + name : str + offer_uuid : str + status : str + ''' + self.is_consumer_proxy = is_consumer_proxy + self.life = life + self.macaroon = Macaroon.from_json(macaroon) if macaroon else None + self.model_uuid = model_uuid + self.name = name + self.offer_uuid = offer_uuid + self.status = status + + + +class RemoteApplicationChange(Type): + _toSchema = {'application_tag': 'application-tag', 'life': 'life', 'relations': 'relations'} + _toPy = {'application-tag': 'application_tag', 'life': 'life', 'relations': 'relations'} + def __init__(self, application_tag=None, life=None, relations=None, **unknown_fields): + ''' + application_tag : str + life : str + relations : RemoteRelationsChange + ''' + self.application_tag = application_tag + self.life = life + self.relations = RemoteRelationsChange.from_json(relations) if relations else None + + + +class RemoteApplicationInfo(Type): + _toSchema = {'application_url': 'application-url', 'description': 'description', 'endpoints': 'endpoints', 'icon_url_path': 'icon-url-path', 'model_tag': 'model-tag', 'name': 'name', 'source_model_label': 'source-model-label'} + _toPy = {'application-url': 'application_url', 'description': 'description', 'endpoints': 'endpoints', 'icon-url-path': 'icon_url_path', 'model-tag': 'model_tag', 'name': 'name', 'source-model-label': 'source_model_label'} + def __init__(self, application_url=None, description=None, endpoints=None, icon_url_path=None, model_tag=None, name=None, source_model_label=None, **unknown_fields): + ''' + application_url : str + description : str + endpoints : typing.Sequence[~RemoteEndpoint] + icon_url_path : str + model_tag : str + name : str + source_model_label : str + ''' + self.application_url = application_url + self.description = description + self.endpoints = [RemoteEndpoint.from_json(o) for o in endpoints or []] + self.icon_url_path = icon_url_path + self.model_tag = model_tag + self.name = name + self.source_model_label = source_model_label + + + +class RemoteApplicationInfoResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : RemoteApplicationInfo + ''' + self.error = Error.from_json(error) if error else None + self.result = RemoteApplicationInfo.from_json(result) if result else None + + + +class RemoteApplicationInfoResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~RemoteApplicationInfoResult] + ''' + self.results = [RemoteApplicationInfoResult.from_json(o) for o in results or []] + + + +class RemoteApplicationResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : RemoteApplication + ''' + self.error = Error.from_json(error) if error else None + self.result = RemoteApplication.from_json(result) if result else None + + + +class RemoteApplicationResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~RemoteApplicationResult] + ''' + self.results = [RemoteApplicationResult.from_json(o) for o in results or []] + + + +class RemoteApplicationStatus(Type): + _toSchema = {'application_name': 'application-name', 'application_url': 'application-url', 'endpoints': 'endpoints', 'err': 'err', 'life': 'life', 'relations': 'relations', 'status': 'status'} + _toPy = {'application-name': 'application_name', 'application-url': 'application_url', 'endpoints': 'endpoints', 'err': 'err', 'life': 'life', 'relations': 'relations', 'status': 'status'} + def __init__(self, application_name=None, application_url=None, endpoints=None, err=None, life=None, relations=None, status=None, **unknown_fields): + ''' + application_name : str + application_url : str + endpoints : typing.Sequence[~RemoteEndpoint] + err : typing.Mapping[str, typing.Any] + life : str + relations : typing.Sequence[str] + status : DetailedStatus + ''' + self.application_name = application_name + self.application_url = application_url + self.endpoints = [RemoteEndpoint.from_json(o) for o in endpoints or []] + self.err = err + self.life = life + self.relations = relations + self.status = DetailedStatus.from_json(status) if status else None + + + +class RemoteApplicationWatchResult(Type): + _toSchema = {'change': 'change', 'error': 'error', 'id_': 'id'} + _toPy = {'change': 'change', 'error': 'error', 'id': 'id_'} + def __init__(self, change=None, error=None, id_=None, **unknown_fields): + ''' + change : RemoteApplicationChange + error : Error + id_ : str + ''' + self.change = RemoteApplicationChange.from_json(change) if change else None + self.error = Error.from_json(error) if error else None + self.id_ = id_ + + + +class RemoteEndpoint(Type): + _toSchema = {'interface': 'interface', 'limit': 'limit', 'name': 'name', 'role': 'role', 'scope': 'scope'} + _toPy = {'interface': 'interface', 'limit': 'limit', 'name': 'name', 'role': 'role', 'scope': 'scope'} + def __init__(self, interface=None, limit=None, name=None, role=None, scope=None, **unknown_fields): + ''' + interface : str + limit : int + name : str + role : str + scope : str + ''' + self.interface = interface + self.limit = limit + self.name = name + self.role = role + self.scope = scope + + + +class RemoteEntityArg(Type): + _toSchema = {'macaroons': 'macaroons', 'relation_token': 'relation-token'} + _toPy = {'macaroons': 'macaroons', 'relation-token': 'relation_token'} + def __init__(self, macaroons=None, relation_token=None, **unknown_fields): + ''' + macaroons : typing.Sequence[~Macaroon] + relation_token : str + ''' + self.macaroons = [Macaroon.from_json(o) for o in macaroons or []] + self.relation_token = relation_token + + + +class RemoteEntityArgs(Type): + _toSchema = {'args': 'args'} + _toPy = {'args': 'args'} + def __init__(self, args=None, **unknown_fields): + ''' + args : typing.Sequence[~RemoteEntityArg] + ''' + self.args = [RemoteEntityArg.from_json(o) for o in args or []] + + + +class RemoteEntityId(Type): + _toSchema = {'model_uuid': 'model-uuid', 'token': 'token'} + _toPy = {'model-uuid': 'model_uuid', 'token': 'token'} + def __init__(self, model_uuid=None, token=None, **unknown_fields): + ''' + model_uuid : str + token : str + ''' + self.model_uuid = model_uuid + self.token = token + + + +class RemoteEntityTokenArg(Type): + _toSchema = {'tag': 'tag', 'token': 'token'} + _toPy = {'tag': 'tag', 'token': 'token'} + def __init__(self, tag=None, token=None, **unknown_fields): + ''' + tag : str + token : str + ''' + self.tag = tag + self.token = token + + + +class RemoteEntityTokenArgs(Type): + _toSchema = {'args': 'Args'} + _toPy = {'Args': 'args'} + def __init__(self, args=None, **unknown_fields): + ''' + args : typing.Sequence[~RemoteEntityTokenArg] + ''' + self.args = [RemoteEntityTokenArg.from_json(o) for o in args or []] + + + +class RemoteRelation(Type): + _toSchema = {'application_name': 'application-name', 'endpoint': 'endpoint', 'id_': 'id', 'key': 'key', 'life': 'life', 'remote_application_name': 'remote-application-name', 'remote_endpoint_name': 'remote-endpoint-name', 'source_model_uuid': 'source-model-uuid', 'suspended': 'suspended'} + _toPy = {'application-name': 'application_name', 'endpoint': 'endpoint', 'id': 'id_', 'key': 'key', 'life': 'life', 'remote-application-name': 'remote_application_name', 'remote-endpoint-name': 'remote_endpoint_name', 'source-model-uuid': 'source_model_uuid', 'suspended': 'suspended'} + def __init__(self, application_name=None, endpoint=None, id_=None, key=None, life=None, remote_application_name=None, remote_endpoint_name=None, source_model_uuid=None, suspended=None, **unknown_fields): + ''' + application_name : str + endpoint : RemoteEndpoint + id_ : int + key : str + life : str + remote_application_name : str + remote_endpoint_name : str + source_model_uuid : str + suspended : bool + ''' + self.application_name = application_name + self.endpoint = RemoteEndpoint.from_json(endpoint) if endpoint else None + self.id_ = id_ + self.key = key + self.life = life + self.remote_application_name = remote_application_name + self.remote_endpoint_name = remote_endpoint_name + self.source_model_uuid = source_model_uuid + self.suspended = suspended + + + +class RemoteRelationChange(Type): + _toSchema = {'changed_units': 'changed-units', 'departed_units': 'departed-units', 'id_': 'id', 'life': 'life'} + _toPy = {'changed-units': 'changed_units', 'departed-units': 'departed_units', 'id': 'id_', 'life': 'life'} + def __init__(self, changed_units=None, departed_units=None, id_=None, life=None, **unknown_fields): + ''' + changed_units : typing.Mapping[str, ~RemoteRelationUnitChange] + departed_units : typing.Sequence[str] + id_ : int + life : str + ''' + self.changed_units = changed_units + self.departed_units = departed_units + self.id_ = id_ + self.life = life + + + +class RemoteRelationChangeEvent(Type): + _toSchema = {'application_token': 'application-token', 'changed_units': 'changed-units', 'departed_units': 'departed-units', 'force_cleanup': 'force-cleanup', 'life': 'life', 'macaroons': 'macaroons', 'relation_token': 'relation-token', 'suspended': 'suspended', 'suspended_reason': 'suspended-reason'} + _toPy = {'application-token': 'application_token', 'changed-units': 'changed_units', 'departed-units': 'departed_units', 'force-cleanup': 'force_cleanup', 'life': 'life', 'macaroons': 'macaroons', 'relation-token': 'relation_token', 'suspended': 'suspended', 'suspended-reason': 'suspended_reason'} + def __init__(self, application_token=None, changed_units=None, departed_units=None, force_cleanup=None, life=None, macaroons=None, relation_token=None, suspended=None, suspended_reason=None, **unknown_fields): + ''' + application_token : str + changed_units : typing.Sequence[~RemoteRelationUnitChange] + departed_units : typing.Sequence[int] + force_cleanup : bool + life : str + macaroons : typing.Sequence[~Macaroon] + relation_token : str + suspended : bool + suspended_reason : str + ''' + self.application_token = application_token + self.changed_units = [RemoteRelationUnitChange.from_json(o) for o in changed_units or []] + self.departed_units = departed_units + self.force_cleanup = force_cleanup + self.life = life + self.macaroons = [Macaroon.from_json(o) for o in macaroons or []] + self.relation_token = relation_token + self.suspended = suspended + self.suspended_reason = suspended_reason + + + +class RemoteRelationDetails(Type): + _toSchema = {'macaroon': 'macaroon', 'relation_token': 'relation-token'} + _toPy = {'macaroon': 'macaroon', 'relation-token': 'relation_token'} + def __init__(self, macaroon=None, relation_token=None, **unknown_fields): + ''' + macaroon : Macaroon + relation_token : str + ''' + self.macaroon = Macaroon.from_json(macaroon) if macaroon else None + self.relation_token = relation_token + + + +class RemoteRelationResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : RemoteRelation + ''' + self.error = Error.from_json(error) if error else None + self.result = RemoteRelation.from_json(result) if result else None + + + +class RemoteRelationResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~RemoteRelationResult] + ''' + self.results = [RemoteRelationResult.from_json(o) for o in results or []] + + + +class RemoteRelationUnit(Type): + _toSchema = {'macaroons': 'macaroons', 'relation_token': 'relation-token', 'unit': 'unit'} + _toPy = {'macaroons': 'macaroons', 'relation-token': 'relation_token', 'unit': 'unit'} + def __init__(self, macaroons=None, relation_token=None, unit=None, **unknown_fields): + ''' + macaroons : typing.Sequence[~Macaroon] + relation_token : str + unit : str + ''' + self.macaroons = [Macaroon.from_json(o) for o in macaroons or []] + self.relation_token = relation_token + self.unit = unit + + + +class RemoteRelationUnitChange(Type): + _toSchema = {'settings': 'settings', 'unit_id': 'unit-id'} + _toPy = {'settings': 'settings', 'unit-id': 'unit_id'} + def __init__(self, settings=None, unit_id=None, **unknown_fields): + ''' + settings : typing.Mapping[str, typing.Any] + unit_id : RemoteEntityId + ''' + self.settings = settings + self.unit_id = RemoteEntityId.from_json(unit_id) if unit_id else None + + + +class RemoteRelationUnits(Type): + _toSchema = {'relation_units': 'relation-units'} + _toPy = {'relation-units': 'relation_units'} + def __init__(self, relation_units=None, **unknown_fields): + ''' + relation_units : typing.Sequence[~RemoteRelationUnit] + ''' + self.relation_units = [RemoteRelationUnit.from_json(o) for o in relation_units or []] + + + +class RemoteRelationsChange(Type): + _toSchema = {'changed': 'changed', 'initial': 'initial', 'removed': 'removed'} + _toPy = {'changed': 'changed', 'initial': 'initial', 'removed': 'removed'} + def __init__(self, changed=None, initial=None, removed=None, **unknown_fields): + ''' + changed : typing.Sequence[~RemoteRelationChange] + initial : bool + removed : typing.Sequence[int] + ''' + self.changed = [RemoteRelationChange.from_json(o) for o in changed or []] + self.initial = initial + self.removed = removed + + + +class RemoteRelationsChanges(Type): + _toSchema = {'changes': 'changes'} + _toPy = {'changes': 'changes'} + def __init__(self, changes=None, **unknown_fields): + ''' + changes : typing.Sequence[~RemoteRelationChangeEvent] + ''' + self.changes = [RemoteRelationChangeEvent.from_json(o) for o in changes or []] + + + +class RemoteRelationsWatchResult(Type): + _toSchema = {'change': 'change', 'error': 'error', 'remoterelationswatcherid': 'RemoteRelationsWatcherId'} + _toPy = {'RemoteRelationsWatcherId': 'remoterelationswatcherid', 'change': 'change', 'error': 'error'} + def __init__(self, remoterelationswatcherid=None, change=None, error=None, **unknown_fields): + ''' + remoterelationswatcherid : str + change : RemoteRelationsChange + error : Error + ''' + self.remoterelationswatcherid = remoterelationswatcherid + self.change = RemoteRelationsChange.from_json(change) if change else None + self.error = Error.from_json(error) if error else None + + + +class RemoteSpace(Type): + _toSchema = {'cloud_type': 'cloud-type', 'name': 'name', 'provider_attributes': 'provider-attributes', 'provider_id': 'provider-id', 'subnets': 'subnets'} + _toPy = {'cloud-type': 'cloud_type', 'name': 'name', 'provider-attributes': 'provider_attributes', 'provider-id': 'provider_id', 'subnets': 'subnets'} + def __init__(self, cloud_type=None, name=None, provider_attributes=None, provider_id=None, subnets=None, **unknown_fields): + ''' + cloud_type : str + name : str + provider_attributes : typing.Mapping[str, typing.Any] + provider_id : str + subnets : typing.Sequence[~Subnet] + ''' + self.cloud_type = cloud_type + self.name = name + self.provider_attributes = provider_attributes + self.provider_id = provider_id + self.subnets = [Subnet.from_json(o) for o in subnets or []] + + + +class RemoveBlocksArgs(Type): + _toSchema = {'all_': 'all'} + _toPy = {'all': 'all_'} + def __init__(self, all_=None, **unknown_fields): + ''' + all_ : bool + ''' + self.all_ = all_ + + + +class RemoveFilesystemParams(Type): + _toSchema = {'destroy': 'destroy', 'filesystem_id': 'filesystem-id', 'provider': 'provider'} + _toPy = {'destroy': 'destroy', 'filesystem-id': 'filesystem_id', 'provider': 'provider'} + def __init__(self, destroy=None, filesystem_id=None, provider=None, **unknown_fields): + ''' + destroy : bool + filesystem_id : str + provider : str + ''' + self.destroy = destroy + self.filesystem_id = filesystem_id + self.provider = provider + + + +class RemoveFilesystemParamsResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : RemoveFilesystemParams + ''' + self.error = Error.from_json(error) if error else None + self.result = RemoveFilesystemParams.from_json(result) if result else None + + + +class RemoveFilesystemParamsResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~RemoveFilesystemParamsResult] + ''' + self.results = [RemoveFilesystemParamsResult.from_json(o) for o in results or []] + + + +class RemoveStorage(Type): + _toSchema = {'storage': 'storage'} + _toPy = {'storage': 'storage'} + def __init__(self, storage=None, **unknown_fields): + ''' + storage : typing.Sequence[~RemoveStorageInstance] + ''' + self.storage = [RemoveStorageInstance.from_json(o) for o in storage or []] + + + +class RemoveStorageInstance(Type): + _toSchema = {'destroy_attachments': 'destroy-attachments', 'destroy_storage': 'destroy-storage', 'tag': 'tag'} + _toPy = {'destroy-attachments': 'destroy_attachments', 'destroy-storage': 'destroy_storage', 'tag': 'tag'} + def __init__(self, destroy_attachments=None, destroy_storage=None, tag=None, **unknown_fields): + ''' + destroy_attachments : bool + destroy_storage : bool + tag : str + ''' + self.destroy_attachments = destroy_attachments + self.destroy_storage = destroy_storage + self.tag = tag + + + +class RemoveVolumeParams(Type): + _toSchema = {'destroy': 'destroy', 'provider': 'provider', 'volume_id': 'volume-id'} + _toPy = {'destroy': 'destroy', 'provider': 'provider', 'volume-id': 'volume_id'} + def __init__(self, destroy=None, provider=None, volume_id=None, **unknown_fields): + ''' + destroy : bool + provider : str + volume_id : str + ''' + self.destroy = destroy + self.provider = provider + self.volume_id = volume_id + + + +class RemoveVolumeParamsResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : RemoveVolumeParams + ''' + self.error = Error.from_json(error) if error else None + self.result = RemoveVolumeParams.from_json(result) if result else None + + + +class RemoveVolumeParamsResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~RemoveVolumeParamsResult] + ''' + self.results = [RemoveVolumeParamsResult.from_json(o) for o in results or []] + + + +class ResolveCharmResult(Type): + _toSchema = {'error': 'error', 'url': 'url'} + _toPy = {'error': 'error', 'url': 'url'} + def __init__(self, error=None, url=None, **unknown_fields): + ''' + error : str + url : str + ''' + self.error = error + self.url = url + + + +class ResolveCharmResults(Type): + _toSchema = {'urls': 'urls'} + _toPy = {'urls': 'urls'} + def __init__(self, urls=None, **unknown_fields): + ''' + urls : typing.Sequence[~ResolveCharmResult] + ''' + self.urls = [ResolveCharmResult.from_json(o) for o in urls or []] + + + +class ResolveCharms(Type): + _toSchema = {'references': 'references'} + _toPy = {'references': 'references'} + def __init__(self, references=None, **unknown_fields): + ''' + references : typing.Sequence[str] + ''' + self.references = references + + + +class Resolved(Type): + _toSchema = {'retry': 'retry', 'unit_name': 'unit-name'} + _toPy = {'retry': 'retry', 'unit-name': 'unit_name'} + def __init__(self, retry=None, unit_name=None, **unknown_fields): + ''' + retry : bool + unit_name : str + ''' + self.retry = retry + self.unit_name = unit_name + + + +class ResolvedModeResult(Type): + _toSchema = {'error': 'error', 'mode': 'mode'} + _toPy = {'error': 'error', 'mode': 'mode'} + def __init__(self, error=None, mode=None, **unknown_fields): + ''' + error : Error + mode : str + ''' + self.error = Error.from_json(error) if error else None + self.mode = mode + + + +class ResolvedModeResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ResolvedModeResult] + ''' + self.results = [ResolvedModeResult.from_json(o) for o in results or []] + + + +class Resource(Type): + _toSchema = {'application': 'application', 'charmresource': 'CharmResource', 'id_': 'id', 'pending_id': 'pending-id', 'timestamp': 'timestamp', 'username': 'username'} + _toPy = {'CharmResource': 'charmresource', 'application': 'application', 'id': 'id_', 'pending-id': 'pending_id', 'timestamp': 'timestamp', 'username': 'username'} + def __init__(self, charmresource=None, application=None, id_=None, pending_id=None, timestamp=None, username=None, **unknown_fields): + ''' + charmresource : CharmResource + application : str + id_ : str + pending_id : str + timestamp : str + username : str + ''' + self.charmresource = CharmResource.from_json(charmresource) if charmresource else None + self.application = application + self.id_ = id_ + self.pending_id = pending_id + self.timestamp = timestamp + self.username = username + + + +class ResourceResult(Type): + _toSchema = {'errorresult': 'ErrorResult', 'resource': 'resource'} + _toPy = {'ErrorResult': 'errorresult', 'resource': 'resource'} + def __init__(self, errorresult=None, resource=None, **unknown_fields): + ''' + errorresult : ErrorResult + resource : Resource + ''' + self.errorresult = ErrorResult.from_json(errorresult) if errorresult else None + self.resource = Resource.from_json(resource) if resource else None + + + +class ResourcesResult(Type): + _toSchema = {'charm_store_resources': 'charm-store-resources', 'errorresult': 'ErrorResult', 'resources': 'resources', 'unit_resources': 'unit-resources'} + _toPy = {'ErrorResult': 'errorresult', 'charm-store-resources': 'charm_store_resources', 'resources': 'resources', 'unit-resources': 'unit_resources'} + def __init__(self, errorresult=None, charm_store_resources=None, resources=None, unit_resources=None, **unknown_fields): + ''' + errorresult : ErrorResult + charm_store_resources : typing.Sequence[~CharmResource] + resources : typing.Sequence[~Resource] + unit_resources : typing.Sequence[~UnitResources] + ''' + self.errorresult = ErrorResult.from_json(errorresult) if errorresult else None + self.charm_store_resources = [CharmResource.from_json(o) for o in charm_store_resources or []] + self.resources = [Resource.from_json(o) for o in resources or []] + self.unit_resources = [UnitResources.from_json(o) for o in unit_resources or []] + + + +class ResourcesResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ResourcesResult] + ''' + self.results = [ResourcesResult.from_json(o) for o in results or []] + + + +class RestoreArgs(Type): + _toSchema = {'backup_id': 'backup-id'} + _toPy = {'backup-id': 'backup_id'} + def __init__(self, backup_id=None, **unknown_fields): + ''' + backup_id : str + ''' + self.backup_id = backup_id + + + +class ResumeReplicationParams(Type): + _toSchema = {'members': 'members'} + _toPy = {'members': 'members'} + def __init__(self, members=None, **unknown_fields): + ''' + members : typing.Sequence[~Member] + ''' + self.members = [Member.from_json(o) for o in members or []] + + + +class RetryStrategy(Type): + _toSchema = {'jitter_retry_time': 'jitter-retry-time', 'max_retry_time': 'max-retry-time', 'min_retry_time': 'min-retry-time', 'retry_time_factor': 'retry-time-factor', 'should_retry': 'should-retry'} + _toPy = {'jitter-retry-time': 'jitter_retry_time', 'max-retry-time': 'max_retry_time', 'min-retry-time': 'min_retry_time', 'retry-time-factor': 'retry_time_factor', 'should-retry': 'should_retry'} + def __init__(self, jitter_retry_time=None, max_retry_time=None, min_retry_time=None, retry_time_factor=None, should_retry=None, **unknown_fields): + ''' + jitter_retry_time : bool + max_retry_time : int + min_retry_time : int + retry_time_factor : int + should_retry : bool + ''' + self.jitter_retry_time = jitter_retry_time + self.max_retry_time = max_retry_time + self.min_retry_time = min_retry_time + self.retry_time_factor = retry_time_factor + self.should_retry = should_retry + + + +class RetryStrategyResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : RetryStrategy + ''' + self.error = Error.from_json(error) if error else None + self.result = RetryStrategy.from_json(result) if result else None + + + +class RetryStrategyResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~RetryStrategyResult] + ''' + self.results = [RetryStrategyResult.from_json(o) for o in results or []] + + + +class RevokeCredentialArg(Type): + _toSchema = {'force': 'force', 'tag': 'tag'} + _toPy = {'force': 'force', 'tag': 'tag'} + def __init__(self, force=None, tag=None, **unknown_fields): + ''' + force : bool + tag : str + ''' + self.force = force + self.tag = tag + + + +class RevokeCredentialArgs(Type): + _toSchema = {'credentials': 'credentials'} + _toPy = {'credentials': 'credentials'} + def __init__(self, credentials=None, **unknown_fields): + ''' + credentials : typing.Sequence[~RevokeCredentialArg] + ''' + self.credentials = [RevokeCredentialArg.from_json(o) for o in credentials or []] + + + +class RunParams(Type): + _toSchema = {'applications': 'applications', 'commands': 'commands', 'machines': 'machines', 'timeout': 'timeout', 'units': 'units'} + _toPy = {'applications': 'applications', 'commands': 'commands', 'machines': 'machines', 'timeout': 'timeout', 'units': 'units'} + def __init__(self, applications=None, commands=None, machines=None, timeout=None, units=None, **unknown_fields): + ''' + applications : typing.Sequence[str] + commands : str + machines : typing.Sequence[str] + timeout : int + units : typing.Sequence[str] + ''' + self.applications = applications + self.commands = commands + self.machines = machines + self.timeout = timeout + self.units = units + + + +class SSHAddressResult(Type): + _toSchema = {'address': 'address', 'error': 'error'} + _toPy = {'address': 'address', 'error': 'error'} + def __init__(self, address=None, error=None, **unknown_fields): + ''' + address : str + error : Error + ''' + self.address = address + self.error = Error.from_json(error) if error else None + + + +class SSHAddressResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~SSHAddressResult] + ''' + self.results = [SSHAddressResult.from_json(o) for o in results or []] + + + +class SSHAddressesResult(Type): + _toSchema = {'addresses': 'addresses', 'error': 'error'} + _toPy = {'addresses': 'addresses', 'error': 'error'} + def __init__(self, addresses=None, error=None, **unknown_fields): + ''' + addresses : typing.Sequence[str] + error : Error + ''' + self.addresses = addresses + self.error = Error.from_json(error) if error else None + + + +class SSHAddressesResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~SSHAddressesResult] + ''' + self.results = [SSHAddressesResult.from_json(o) for o in results or []] + + + +class SSHHostKeySet(Type): + _toSchema = {'entity_keys': 'entity-keys'} + _toPy = {'entity-keys': 'entity_keys'} + def __init__(self, entity_keys=None, **unknown_fields): + ''' + entity_keys : typing.Sequence[~SSHHostKeys] + ''' + self.entity_keys = [SSHHostKeys.from_json(o) for o in entity_keys or []] + + + +class SSHHostKeys(Type): + _toSchema = {'public_keys': 'public-keys', 'tag': 'tag'} + _toPy = {'public-keys': 'public_keys', 'tag': 'tag'} + def __init__(self, public_keys=None, tag=None, **unknown_fields): + ''' + public_keys : typing.Sequence[str] + tag : str + ''' + self.public_keys = public_keys + self.tag = tag + + + +class SSHProxyResult(Type): + _toSchema = {'use_proxy': 'use-proxy'} + _toPy = {'use-proxy': 'use_proxy'} + def __init__(self, use_proxy=None, **unknown_fields): + ''' + use_proxy : bool + ''' + self.use_proxy = use_proxy + + + +class SSHPublicKeysResult(Type): + _toSchema = {'error': 'error', 'public_keys': 'public-keys'} + _toPy = {'error': 'error', 'public-keys': 'public_keys'} + def __init__(self, error=None, public_keys=None, **unknown_fields): + ''' + error : Error + public_keys : typing.Sequence[str] + ''' + self.error = Error.from_json(error) if error else None + self.public_keys = public_keys + + + +class SSHPublicKeysResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~SSHPublicKeysResult] + ''' + self.results = [SSHPublicKeysResult.from_json(o) for o in results or []] + + + +class ScaleApplicationInfo(Type): + _toSchema = {'num_units': 'num-units'} + _toPy = {'num-units': 'num_units'} + def __init__(self, num_units=None, **unknown_fields): + ''' + num_units : int + ''' + self.num_units = num_units + + + +class ScaleApplicationParams(Type): + _toSchema = {'application_tag': 'application-tag', 'scale': 'scale', 'scale_change': 'scale-change'} + _toPy = {'application-tag': 'application_tag', 'scale': 'scale', 'scale-change': 'scale_change'} + def __init__(self, application_tag=None, scale=None, scale_change=None, **unknown_fields): + ''' + application_tag : str + scale : int + scale_change : int + ''' + self.application_tag = application_tag + self.scale = scale + self.scale_change = scale_change + + + +class ScaleApplicationResult(Type): + _toSchema = {'error': 'error', 'info': 'info'} + _toPy = {'error': 'error', 'info': 'info'} + def __init__(self, error=None, info=None, **unknown_fields): + ''' + error : Error + info : ScaleApplicationInfo + ''' + self.error = Error.from_json(error) if error else None + self.info = ScaleApplicationInfo.from_json(info) if info else None + + + +class ScaleApplicationResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ScaleApplicationResult] + ''' + self.results = [ScaleApplicationResult.from_json(o) for o in results or []] + + + +class ScaleApplicationsParams(Type): + _toSchema = {'applications': 'applications'} + _toPy = {'applications': 'applications'} + def __init__(self, applications=None, **unknown_fields): + ''' + applications : typing.Sequence[~ScaleApplicationParams] + ''' + self.applications = [ScaleApplicationParams.from_json(o) for o in applications or []] + + + +class SerializedModel(Type): + _toSchema = {'bytes_': 'bytes', 'charms': 'charms', 'tools': 'tools'} + _toPy = {'bytes': 'bytes_', 'charms': 'charms', 'tools': 'tools'} + def __init__(self, bytes_=None, charms=None, tools=None, **unknown_fields): + ''' + bytes_ : typing.Sequence[int] + charms : typing.Sequence[str] + tools : typing.Sequence[~SerializedModelTools] + ''' + self.bytes_ = bytes_ + self.charms = charms + self.tools = [SerializedModelTools.from_json(o) for o in tools or []] + + + +class SerializedModelResource(Type): + _toSchema = {'application': 'application', 'application_revision': 'application-revision', 'charmstore_revision': 'charmstore-revision', 'name': 'name', 'unit_revisions': 'unit-revisions'} + _toPy = {'application': 'application', 'application-revision': 'application_revision', 'charmstore-revision': 'charmstore_revision', 'name': 'name', 'unit-revisions': 'unit_revisions'} + def __init__(self, application=None, application_revision=None, charmstore_revision=None, name=None, unit_revisions=None, **unknown_fields): + ''' + application : str + application_revision : SerializedModelResourceRevision + charmstore_revision : SerializedModelResourceRevision + name : str + unit_revisions : typing.Mapping[str, ~SerializedModelResourceRevision] + ''' + self.application = application + self.application_revision = SerializedModelResourceRevision.from_json(application_revision) if application_revision else None + self.charmstore_revision = SerializedModelResourceRevision.from_json(charmstore_revision) if charmstore_revision else None + self.name = name + self.unit_revisions = unit_revisions + + + +class SerializedModelResourceRevision(Type): + _toSchema = {'description': 'description', 'fingerprint': 'fingerprint', 'origin': 'origin', 'path': 'path', 'revision': 'revision', 'size': 'size', 'timestamp': 'timestamp', 'type_': 'type', 'username': 'username'} + _toPy = {'description': 'description', 'fingerprint': 'fingerprint', 'origin': 'origin', 'path': 'path', 'revision': 'revision', 'size': 'size', 'timestamp': 'timestamp', 'type': 'type_', 'username': 'username'} + def __init__(self, description=None, fingerprint=None, origin=None, path=None, revision=None, size=None, timestamp=None, type_=None, username=None, **unknown_fields): + ''' + description : str + fingerprint : str + origin : str + path : str + revision : int + size : int + timestamp : str + type_ : str + username : str + ''' + self.description = description + self.fingerprint = fingerprint + self.origin = origin + self.path = path + self.revision = revision + self.size = size + self.timestamp = timestamp + self.type_ = type_ + self.username = username + + + +class SerializedModelTools(Type): + _toSchema = {'uri': 'uri', 'version': 'version'} + _toPy = {'uri': 'uri', 'version': 'version'} + def __init__(self, uri=None, version=None, **unknown_fields): + ''' + uri : str + version : str + ''' + self.uri = uri + self.version = version + + + +class SetConstraints(Type): + _toSchema = {'application': 'application', 'constraints': 'constraints'} + _toPy = {'application': 'application', 'constraints': 'constraints'} + def __init__(self, application=None, constraints=None, **unknown_fields): + ''' + application : str + constraints : Value + ''' + self.application = application + self.constraints = Value.from_json(constraints) if constraints else None + + + +class SetExternalControllerInfoParams(Type): + _toSchema = {'info': 'info'} + _toPy = {'info': 'info'} + def __init__(self, info=None, **unknown_fields): + ''' + info : ExternalControllerInfo + ''' + self.info = ExternalControllerInfo.from_json(info) if info else None + + + +class SetExternalControllersInfoParams(Type): + _toSchema = {'controllers': 'controllers'} + _toPy = {'controllers': 'controllers'} + def __init__(self, controllers=None, **unknown_fields): + ''' + controllers : typing.Sequence[~SetExternalControllerInfoParams] + ''' + self.controllers = [SetExternalControllerInfoParams.from_json(o) for o in controllers or []] + + + +class SetMachineBlockDevices(Type): + _toSchema = {'machine_block_devices': 'machine-block-devices'} + _toPy = {'machine-block-devices': 'machine_block_devices'} + def __init__(self, machine_block_devices=None, **unknown_fields): + ''' + machine_block_devices : typing.Sequence[~MachineBlockDevices] + ''' + self.machine_block_devices = [MachineBlockDevices.from_json(o) for o in machine_block_devices or []] + + + +class SetMachineNetworkConfig(Type): + _toSchema = {'config': 'config', 'tag': 'tag'} + _toPy = {'config': 'config', 'tag': 'tag'} + def __init__(self, config=None, tag=None, **unknown_fields): + ''' + config : typing.Sequence[~NetworkConfig] + tag : str + ''' + self.config = [NetworkConfig.from_json(o) for o in config or []] + self.tag = tag + + + +class SetMachinesAddresses(Type): + _toSchema = {'machine_addresses': 'machine-addresses'} + _toPy = {'machine-addresses': 'machine_addresses'} + def __init__(self, machine_addresses=None, **unknown_fields): + ''' + machine_addresses : typing.Sequence[~MachineAddresses] + ''' + self.machine_addresses = [MachineAddresses.from_json(o) for o in machine_addresses or []] + + + +class SetMigrationPhaseArgs(Type): + _toSchema = {'phase': 'phase'} + _toPy = {'phase': 'phase'} + def __init__(self, phase=None, **unknown_fields): + ''' + phase : str + ''' + self.phase = phase + + + +class SetMigrationStatusMessageArgs(Type): + _toSchema = {'message': 'message'} + _toPy = {'message': 'message'} + def __init__(self, message=None, **unknown_fields): + ''' + message : str + ''' + self.message = message + + + +class SetModelAgentVersion(Type): + _toSchema = {'version': 'version'} + _toPy = {'version': 'version'} + def __init__(self, version=None, **unknown_fields): + ''' + version : Number + ''' + self.version = Number.from_json(version) if version else None + + + +class SetModelDefaults(Type): + _toSchema = {'config': 'config'} + _toPy = {'config': 'config'} + def __init__(self, config=None, **unknown_fields): + ''' + config : typing.Sequence[~ModelDefaultValues] + ''' + self.config = [ModelDefaultValues.from_json(o) for o in config or []] + + + +class SetModelEnvironVersion(Type): + _toSchema = {'model_tag': 'model-tag', 'version': 'version'} + _toPy = {'model-tag': 'model_tag', 'version': 'version'} + def __init__(self, model_tag=None, version=None, **unknown_fields): + ''' + model_tag : str + version : int + ''' + self.model_tag = model_tag + self.version = version + + + +class SetModelEnvironVersions(Type): + _toSchema = {'models': 'models'} + _toPy = {'models': 'models'} + def __init__(self, models=None, **unknown_fields): + ''' + models : typing.Sequence[~SetModelEnvironVersion] + ''' + self.models = [SetModelEnvironVersion.from_json(o) for o in models or []] + + + +class SetPayloadStatusArg(Type): + _toSchema = {'entity': 'Entity', 'status': 'status'} + _toPy = {'Entity': 'entity', 'status': 'status'} + def __init__(self, entity=None, status=None, **unknown_fields): + ''' + entity : Entity + status : str + ''' + self.entity = Entity.from_json(entity) if entity else None + self.status = status + + + +class SetPayloadStatusArgs(Type): + _toSchema = {'args': 'args'} + _toPy = {'args': 'args'} + def __init__(self, args=None, **unknown_fields): + ''' + args : typing.Sequence[~SetPayloadStatusArg] + ''' + self.args = [SetPayloadStatusArg.from_json(o) for o in args or []] + + + +class SetPodSpecParams(Type): + _toSchema = {'specs': 'specs'} + _toPy = {'specs': 'specs'} + def __init__(self, specs=None, **unknown_fields): + ''' + specs : typing.Sequence[~EntityString] + ''' + self.specs = [EntityString.from_json(o) for o in specs or []] + + + +class SetProfileArg(Type): + _toSchema = {'entity': 'entity', 'profiles': 'profiles'} + _toPy = {'entity': 'entity', 'profiles': 'profiles'} + def __init__(self, entity=None, profiles=None, **unknown_fields): + ''' + entity : Entity + profiles : typing.Sequence[str] + ''' + self.entity = Entity.from_json(entity) if entity else None + self.profiles = profiles + + + +class SetProfileArgs(Type): + _toSchema = {'args': 'args'} + _toPy = {'args': 'args'} + def __init__(self, args=None, **unknown_fields): + ''' + args : typing.Sequence[~SetProfileArg] + ''' + self.args = [SetProfileArg.from_json(o) for o in args or []] + + + +class SetProfileUpgradeCompleteArg(Type): + _toSchema = {'entity': 'entity', 'message': 'message'} + _toPy = {'entity': 'entity', 'message': 'message'} + def __init__(self, entity=None, message=None, **unknown_fields): + ''' + entity : Entity + message : str + ''' + self.entity = Entity.from_json(entity) if entity else None + self.message = message + + + +class SetProfileUpgradeCompleteArgs(Type): + _toSchema = {'args': 'args'} + _toPy = {'args': 'args'} + def __init__(self, args=None, **unknown_fields): + ''' + args : typing.Sequence[~SetProfileUpgradeCompleteArg] + ''' + self.args = [SetProfileUpgradeCompleteArg.from_json(o) for o in args or []] + + + +class SetStatus(Type): + _toSchema = {'entities': 'entities'} + _toPy = {'entities': 'entities'} + def __init__(self, entities=None, **unknown_fields): + ''' + entities : typing.Sequence[~EntityStatusArgs] + ''' + self.entities = [EntityStatusArgs.from_json(o) for o in entities or []] + + + +class SetStatusArg(Type): + _toSchema = {'entity': 'Entity', 'status': 'status'} + _toPy = {'Entity': 'entity', 'status': 'status'} + def __init__(self, entity=None, status=None, **unknown_fields): + ''' + entity : Entity + status : str + ''' + self.entity = Entity.from_json(entity) if entity else None + self.status = status + + + +class SetStatusArgs(Type): + _toSchema = {'args': 'args'} + _toPy = {'args': 'args'} + def __init__(self, args=None, **unknown_fields): + ''' + args : typing.Sequence[~SetStatusArg] + ''' + self.args = [SetStatusArg.from_json(o) for o in args or []] + + + +class Settings(Type): + _toSchema = {'ftp': 'Ftp', 'http': 'Http', 'https': 'Https', 'noproxy': 'NoProxy'} + _toPy = {'Ftp': 'ftp', 'Http': 'http', 'Https': 'https', 'NoProxy': 'noproxy'} + def __init__(self, ftp=None, http=None, https=None, noproxy=None, **unknown_fields): + ''' + ftp : str + http : str + https : str + noproxy : str + ''' + self.ftp = ftp + self.http = http + self.https = https + self.noproxy = noproxy + + + +class SettingsResult(Type): + _toSchema = {'error': 'error', 'settings': 'settings'} + _toPy = {'error': 'error', 'settings': 'settings'} + def __init__(self, error=None, settings=None, **unknown_fields): + ''' + error : Error + settings : typing.Mapping[str, str] + ''' + self.error = Error.from_json(error) if error else None + self.settings = settings + + + +class SettingsResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~SettingsResult] + ''' + self.results = [SettingsResult.from_json(o) for o in results or []] + + + +class SingularClaim(Type): + _toSchema = {'controller_tag': 'controller-tag', 'duration': 'duration', 'model_tag': 'model-tag'} + _toPy = {'controller-tag': 'controller_tag', 'duration': 'duration', 'model-tag': 'model_tag'} + def __init__(self, controller_tag=None, duration=None, model_tag=None, **unknown_fields): + ''' + controller_tag : str + duration : int + model_tag : str + ''' + self.controller_tag = controller_tag + self.duration = duration + self.model_tag = model_tag + + + +class SingularClaims(Type): + _toSchema = {'claims': 'claims'} + _toPy = {'claims': 'claims'} + def __init__(self, claims=None, **unknown_fields): + ''' + claims : typing.Sequence[~SingularClaim] + ''' + self.claims = [SingularClaim.from_json(o) for o in claims or []] + + + +class Space(Type): + _toSchema = {'error': 'error', 'name': 'name', 'subnets': 'subnets'} + _toPy = {'error': 'error', 'name': 'name', 'subnets': 'subnets'} + def __init__(self, error=None, name=None, subnets=None, **unknown_fields): + ''' + error : Error + name : str + subnets : typing.Sequence[~Subnet] + ''' + self.error = Error.from_json(error) if error else None + self.name = name + self.subnets = [Subnet.from_json(o) for o in subnets or []] + + + +class SpaceResult(Type): + _toSchema = {'error': 'error', 'tag': 'tag'} + _toPy = {'error': 'error', 'tag': 'tag'} + def __init__(self, error=None, tag=None, **unknown_fields): + ''' + error : Error + tag : str + ''' + self.error = Error.from_json(error) if error else None + self.tag = tag + + + +class SpaceResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~SpaceResult] + ''' + self.results = [SpaceResult.from_json(o) for o in results or []] + + + +class StateServingInfo(Type): + _toSchema = {'api_port': 'api-port', 'ca_private_key': 'ca-private-key', 'cert': 'cert', 'private_key': 'private-key', 'shared_secret': 'shared-secret', 'state_port': 'state-port', 'system_identity': 'system-identity'} + _toPy = {'api-port': 'api_port', 'ca-private-key': 'ca_private_key', 'cert': 'cert', 'private-key': 'private_key', 'shared-secret': 'shared_secret', 'state-port': 'state_port', 'system-identity': 'system_identity'} + def __init__(self, api_port=None, ca_private_key=None, cert=None, private_key=None, shared_secret=None, state_port=None, system_identity=None, **unknown_fields): + ''' + api_port : int + ca_private_key : str + cert : str + private_key : str + shared_secret : str + state_port : int + system_identity : str + ''' + self.api_port = api_port + self.ca_private_key = ca_private_key + self.cert = cert + self.private_key = private_key + self.shared_secret = shared_secret + self.state_port = state_port + self.system_identity = system_identity + + + +class StatusHistoryFilter(Type): + _toSchema = {'date': 'date', 'delta': 'delta', 'size': 'size'} + _toPy = {'date': 'date', 'delta': 'delta', 'size': 'size'} + def __init__(self, date=None, delta=None, size=None, **unknown_fields): + ''' + date : str + delta : int + size : int + ''' + self.date = date + self.delta = delta + self.size = size + + + +class StatusHistoryPruneArgs(Type): + _toSchema = {'max_history_mb': 'max-history-mb', 'max_history_time': 'max-history-time'} + _toPy = {'max-history-mb': 'max_history_mb', 'max-history-time': 'max_history_time'} + def __init__(self, max_history_mb=None, max_history_time=None, **unknown_fields): + ''' + max_history_mb : int + max_history_time : int + ''' + self.max_history_mb = max_history_mb + self.max_history_time = max_history_time + + + +class StatusHistoryRequest(Type): + _toSchema = {'filter_': 'filter', 'historykind': 'historyKind', 'size': 'size', 'tag': 'tag'} + _toPy = {'filter': 'filter_', 'historyKind': 'historykind', 'size': 'size', 'tag': 'tag'} + def __init__(self, filter_=None, historykind=None, size=None, tag=None, **unknown_fields): + ''' + filter_ : StatusHistoryFilter + historykind : str + size : int + tag : str + ''' + self.filter_ = StatusHistoryFilter.from_json(filter_) if filter_ else None + self.historykind = historykind + self.size = size + self.tag = tag + + + +class StatusHistoryRequests(Type): + _toSchema = {'requests': 'requests'} + _toPy = {'requests': 'requests'} + def __init__(self, requests=None, **unknown_fields): + ''' + requests : typing.Sequence[~StatusHistoryRequest] + ''' + self.requests = [StatusHistoryRequest.from_json(o) for o in requests or []] + + + +class StatusHistoryResult(Type): + _toSchema = {'error': 'error', 'history': 'history'} + _toPy = {'error': 'error', 'history': 'history'} + def __init__(self, error=None, history=None, **unknown_fields): + ''' + error : Error + history : History + ''' + self.error = Error.from_json(error) if error else None + self.history = History.from_json(history) if history else None + + + +class StatusHistoryResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~StatusHistoryResult] + ''' + self.results = [StatusHistoryResult.from_json(o) for o in results or []] + + + +class StatusParams(Type): + _toSchema = {'patterns': 'patterns'} + _toPy = {'patterns': 'patterns'} + def __init__(self, patterns=None, **unknown_fields): + ''' + patterns : typing.Sequence[str] + ''' + self.patterns = patterns + + + +class StatusResult(Type): + _toSchema = {'data': 'data', 'error': 'error', 'id_': 'id', 'info': 'info', 'life': 'life', 'since': 'since', 'status': 'status'} + _toPy = {'data': 'data', 'error': 'error', 'id': 'id_', 'info': 'info', 'life': 'life', 'since': 'since', 'status': 'status'} + def __init__(self, data=None, error=None, id_=None, info=None, life=None, since=None, status=None, **unknown_fields): + ''' + data : typing.Mapping[str, typing.Any] + error : Error + id_ : str + info : str + life : str + since : str + status : str + ''' + self.data = data + self.error = Error.from_json(error) if error else None + self.id_ = id_ + self.info = info + self.life = life + self.since = since + self.status = status + + + +class StatusResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~StatusResult] + ''' + self.results = [StatusResult.from_json(o) for o in results or []] + + + +class StorageAddParams(Type): + _toSchema = {'name': 'name', 'storage': 'storage', 'unit': 'unit'} + _toPy = {'name': 'name', 'storage': 'storage', 'unit': 'unit'} + def __init__(self, name=None, storage=None, unit=None, **unknown_fields): + ''' + name : str + storage : StorageConstraints + unit : str + ''' + self.name = name + self.storage = StorageConstraints.from_json(storage) if storage else None + self.unit = unit + + + +class StorageAttachment(Type): + _toSchema = {'kind': 'kind', 'life': 'life', 'location': 'location', 'owner_tag': 'owner-tag', 'storage_tag': 'storage-tag', 'unit_tag': 'unit-tag'} + _toPy = {'kind': 'kind', 'life': 'life', 'location': 'location', 'owner-tag': 'owner_tag', 'storage-tag': 'storage_tag', 'unit-tag': 'unit_tag'} + def __init__(self, kind=None, life=None, location=None, owner_tag=None, storage_tag=None, unit_tag=None, **unknown_fields): + ''' + kind : int + life : str + location : str + owner_tag : str + storage_tag : str + unit_tag : str + ''' + self.kind = kind + self.life = life + self.location = location + self.owner_tag = owner_tag + self.storage_tag = storage_tag + self.unit_tag = unit_tag + + + +class StorageAttachmentDetails(Type): + _toSchema = {'location': 'location', 'machine_tag': 'machine-tag', 'storage_tag': 'storage-tag', 'unit_tag': 'unit-tag'} + _toPy = {'location': 'location', 'machine-tag': 'machine_tag', 'storage-tag': 'storage_tag', 'unit-tag': 'unit_tag'} + def __init__(self, location=None, machine_tag=None, storage_tag=None, unit_tag=None, **unknown_fields): + ''' + location : str + machine_tag : str + storage_tag : str + unit_tag : str + ''' + self.location = location + self.machine_tag = machine_tag + self.storage_tag = storage_tag + self.unit_tag = unit_tag + + + +class StorageAttachmentId(Type): + _toSchema = {'storage_tag': 'storage-tag', 'unit_tag': 'unit-tag'} + _toPy = {'storage-tag': 'storage_tag', 'unit-tag': 'unit_tag'} + def __init__(self, storage_tag=None, unit_tag=None, **unknown_fields): + ''' + storage_tag : str + unit_tag : str + ''' + self.storage_tag = storage_tag + self.unit_tag = unit_tag + + + +class StorageAttachmentIds(Type): + _toSchema = {'ids': 'ids'} + _toPy = {'ids': 'ids'} + def __init__(self, ids=None, **unknown_fields): + ''' + ids : typing.Sequence[~StorageAttachmentId] + ''' + self.ids = [StorageAttachmentId.from_json(o) for o in ids or []] + + + +class StorageAttachmentIdsResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : StorageAttachmentIds + ''' + self.error = Error.from_json(error) if error else None + self.result = StorageAttachmentIds.from_json(result) if result else None + + + +class StorageAttachmentIdsResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~StorageAttachmentIdsResult] + ''' + self.results = [StorageAttachmentIdsResult.from_json(o) for o in results or []] + + + +class StorageAttachmentResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : StorageAttachment + ''' + self.error = Error.from_json(error) if error else None + self.result = StorageAttachment.from_json(result) if result else None + + + +class StorageAttachmentResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~StorageAttachmentResult] + ''' + self.results = [StorageAttachmentResult.from_json(o) for o in results or []] + + + +class StorageConstraints(Type): + _toSchema = {'count': 'count', 'pool': 'pool', 'size': 'size'} + _toPy = {'count': 'count', 'pool': 'pool', 'size': 'size'} + def __init__(self, count=None, pool=None, size=None, **unknown_fields): + ''' + count : int + pool : str + size : int + ''' + self.count = count + self.pool = pool + self.size = size + + + +class StorageDetails(Type): + _toSchema = {'attachments': 'attachments', 'kind': 'kind', 'owner_tag': 'owner-tag', 'persistent': 'persistent', 'status': 'status', 'storage_tag': 'storage-tag'} + _toPy = {'attachments': 'attachments', 'kind': 'kind', 'owner-tag': 'owner_tag', 'persistent': 'persistent', 'status': 'status', 'storage-tag': 'storage_tag'} + def __init__(self, attachments=None, kind=None, owner_tag=None, persistent=None, status=None, storage_tag=None, **unknown_fields): + ''' + attachments : typing.Mapping[str, ~StorageAttachmentDetails] + kind : int + owner_tag : str + persistent : bool + status : EntityStatus + storage_tag : str + ''' + self.attachments = attachments + self.kind = kind + self.owner_tag = owner_tag + self.persistent = persistent + self.status = EntityStatus.from_json(status) if status else None + self.storage_tag = storage_tag + + + +class StorageDetailsListResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : typing.Sequence[~StorageDetails] + ''' + self.error = Error.from_json(error) if error else None + self.result = [StorageDetails.from_json(o) for o in result or []] + + + +class StorageDetailsListResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~StorageDetailsListResult] + ''' + self.results = [StorageDetailsListResult.from_json(o) for o in results or []] + + + +class StorageDetailsResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : StorageDetails + ''' + self.error = Error.from_json(error) if error else None + self.result = StorageDetails.from_json(result) if result else None + + + +class StorageDetailsResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~StorageDetailsResult] + ''' + self.results = [StorageDetailsResult.from_json(o) for o in results or []] + + + +class StorageFilter(Type): + _toSchema = {} + _toPy = {} + def __init__(self, **unknown_fields): + ''' + + ''' + pass + + + +class StorageFilters(Type): + _toSchema = {'filters': 'filters'} + _toPy = {'filters': 'filters'} + def __init__(self, filters=None, **unknown_fields): + ''' + filters : typing.Sequence[~StorageFilter] + ''' + self.filters = [StorageFilter.from_json(o) for o in filters or []] + + + +class StoragePool(Type): + _toSchema = {'attrs': 'attrs', 'name': 'name', 'provider': 'provider'} + _toPy = {'attrs': 'attrs', 'name': 'name', 'provider': 'provider'} + def __init__(self, attrs=None, name=None, provider=None, **unknown_fields): + ''' + attrs : typing.Mapping[str, typing.Any] + name : str + provider : str + ''' + self.attrs = attrs + self.name = name + self.provider = provider + + + +class StoragePoolFilter(Type): + _toSchema = {'names': 'names', 'providers': 'providers'} + _toPy = {'names': 'names', 'providers': 'providers'} + def __init__(self, names=None, providers=None, **unknown_fields): + ''' + names : typing.Sequence[str] + providers : typing.Sequence[str] + ''' + self.names = names + self.providers = providers + + + +class StoragePoolFilters(Type): + _toSchema = {'filters': 'filters'} + _toPy = {'filters': 'filters'} + def __init__(self, filters=None, **unknown_fields): + ''' + filters : typing.Sequence[~StoragePoolFilter] + ''' + self.filters = [StoragePoolFilter.from_json(o) for o in filters or []] + + + +class StoragePoolsResult(Type): + _toSchema = {'error': 'error', 'storage_pools': 'storage-pools'} + _toPy = {'error': 'error', 'storage-pools': 'storage_pools'} + def __init__(self, error=None, storage_pools=None, **unknown_fields): + ''' + error : Error + storage_pools : typing.Sequence[~StoragePool] + ''' + self.error = Error.from_json(error) if error else None + self.storage_pools = [StoragePool.from_json(o) for o in storage_pools or []] + + + +class StoragePoolsResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~StoragePoolsResult] + ''' + self.results = [StoragePoolsResult.from_json(o) for o in results or []] + + + +class StoragesAddParams(Type): + _toSchema = {'storages': 'storages'} + _toPy = {'storages': 'storages'} + def __init__(self, storages=None, **unknown_fields): + ''' + storages : typing.Sequence[~StorageAddParams] + ''' + self.storages = [StorageAddParams.from_json(o) for o in storages or []] + + + +class StringBoolResult(Type): + _toSchema = {'error': 'error', 'ok': 'ok', 'result': 'result'} + _toPy = {'error': 'error', 'ok': 'ok', 'result': 'result'} + def __init__(self, error=None, ok=None, result=None, **unknown_fields): + ''' + error : Error + ok : bool + result : str + ''' + self.error = Error.from_json(error) if error else None + self.ok = ok + self.result = result + + + +class StringBoolResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~StringBoolResult] + ''' + self.results = [StringBoolResult.from_json(o) for o in results or []] + + + +class StringResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : str + ''' + self.error = Error.from_json(error) if error else None + self.result = result + + + +class StringResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~StringResult] + ''' + self.results = [StringResult.from_json(o) for o in results or []] + + + +class StringsResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : typing.Sequence[str] + ''' + self.error = Error.from_json(error) if error else None + self.result = result + + + +class StringsResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~StringsResult] + ''' + self.results = [StringsResult.from_json(o) for o in results or []] + + + +class StringsWatchResult(Type): + _toSchema = {'changes': 'changes', 'error': 'error', 'watcher_id': 'watcher-id'} + _toPy = {'changes': 'changes', 'error': 'error', 'watcher-id': 'watcher_id'} + def __init__(self, changes=None, error=None, watcher_id=None, **unknown_fields): + ''' + changes : typing.Sequence[str] + error : Error + watcher_id : str + ''' + self.changes = changes + self.error = Error.from_json(error) if error else None + self.watcher_id = watcher_id + + + +class StringsWatchResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~StringsWatchResult] + ''' + self.results = [StringsWatchResult.from_json(o) for o in results or []] + + + +class Subnet(Type): + _toSchema = {'cidr': 'cidr', 'life': 'life', 'provider_id': 'provider-id', 'space_tag': 'space-tag', 'status': 'status', 'vlan_tag': 'vlan-tag', 'zones': 'zones'} + _toPy = {'cidr': 'cidr', 'life': 'life', 'provider-id': 'provider_id', 'space-tag': 'space_tag', 'status': 'status', 'vlan-tag': 'vlan_tag', 'zones': 'zones'} + def __init__(self, cidr=None, life=None, provider_id=None, space_tag=None, status=None, vlan_tag=None, zones=None, **unknown_fields): + ''' + cidr : str + life : str + provider_id : str + space_tag : str + status : str + vlan_tag : int + zones : typing.Sequence[str] + ''' + self.cidr = cidr + self.life = life + self.provider_id = provider_id + self.space_tag = space_tag + self.status = status + self.vlan_tag = vlan_tag + self.zones = zones + + + +class SubnetsFilters(Type): + _toSchema = {'space_tag': 'space-tag', 'zone': 'zone'} + _toPy = {'space-tag': 'space_tag', 'zone': 'zone'} + def __init__(self, space_tag=None, zone=None, **unknown_fields): + ''' + space_tag : str + zone : str + ''' + self.space_tag = space_tag + self.zone = zone + + + +class TaggedCredential(Type): + _toSchema = {'credential': 'credential', 'tag': 'tag'} + _toPy = {'credential': 'credential', 'tag': 'tag'} + def __init__(self, credential=None, tag=None, **unknown_fields): + ''' + credential : CloudCredential + tag : str + ''' + self.credential = CloudCredential.from_json(credential) if credential else None + self.tag = tag + + + +class TaggedCredentials(Type): + _toSchema = {'credentials': 'credentials'} + _toPy = {'credentials': 'credentials'} + def __init__(self, credentials=None, **unknown_fields): + ''' + credentials : typing.Sequence[~TaggedCredential] + ''' + self.credentials = [TaggedCredential.from_json(o) for o in credentials or []] + + + +class TokenResult(Type): + _toSchema = {'error': 'error', 'token': 'token'} + _toPy = {'error': 'error', 'token': 'token'} + def __init__(self, error=None, token=None, **unknown_fields): + ''' + error : Error + token : str + ''' + self.error = Error.from_json(error) if error else None + self.token = token + + + +class TokenResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~TokenResult] + ''' + self.results = [TokenResult.from_json(o) for o in results or []] + + + +class Tools(Type): + _toSchema = {'sha256': 'sha256', 'size': 'size', 'url': 'url', 'version': 'version'} + _toPy = {'sha256': 'sha256', 'size': 'size', 'url': 'url', 'version': 'version'} + def __init__(self, sha256=None, size=None, url=None, version=None, **unknown_fields): + ''' + sha256 : str + size : int + url : str + version : Binary + ''' + self.sha256 = sha256 + self.size = size + self.url = url + self.version = Binary.from_json(version) if version else None + + + +class ToolsResult(Type): + _toSchema = {'disable_ssl_hostname_verification': 'disable-ssl-hostname-verification', 'error': 'error', 'tools': 'tools'} + _toPy = {'disable-ssl-hostname-verification': 'disable_ssl_hostname_verification', 'error': 'error', 'tools': 'tools'} + def __init__(self, disable_ssl_hostname_verification=None, error=None, tools=None, **unknown_fields): + ''' + disable_ssl_hostname_verification : bool + error : Error + tools : typing.Sequence[~Tools] + ''' + self.disable_ssl_hostname_verification = disable_ssl_hostname_verification + self.error = Error.from_json(error) if error else None + self.tools = [Tools.from_json(o) for o in tools or []] + + + +class ToolsResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ToolsResult] + ''' + self.results = [ToolsResult.from_json(o) for o in results or []] + + + +class TrackArgs(Type): + _toSchema = {'payloads': 'payloads'} + _toPy = {'payloads': 'payloads'} + def __init__(self, payloads=None, **unknown_fields): + ''' + payloads : typing.Sequence[~Payload] + ''' + self.payloads = [Payload.from_json(o) for o in payloads or []] + + + +class TrackPayloadArgs(Type): + _toSchema = {'payloads': 'payloads'} + _toPy = {'payloads': 'payloads'} + def __init__(self, payloads=None, **unknown_fields): + ''' + payloads : typing.Sequence[~Payload] + ''' + self.payloads = [Payload.from_json(o) for o in payloads or []] + + + +class UndertakerModelInfo(Type): + _toSchema = {'global_name': 'global-name', 'is_system': 'is-system', 'life': 'life', 'name': 'name', 'uuid': 'uuid'} + _toPy = {'global-name': 'global_name', 'is-system': 'is_system', 'life': 'life', 'name': 'name', 'uuid': 'uuid'} + def __init__(self, global_name=None, is_system=None, life=None, name=None, uuid=None, **unknown_fields): + ''' + global_name : str + is_system : bool + life : str + name : str + uuid : str + ''' + self.global_name = global_name + self.is_system = is_system + self.life = life + self.name = name + self.uuid = uuid + + + +class UndertakerModelInfoResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : UndertakerModelInfo + ''' + self.error = Error.from_json(error) if error else None + self.result = UndertakerModelInfo.from_json(result) if result else None + + + +class UnitNetworkConfig(Type): + _toSchema = {'binding_name': 'binding-name', 'unit_tag': 'unit-tag'} + _toPy = {'binding-name': 'binding_name', 'unit-tag': 'unit_tag'} + def __init__(self, binding_name=None, unit_tag=None, **unknown_fields): + ''' + binding_name : str + unit_tag : str + ''' + self.binding_name = binding_name + self.unit_tag = unit_tag + + + +class UnitNetworkConfigResult(Type): + _toSchema = {'error': 'error', 'info': 'info'} + _toPy = {'error': 'error', 'info': 'info'} + def __init__(self, error=None, info=None, **unknown_fields): + ''' + error : Error + info : typing.Sequence[~NetworkConfig] + ''' + self.error = Error.from_json(error) if error else None + self.info = [NetworkConfig.from_json(o) for o in info or []] + + + +class UnitNetworkConfigResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~UnitNetworkConfigResult] + ''' + self.results = [UnitNetworkConfigResult.from_json(o) for o in results or []] + + + +class UnitRefreshResult(Type): + _toSchema = {'error': 'Error', 'life': 'Life', 'resolved': 'Resolved'} + _toPy = {'Error': 'error', 'Life': 'life', 'Resolved': 'resolved'} + def __init__(self, error=None, life=None, resolved=None, **unknown_fields): + ''' + error : Error + life : str + resolved : str + ''' + self.error = Error.from_json(error) if error else None + self.life = life + self.resolved = resolved + + + +class UnitRefreshResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~UnitRefreshResult] + ''' + self.results = [UnitRefreshResult.from_json(o) for o in results or []] + + + +class UnitResourceResult(Type): + _toSchema = {'errorresult': 'ErrorResult', 'resource': 'resource'} + _toPy = {'ErrorResult': 'errorresult', 'resource': 'resource'} + def __init__(self, errorresult=None, resource=None, **unknown_fields): + ''' + errorresult : ErrorResult + resource : Resource + ''' + self.errorresult = ErrorResult.from_json(errorresult) if errorresult else None + self.resource = Resource.from_json(resource) if resource else None + + + +class UnitResources(Type): + _toSchema = {'download_progress': 'download-progress', 'entity': 'Entity', 'resources': 'resources'} + _toPy = {'Entity': 'entity', 'download-progress': 'download_progress', 'resources': 'resources'} + def __init__(self, entity=None, download_progress=None, resources=None, **unknown_fields): + ''' + entity : Entity + download_progress : typing.Mapping[str, int] + resources : typing.Sequence[~Resource] + ''' + self.entity = Entity.from_json(entity) if entity else None + self.download_progress = download_progress + self.resources = [Resource.from_json(o) for o in resources or []] + + + +class UnitResourcesResult(Type): + _toSchema = {'errorresult': 'ErrorResult', 'resources': 'resources'} + _toPy = {'ErrorResult': 'errorresult', 'resources': 'resources'} + def __init__(self, errorresult=None, resources=None, **unknown_fields): + ''' + errorresult : ErrorResult + resources : typing.Sequence[~UnitResourceResult] + ''' + self.errorresult = ErrorResult.from_json(errorresult) if errorresult else None + self.resources = [UnitResourceResult.from_json(o) for o in resources or []] + + + +class UnitSettings(Type): + _toSchema = {'version': 'version'} + _toPy = {'version': 'version'} + def __init__(self, version=None, **unknown_fields): + ''' + version : int + ''' + self.version = version + + + +class UnitStatus(Type): + _toSchema = {'agent_status': 'agent-status', 'charm': 'charm', 'leader': 'leader', 'machine': 'machine', 'opened_ports': 'opened-ports', 'public_address': 'public-address', 'subordinates': 'subordinates', 'workload_status': 'workload-status', 'workload_version': 'workload-version'} + _toPy = {'agent-status': 'agent_status', 'charm': 'charm', 'leader': 'leader', 'machine': 'machine', 'opened-ports': 'opened_ports', 'public-address': 'public_address', 'subordinates': 'subordinates', 'workload-status': 'workload_status', 'workload-version': 'workload_version'} + def __init__(self, agent_status=None, charm=None, leader=None, machine=None, opened_ports=None, public_address=None, subordinates=None, workload_status=None, workload_version=None, **unknown_fields): + ''' + agent_status : DetailedStatus + charm : str + leader : bool + machine : str + opened_ports : typing.Sequence[str] + public_address : str + subordinates : typing.Mapping[str, ~UnitStatus] + workload_status : DetailedStatus + workload_version : str + ''' + self.agent_status = DetailedStatus.from_json(agent_status) if agent_status else None + self.charm = charm + self.leader = leader + self.machine = machine + self.opened_ports = opened_ports + self.public_address = public_address + self.subordinates = subordinates + self.workload_status = DetailedStatus.from_json(workload_status) if workload_status else None + self.workload_version = workload_version + + + +class UnitsNetworkConfig(Type): + _toSchema = {'args': 'args'} + _toPy = {'args': 'args'} + def __init__(self, args=None, **unknown_fields): + ''' + args : typing.Sequence[~UnitNetworkConfig] + ''' + self.args = [UnitNetworkConfig.from_json(o) for o in args or []] + + + +class UnitsResolved(Type): + _toSchema = {'all_': 'all', 'retry': 'retry', 'tags': 'tags'} + _toPy = {'all': 'all_', 'retry': 'retry', 'tags': 'tags'} + def __init__(self, all_=None, retry=None, tags=None, **unknown_fields): + ''' + all_ : bool + retry : bool + tags : Entities + ''' + self.all_ = all_ + self.retry = retry + self.tags = Entities.from_json(tags) if tags else None + + + +class UnsetModelDefaults(Type): + _toSchema = {'keys': 'keys'} + _toPy = {'keys': 'keys'} + def __init__(self, keys=None, **unknown_fields): + ''' + keys : typing.Sequence[~ModelUnsetKeys] + ''' + self.keys = [ModelUnsetKeys.from_json(o) for o in keys or []] + + + +class UpdateApplicationServiceArg(Type): + _toSchema = {'addresses': 'addresses', 'application_tag': 'application-tag', 'provider_id': 'provider-id'} + _toPy = {'addresses': 'addresses', 'application-tag': 'application_tag', 'provider-id': 'provider_id'} + def __init__(self, addresses=None, application_tag=None, provider_id=None, **unknown_fields): + ''' + addresses : typing.Sequence[~Address] + application_tag : str + provider_id : str + ''' + self.addresses = [Address.from_json(o) for o in addresses or []] + self.application_tag = application_tag + self.provider_id = provider_id + + + +class UpdateApplicationServiceArgs(Type): + _toSchema = {'args': 'args'} + _toPy = {'args': 'args'} + def __init__(self, args=None, **unknown_fields): + ''' + args : typing.Sequence[~UpdateApplicationServiceArg] + ''' + self.args = [UpdateApplicationServiceArg.from_json(o) for o in args or []] + + + +class UpdateApplicationUnitArgs(Type): + _toSchema = {'args': 'args'} + _toPy = {'args': 'args'} + def __init__(self, args=None, **unknown_fields): + ''' + args : typing.Sequence[~UpdateApplicationUnits] + ''' + self.args = [UpdateApplicationUnits.from_json(o) for o in args or []] + + + +class UpdateApplicationUnits(Type): + _toSchema = {'application_tag': 'application-tag', 'units': 'units'} + _toPy = {'application-tag': 'application_tag', 'units': 'units'} + def __init__(self, application_tag=None, units=None, **unknown_fields): + ''' + application_tag : str + units : typing.Sequence[~ApplicationUnitParams] + ''' + self.application_tag = application_tag + self.units = [ApplicationUnitParams.from_json(o) for o in units or []] + + + +class UpdateBehavior(Type): + _toSchema = {'enable_os_refresh_update': 'enable-os-refresh-update', 'enable_os_upgrade': 'enable-os-upgrade'} + _toPy = {'enable-os-refresh-update': 'enable_os_refresh_update', 'enable-os-upgrade': 'enable_os_upgrade'} + def __init__(self, enable_os_refresh_update=None, enable_os_upgrade=None, **unknown_fields): + ''' + enable_os_refresh_update : bool + enable_os_upgrade : bool + ''' + self.enable_os_refresh_update = enable_os_refresh_update + self.enable_os_upgrade = enable_os_upgrade + + + +class UpdateCloudCredential(Type): + _toSchema = {'credential': 'credential', 'tag': 'tag'} + _toPy = {'credential': 'credential', 'tag': 'tag'} + def __init__(self, credential=None, tag=None, **unknown_fields): + ''' + credential : CloudCredential + tag : str + ''' + self.credential = CloudCredential.from_json(credential) if credential else None + self.tag = tag + + + +class UpdateCloudCredentials(Type): + _toSchema = {'credentials': 'credentials'} + _toPy = {'credentials': 'credentials'} + def __init__(self, credentials=None, **unknown_fields): + ''' + credentials : typing.Sequence[~UpdateCloudCredential] + ''' + self.credentials = [UpdateCloudCredential.from_json(o) for o in credentials or []] + + + +class UpdateCredentialArgs(Type): + _toSchema = {'credentials': 'credentials', 'force': 'force'} + _toPy = {'credentials': 'credentials', 'force': 'force'} + def __init__(self, credentials=None, force=None, **unknown_fields): + ''' + credentials : typing.Sequence[~TaggedCredential] + force : bool + ''' + self.credentials = [TaggedCredential.from_json(o) for o in credentials or []] + self.force = force + + + +class UpdateCredentialModelResult(Type): + _toSchema = {'errors': 'errors', 'name': 'name', 'uuid': 'uuid'} + _toPy = {'errors': 'errors', 'name': 'name', 'uuid': 'uuid'} + def __init__(self, errors=None, name=None, uuid=None, **unknown_fields): + ''' + errors : typing.Sequence[~ErrorResult] + name : str + uuid : str + ''' + self.errors = [ErrorResult.from_json(o) for o in errors or []] + self.name = name + self.uuid = uuid + + + +class UpdateCredentialResult(Type): + _toSchema = {'error': 'error', 'models': 'models', 'tag': 'tag'} + _toPy = {'error': 'error', 'models': 'models', 'tag': 'tag'} + def __init__(self, error=None, models=None, tag=None, **unknown_fields): + ''' + error : Error + models : typing.Sequence[~UpdateCredentialModelResult] + tag : str + ''' + self.error = Error.from_json(error) if error else None + self.models = [UpdateCredentialModelResult.from_json(o) for o in models or []] + self.tag = tag + + + +class UpdateCredentialResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~UpdateCredentialResult] + ''' + self.results = [UpdateCredentialResult.from_json(o) for o in results or []] + + + +class UpdateSeriesArg(Type): + _toSchema = {'force': 'force', 'series': 'series', 'tag': 'tag'} + _toPy = {'force': 'force', 'series': 'series', 'tag': 'tag'} + def __init__(self, force=None, series=None, tag=None, **unknown_fields): + ''' + force : bool + series : str + tag : Entity + ''' + self.force = force + self.series = series + self.tag = Entity.from_json(tag) if tag else None + + + +class UpdateSeriesArgs(Type): + _toSchema = {'args': 'args'} + _toPy = {'args': 'args'} + def __init__(self, args=None, **unknown_fields): + ''' + args : typing.Sequence[~UpdateSeriesArg] + ''' + self.args = [UpdateSeriesArg.from_json(o) for o in args or []] + + + +class UpgradeMongoParams(Type): + _toSchema = {'target': 'target'} + _toPy = {'target': 'target'} + def __init__(self, target=None, **unknown_fields): + ''' + target : MongoVersion + ''' + self.target = MongoVersion.from_json(target) if target else None + + + +class UpgradeSeriesNotificationParam(Type): + _toSchema = {'entity': 'entity', 'watcher_id': 'watcher-id'} + _toPy = {'entity': 'entity', 'watcher-id': 'watcher_id'} + def __init__(self, entity=None, watcher_id=None, **unknown_fields): + ''' + entity : Entity + watcher_id : str + ''' + self.entity = Entity.from_json(entity) if entity else None + self.watcher_id = watcher_id + + + +class UpgradeSeriesNotificationParams(Type): + _toSchema = {'params': 'params'} + _toPy = {'params': 'params'} + def __init__(self, params=None, **unknown_fields): + ''' + params : typing.Sequence[~UpgradeSeriesNotificationParam] + ''' + self.params = [UpgradeSeriesNotificationParam.from_json(o) for o in params or []] + + + +class UpgradeSeriesStartUnitCompletionParam(Type): + _toSchema = {'entities': 'entities', 'message': 'message'} + _toPy = {'entities': 'entities', 'message': 'message'} + def __init__(self, entities=None, message=None, **unknown_fields): + ''' + entities : typing.Sequence[~Entity] + message : str + ''' + self.entities = [Entity.from_json(o) for o in entities or []] + self.message = message + + + +class UpgradeSeriesStatusParam(Type): + _toSchema = {'entity': 'entity', 'message': 'message', 'status': 'status'} + _toPy = {'entity': 'entity', 'message': 'message', 'status': 'status'} + def __init__(self, entity=None, message=None, status=None, **unknown_fields): + ''' + entity : Entity + message : str + status : str + ''' + self.entity = Entity.from_json(entity) if entity else None + self.message = message + self.status = status + + + +class UpgradeSeriesStatusParams(Type): + _toSchema = {'params': 'params'} + _toPy = {'params': 'params'} + def __init__(self, params=None, **unknown_fields): + ''' + params : typing.Sequence[~UpgradeSeriesStatusParam] + ''' + self.params = [UpgradeSeriesStatusParam.from_json(o) for o in params or []] + + + +class UpgradeSeriesStatusResult(Type): + _toSchema = {'error': 'error', 'status': 'status'} + _toPy = {'error': 'error', 'status': 'status'} + def __init__(self, error=None, status=None, **unknown_fields): + ''' + error : Error + status : str + ''' + self.error = Error.from_json(error) if error else None + self.status = status + + + +class UpgradeSeriesStatusResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~UpgradeSeriesStatusResult] + ''' + self.results = [UpgradeSeriesStatusResult.from_json(o) for o in results or []] + + + +class UpgradeSeriesUnitsResult(Type): + _toSchema = {'error': 'error', 'unit_names': 'unit-names'} + _toPy = {'error': 'error', 'unit-names': 'unit_names'} + def __init__(self, error=None, unit_names=None, **unknown_fields): + ''' + error : Error + unit_names : typing.Sequence[str] + ''' + self.error = Error.from_json(error) if error else None + self.unit_names = unit_names + + + +class UpgradeSeriesUnitsResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~UpgradeSeriesUnitsResult] + ''' + self.results = [UpgradeSeriesUnitsResult.from_json(o) for o in results or []] + + + +class UserAccess(Type): + _toSchema = {'access': 'access', 'user_tag': 'user-tag'} + _toPy = {'access': 'access', 'user-tag': 'user_tag'} + def __init__(self, access=None, user_tag=None, **unknown_fields): + ''' + access : str + user_tag : str + ''' + self.access = access + self.user_tag = user_tag + + + +class UserAccessResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : UserAccess + ''' + self.error = Error.from_json(error) if error else None + self.result = UserAccess.from_json(result) if result else None + + + +class UserAccessResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~UserAccessResult] + ''' + self.results = [UserAccessResult.from_json(o) for o in results or []] + + + +class UserCloud(Type): + _toSchema = {'cloud_tag': 'cloud-tag', 'user_tag': 'user-tag'} + _toPy = {'cloud-tag': 'cloud_tag', 'user-tag': 'user_tag'} + def __init__(self, cloud_tag=None, user_tag=None, **unknown_fields): + ''' + cloud_tag : str + user_tag : str + ''' + self.cloud_tag = cloud_tag + self.user_tag = user_tag + + + +class UserClouds(Type): + _toSchema = {'user_clouds': 'user-clouds'} + _toPy = {'user-clouds': 'user_clouds'} + def __init__(self, user_clouds=None, **unknown_fields): + ''' + user_clouds : typing.Sequence[~UserCloud] + ''' + self.user_clouds = [UserCloud.from_json(o) for o in user_clouds or []] + + + +class UserInfo(Type): + _toSchema = {'access': 'access', 'created_by': 'created-by', 'date_created': 'date-created', 'disabled': 'disabled', 'display_name': 'display-name', 'last_connection': 'last-connection', 'username': 'username'} + _toPy = {'access': 'access', 'created-by': 'created_by', 'date-created': 'date_created', 'disabled': 'disabled', 'display-name': 'display_name', 'last-connection': 'last_connection', 'username': 'username'} + def __init__(self, access=None, created_by=None, date_created=None, disabled=None, display_name=None, last_connection=None, username=None, **unknown_fields): + ''' + access : str + created_by : str + date_created : str + disabled : bool + display_name : str + last_connection : str + username : str + ''' + self.access = access + self.created_by = created_by + self.date_created = date_created + self.disabled = disabled + self.display_name = display_name + self.last_connection = last_connection + self.username = username + + + +class UserInfoRequest(Type): + _toSchema = {'entities': 'entities', 'include_disabled': 'include-disabled'} + _toPy = {'entities': 'entities', 'include-disabled': 'include_disabled'} + def __init__(self, entities=None, include_disabled=None, **unknown_fields): + ''' + entities : typing.Sequence[~Entity] + include_disabled : bool + ''' + self.entities = [Entity.from_json(o) for o in entities or []] + self.include_disabled = include_disabled + + + +class UserInfoResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : UserInfo + ''' + self.error = Error.from_json(error) if error else None + self.result = UserInfo.from_json(result) if result else None + + + +class UserInfoResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~UserInfoResult] + ''' + self.results = [UserInfoResult.from_json(o) for o in results or []] + + + +class UserModel(Type): + _toSchema = {'last_connection': 'last-connection', 'model': 'model'} + _toPy = {'last-connection': 'last_connection', 'model': 'model'} + def __init__(self, last_connection=None, model=None, **unknown_fields): + ''' + last_connection : str + model : Model + ''' + self.last_connection = last_connection + self.model = Model.from_json(model) if model else None + + + +class UserModelList(Type): + _toSchema = {'user_models': 'user-models'} + _toPy = {'user-models': 'user_models'} + def __init__(self, user_models=None, **unknown_fields): + ''' + user_models : typing.Sequence[~UserModel] + ''' + self.user_models = [UserModel.from_json(o) for o in user_models or []] + + + +class Value(Type): + _toSchema = {'arch': 'arch', 'container': 'container', 'cores': 'cores', 'cpu_power': 'cpu-power', 'instance_type': 'instance-type', 'mem': 'mem', 'root_disk': 'root-disk', 'spaces': 'spaces', 'tags': 'tags', 'virt_type': 'virt-type'} + _toPy = {'arch': 'arch', 'container': 'container', 'cores': 'cores', 'cpu-power': 'cpu_power', 'instance-type': 'instance_type', 'mem': 'mem', 'root-disk': 'root_disk', 'spaces': 'spaces', 'tags': 'tags', 'virt-type': 'virt_type'} + def __init__(self, arch=None, container=None, cores=None, cpu_power=None, instance_type=None, mem=None, root_disk=None, spaces=None, tags=None, virt_type=None, **unknown_fields): + ''' + arch : str + container : str + cores : int + cpu_power : int + instance_type : str + mem : int + root_disk : int + spaces : typing.Sequence[str] + tags : typing.Sequence[str] + virt_type : str + ''' + self.arch = arch + self.container = container + self.cores = cores + self.cpu_power = cpu_power + self.instance_type = instance_type + self.mem = mem + self.root_disk = root_disk + self.spaces = spaces + self.tags = tags + self.virt_type = virt_type + + + +class Version(Type): + _toSchema = {'version': 'version'} + _toPy = {'version': 'version'} + def __init__(self, version=None, **unknown_fields): + ''' + version : Binary + ''' + self.version = Binary.from_json(version) if version else None + + + +class VersionResult(Type): + _toSchema = {'error': 'error', 'version': 'version'} + _toPy = {'error': 'error', 'version': 'version'} + def __init__(self, error=None, version=None, **unknown_fields): + ''' + error : Error + version : Number + ''' + self.error = Error.from_json(error) if error else None + self.version = Number.from_json(version) if version else None + + + +class VersionResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~VersionResult] + ''' + self.results = [VersionResult.from_json(o) for o in results or []] + + + +class Volume(Type): + _toSchema = {'info': 'info', 'volume_tag': 'volume-tag'} + _toPy = {'info': 'info', 'volume-tag': 'volume_tag'} + def __init__(self, info=None, volume_tag=None, **unknown_fields): + ''' + info : VolumeInfo + volume_tag : str + ''' + self.info = VolumeInfo.from_json(info) if info else None + self.volume_tag = volume_tag + + + +class VolumeAttachment(Type): + _toSchema = {'info': 'info', 'machine_tag': 'machine-tag', 'volume_tag': 'volume-tag'} + _toPy = {'info': 'info', 'machine-tag': 'machine_tag', 'volume-tag': 'volume_tag'} + def __init__(self, info=None, machine_tag=None, volume_tag=None, **unknown_fields): + ''' + info : VolumeAttachmentInfo + machine_tag : str + volume_tag : str + ''' + self.info = VolumeAttachmentInfo.from_json(info) if info else None + self.machine_tag = machine_tag + self.volume_tag = volume_tag + + + +class VolumeAttachmentDetails(Type): + _toSchema = {'life': 'life', 'volumeattachmentinfo': 'VolumeAttachmentInfo'} + _toPy = {'VolumeAttachmentInfo': 'volumeattachmentinfo', 'life': 'life'} + def __init__(self, volumeattachmentinfo=None, life=None, **unknown_fields): + ''' + volumeattachmentinfo : VolumeAttachmentInfo + life : str + ''' + self.volumeattachmentinfo = VolumeAttachmentInfo.from_json(volumeattachmentinfo) if volumeattachmentinfo else None + self.life = life + + + +class VolumeAttachmentInfo(Type): + _toSchema = {'bus_address': 'bus-address', 'device_link': 'device-link', 'device_name': 'device-name', 'read_only': 'read-only'} + _toPy = {'bus-address': 'bus_address', 'device-link': 'device_link', 'device-name': 'device_name', 'read-only': 'read_only'} + def __init__(self, bus_address=None, device_link=None, device_name=None, read_only=None, **unknown_fields): + ''' + bus_address : str + device_link : str + device_name : str + read_only : bool + ''' + self.bus_address = bus_address + self.device_link = device_link + self.device_name = device_name + self.read_only = read_only + + + +class VolumeAttachmentParams(Type): + _toSchema = {'instance_id': 'instance-id', 'machine_tag': 'machine-tag', 'provider': 'provider', 'read_only': 'read-only', 'volume_id': 'volume-id', 'volume_tag': 'volume-tag'} + _toPy = {'instance-id': 'instance_id', 'machine-tag': 'machine_tag', 'provider': 'provider', 'read-only': 'read_only', 'volume-id': 'volume_id', 'volume-tag': 'volume_tag'} + def __init__(self, instance_id=None, machine_tag=None, provider=None, read_only=None, volume_id=None, volume_tag=None, **unknown_fields): + ''' + instance_id : str + machine_tag : str + provider : str + read_only : bool + volume_id : str + volume_tag : str + ''' + self.instance_id = instance_id + self.machine_tag = machine_tag + self.provider = provider + self.read_only = read_only + self.volume_id = volume_id + self.volume_tag = volume_tag + + + +class VolumeAttachmentParamsResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : VolumeAttachmentParams + ''' + self.error = Error.from_json(error) if error else None + self.result = VolumeAttachmentParams.from_json(result) if result else None + + + +class VolumeAttachmentParamsResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~VolumeAttachmentParamsResult] + ''' + self.results = [VolumeAttachmentParamsResult.from_json(o) for o in results or []] + + + +class VolumeAttachmentPlan(Type): + _toSchema = {'block_device': 'block-device', 'life': 'life', 'machine_tag': 'machine-tag', 'plan_info': 'plan-info', 'volume_tag': 'volume-tag'} + _toPy = {'block-device': 'block_device', 'life': 'life', 'machine-tag': 'machine_tag', 'plan-info': 'plan_info', 'volume-tag': 'volume_tag'} + def __init__(self, block_device=None, life=None, machine_tag=None, plan_info=None, volume_tag=None, **unknown_fields): + ''' + block_device : BlockDevice + life : str + machine_tag : str + plan_info : VolumeAttachmentPlanInfo + volume_tag : str + ''' + self.block_device = BlockDevice.from_json(block_device) if block_device else None + self.life = life + self.machine_tag = machine_tag + self.plan_info = VolumeAttachmentPlanInfo.from_json(plan_info) if plan_info else None + self.volume_tag = volume_tag + + + +class VolumeAttachmentPlanInfo(Type): + _toSchema = {'device_attributes': 'device-attributes', 'device_type': 'device-type'} + _toPy = {'device-attributes': 'device_attributes', 'device-type': 'device_type'} + def __init__(self, device_attributes=None, device_type=None, **unknown_fields): + ''' + device_attributes : typing.Mapping[str, str] + device_type : str + ''' + self.device_attributes = device_attributes + self.device_type = device_type + + + +class VolumeAttachmentPlanResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : VolumeAttachmentPlan + ''' + self.error = Error.from_json(error) if error else None + self.result = VolumeAttachmentPlan.from_json(result) if result else None + + + +class VolumeAttachmentPlanResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~VolumeAttachmentPlanResult] + ''' + self.results = [VolumeAttachmentPlanResult.from_json(o) for o in results or []] + + + +class VolumeAttachmentPlans(Type): + _toSchema = {'volume_plans': 'volume-plans'} + _toPy = {'volume-plans': 'volume_plans'} + def __init__(self, volume_plans=None, **unknown_fields): + ''' + volume_plans : typing.Sequence[~VolumeAttachmentPlan] + ''' + self.volume_plans = [VolumeAttachmentPlan.from_json(o) for o in volume_plans or []] + + + +class VolumeAttachmentResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : VolumeAttachment + ''' + self.error = Error.from_json(error) if error else None + self.result = VolumeAttachment.from_json(result) if result else None + + + +class VolumeAttachmentResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~VolumeAttachmentResult] + ''' + self.results = [VolumeAttachmentResult.from_json(o) for o in results or []] + + + +class VolumeAttachments(Type): + _toSchema = {'volume_attachments': 'volume-attachments'} + _toPy = {'volume-attachments': 'volume_attachments'} + def __init__(self, volume_attachments=None, **unknown_fields): + ''' + volume_attachments : typing.Sequence[~VolumeAttachment] + ''' + self.volume_attachments = [VolumeAttachment.from_json(o) for o in volume_attachments or []] + + + +class VolumeDetails(Type): + _toSchema = {'info': 'info', 'machine_attachments': 'machine-attachments', 'status': 'status', 'storage': 'storage', 'volume_tag': 'volume-tag'} + _toPy = {'info': 'info', 'machine-attachments': 'machine_attachments', 'status': 'status', 'storage': 'storage', 'volume-tag': 'volume_tag'} + def __init__(self, info=None, machine_attachments=None, status=None, storage=None, volume_tag=None, **unknown_fields): + ''' + info : VolumeInfo + machine_attachments : typing.Mapping[str, ~VolumeAttachmentInfo] + status : EntityStatus + storage : StorageDetails + volume_tag : str + ''' + self.info = VolumeInfo.from_json(info) if info else None + self.machine_attachments = machine_attachments + self.status = EntityStatus.from_json(status) if status else None + self.storage = StorageDetails.from_json(storage) if storage else None + self.volume_tag = volume_tag + + + +class VolumeDetailsListResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : typing.Sequence[~VolumeDetails] + ''' + self.error = Error.from_json(error) if error else None + self.result = [VolumeDetails.from_json(o) for o in result or []] + + + +class VolumeDetailsListResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~VolumeDetailsListResult] + ''' + self.results = [VolumeDetailsListResult.from_json(o) for o in results or []] + + + +class VolumeFilter(Type): + _toSchema = {'machines': 'machines'} + _toPy = {'machines': 'machines'} + def __init__(self, machines=None, **unknown_fields): + ''' + machines : typing.Sequence[str] + ''' + self.machines = machines + + + +class VolumeFilters(Type): + _toSchema = {'filters': 'filters'} + _toPy = {'filters': 'filters'} + def __init__(self, filters=None, **unknown_fields): + ''' + filters : typing.Sequence[~VolumeFilter] + ''' + self.filters = [VolumeFilter.from_json(o) for o in filters or []] + + + +class VolumeInfo(Type): + _toSchema = {'hardware_id': 'hardware-id', 'persistent': 'persistent', 'size': 'size', 'volume_id': 'volume-id'} + _toPy = {'hardware-id': 'hardware_id', 'persistent': 'persistent', 'size': 'size', 'volume-id': 'volume_id'} + def __init__(self, hardware_id=None, persistent=None, size=None, volume_id=None, **unknown_fields): + ''' + hardware_id : str + persistent : bool + size : int + volume_id : str + ''' + self.hardware_id = hardware_id + self.persistent = persistent + self.size = size + self.volume_id = volume_id + + + +class VolumeParams(Type): + _toSchema = {'attachment': 'attachment', 'attributes': 'attributes', 'provider': 'provider', 'size': 'size', 'tags': 'tags', 'volume_tag': 'volume-tag'} + _toPy = {'attachment': 'attachment', 'attributes': 'attributes', 'provider': 'provider', 'size': 'size', 'tags': 'tags', 'volume-tag': 'volume_tag'} + def __init__(self, attachment=None, attributes=None, provider=None, size=None, tags=None, volume_tag=None, **unknown_fields): + ''' + attachment : VolumeAttachmentParams + attributes : typing.Mapping[str, typing.Any] + provider : str + size : int + tags : typing.Mapping[str, str] + volume_tag : str + ''' + self.attachment = VolumeAttachmentParams.from_json(attachment) if attachment else None + self.attributes = attributes + self.provider = provider + self.size = size + self.tags = tags + self.volume_tag = volume_tag + + + +class VolumeParamsResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : VolumeParams + ''' + self.error = Error.from_json(error) if error else None + self.result = VolumeParams.from_json(result) if result else None + + + +class VolumeParamsResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~VolumeParamsResult] + ''' + self.results = [VolumeParamsResult.from_json(o) for o in results or []] + + + +class VolumeResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None, **unknown_fields): + ''' + error : Error + result : Volume + ''' + self.error = Error.from_json(error) if error else None + self.result = Volume.from_json(result) if result else None + + + +class VolumeResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~VolumeResult] + ''' + self.results = [VolumeResult.from_json(o) for o in results or []] + + + +class Volumes(Type): + _toSchema = {'volumes': 'volumes'} + _toPy = {'volumes': 'volumes'} + def __init__(self, volumes=None, **unknown_fields): + ''' + volumes : typing.Sequence[~Volume] + ''' + self.volumes = [Volume.from_json(o) for o in volumes or []] + + + +class WatchContainer(Type): + _toSchema = {'container_type': 'container-type', 'machine_tag': 'machine-tag'} + _toPy = {'container-type': 'container_type', 'machine-tag': 'machine_tag'} + def __init__(self, container_type=None, machine_tag=None, **unknown_fields): + ''' + container_type : str + machine_tag : str + ''' + self.container_type = container_type + self.machine_tag = machine_tag + + + +class WatchContainers(Type): + _toSchema = {'params': 'params'} + _toPy = {'params': 'params'} + def __init__(self, params=None, **unknown_fields): + ''' + params : typing.Sequence[~WatchContainer] + ''' + self.params = [WatchContainer.from_json(o) for o in params or []] + + + +class ZoneResult(Type): + _toSchema = {'available': 'available', 'error': 'error', 'name': 'name'} + _toPy = {'available': 'available', 'error': 'error', 'name': 'name'} + def __init__(self, available=None, error=None, name=None, **unknown_fields): + ''' + available : bool + error : Error + name : str + ''' + self.available = available + self.error = Error.from_json(error) if error else None + self.name = name + + + +class ZoneResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): + ''' + results : typing.Sequence[~ZoneResult] + ''' + self.results = [ZoneResult.from_json(o) for o in results or []] diff --git a/modules/libjuju/juju/client/client.py b/modules/libjuju/juju/client/client.py new file mode 100644 index 0000000..2721d07 --- /dev/null +++ b/modules/libjuju/juju/client/client.py @@ -0,0 +1,33 @@ +'''Replace auto-generated classes with our own, where necessary. +''' + +from . import _client, _definitions, overrides # isort:skip + +for o in overrides.__all__: + if "Facade" not in o: + # Override stuff in _definitions, which is all imported + # into _client. We Monkey patch both the original class and + # the ref in _client (import shenanigans are fun!) + setattr(_definitions, o, getattr(overrides, o)) + setattr(_client, o, getattr(overrides, o)) + # We shouldn't be overriding Facades! + else: + raise ValueError( + "Cannot override a versioned Facade class -- you must patch " + "it instead.") + +for o in overrides.__patches__: + # Patch a versioned Facade. + for client_version in _client.CLIENTS.values(): + try: + c_type = getattr(client_version, o) + except AttributeError: + # Not all the _client modules may have the + # facade. That's okay -- we just skip over them. + continue + o_type = getattr(overrides, o) + for a in dir(o_type): + if not a.startswith('_'): + setattr(c_type, a, getattr(o_type, a)) + +from ._client import * # noqa, isort:skip diff --git a/modules/libjuju/juju/client/codegen.py b/modules/libjuju/juju/client/codegen.py new file mode 100644 index 0000000..f8a792a --- /dev/null +++ b/modules/libjuju/juju/client/codegen.py @@ -0,0 +1,52 @@ +from collections import defaultdict +from io import StringIO +from textwrap import indent + + +class CodeWriter(StringIO): + """ + Blob of text that, when used in the context of facade.py, ends up + holding the source code for a Python class and associated methods. + + """ + INDENT = " " + + CLASS = 0 + METHOD = 1 + + def write(self, msg, depth=0): + if depth: + prefix = self.INDENT * depth + msg = indent(msg, prefix) + + return super(CodeWriter, self).write(msg) + + def __str__(self): + return super(CodeWriter, self).getvalue() + + +class Capture(defaultdict): + """ + A collection of CodeWriter objects, together representing a Python + module. + + """ + + def __init__(self, default_factory=CodeWriter, *args, **kwargs): + super(Capture, self).__init__(default_factory, *args, **kwargs) + + def clear(self, name): + """ + Reset one of the keys in this class, if it exists. + + This is necessary, because we don't worry about de-duplicating + the schemas for each version of juju up front, and this gives + us a way to sort of de-duplicate on the fly, by resetting a + specific CodeWriter instance before we start to write a class + into it. + + """ + try: + del self[name] + except KeyError: + pass diff --git a/modules/libjuju/juju/client/connection.py b/modules/libjuju/juju/client/connection.py new file mode 100644 index 0000000..f2150b7 --- /dev/null +++ b/modules/libjuju/juju/client/connection.py @@ -0,0 +1,601 @@ +import asyncio +import base64 +import json +import logging +import ssl +import urllib.request +import weakref +from concurrent.futures import CancelledError +from http.client import HTTPSConnection + +import macaroonbakery.httpbakery as httpbakery +import macaroonbakery.bakery as bakery +import websockets +from juju import errors, tag, utils +from juju.client import client +from juju.utils import IdQueue + +log = logging.getLogger('juju.client.connection') + + +class Monitor: + """ + Monitor helper class for our Connection class. + + Contains a reference to an instantiated Connection, along with a + reference to the Connection.receiver Future. Upon inspection of + these objects, this class determines whether the connection is in + an 'error', 'connected' or 'disconnected' state. + + Use this class to stay up to date on the health of a connection, + and take appropriate action if the connection errors out due to + network issues or other unexpected circumstances. + + """ + ERROR = 'error' + CONNECTED = 'connected' + DISCONNECTING = 'disconnecting' + DISCONNECTED = 'disconnected' + + def __init__(self, connection): + self.connection = weakref.ref(connection) + self.reconnecting = asyncio.Lock(loop=connection.loop) + self.close_called = asyncio.Event(loop=connection.loop) + + @property + def status(self): + """ + Determine the status of the connection and receiver, and return + ERROR, CONNECTED, or DISCONNECTED as appropriate. + + For simplicity, we only consider ourselves to be connected + after the Connection class has setup a receiver task. This + only happens after the websocket is open, and the connection + isn't usable until that receiver has been started. + + """ + connection = self.connection() + + # the connection instance was destroyed but someone kept + # a separate reference to the monitor for some reason + if not connection: + return self.DISCONNECTED + + # connection cleanly disconnected or not yet opened + if not connection.ws: + return self.DISCONNECTED + + # close called but not yet complete + if self.close_called.is_set(): + return self.DISCONNECTING + + # connection closed uncleanly (we didn't call connection.close) + stopped = connection._receiver_task.stopped.is_set() + if stopped or not connection.ws.open: + return self.ERROR + + # everything is fine! + return self.CONNECTED + + +class Connection: + """ + Usage:: + + # Connect to an arbitrary api server + client = await Connection.connect( + api_endpoint, model_uuid, username, password, cacert) + + Note: Any connection method or constructor can accept an optional `loop` + argument to override the default event loop from `asyncio.get_event_loop`. + """ + + MAX_FRAME_SIZE = 2**22 + "Maximum size for a single frame. Defaults to 4MB." + + @classmethod + async def connect( + cls, + endpoint=None, + uuid=None, + username=None, + password=None, + cacert=None, + bakery_client=None, + loop=None, + max_frame_size=None, + retries=3, + retry_backoff=10, + ): + """Connect to the websocket. + + If uuid is None, the connection will be to the controller. Otherwise it + will be to the model. + + :param str endpoint: The hostname:port of the controller to connect to. + :param str uuid: The model UUID to connect to (None for a + controller-only connection). + :param str username: The username for controller-local users (or None + to use macaroon-based login.) + :param str password: The password for controller-local users. + :param str cacert: The CA certificate of the controller + (PEM formatted). + :param httpbakery.Client bakery_client: The macaroon bakery client to + to use when performing macaroon-based login. Macaroon tokens + acquired when logging will be saved to bakery_client.cookies. + If this is None, a default bakery_client will be used. + :param asyncio.BaseEventLoop loop: The event loop to use for async + operations. + :param int max_frame_size: The maximum websocket frame size to allow. + :param int retries: When connecting or reconnecting, and all endpoints + fail, how many times to retry the connection before giving up. + :param int retry_backoff: Number of seconds to increase the wait + between connection retry attempts (a backoff of 10 with 3 retries + would wait 10s, 20s, and 30s). + """ + self = cls() + if endpoint is None: + raise ValueError('no endpoint provided') + self.uuid = uuid + if bakery_client is None: + bakery_client = httpbakery.Client() + self.bakery_client = bakery_client + if username and '@' in username and not username.endswith('@local'): + # We're trying to log in as an external user - we need to use + # macaroon authentication with no username or password. + if password is not None: + raise errors.JujuAuthError('cannot log in as external ' + 'user with a password') + username = None + self.usertag = tag.user(username) + self.password = password + self.loop = loop or asyncio.get_event_loop() + + self.__request_id__ = 0 + + # The following instance variables are initialized by the + # _connect_with_redirect method, but create them here + # as a reminder that they will exist. + self.addr = None + self.ws = None + self.endpoint = None + self.cacert = None + self.info = None + + # Create that _Task objects but don't start the tasks yet. + self._pinger_task = _Task(self._pinger, self.loop) + self._receiver_task = _Task(self._receiver, self.loop) + + self._retries = retries + self._retry_backoff = retry_backoff + + self.facades = {} + self.messages = IdQueue(loop=self.loop) + self.monitor = Monitor(connection=self) + if max_frame_size is None: + max_frame_size = self.MAX_FRAME_SIZE + self.max_frame_size = max_frame_size + await self._connect_with_redirect([(endpoint, cacert)]) + return self + + @property + def username(self): + if not self.usertag: + return None + return self.usertag[len('user-'):] + + @property + def is_open(self): + return self.monitor.status == Monitor.CONNECTED + + def _get_ssl(self, cert=None): + return ssl.create_default_context( + purpose=ssl.Purpose.CLIENT_AUTH, cadata=cert) + + async def _open(self, endpoint, cacert): + if self.uuid: + url = "wss://{}/model/{}/api".format(endpoint, self.uuid) + else: + url = "wss://{}/api".format(endpoint) + + return (await websockets.connect( + url, + ssl=self._get_ssl(cacert), + loop=self.loop, + max_size=self.max_frame_size, + ), url, endpoint, cacert) + + async def close(self): + if not self.ws: + return + self.monitor.close_called.set() + await self._pinger_task.stopped.wait() + await self._receiver_task.stopped.wait() + await self.ws.close() + self.ws = None + + async def _recv(self, request_id): + if not self.is_open: + raise websockets.exceptions.ConnectionClosed(0, 'websocket closed') + return await self.messages.get(request_id) + + async def _receiver(self): + try: + while self.is_open: + result = await utils.run_with_interrupt( + self.ws.recv(), + self.monitor.close_called, + loop=self.loop) + if self.monitor.close_called.is_set(): + break + if result is not None: + result = json.loads(result) + await self.messages.put(result['request-id'], result) + except CancelledError: + pass + except websockets.ConnectionClosed as e: + log.warning('Receiver: Connection closed, reconnecting') + await self.messages.put_all(e) + # the reconnect has to be done as a task because the receiver will + # be cancelled by the reconnect and we don't want the reconnect + # to be aborted half-way through + self.loop.create_task(self.reconnect()) + return + except Exception as e: + log.exception("Error in receiver") + # make pending listeners aware of the error + await self.messages.put_all(e) + raise + + async def _pinger(self): + ''' + A Controller can time us out if we are silent for too long. This + is especially true in JaaS, which has a fairly strict timeout. + + To prevent timing out, we send a ping every ten seconds. + + ''' + async def _do_ping(): + try: + await pinger_facade.Ping() + await asyncio.sleep(10, loop=self.loop) + except CancelledError: + pass + + pinger_facade = client.PingerFacade.from_connection(self) + try: + while True: + await utils.run_with_interrupt( + _do_ping(), + self.monitor.close_called, + loop=self.loop) + if self.monitor.close_called.is_set(): + break + except websockets.exceptions.ConnectionClosed: + # The connection has closed - we can't do anything + # more until the connection is restarted. + log.debug('ping failed because of closed connection') + pass + + async def rpc(self, msg, encoder=None): + '''Make an RPC to the API. The message is encoded as JSON + using the given encoder if any. + :param msg: Parameters for the call (will be encoded as JSON). + :param encoder: Encoder to be used when encoding the message. + :return: The result of the call. + :raises JujuAPIError: When there's an error returned. + :raises JujuError: + ''' + self.__request_id__ += 1 + msg['request-id'] = self.__request_id__ + if'params' not in msg: + msg['params'] = {} + if "version" not in msg: + msg['version'] = self.facades[msg['type']] + outgoing = json.dumps(msg, indent=2, cls=encoder) + log.debug('connection {} -> {}'.format(id(self), outgoing)) + for attempt in range(3): + if self.monitor.status == Monitor.DISCONNECTED: + # closed cleanly; shouldn't try to reconnect + raise websockets.exceptions.ConnectionClosed( + 0, 'websocket closed') + try: + await self.ws.send(outgoing) + break + except websockets.ConnectionClosed: + if attempt == 2: + raise + log.warning('RPC: Connection closed, reconnecting') + # the reconnect has to be done in a separate task because, + # if it is triggered by the pinger, then this RPC call will + # be cancelled when the pinger is cancelled by the reconnect, + # and we don't want the reconnect to be aborted halfway through + await asyncio.wait([self.reconnect()], loop=self.loop) + if self.monitor.status != Monitor.CONNECTED: + # reconnect failed; abort and shutdown + log.error('RPC: Automatic reconnect failed') + raise + result = await self._recv(msg['request-id']) + log.debug('connection {} <- {}'.format(id(self), result)) + + if not result: + return result + + if 'error' in result: + # API Error Response + raise errors.JujuAPIError(result) + + if 'response' not in result: + # This may never happen + return result + + if 'results' in result['response']: + # Check for errors in a result list. + # TODO This loses the results that might have succeeded. + # Perhaps JujuError should return all the results including + # errors, or perhaps a keyword parameter to the rpc method + # could be added to trigger this behaviour. + err_results = [] + for res in result['response']['results']: + if res.get('error', {}).get('message'): + err_results.append(res['error']['message']) + if err_results: + raise errors.JujuError(err_results) + + elif result['response'].get('error', {}).get('message'): + raise errors.JujuError(result['response']['error']['message']) + + return result + + def _http_headers(self): + """Return dictionary of http headers necessary for making an http + connection to the endpoint of this Connection. + + :return: Dictionary of headers + + """ + if not self.usertag: + return {} + + creds = u'{}:{}'.format( + self.usertag, + self.password or '' + ) + token = base64.b64encode(creds.encode()) + return { + 'Authorization': 'Basic {}'.format(token.decode()) + } + + def https_connection(self): + """Return an https connection to this Connection's endpoint. + + Returns a 3-tuple containing:: + + 1. The :class:`HTTPSConnection` instance + 2. Dictionary of auth headers to be used with the connection + 3. The root url path (str) to be used for requests. + + """ + endpoint = self.endpoint + host, remainder = endpoint.split(':', 1) + port = remainder + if '/' in remainder: + port, _ = remainder.split('/', 1) + + conn = HTTPSConnection( + host, int(port), + context=self._get_ssl(self.cacert), + ) + + path = ( + "/model/{}".format(self.uuid) + if self.uuid else "" + ) + return conn, self._http_headers(), path + + async def clone(self): + """Return a new Connection, connected to the same websocket endpoint + as this one. + + """ + return await Connection.connect(**self.connect_params()) + + def connect_params(self): + """Return a tuple of parameters suitable for passing to + Connection.connect that can be used to make a new connection + to the same controller (and model if specified. The first + element in the returned tuple holds the endpoint argument; + the other holds a dict of the keyword args. + """ + return { + 'endpoint': self.endpoint, + 'uuid': self.uuid, + 'username': self.username, + 'password': self.password, + 'cacert': self.cacert, + 'bakery_client': self.bakery_client, + 'loop': self.loop, + 'max_frame_size': self.max_frame_size, + } + + async def controller(self): + """Return a Connection to the controller at self.endpoint + """ + return await Connection.connect( + self.endpoint, + username=self.username, + password=self.password, + cacert=self.cacert, + bakery_client=self.bakery_client, + loop=self.loop, + max_frame_size=self.max_frame_size, + ) + + async def reconnect(self): + """ Force a reconnection. + """ + monitor = self.monitor + if monitor.reconnecting.locked() or monitor.close_called.is_set(): + return + async with monitor.reconnecting: + await self.close() + await self._connect_with_login([(self.endpoint, self.cacert)]) + + async def _connect(self, endpoints): + if len(endpoints) == 0: + raise errors.JujuConnectionError('no endpoints to connect to') + + async def _try_endpoint(endpoint, cacert, delay): + if delay: + await asyncio.sleep(delay) + return await self._open(endpoint, cacert) + + # Try all endpoints in parallel, with slight increasing delay (+100ms + # for each subsequent endpoint); the delay allows us to prefer the + # earlier endpoints over the latter. Use first successful connection. + tasks = [self.loop.create_task(_try_endpoint(endpoint, cacert, + 0.1 * i)) + for i, (endpoint, cacert) in enumerate(endpoints)] + for attempt in range(self._retries + 1): + for task in asyncio.as_completed(tasks, loop=self.loop): + try: + result = await task + break + except ConnectionError: + continue # ignore; try another endpoint + else: + _endpoints_str = ', '.join([endpoint + for endpoint, cacert in endpoints]) + if attempt < self._retries: + log.debug('Retrying connection to endpoints: {}; ' + 'attempt {} of {}'.format(_endpoints_str, + attempt + 1, + self._retries + 1)) + await asyncio.sleep((attempt + 1) * self._retry_backoff) + continue + else: + raise errors.JujuConnectionError( + 'Unable to connect to any endpoint: ' + '{}'.format(_endpoints_str)) + # only executed if inner loop's else did not continue + # (i.e., inner loop did break due to successful connection) + break + for task in tasks: + task.cancel() + self.ws = result[0] + self.addr = result[1] + self.endpoint = result[2] + self.cacert = result[3] + self._receiver_task.start() + log.debug("Driver connected to juju %s", self.addr) + self.monitor.close_called.clear() + + async def _connect_with_login(self, endpoints): + """Connect to the websocket. + + If uuid is None, the connection will be to the controller. Otherwise it + will be to the model. + :return: The response field of login response JSON object. + """ + success = False + try: + await self._connect(endpoints) + # It's possible that we may get several discharge-required errors, + # corresponding to different levels of authentication, so retry + # a few times. + for i in range(0, 2): + result = (await self.login())['response'] + macaroonJSON = result.get('discharge-required') + if macaroonJSON is None: + self.info = result + success = True + return result + macaroon = bakery.Macaroon.from_dict(macaroonJSON) + self.bakery_client.handle_error( + httpbakery.Error( + code=httpbakery.ERR_DISCHARGE_REQUIRED, + message=result.get('discharge-required-error'), + version=macaroon.version, + info=httpbakery.ErrorInfo( + macaroon=macaroon, + macaroon_path=result.get('macaroon-path'), + ), + ), + # note: remove the port number. + 'https://' + self.endpoint + '/', + ) + raise errors.JujuAuthError('failed to authenticate ' + 'after several attempts') + finally: + if not success: + await self.close() + + async def _connect_with_redirect(self, endpoints): + try: + login_result = await self._connect_with_login(endpoints) + except errors.JujuRedirectException as e: + login_result = await self._connect_with_login(e.endpoints) + self._build_facades(login_result.get('facades', {})) + self._pinger_task.start() + + def _build_facades(self, facades): + self.facades.clear() + for facade in facades: + self.facades[facade['name']] = facade['versions'][-1] + + async def login(self): + params = {} + params['auth-tag'] = self.usertag + if self.password: + params['credentials'] = self.password + else: + macaroons = _macaroons_for_domain(self.bakery_client.cookies, + self.endpoint) + params['macaroons'] = [[bakery.macaroon_to_dict(m) for m in ms] + for ms in macaroons] + + try: + return await self.rpc({ + "type": "Admin", + "request": "Login", + "version": 3, + "params": params, + }) + except errors.JujuAPIError as e: + if e.error_code != 'redirection required': + raise + log.info('Controller requested redirect') + # Fetch additional redirection information now so that + # we can safely close the connection after login + # fails. + redirect_info = (await self.rpc({ + "type": "Admin", + "request": "RedirectInfo", + "version": 3, + }))['response'] + raise errors.JujuRedirectException(redirect_info) from e + + +class _Task: + def __init__(self, task, loop): + self.stopped = asyncio.Event(loop=loop) + self.stopped.set() + self.task = task + self.loop = loop + + def start(self): + async def run(): + try: + return await self.task() + finally: + self.stopped.set() + self.stopped.clear() + self.loop.create_task(run()) + + +def _macaroons_for_domain(cookies, domain): + '''Return any macaroons from the given cookie jar that + apply to the given domain name.''' + req = urllib.request.Request('https://' + domain + '/') + cookies.add_cookie_header(req) + return httpbakery.extract_macaroons(req) diff --git a/modules/libjuju/juju/client/connector.py b/modules/libjuju/juju/client/connector.py new file mode 100644 index 0000000..a30adbf --- /dev/null +++ b/modules/libjuju/juju/client/connector.py @@ -0,0 +1,156 @@ +import asyncio +import logging +import copy + +import macaroonbakery.httpbakery as httpbakery +from juju.client.connection import Connection +from juju.client.gocookies import go_to_py_cookie, GoCookieJar +from juju.client.jujudata import FileJujuData +from juju.errors import JujuConnectionError, JujuError + +log = logging.getLogger('connector') + + +class NoConnectionException(Exception): + '''Raised by Connector when the connection method is called + and there is no current connection.''' + pass + + +class Connector: + '''This class abstracts out a reconnectable client that can connect + to controllers and models found in the Juju data files. + ''' + def __init__( + self, + loop=None, + max_frame_size=None, + bakery_client=None, + jujudata=None, + ): + '''Initialize a connector that will use the given parameters + by default when making a new connection''' + self.max_frame_size = max_frame_size + self.loop = loop or asyncio.get_event_loop() + self.bakery_client = bakery_client + self._connection = None + self.controller_name = None + self.model_name = None + self.jujudata = jujudata or FileJujuData() + + def is_connected(self): + '''Report whether there is a currently connected controller or not''' + return self._connection is not None + + def connection(self): + '''Return the current connection; raises an exception if there + is no current connection.''' + if not self.is_connected(): + raise NoConnectionException('not connected') + return self._connection + + async def connect(self, **kwargs): + """Connect to an arbitrary Juju model. + + kwargs are passed through to Connection.connect() + """ + kwargs.setdefault('loop', self.loop) + kwargs.setdefault('max_frame_size', self.max_frame_size) + kwargs.setdefault('bakery_client', self.bakery_client) + if 'macaroons' in kwargs: + if not kwargs['bakery_client']: + kwargs['bakery_client'] = httpbakery.Client() + if not kwargs['bakery_client'].cookies: + kwargs['bakery_client'].cookies = GoCookieJar() + jar = kwargs['bakery_client'].cookies + for macaroon in kwargs.pop('macaroons'): + jar.set_cookie(go_to_py_cookie(macaroon)) + self._connection = await Connection.connect(**kwargs) + + async def disconnect(self): + """Shut down the watcher task and close websockets. + """ + if self._connection: + log.debug('Closing model connection') + await self._connection.close() + self._connection = None + + async def connect_controller(self, controller_name=None): + """Connect to a controller by name. If the name is empty, it + connect to the current controller. + """ + if not controller_name: + controller_name = self.jujudata.current_controller() + if not controller_name: + raise JujuConnectionError('No current controller') + + controller = self.jujudata.controllers()[controller_name] + # TODO change Connection so we can pass all the endpoints + # instead of just the first. + endpoint = controller['api-endpoints'][0] + accounts = self.jujudata.accounts().get(controller_name, {}) + + await self.connect( + endpoint=endpoint, + uuid=None, + username=accounts.get('user'), + password=accounts.get('password'), + cacert=controller.get('ca-cert'), + bakery_client=self.bakery_client_for_controller(controller_name), + ) + self.controller_name = controller_name + + async def connect_model(self, model_name=None): + """Connect to a model by name. If either controller or model + parts of the name are empty, the current controller and/or model + will be used. + + :param str model: : + """ + + try: + controller_name, model_name = self.jujudata.parse_model(model_name) + controller = self.jujudata.controllers().get(controller_name) + except JujuError as e: + raise JujuConnectionError(e.message) from e + if controller is None: + raise JujuConnectionError('Controller {} not found'.format( + controller_name)) + # TODO change Connection so we can pass all the endpoints + # instead of just the first one. + endpoint = controller['api-endpoints'][0] + account = self.jujudata.accounts().get(controller_name, {}) + models = self.jujudata.models().get(controller_name, {}).get('models', + {}) + if model_name not in models: + raise JujuConnectionError('Model not found: {}'.format(model_name)) + + # TODO if there's no record for the required model name, connect + # to the controller to find out the model's uuid, then connect + # to that. This will let connect_model work with models that + # haven't necessarily synced with the local juju data, + # and also remove the need for base.CleanModel to + # subclass JujuData. + await self.connect( + endpoint=endpoint, + uuid=models[model_name]['uuid'], + username=account.get('user'), + password=account.get('password'), + cacert=controller.get('ca-cert'), + bakery_client=self.bakery_client_for_controller(controller_name), + ) + self.controller_name = controller_name + self.model_name = controller_name + ':' + model_name + + def bakery_client_for_controller(self, controller_name): + '''Make a copy of the bakery client with a the appropriate controller's + cookiejar in it. + ''' + bakery_client = self.bakery_client + if bakery_client: + bakery_client = copy.copy(bakery_client) + else: + bakery_client = httpbakery.Client() + bakery_client.cookies = self.jujudata.cookies_for_controller( + controller_name) + return bakery_client diff --git a/modules/libjuju/juju/client/facade.py b/modules/libjuju/juju/client/facade.py new file mode 100644 index 0000000..ec20c38 --- /dev/null +++ b/modules/libjuju/juju/client/facade.py @@ -0,0 +1,818 @@ +import argparse +import builtins +import functools +import json +import keyword +import pprint +import re +import textwrap +import typing +from collections import defaultdict +from glob import glob +from pathlib import Path +from typing import Any, Mapping, Sequence, TypeVar, Union + +from . import codegen + +_marker = object() + +JUJU_VERSION = re.compile(r'[0-9]+\.[0-9-]+[\.\-][0-9a-z]+(\.[0-9]+)?') +# Workaround for https://bugs.launchpad.net/juju/+bug/1683906 +NAUGHTY_CLASSES = ['ClientFacade', 'Client', 'FullStatus', 'ModelStatusInfo', + 'ModelInfo', 'ApplicationDeploy'] + + +# Map basic types to Python's typing with a callable +SCHEMA_TO_PYTHON = { + 'string': str, + 'integer': int, + 'float': float, + 'number': float, + 'boolean': bool, + 'object': Any, +} + + +# Friendly warning message to stick at the top of generated files. +HEADER = """\ +# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. +# Changes will be overwritten/lost when the file is regenerated. + +""" + + +# Classes and helper functions that we'll write to _client.py +LOOKUP_FACADE = ''' +def lookup_facade(name, version): + """ + Given a facade name and version, attempt to pull that facade out + of the correct client.py file. + + """ + for _version in range(int(version), 0, -1): + try: + facade = getattr(CLIENTS[str(_version)], name) + return facade + except (KeyError, AttributeError): + continue + else: + raise ImportError("No supported version for facade: " + "{}".format(name)) + + +''' + +TYPE_FACTORY = ''' +class TypeFactory: + @classmethod + def from_connection(cls, connection): + """ + Given a connected Connection object, return an initialized and + connected instance of an API Interface matching the name of + this class. + + @param connection: initialized Connection object. + + """ + facade_name = cls.__name__ + if not facade_name.endswith('Facade'): + raise TypeError('Unexpected class name: {}'.format(facade_name)) + facade_name = facade_name[:-len('Facade')] + version = connection.facades.get(facade_name) + if version is None: + raise Exception('No facade {} in facades {}'.format(facade_name, + connection.facades)) + + c = lookup_facade(cls.__name__, version) + c = c() + c.connect(connection) + + return c + + +''' + +CLIENT_TABLE = ''' +CLIENTS = {{ + {clients} +}} + + +''' + + +class KindRegistry(dict): + def register(self, name, version, obj): + self[name] = {version: { + "object": obj, + }} + + def lookup(self, name, version=None): + """If version is omitted, max version is used""" + versions = self.get(name) + if not versions: + return None + if version: + return versions[version] + return versions[max(versions)] + + def getObj(self, name, version=None): + result = self.lookup(name, version) + if result: + obj = result["object"] + return obj + return None + + +class TypeRegistry(dict): + def get(self, name): + # Two way mapping + refname = Schema.referenceName(name) + if refname not in self: + result = TypeVar(refname) + self[refname] = result + self[result] = refname + + return self[refname] + + +_types = TypeRegistry() +_registry = KindRegistry() +CLASSES = {} +factories = codegen.Capture() + + +def booler(v): + if isinstance(v, str): + if v == "false": + return False + return bool(v) + + +def getRefType(ref): + return _types.get(ref) + + +def refType(obj): + return getRefType(obj["$ref"]) + + +def objType(obj): + kind = obj.get('type') + if not kind: + raise ValueError("%s has no type" % obj) + result = SCHEMA_TO_PYTHON.get(kind) + if not result: + raise ValueError("%s has type %s" % (obj, kind)) + return result + + +basic_types = [str, bool, int, float] + + +def name_to_py(name): + result = name.replace("-", "_") + result = result.lower() + if keyword.iskeyword(result) or result in dir(builtins): + result += "_" + return result + + +def strcast(kind, keep_builtins=False): + if (kind in basic_types or + type(kind) in basic_types) and keep_builtins is False: + return kind.__name__ + if str(kind).startswith('~'): + return str(kind)[1:] + if issubclass(kind, typing.GenericMeta): + return str(kind)[1:] + return kind + + +class Args(list): + def __init__(self, defs): + self.defs = defs + if defs: + rtypes = _registry.getObj(_types[defs]) + if len(rtypes) == 1: + if not self.do_explode(rtypes[0][1]): + for name, rtype in rtypes: + self.append((name, rtype)) + else: + for name, rtype in rtypes: + self.append((name, rtype)) + + def do_explode(self, kind): + if kind in basic_types or type(kind) is typing.TypeVar: + return False + if not issubclass(kind, (typing.Sequence, + typing.Mapping)): + self.clear() + self.extend(Args(kind)) + return True + return False + + def PyToSchemaMapping(self): + m = {} + for n, rt in self: + m[name_to_py(n)] = n + return m + + def SchemaToPyMapping(self): + m = {} + for n, tr in self: + m[n] = name_to_py(n) + return m + + def _format(self, name, rtype, typed=True): + if typed: + return "{} : {}".format( + name_to_py(name), + strcast(rtype) + ) + else: + return name_to_py(name) + + def _get_arg_str(self, typed=False, joined=", "): + if self: + parts = [] + for item in self: + parts.append(self._format(item[0], item[1], typed)) + if joined: + return joined.join(parts) + return parts + return '' + + def as_kwargs(self): + if self: + parts = [] + for item in self: + parts.append('{}=None'.format(name_to_py(item[0]))) + return ', '.join(parts) + return '' + + def typed(self): + return self._get_arg_str(True) + + def __str__(self): + return self._get_arg_str(False) + + def get_doc(self): + return self._get_arg_str(True, "\n") + + +def buildTypes(schema, capture): + INDENT = " " + for kind in sorted((k for k in _types if not isinstance(k, str)), + key=lambda x: str(x)): + name = _types[kind] + if name in capture and name not in NAUGHTY_CLASSES: + continue + args = Args(kind) + # Write Factory class for _client.py + make_factory(name) + # Write actual class + source = [""" +class {}(Type): + _toSchema = {} + _toPy = {} + def __init__(self{}{}, **unknown_fields): + ''' +{} + '''""".format( + name, + # pprint these to get stable ordering across regens + pprint.pformat(args.PyToSchemaMapping(), width=999), + pprint.pformat(args.SchemaToPyMapping(), width=999), + ", " if args else "", + args.as_kwargs(), + textwrap.indent(args.get_doc(), INDENT * 2))] + + if not args: + source.append("{}pass".format(INDENT * 2)) + else: + for arg in args: + arg_name = name_to_py(arg[0]) + arg_type = arg[1] + arg_type_name = strcast(arg_type) + if arg_type in basic_types: + source.append("{}self.{} = {}".format(INDENT * 2, + arg_name, + arg_name)) + elif type(arg_type) is typing.TypeVar: + source.append("{}self.{} = {}.from_json({}) " + "if {} else None".format(INDENT * 2, + arg_name, + arg_type_name, + arg_name, + arg_name)) + elif issubclass(arg_type, typing.Sequence): + value_type = ( + arg_type_name.__parameters__[0] + if len(arg_type_name.__parameters__) + else None + ) + if type(value_type) is typing.TypeVar: + source.append( + "{}self.{} = [{}.from_json(o) " + "for o in {} or []]".format(INDENT * 2, + arg_name, + strcast(value_type), + arg_name)) + else: + source.append("{}self.{} = {}".format(INDENT * 2, + arg_name, + arg_name)) + elif issubclass(arg_type, typing.Mapping): + value_type = ( + arg_type_name.__parameters__[1] + if len(arg_type_name.__parameters__) > 1 + else None + ) + if type(value_type) is typing.TypeVar: + source.append( + "{}self.{} = {{k: {}.from_json(v) " + "for k, v in ({} or dict()).items()}}".format( + INDENT * 2, + arg_name, + strcast(value_type), + arg_name)) + else: + source.append("{}self.{} = {}".format(INDENT * 2, + arg_name, + arg_name)) + else: + source.append("{}self.{} = {}".format(INDENT * 2, + arg_name, + arg_name)) + + source = "\n".join(source) + capture.clear(name) + capture[name].write(source) + capture[name].write("\n\n") + co = compile(source, __name__, "exec") + ns = _getns() + exec(co, ns) + cls = ns[name] + CLASSES[name] = cls + + +def retspec(defs): + # return specs + # only return 1, so if there is more than one type + # we need to include a union + # In truth there is only 1 return + # Error or the expected Type + if not defs: + return None + if defs in basic_types: + return strcast(defs, False) + rtypes = _registry.getObj(_types[defs]) + if not rtypes: + return None + if len(rtypes) > 1: + return Union[tuple([strcast(r[1], True) for r in rtypes])] + return strcast(rtypes[0][1], False) + + +def return_type(defs): + if not defs: + return None + rtypes = _registry.getObj(_types[defs]) + if not rtypes: + return None + if len(rtypes) > 1: + for n, t in rtypes: + if n == "Error": + continue + return t + return rtypes[0][1] + + +def type_anno_func(func, defs, is_result=False): + annos = {} + if not defs: + return func + rtypes = _registry.getObj(_types[defs]) + if is_result: + kn = "return" + if not rtypes: + annos[kn] = None + elif len(rtypes) > 1: + annos[kn] = Union[tuple([r[1] for r in rtypes])] + else: + annos[kn] = rtypes[0][1] + else: + for name, rtype in rtypes: + name = name_to_py(name) + annos[name] = rtype + func.__annotations__.update(annos) + return func + + +def ReturnMapping(cls): + # Annotate the method with a return Type + # so the value can be cast + def decorator(f): + @functools.wraps(f) + async def wrapper(*args, **kwargs): + nonlocal cls + reply = await f(*args, **kwargs) + if cls is None: + return reply + if 'error' in reply: + cls = CLASSES['Error'] + if issubclass(cls, typing.Sequence): + result = [] + item_cls = cls.__parameters__[0] + for item in reply: + result.append(item_cls.from_json(item)) + """ + if 'error' in item: + cls = CLASSES['Error'] + else: + cls = item_cls + result.append(cls.from_json(item)) + """ + else: + result = cls.from_json(reply['response']) + + return result + return wrapper + return decorator + + +def makeFunc(cls, name, params, result, _async=True): + INDENT = " " + args = Args(params) + assignments = [] + toschema = args.PyToSchemaMapping() + for arg in args._get_arg_str(False, False): + assignments.append("{}_params[\'{}\'] = {}".format(INDENT, + toschema[arg], + arg)) + assignments = "\n".join(assignments) + res = retspec(result) + source = """ + +@ReturnMapping({rettype}) +{_async}def {name}(self{argsep}{args}): + ''' +{docstring} + Returns -> {res} + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='{cls.name}', + request='{name}', + version={cls.version}, + params=_params) +{assignments} + reply = {_await}self.rpc(msg) + return reply + +""" + + fsource = source.format(_async="async " if _async else "", + name=name, + argsep=", " if args else "", + args=args, + res=res, + rettype=result.__name__ if result else None, + docstring=textwrap.indent(args.get_doc(), INDENT), + cls=cls, + assignments=assignments, + _await="await " if _async else "") + ns = _getns() + exec(fsource, ns) + func = ns[name] + return func, fsource + + +def buildMethods(cls, capture): + properties = cls.schema['properties'] + for methodname in sorted(properties): + method, source = _buildMethod(cls, methodname) + setattr(cls, methodname, method) + capture["{}Facade".format(cls.__name__)].write(source, depth=1) + + +def _buildMethod(cls, name): + params = None + result = None + method = cls.schema['properties'][name] + if 'properties' in method: + prop = method['properties'] + spec = prop.get('Params') + if spec: + params = _types.get(spec['$ref']) + spec = prop.get('Result') + if spec: + if '$ref' in spec: + result = _types.get(spec['$ref']) + else: + result = SCHEMA_TO_PYTHON[spec['type']] + return makeFunc(cls, name, params, result) + + +def buildFacade(schema): + cls = type(schema.name, (Type,), dict(name=schema.name, + version=schema.version, + schema=schema)) + source = """ +class {name}Facade(Type): + name = '{name}' + version = {version} + schema = {schema} + """.format(name=schema.name, + version=schema.version, + schema=textwrap.indent(pprint.pformat(schema), " ")) + return cls, source + + +class TypeEncoder(json.JSONEncoder): + def default(self, obj): + if isinstance(obj, Type): + return obj.serialize() + return json.JSONEncoder.default(self, obj) + + +class Type: + def connect(self, connection): + self.connection = connection + + async def rpc(self, msg): + result = await self.connection.rpc(msg, encoder=TypeEncoder) + return result + + @classmethod + def from_json(cls, data): + if isinstance(data, cls): + return data + if isinstance(data, str): + try: + data = json.loads(data) + except json.JSONDecodeError: + raise + d = {} + for k, v in (data or {}).items(): + d[cls._toPy.get(k, k)] = v + + try: + return cls(**d) + except TypeError: + raise + + def serialize(self): + d = {} + for attr, tgt in self._toSchema.items(): + d[tgt] = getattr(self, attr) + return d + + def to_json(self): + return json.dumps(self.serialize(), cls=TypeEncoder, sort_keys=True) + + +class Schema(dict): + def __init__(self, schema): + self.name = schema['Name'] + self.version = schema['Version'] + self.update(schema['Schema']) + + @classmethod + def referenceName(cls, ref): + if ref.startswith("#/definitions/"): + ref = ref.rsplit("/", 1)[-1] + return ref + + def resolveDefinition(self, ref): + return self['definitions'][self.referenceName(ref)] + + def deref(self, prop, name): + if not isinstance(prop, dict): + raise TypeError(prop) + if "$ref" not in prop: + return prop + + target = self.resolveDefinition(prop["$ref"]) + return target + + def buildDefinitions(self): + # here we are building the types out + # anything in definitions is a type + # but these may contain references themselves + # so we dfs to the bottom and build upwards + # when a types is already in the registry + defs = self.get('definitions') + if not defs: + return + for d, data in defs.items(): + if d in _registry and d not in NAUGHTY_CLASSES: + continue + node = self.deref(data, d) + kind = node.get("type") + if kind == "object": + result = self.buildObject(node, d) + elif kind == "array": + pass + _registry.register(d, self.version, result) + # XXX: This makes sure that the type gets added to the global + # _types dict even if no other type in the schema has a ref + # to it. + getRefType(d) + + def buildObject(self, node, name=None, d=0): + # we don't need to build types recursively here + # they are all in definitions already + # we only want to include the type reference + # which we can derive from the name + struct = [] + add = struct.append + props = node.get("properties") + pprops = node.get("patternProperties") + if props: + # Sort these so the __init__ arg list for each Type remains + # consistently ordered across regens of client.py + for p in sorted(props): + prop = props[p] + if "$ref" in prop: + add((p, refType(prop))) + else: + kind = prop['type'] + if kind == "array": + add((p, self.buildArray(prop, d + 1))) + elif kind == "object": + struct.extend(self.buildObject(prop, p, d + 1)) + else: + add((p, objType(prop))) + if pprops: + if ".*" not in pprops: + raise ValueError( + "Cannot handle actual pattern in patternProperties %s" % + pprops) + pprop = pprops[".*"] + if "$ref" in pprop: + add((name, Mapping[str, refType(pprop)])) + return struct + ppkind = pprop["type"] + if ppkind == "array": + add((name, self.buildArray(pprop, d + 1))) + else: + add((name, Mapping[str, SCHEMA_TO_PYTHON[ppkind]])) + + if not struct and node.get('additionalProperties', False): + add((name, Mapping[str, SCHEMA_TO_PYTHON['object']])) + + return struct + + def buildArray(self, obj, d=0): + # return a sequence from an array in the schema + if "$ref" in obj: + return Sequence[refType(obj)] + else: + kind = obj.get("type") + if kind and kind == "array": + items = obj['items'] + return self.buildArray(items, d + 1) + else: + return Sequence[objType(obj)] + + +def _getns(): + ns = {'Type': Type, + 'typing': typing, + 'ReturnMapping': ReturnMapping + } + # Copy our types into the globals of the method + for facade in _registry: + ns[facade] = _registry.getObj(facade) + return ns + + +def make_factory(name): + if name in factories: + del factories[name] + factories[name].write("class {}(TypeFactory):\n pass\n\n".format(name)) + + +def write_facades(captures, options): + """ + Write the Facades to the appropriate _client.py + + """ + for version in sorted(captures.keys()): + filename = "{}/_client{}.py".format(options.output_dir, version) + with open(filename, "w") as f: + f.write(HEADER) + f.write("from juju.client.facade import Type, ReturnMapping\n") + f.write("from juju.client._definitions import *\n\n") + for key in sorted( + [k for k in captures[version].keys() if "Facade" in k]): + print(captures[version][key], file=f) + + # Return the last (most recent) version for use in other routines. + return version + + +def write_definitions(captures, options, version): + """ + Write auxillary (non versioned) classes to + _definitions.py The auxillary classes currently get + written redudantly into each capture object, so we can look in + one of them -- we just use the last one from the loop above. + + """ + with open("{}/_definitions.py".format(options.output_dir), "w") as f: + f.write(HEADER) + f.write("from juju.client.facade import Type, ReturnMapping\n\n") + for key in sorted( + [k for k in captures[version].keys() if "Facade" not in k]): + print(captures[version][key], file=f) + + +def write_client(captures, options): + """ + Write the TypeFactory classes to _client.py, along with some + imports and tables so that we can look up versioned Facades. + + """ + with open("{}/_client.py".format(options.output_dir), "w") as f: + f.write(HEADER) + f.write("from juju.client._definitions import *\n\n") + clients = ", ".join("_client{}".format(v) for v in captures) + f.write("from juju.client import " + clients + "\n\n") + f.write(CLIENT_TABLE.format(clients=",\n ".join( + ['"{}": _client{}'.format(v, v) for v in captures]))) + f.write(LOOKUP_FACADE) + f.write(TYPE_FACTORY) + for key in sorted([k for k in factories.keys() if "Facade" in k]): + print(factories[key], file=f) + + +def generate_facades(options): + captures = defaultdict(codegen.Capture) + schemas = {} + for p in sorted(glob(options.schema)): + if 'latest' in p: + juju_version = 'latest' + else: + try: + juju_version = re.search(JUJU_VERSION, p).group() + except AttributeError: + print("Cannot extract a juju version from {}".format(p)) + print("Schemas must include a juju version in the filename") + raise SystemExit(1) + + new_schemas = json.loads(Path(p).read_text("utf-8")) + schemas[juju_version] = [Schema(s) for s in new_schemas] + + # Build all of the auxillary (unversioned) classes + # TODO: get rid of some of the excess trips through loops in the + # called functions. + for juju_version in sorted(schemas.keys()): + for schema in schemas[juju_version]: + schema.buildDefinitions() + buildTypes(schema, captures[schema.version]) + + # Build the Facade classes + for juju_version in sorted(schemas.keys()): + for schema in schemas[juju_version]: + cls, source = buildFacade(schema) + cls_name = "{}Facade".format(schema.name) + + captures[schema.version].clear(cls_name) + # Make the factory class for _client.py + make_factory(cls_name) + # Make the actual class + captures[schema.version][cls_name].write(source) + # Build the methods for each Facade class. + buildMethods(cls, captures[schema.version]) + # Mark this Facade class as being done for this version -- + # helps mitigate some excessive looping. + CLASSES[schema.name] = cls + + return captures + + +def setup(): + parser = argparse.ArgumentParser() + parser.add_argument("-s", "--schema", default="juju/client/schemas*") + parser.add_argument("-o", "--output_dir", default="juju/client") + options = parser.parse_args() + return options + + +def main(): + options = setup() + + # Generate some text blobs + captures = generate_facades(options) + + # ... and write them out + last_version = write_facades(captures, options) + write_definitions(captures, options, last_version) + write_client(captures, options) + + +if __name__ == '__main__': + main() diff --git a/modules/libjuju/juju/client/gocookies.py b/modules/libjuju/juju/client/gocookies.py new file mode 100644 index 0000000..3e48b8d --- /dev/null +++ b/modules/libjuju/juju/client/gocookies.py @@ -0,0 +1,102 @@ +import datetime +import http.cookiejar as cookiejar +import json +import time + +import pyrfc3339 + + +class GoCookieJar(cookiejar.FileCookieJar): + '''A CookieJar implementation that reads and writes cookies + to the cookiejar format as understood by the Go package + github.com/juju/persistent-cookiejar.''' + def _really_load(self, f, filename, ignore_discard, ignore_expires): + '''Implement the _really_load method called by FileCookieJar + to implement the actual cookie loading''' + data = json.load(f) or [] + now = time.time() + for cookie in map(go_to_py_cookie, data): + if not ignore_expires and cookie.is_expired(now): + continue + self.set_cookie(cookie) + + def save(self, filename=None, ignore_discard=False, ignore_expires=False): + '''Implement the FileCookieJar abstract method.''' + if filename is None: + if self.filename is not None: + filename = self.filename + else: + raise ValueError(cookiejar.MISSING_FILENAME_TEXT) + + # TODO: obtain file lock, read contents of file, and merge with + # current content. + go_cookies = [] + now = time.time() + for cookie in self: + if not ignore_discard and cookie.discard: + continue + if not ignore_expires and cookie.is_expired(now): + continue + go_cookies.append(py_to_go_cookie(cookie)) + with open(filename, "w") as f: + f.write(json.dumps(go_cookies)) + + +def go_to_py_cookie(go_cookie): + '''Convert a Go-style JSON-unmarshaled cookie into a Python cookie''' + expires = None + if go_cookie.get('Expires') is not None: + t = pyrfc3339.parse(go_cookie['Expires']) + expires = t.timestamp() + return cookiejar.Cookie( + version=0, + name=go_cookie['Name'], + value=go_cookie['Value'], + port=None, + port_specified=False, + # Unfortunately Python cookies don't record the original + # host that the cookie came from, so we'll just use Domain + # for that purpose, and record that the domain was specified, + # even though it probably was not. This means that + # we won't correctly record the CanonicalHost entry + # when writing the cookie file after reading it. + domain=go_cookie['Domain'], + domain_specified=not go_cookie['HostOnly'], + domain_initial_dot=False, + path=go_cookie['Path'], + path_specified=True, + secure=go_cookie['Secure'], + expires=expires, + discard=False, + comment=None, + comment_url=None, + rest=None, + rfc2109=False, + ) + + +def py_to_go_cookie(py_cookie): + '''Convert a python cookie to the JSON-marshalable Go-style cookie form.''' + # TODO (perhaps): + # HttpOnly + # Creation + # LastAccess + # Updated + # not done properly: CanonicalHost. + go_cookie = { + 'Name': py_cookie.name, + 'Value': py_cookie.value, + 'Domain': py_cookie.domain, + 'HostOnly': not py_cookie.domain_specified, + 'Persistent': not py_cookie.discard, + 'Secure': py_cookie.secure, + 'CanonicalHost': py_cookie.domain, + } + if py_cookie.path_specified: + go_cookie['Path'] = py_cookie.path + if py_cookie.expires is not None: + unix_time = datetime.datetime.fromtimestamp(py_cookie.expires) + # Note: fromtimestamp bizarrely produces a time without + # a time zone, so we need to use accept_naive. + go_cookie['Expires'] = pyrfc3339.generate(unix_time, accept_naive=True) + return go_cookie diff --git a/modules/libjuju/juju/client/jujudata.py b/modules/libjuju/juju/client/jujudata.py new file mode 100644 index 0000000..8b844c2 --- /dev/null +++ b/modules/libjuju/juju/client/jujudata.py @@ -0,0 +1,219 @@ +import abc +import io +import os +import pathlib + +import juju.client.client as jujuclient +import yaml +from juju import tag +from juju.client.gocookies import GoCookieJar +from juju.errors import JujuError + + +class NoModelException(Exception): + pass + + +class JujuData: + __metaclass__ = abc.ABCMeta + + @abc.abstractmethod + def current_controller(self): + '''Return the current controller name''' + raise NotImplementedError() + + @abc.abstractmethod + def controllers(self): + '''Return all the currently known controllers as a dict + mapping controller name to a dict containing the + following string keys: + uuid: The UUID of the controller + api-endpoints: A list of host:port addresses for the controller. + ca-cert: the PEM-encoded CA cert of the controller (optional) + + This is compatible with the "controllers" entry in the YAML-unmarshaled data + stored in ~/.local/share/juju/controllers.yaml. + ''' + raise NotImplementedError() + + @abc.abstractmethod + def models(self): + '''Return all the currently known models as a dict + containing a key for each known controller, + each holding a dict value containing an optional "current-model" + key (the name of the current model for that controller, + if there is one), and a dict mapping fully-qualified + model names to a dict containing a "uuid" key with the + key for that model. + This is compatible with the YAML-unmarshaled data + stored in ~/.local/share/juju/models.yaml. + ''' + raise NotImplementedError() + + @abc.abstractmethod + def accounts(self): + '''Return the currently known accounts, as a dict + containing a key for each known controller, with + each value holding a dict with the following keys: + + user: The username to use when logging into the controller (str) + password: The password to use when logging into the controller (str, optional) + ''' + raise NotImplementedError() + + @abc.abstractmethod + def cookies_for_controller(self, controller_name): + '''Return the cookie jar to use when connecting to the + controller with the given name. + :return http.cookiejar.CookieJar + ''' + raise NotImplementedError() + + @abc.abstractmethod + def current_model(self, controller_name=None, model_only=False): + '''Return the current model, qualified by its controller name. + If controller_name is specified, the current model for + that controller will be returned. + If model_only is true, only the model name, not qualified by + its controller name, will be returned. + ''' + raise NotImplementedError() + + def parse_model(self, model): + """Split the given model_name into controller and model parts. + If the controller part is empty, the current controller will be used. + If the model part is empty, the current model will be used for + the controller. + The returned model name will always be qualified with a username. + :param model str: The model name to parse. + :return (str, str): The controller and model names. + """ + # TODO if model is empty, use $JUJU_MODEL environment variable. + if model and ':' in model: + # explicit controller given + controller_name, model_name = model.split(':') + else: + # use the current controller if one isn't explicitly given + controller_name = self.current_controller() + model_name = model + if not controller_name: + controller_name = self.current_controller() + if not model_name: + model_name = self.current_model(controller_name, model_only=True) + if not model_name: + raise NoModelException('no current model') + + if '/' not in model_name: + # model name doesn't include a user prefix, so add one + # by using the current user for the controller. + accounts = self.accounts().get(controller_name) + if accounts is None: + raise JujuError('No account found for controller {} '.format(controller_name)) + username = accounts.get('user') + if username is None: + raise JujuError('No username found for controller {}'.format(controller_name)) + model_name = username + "/" + model_name + + return controller_name, model_name + + +class FileJujuData(JujuData): + '''Provide access to the Juju client configuration files. + Any configuration file is read once and then cached.''' + def __init__(self): + self.path = os.environ.get('JUJU_DATA') or '~/.local/share/juju' + self.path = os.path.abspath(os.path.expanduser(self.path)) + # _loaded keeps track of the loaded YAML from + # the Juju data files so we don't need to load the same + # file many times. + self._loaded = {} + + def refresh(self): + '''Forget the cache of configuration file data''' + self._loaded = {} + + def current_controller(self): + '''Return the current controller name''' + return self._load_yaml('controllers.yaml', 'current-controller') + + def current_model(self, controller_name=None, model_only=False): + '''Return the current model, qualified by its controller name. + If controller_name is specified, the current model for + that controller will be returned. + + If model_only is true, only the model name, not qualified by + its controller name, will be returned. + ''' + # TODO respect JUJU_MODEL environment variable. + if not controller_name: + controller_name = self.current_controller() + if not controller_name: + raise JujuError('No current controller') + models = self.models()[controller_name] + if 'current-model' not in models: + return None + if model_only: + return models['current-model'] + return controller_name + ':' + models['current-model'] + + def load_credential(self, cloud, name=None): + """Load a local credential. + + :param str cloud: Name of cloud to load credentials from. + :param str name: Name of credential. If None, the default credential + will be used, if available. + :return: A CloudCredential instance, or None. + """ + try: + cloud = tag.untag('cloud-', cloud) + creds_data = self.credentials()[cloud] + if not name: + default_credential = creds_data.pop('default-credential', None) + default_region = creds_data.pop('default-region', None) # noqa + if default_credential: + name = creds_data['default-credential'] + elif len(creds_data) == 1: + name = list(creds_data)[0] + else: + return None, None + cred_data = creds_data[name] + auth_type = cred_data.pop('auth-type') + return name, jujuclient.CloudCredential( + auth_type=auth_type, + attrs=cred_data, + ) + except (KeyError, FileNotFoundError): + return None, None + + def controllers(self): + return self._load_yaml('controllers.yaml', 'controllers') + + def models(self): + return self._load_yaml('models.yaml', 'controllers') + + def accounts(self): + return self._load_yaml('accounts.yaml', 'controllers') + + def credentials(self): + return self._load_yaml('credentials.yaml', 'credentials') + + def _load_yaml(self, filename, key): + if filename in self._loaded: + # Data already exists in the cache. + return self._loaded[filename].get(key) + # TODO use the file lock like Juju does. + filepath = os.path.join(self.path, filename) + with io.open(filepath, 'rt') as f: + data = yaml.safe_load(f) + self._loaded[filename] = data + return data.get(key) + + def cookies_for_controller(self, controller_name): + f = pathlib.Path(self.path) / 'cookies' / (controller_name + '.json') + if not f.exists(): + f = pathlib.Path('~/.go-cookies').expanduser() + # TODO if neither cookie file exists, where should + # we create the cookies? + jar = GoCookieJar(str(f)) + jar.load() + return jar diff --git a/modules/libjuju/juju/client/overrides.py b/modules/libjuju/juju/client/overrides.py new file mode 100644 index 0000000..49ab931 --- /dev/null +++ b/modules/libjuju/juju/client/overrides.py @@ -0,0 +1,365 @@ +import re +from collections import namedtuple + +from . import _client, _definitions +from .facade import ReturnMapping, Type, TypeEncoder + +__all__ = [ + 'Delta', + 'Number', + 'Binary', + 'ConfigValue', + 'Resource', +] + +__patches__ = [ + 'ResourcesFacade', + 'AllWatcherFacade', + 'ActionFacade', +] + + +class Delta(Type): + """A single websocket delta. + + :ivar entity: The entity name, e.g. 'unit', 'application' + :vartype entity: str + + :ivar type: The delta type, e.g. 'add', 'change', 'remove' + :vartype type: str + + :ivar data: The raw delta data + :vartype data: dict + + NOTE: The 'data' variable above is being incorrectly cross-linked by a + Sphinx bug: https://github.com/sphinx-doc/sphinx/issues/2549 + + """ + _toSchema = {'deltas': 'deltas'} + _toPy = {'deltas': 'deltas'} + + def __init__(self, deltas=None): + """ + :param deltas: [str, str, object] + + """ + self.deltas = deltas + + Change = namedtuple('Change', 'entity type data') + change = Change(*self.deltas) + + self.entity = change.entity + self.type = change.type + self.data = change.data + + @classmethod + def from_json(cls, data): + return cls(deltas=data) + + +class ResourcesFacade(Type): + """Patch parts of ResourcesFacade to make it work. + """ + + @ReturnMapping(_client.AddPendingResourcesResult) + async def AddPendingResources(self, application_tag, charm_url, resources): + """Fix the calling signature of AddPendingResources. + + The ResourcesFacade doesn't conform to the standard facade pattern in + the Juju source, which leads to the schemagened code not matching up + properly with the actual calling convention in the API. There is work + planned to fix this in Juju, but we have to work around it for now. + + application_tag : str + charm_url : str + resources : typing.Sequence<+T_co>[~CharmResource]<~CharmResource> + Returns -> typing.Union[_ForwardRef('ErrorResult'), + typing.Sequence<+T_co>[str]] + """ + # map input types to rpc msg + _params = dict() + msg = dict(type='Resources', + request='AddPendingResources', + version=1, + params=_params) + _params['tag'] = application_tag + _params['url'] = charm_url + _params['resources'] = resources + reply = await self.rpc(msg) + return reply + + +class AllWatcherFacade(Type): + """ + Patch rpc method of allwatcher to add in 'id' stuff. + + """ + async def rpc(self, msg): + if not hasattr(self, 'Id'): + client = _client.ClientFacade.from_connection(self.connection) + + result = await client.WatchAll() + self.Id = result.watcher_id + + msg['Id'] = self.Id + result = await self.connection.rpc(msg, encoder=TypeEncoder) + return result + + +class ActionFacade(Type): + + class _FindTagsResults(Type): + _toSchema = {'matches': 'matches'} + _toPy = {'matches': 'matches'} + + def __init__(self, matches=None, **unknown_fields): + ''' + FindTagsResults wraps the mapping between the requested prefix and the + matching tags for each requested prefix. + + Matches map[string][]Entity `json:"matches"` + ''' + self.matches = {} + matches = matches or {} + for prefix, tags in matches.items(): + self.matches[prefix] = [_definitions.Entity.from_json(r) + for r in tags] + + @ReturnMapping(_FindTagsResults) + async def FindActionTagsByPrefix(self, prefixes): + ''' + prefixes : typing.Sequence[str] + Returns -> typing.Sequence[~Entity] + ''' + # map input types to rpc msg + _params = dict() + msg = dict(type='Action', + request='FindActionTagsByPrefix', + version=2, + params=_params) + _params['prefixes'] = prefixes + reply = await self.rpc(msg) + return reply + + +class Number(_definitions.Number): + """ + This type represents a semver string. + + Because it is not standard JSON, the typical from_json parsing fails and + the parsing must be handled specially. + + See https://github.com/juju/version for more info. + """ + numberPat = re.compile(r'^(\d{1,9})\.(\d{1,9})(?:\.|-([a-z]+))(\d{1,9})(\.\d{1,9})?$') # noqa + + def __init__(self, major=None, minor=None, patch=None, tag=None, + build=None, **unknown_fields): + ''' + major : int + minor : int + patch : int + tag : str + build : int + ''' + self.major = int(major or '0') + self.minor = int(minor or '0') + self.patch = int(patch or '0') + self.tag = tag or '' + self.build = int(build or '0') + + def __repr__(self): + return ''.format( + self.major, self.minor, self.patch, self.tag, self.build) + + def __str__(self): + return self.serialize() + + @property + def _cmp(self): + return (self.major, self.minor, self.tag, self.patch, self.build) + + def __eq__(self, other): + return isinstance(other, type(self)) and self._cmp == other._cmp + + def __lt__(self, other): + return self._cmp < other._cmp + + def __le__(self, other): + return self._cmp <= other._cmp + + def __gt__(self, other): + return self._cmp > other._cmp + + def __ge__(self, other): + return self._cmp >= other._cmp + + @classmethod + def from_json(cls, data): + parsed = None + if isinstance(data, cls): + return data + elif data is None: + return cls() + elif isinstance(data, dict): + parsed = data + elif isinstance(data, str): + match = cls.numberPat.match(data) + if match: + parsed = { + 'major': match.group(1), + 'minor': match.group(2), + 'tag': match.group(3), + 'patch': match.group(4), + 'build': (match.group(5)[1:] if match.group(5) + else 0), + } + if not parsed: + raise TypeError('Unable to parse Number version string: ' + '{}'.format(data)) + d = {} + for k, v in parsed.items(): + d[cls._toPy.get(k, k)] = v + + return cls(**d) + + def serialize(self): + s = "" + if not self.tag: + s = "{}.{}.{}".format(self.major, self.minor, self.patch) + else: + s = "{}.{}-{}{}".format(self.major, self.minor, self.tag, + self.patch) + if self.build: + s = "{}.{}".format(s, self.build) + return s + + def to_json(self): + return self.serialize() + + +class Binary(_definitions.Binary): + """ + This type represents a semver string with additional series and arch info. + + Because it is not standard JSON, the typical from_json parsing fails and + the parsing must be handled specially. + + See https://github.com/juju/version for more info. + """ + binaryPat = re.compile(r'^(\d{1,9})\.(\d{1,9})(?:\.|-([a-z]+))(\d{1,9})(\.\d{1,9})?-([^-]+)-([^-]+)$') # noqa + + def __init__(self, number=None, series=None, arch=None, **unknown_fields): + ''' + number : Number + series : str + arch : str + ''' + self.number = Number.from_json(number) + self.series = series + self.arch = arch + + def __repr__(self): + return ''.format( + self.number, self.series, self.arch) + + def __str__(self): + return self.serialize() + + def __eq__(self, other): + return ( + isinstance(other, type(self)) and + other.number == self.number and + other.series == self.series and + other.arch == self.arch) + + @classmethod + def from_json(cls, data): + parsed = None + if isinstance(data, cls): + return data + elif data is None: + return cls() + elif isinstance(data, dict): + parsed = data + elif isinstance(data, str): + match = cls.binaryPat.match(data) + if match: + parsed = { + 'number': { + 'major': match.group(1), + 'minor': match.group(2), + 'tag': match.group(3), + 'patch': match.group(4), + 'build': (match.group(5)[1:] if match.group(5) + else 0), + }, + 'series': match.group(6), + 'arch': match.group(7), + } + if parsed is None: + raise TypeError('Unable to parse Binary version string: ' + '{}'.format(data)) + d = {} + for k, v in parsed.items(): + d[cls._toPy.get(k, k)] = v + + return cls(**d) + + def serialize(self): + return "{}-{}-{}".format(self.number.serialize(), + self.series, self.arch) + + def to_json(self): + return self.serialize() + + +class ConfigValue(_definitions.ConfigValue): + def __repr__(self): + return '<{} source={} value={}>'.format(type(self).__name__, + repr(self.source), + repr(self.value)) + + +class Resource(Type): + _toSchema = {'application': 'application', + 'charmresource': 'CharmResource', + 'id_': 'id', + 'pending_id': 'pending-id', + 'timestamp': 'timestamp', + 'username': 'username', + 'name': 'name', + 'origin': 'origin'} + _toPy = {'CharmResource': 'charmresource', + 'application': 'application', + 'id': 'id_', + 'pending-id': 'pending_id', + 'timestamp': 'timestamp', + 'username': 'username', + 'name': 'name', + 'origin': 'origin'} + + def __init__(self, charmresource=None, application=None, id_=None, + pending_id=None, timestamp=None, username=None, name=None, + origin=None, **unknown_fields): + ''' + charmresource : CharmResource + application : str + id_ : str + pending_id : str + timestamp : str + username : str + name: str + origin : str + ''' + if charmresource: + self.charmresource = _client.CharmResource.from_json(charmresource) + else: + self.charmresource = None + self.application = application + self.id_ = id_ + self.pending_id = pending_id + self.timestamp = timestamp + self.username = username + self.name = name + self.origin = origin diff --git a/modules/libjuju/juju/client/runner.py b/modules/libjuju/juju/client/runner.py new file mode 100644 index 0000000..6545bc4 --- /dev/null +++ b/modules/libjuju/juju/client/runner.py @@ -0,0 +1,21 @@ + +class AsyncRunner: + async def __call__(self, facade_method, *args, **kwargs): + await self.connection.rpc(facade_method(*args, **kwargs)) + + +class ThreadedRunner: + pass + +# Methods are descriptors?? +# get is called with params +# set gets called with the result? +# This could let us fake the protocol we want +# while decoupling the protocol from the RPC and the IO/Process context + +# The problem is leaking the runtime impl details to the top levels of the API +# with async def By handling the Marshal/Unmarshal side of RPC as a protocol we +# can leave the RPC running to a specific delegate without altering the method +# signatures. This still isn't quite right though as async is co-op +# multitasking and the methods still need to know not to block or they will +# pause other execution diff --git a/modules/libjuju/juju/client/schemas-juju-2.0.0.json b/modules/libjuju/juju/client/schemas-juju-2.0.0.json new file mode 100644 index 0000000..c53a541 --- /dev/null +++ b/modules/libjuju/juju/client/schemas-juju-2.0.0.json @@ -0,0 +1,24533 @@ +[ + { + "Name": "Action", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "ApplicationsCharmsActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationsCharmActionsResults" + } + } + }, + "Cancel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "Enqueue": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Actions" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "FindActionTagsByPrefix": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindTags" + }, + "Result": { + "$ref": "#/definitions/FindTagsResults" + } + } + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindActionsByNames" + }, + "Result": { + "$ref": "#/definitions/ActionsByNames" + } + } + }, + "ListAll": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListCompleted": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListPending": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListRunning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "Run": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "RunOnAllMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "Actions": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/Action" + } + } + }, + "additionalProperties": false + }, + "ActionsByName": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByNames": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByName" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "ApplicationCharmActionsResult": { + "type": "object", + "properties": { + "actions": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ActionSpec" + } + } + }, + "application-tag": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ApplicationsCharmActionsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationCharmActionsResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FindTags": { + "type": "object", + "properties": { + "prefixes": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "prefixes" + ] + }, + "FindTagsResults": { + "type": "object", + "properties": { + "matches": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + } + } + }, + "additionalProperties": false, + "required": [ + "matches" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RunParams": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "type": "string" + } + }, + "commands": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "type": "string" + } + }, + "timeout": { + "type": "integer" + }, + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "commands", + "timeout" + ] + } + } + } + }, + { + "Name": "Agent", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetEntities": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AgentGetEntitiesResults" + } + } + }, + "IsMaster": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/IsMasterResult" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateServingInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StateServingInfo" + } + } + }, + "WatchCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "AgentGetEntitiesResult": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "jobs", + "container-type" + ] + }, + "AgentGetEntitiesResults": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/AgentGetEntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "IsMasterResult": { + "type": "object", + "properties": { + "master": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "master" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StateServingInfo": { + "type": "object", + "properties": { + "api-port": { + "type": "integer" + }, + "ca-private-key": { + "type": "string" + }, + "cert": { + "type": "string" + }, + "private-key": { + "type": "string" + }, + "shared-secret": { + "type": "string" + }, + "state-port": { + "type": "integer" + }, + "system-identity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "api-port", + "state-port", + "cert", + "private-key", + "ca-private-key", + "shared-secret", + "system-identity" + ] + } + } + } + }, + { + "Name": "AgentTools", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "UpdateToolsAvailable": { + "type": "object" + } + } + } + }, + { + "Name": "AllModelWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "AllWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "Annotations", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AnnotationsGetResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AnnotationsSet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "AnnotationsGetResult": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/ErrorResult" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "AnnotationsGetResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AnnotationsGetResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AnnotationsSet": { + "type": "object", + "properties": { + "annotations": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityAnnotations" + } + } + }, + "additionalProperties": false, + "required": [ + "annotations" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityAnnotations": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Application", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddRelation" + }, + "Result": { + "$ref": "#/definitions/AddRelationResults" + } + } + }, + "AddUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddApplicationUnits" + }, + "Result": { + "$ref": "#/definitions/AddApplicationUnitsResults" + } + } + }, + "CharmRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationCharmRelations" + }, + "Result": { + "$ref": "#/definitions/ApplicationCharmRelationsResults" + } + } + }, + "Deploy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationsDeploy" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationDestroy" + } + } + }, + "DestroyRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyRelation" + } + } + }, + "DestroyUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyApplicationUnits" + } + } + }, + "Expose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationExpose" + } + } + }, + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/ApplicationGetResults" + } + } + }, + "GetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "GetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/GetApplicationConstraints" + }, + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSet" + } + } + }, + "SetCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSetCharm" + } + } + }, + "SetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "SetMetricCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationMetricCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Unexpose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnexpose" + } + } + }, + "Unset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnset" + } + } + }, + "Update": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUpdate" + } + } + } + }, + "definitions": { + "AddApplicationUnits": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "num-units", + "placement" + ] + }, + "AddApplicationUnitsResults": { + "type": "object", + "properties": { + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "units" + ] + }, + "AddRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "AddRelationResults": { + "type": "object", + "properties": { + "endpoints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "ApplicationCharmRelations": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationCharmRelationsResults": { + "type": "object", + "properties": { + "charm-relations": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-relations" + ] + }, + "ApplicationDeploy": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-yaml": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "series": { + "type": "string" + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Constraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "series", + "charm-url", + "channel", + "num-units", + "config-yaml", + "constraints" + ] + }, + "ApplicationDestroy": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationExpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGet": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGetResults": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm", + "config", + "constraints", + "series" + ] + }, + "ApplicationMetricCredential": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "metrics-credentials": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "metrics-credentials" + ] + }, + "ApplicationMetricCredentials": { + "type": "object", + "properties": { + "creds": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationMetricCredential" + } + } + }, + "additionalProperties": false, + "required": [ + "creds" + ] + }, + "ApplicationSet": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationSetCharm": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config-settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-settings-yaml": { + "type": "string" + }, + "force-series": { + "type": "boolean" + }, + "force-units": { + "type": "boolean" + }, + "resource-ids": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "storage-constraints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageConstraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "channel", + "force-units", + "force-series" + ] + }, + "ApplicationUnexpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationUnset": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationUpdate": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "force-charm-url": { + "type": "boolean" + }, + "force-series": { + "type": "boolean" + }, + "min-units": { + "type": "integer" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "settings-yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "force-charm-url", + "force-series", + "settings-yaml" + ] + }, + "ApplicationsDeploy": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationDeploy" + } + } + }, + "additionalProperties": false, + "required": [ + "applications" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyApplicationUnits": { + "type": "object", + "properties": { + "unit-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "unit-names" + ] + }, + "DestroyRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetApplicationConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "ApplicationScaler", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Rescale": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Backups", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Create": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsCreateArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "FinishRestore": { + "type": "object" + }, + "Info": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsInfoArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsListArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsListResult" + } + } + }, + "PrepareRestore": { + "type": "object" + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsRemoveArgs" + } + } + }, + "Restore": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RestoreArgs" + } + } + } + }, + "definitions": { + "BackupsCreateArgs": { + "type": "object", + "properties": { + "notes": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "notes" + ] + }, + "BackupsInfoArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "BackupsListArgs": { + "type": "object", + "additionalProperties": false + }, + "BackupsListResult": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "BackupsMetadataResult": { + "type": "object", + "properties": { + "ca-cert": { + "type": "string" + }, + "ca-private-key": { + "type": "string" + }, + "checksum": { + "type": "string" + }, + "checksum-format": { + "type": "string" + }, + "finished": { + "type": "string", + "format": "date-time" + }, + "hostname": { + "type": "string" + }, + "id": { + "type": "string" + }, + "machine": { + "type": "string" + }, + "model": { + "type": "string" + }, + "notes": { + "type": "string" + }, + "series": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "started": { + "type": "string", + "format": "date-time" + }, + "stored": { + "type": "string", + "format": "date-time" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "id", + "checksum", + "checksum-format", + "size", + "stored", + "started", + "finished", + "notes", + "model", + "machine", + "hostname", + "version", + "series", + "ca-cert", + "ca-private-key" + ] + }, + "BackupsRemoveArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "RestoreArgs": { + "type": "object", + "properties": { + "backup-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "backup-id" + ] + } + } + } + }, + { + "Name": "Block", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BlockResults" + } + } + }, + "SwitchBlockOff": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "SwitchBlockOn": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Block": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "tag", + "type" + ] + }, + "BlockResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Block" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockResult" + } + } + }, + "additionalProperties": false + }, + "BlockSwitchParams": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Bundle", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + } + }, + "definitions": { + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "CharmRevisionUpdater", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "UpdateLatestRevisions": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Charms", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CharmInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/CharmInfo" + } + } + }, + "IsMetered": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/IsMeteredResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmsList" + }, + "Result": { + "$ref": "#/definitions/CharmsListResult" + } + } + } + }, + "definitions": { + "CharmActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "CharmActions": { + "type": "object", + "properties": { + "specs": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmActionSpec" + } + } + } + }, + "additionalProperties": false + }, + "CharmInfo": { + "type": "object", + "properties": { + "actions": { + "$ref": "#/definitions/CharmActions" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmOption" + } + } + }, + "meta": { + "$ref": "#/definitions/CharmMeta" + }, + "metrics": { + "$ref": "#/definitions/CharmMetrics" + }, + "revision": { + "type": "integer" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "revision", + "url", + "config" + ] + }, + "CharmMeta": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "extra-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "min-juju-version": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload-classes": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmPayloadClass" + } + } + }, + "peers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "provides": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "requires": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmResourceMeta" + } + } + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmStorage" + } + } + }, + "subordinate": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "terms": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "summary", + "description", + "subordinate" + ] + }, + "CharmMetric": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "description" + ] + }, + "CharmMetrics": { + "type": "object", + "properties": { + "metrics": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmMetric" + } + } + }, + "plan": { + "$ref": "#/definitions/CharmPlan" + } + }, + "additionalProperties": false, + "required": [ + "metrics", + "plan" + ] + }, + "CharmOption": { + "type": "object", + "properties": { + "default": { + "type": "object", + "additionalProperties": true + }, + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CharmPayloadClass": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type" + ] + }, + "CharmPlan": { + "type": "object", + "properties": { + "required": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "required" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmResourceMeta": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "description" + ] + }, + "CharmStorage": { + "type": "object", + "properties": { + "count-max": { + "type": "integer" + }, + "count-min": { + "type": "integer" + }, + "description": { + "type": "string" + }, + "location": { + "type": "string" + }, + "minimum-size": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + }, + "read-only": { + "type": "boolean" + }, + "shared": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "description", + "type", + "shared", + "read-only", + "count-min", + "count-max", + "minimum-size" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmsList": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "names" + ] + }, + "CharmsListResult": { + "type": "object", + "properties": { + "charm-urls": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-urls" + ] + }, + "IsMeteredResult": { + "type": "object", + "properties": { + "metered": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "metered" + ] + } + } + } + }, + { + "Name": "Cleaner", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Cleanup": { + "type": "object" + }, + "WatchCleanups": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "Client", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "AbortCurrentUpgrade": { + "type": "object" + }, + "AddCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharm" + } + } + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharmWithAuthorization" + } + } + }, + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AddMachinesV2": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AgentVersion": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AgentVersionResult" + } + } + }, + "DestroyMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyMachines" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "FullStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusParams" + }, + "Result": { + "$ref": "#/definitions/FullStatus" + } + } + }, + "GetBundleChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + }, + "GetModelConstraints": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "InjectMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelUserInfoResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PrivateAddress" + }, + "Result": { + "$ref": "#/definitions/PrivateAddressResults" + } + } + }, + "ProvisioningScript": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ProvisioningScriptParams" + }, + "Result": { + "$ref": "#/definitions/ProvisioningScriptResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PublicAddress" + }, + "Result": { + "$ref": "#/definitions/PublicAddressResults" + } + } + }, + "ResolveCharms": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResolveCharms" + }, + "Result": { + "$ref": "#/definitions/ResolveCharmResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Resolved" + } + } + }, + "RetryProvisioning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelAgentVersion" + } + } + }, + "SetModelConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "StatusHistory": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryRequests" + }, + "Result": { + "$ref": "#/definitions/StatusHistoryResults" + } + } + }, + "WatchAll": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "AddCharm": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel" + ] + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "AgentVersionResult": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "can-upgrade-to": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "exposed": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "meter-statuses": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MeterStatus" + } + } + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "series": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + }, + "subordinate-to": { + "type": "array", + "items": { + "type": "string" + } + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "charm", + "series", + "exposed", + "life", + "relations", + "can-upgrade-to", + "subordinate-to", + "units", + "meter-statuses", + "status", + "workload-version" + ] + }, + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyMachines": { + "type": "object", + "properties": { + "force": { + "type": "boolean" + }, + "machine-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-names", + "force" + ] + }, + "DetailedStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "info": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "data", + "since", + "kind", + "version", + "life" + ] + }, + "EndpointStatus": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "subordinate": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "application", + "name", + "role", + "subordinate" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FindToolsParams": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "number": { + "$ref": "#/definitions/Number" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "number", + "major", + "minor", + "arch", + "series" + ] + }, + "FindToolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "FullStatus": { + "type": "object", + "properties": { + "applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ApplicationStatus" + } + } + }, + "machines": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "model": { + "$ref": "#/definitions/ModelStatusInfo" + }, + "relations": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "model", + "machines", + "applications", + "relations" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "History": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/definitions/DetailedStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "statuses" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MachineStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "containers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "dns-name": { + "type": "string" + }, + "hardware": { + "type": "string" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "instance-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "ip-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "series": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "instance-status", + "dns-name", + "ip-addresses", + "instance-id", + "series", + "id", + "containers", + "hardware", + "jobs", + "has-vote", + "wants-vote" + ] + }, + "MeterStatus": { + "type": "object", + "properties": { + "color": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "color", + "message" + ] + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "provider-type", + "default-series", + "cloud-tag", + "owner-tag", + "life", + "status", + "users", + "machines" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelSet": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelStatusInfo": { + "type": "object", + "properties": { + "available-version": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "migration": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "cloud-tag", + "version", + "available-version" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModelUserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "additionalProperties": false + }, + "ModelUserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "PrivateAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PrivateAddressResults": { + "type": "object", + "properties": { + "private-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "private-address" + ] + }, + "ProvisioningScriptParams": { + "type": "object", + "properties": { + "data-dir": { + "type": "string" + }, + "disable-package-commands": { + "type": "boolean" + }, + "machine-id": { + "type": "string" + }, + "nonce": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-id", + "nonce", + "data-dir", + "disable-package-commands" + ] + }, + "ProvisioningScriptResult": { + "type": "object", + "properties": { + "script": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "script" + ] + }, + "PublicAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PublicAddressResults": { + "type": "object", + "properties": { + "public-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "public-address" + ] + }, + "RelationStatus": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/EndpointStatus" + } + }, + "id": { + "type": "integer" + }, + "interface": { + "type": "string" + }, + "key": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "key", + "interface", + "scope", + "endpoints" + ] + }, + "ResolveCharmResult": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ResolveCharmResults": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolveCharmResult" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ResolveCharms": { + "type": "object", + "properties": { + "references": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "references" + ] + }, + "Resolved": { + "type": "object", + "properties": { + "retry": { + "type": "boolean" + }, + "unit-name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-name", + "retry" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "StatusHistoryFilter": { + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "delta": { + "type": "integer" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "size", + "date", + "delta" + ] + }, + "StatusHistoryRequest": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/definitions/StatusHistoryFilter" + }, + "historyKind": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "historyKind", + "size", + "filter", + "tag" + ] + }, + "StatusHistoryRequests": { + "type": "object", + "properties": { + "requests": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryRequest" + } + } + }, + "additionalProperties": false, + "required": [ + "requests" + ] + }, + "StatusHistoryResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "history": { + "$ref": "#/definitions/History" + } + }, + "additionalProperties": false, + "required": [ + "history" + ] + }, + "StatusHistoryResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusParams": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "UnitStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "charm": { + "type": "string" + }, + "leader": { + "type": "boolean" + }, + "machine": { + "type": "string" + }, + "opened-ports": { + "type": "array", + "items": { + "type": "string" + } + }, + "public-address": { + "type": "string" + }, + "subordinates": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "workload-status", + "workload-version", + "machine", + "opened-ports", + "public-address", + "charm", + "subordinates" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "Cloud", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Cloud": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudResults" + } + } + }, + "Clouds": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/CloudsResult" + } + } + }, + "Credential": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudCredentialResults" + } + } + }, + "DefaultCloud": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "RevokeCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpdateCloudCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserClouds" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Cloud": { + "type": "object", + "properties": { + "auth-types": { + "type": "array", + "items": { + "type": "string" + } + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudRegion" + } + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudCredentialResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudCredential" + } + }, + "additionalProperties": false + }, + "CloudCredentialResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudCredentialResult" + } + } + }, + "additionalProperties": false + }, + "CloudRegion": { + "type": "object", + "properties": { + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name" + ] + }, + "CloudResult": { + "type": "object", + "properties": { + "cloud": { + "$ref": "#/definitions/Cloud" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "CloudResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudResult" + } + } + }, + "additionalProperties": false + }, + "CloudsResult": { + "type": "object", + "properties": { + "clouds": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Cloud" + } + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateCloudCredential": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "credential" + ] + }, + "UpdateCloudCredentials": { + "type": "object", + "properties": { + "credentials": { + "type": "array", + "items": { + "$ref": "#/definitions/UpdateCloudCredential" + } + } + }, + "additionalProperties": false + }, + "UserCloud": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "cloud-tag" + ] + }, + "UserClouds": { + "type": "object", + "properties": { + "user-clouds": { + "type": "array", + "items": { + "$ref": "#/definitions/UserCloud" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "Controller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AllModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DestroyController": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyControllerArgs" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/UserAccessResults" + } + } + }, + "HostedModelConfigs": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/HostedModelConfigsResults" + } + } + }, + "InitiateMigration": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/InitiateMigrationArgs" + }, + "Result": { + "$ref": "#/definitions/InitiateMigrationResults" + } + } + }, + "ListBlockedModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelBlockInfoList" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyControllerAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveBlocks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RemoveBlocksArgs" + } + } + }, + "WatchAllModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "DestroyControllerArgs": { + "type": "object", + "properties": { + "destroy-models": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "destroy-models" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostedModelConfig": { + "type": "object", + "properties": { + "cloud-spec": { + "$ref": "#/definitions/CloudSpec" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "owner": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner" + ] + }, + "HostedModelConfigsResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/HostedModelConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "InitiateMigrationArgs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/MigrationSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "InitiateMigrationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "migration-id": { + "type": "string" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "migration-id" + ] + }, + "InitiateMigrationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/InitiateMigrationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MigrationSpec": { + "type": "object", + "properties": { + "external-control": { + "type": "boolean" + }, + "model-tag": { + "type": "string" + }, + "skip-initial-prechecks": { + "type": "boolean" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info", + "external-control", + "skip-initial-prechecks" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelBlockInfo": { + "type": "object", + "properties": { + "blocks": { + "type": "array", + "items": { + "type": "string" + } + }, + "model-uuid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "model-uuid", + "owner-tag", + "blocks" + ] + }, + "ModelBlockInfoList": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelBlockInfo" + } + } + }, + "additionalProperties": false + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelStatus": { + "type": "object", + "properties": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access" + ] + }, + "ModifyControllerAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyControllerAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RemoveBlocksArgs": { + "type": "object", + "properties": { + "all": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "all" + ] + }, + "UserAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "access" + ] + }, + "UserAccessResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserAccess" + } + }, + "additionalProperties": false + }, + "UserAccessResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserAccessResult" + } + } + }, + "additionalProperties": false + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "Deployer", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "ConnectionInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DeployerConnectionValues" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "DeployerConnectionValues": { + "type": "object", + "properties": { + "api-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "state-addresses": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "state-addresses", + "api-addresses" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "DiscoverSpaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DiscoverSpacesResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "DiscoverSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderSpace" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ProviderSpace": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider-id", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "DiskManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineBlockDevices" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineBlockDevices": { + "type": "object", + "properties": { + "block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDevice" + } + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "machine-block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineBlockDevices" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-block-devices" + ] + } + } + } + }, + { + "Name": "EntityWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/EntitiesWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "EntitiesWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "FilesystemAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + }, + { + "Name": "Firewaller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "GetAssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetExposed": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "GetMachineActiveSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "GetMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachinePortsParams" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "WatchOpenedPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePorts": { + "type": "object", + "properties": { + "machine-tag": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "subnet-tag" + ] + }, + "MachinePortsParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePorts" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "HighAvailability", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "EnableHA": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ControllersSpecs" + }, + "Result": { + "$ref": "#/definitions/ControllersChangeResults" + } + } + }, + "ResumeHAReplicationAfterUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResumeReplicationParams" + } + } + }, + "StopHAReplicationForUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpgradeMongoParams" + }, + "Result": { + "$ref": "#/definitions/MongoUpgradeResults" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "Scope": { + "type": "string" + }, + "SpaceName": { + "type": "string" + }, + "SpaceProviderId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Value", + "Type", + "Scope", + "SpaceName", + "SpaceProviderId" + ] + }, + "ControllersChangeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ControllersChanges" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ControllersChangeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersChangeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ControllersChanges": { + "type": "object", + "properties": { + "added": { + "type": "array", + "items": { + "type": "string" + } + }, + "converted": { + "type": "array", + "items": { + "type": "string" + } + }, + "demoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "maintained": { + "type": "array", + "items": { + "type": "string" + } + }, + "promoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "removed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ControllersSpec": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "num-controllers": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "type": "string" + } + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "num-controllers" + ] + }, + "ControllersSpecs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "HAMember": { + "type": "object", + "properties": { + "public-address": { + "$ref": "#/definitions/Address" + }, + "series": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-address", + "series" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Member": { + "type": "object", + "properties": { + "Address": { + "type": "string" + }, + "Arbiter": { + "type": "boolean" + }, + "BuildIndexes": { + "type": "boolean" + }, + "Hidden": { + "type": "boolean" + }, + "Id": { + "type": "integer" + }, + "Priority": { + "type": "number" + }, + "SlaveDelay": { + "type": "integer" + }, + "Tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "Votes": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Id", + "Address", + "Arbiter", + "BuildIndexes", + "Hidden", + "Priority", + "Tags", + "SlaveDelay", + "Votes" + ] + }, + "MongoUpgradeResults": { + "type": "object", + "properties": { + "ha-members": { + "type": "array", + "items": { + "$ref": "#/definitions/HAMember" + } + }, + "master": { + "$ref": "#/definitions/HAMember" + }, + "rs-members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "rs-members", + "master", + "ha-members" + ] + }, + "MongoVersion": { + "type": "object", + "properties": { + "engine": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "patch": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "major", + "minor", + "patch", + "engine" + ] + }, + "ResumeReplicationParams": { + "type": "object", + "properties": { + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "members" + ] + }, + "UpgradeMongoParams": { + "type": "object", + "properties": { + "target": { + "$ref": "#/definitions/MongoVersion" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "HostKeyReporter", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ReportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SSHHostKeySet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHHostKeySet": { + "type": "object", + "properties": { + "entity-keys": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHHostKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "entity-keys" + ] + }, + "SSHHostKeys": { + "type": "object", + "properties": { + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-keys" + ] + } + } + } + }, + { + "Name": "ImageManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "DeleteImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ListImageResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageFilterParams": { + "type": "object", + "properties": { + "images": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "images" + ] + }, + "ImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series", + "url", + "created" + ] + }, + "ImageSpec": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series" + ] + }, + "ListImageResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "ImageMetadata", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Delete": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataImageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageMetadataFilter" + }, + "Result": { + "$ref": "#/definitions/ListCloudImageMetadataResult" + } + } + }, + "Save": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataSaveParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateFromPublishedImages": { + "type": "object" + } + }, + "definitions": { + "CloudImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "image-id": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "region": { + "type": "string" + }, + "root-storage-size": { + "type": "integer" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "string" + }, + "source": { + "type": "string" + }, + "stream": { + "type": "string" + }, + "version": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "image-id", + "region", + "version", + "series", + "arch", + "source", + "priority" + ] + }, + "CloudImageMetadataList": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageMetadataFilter": { + "type": "object", + "properties": { + "arches": { + "type": "array", + "items": { + "type": "string" + } + }, + "region": { + "type": "string" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "stream": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ListCloudImageMetadataResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MetadataImageIds": { + "type": "object", + "properties": { + "image-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "image-ids" + ] + }, + "MetadataSaveParams": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadataList" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "InstancePoller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AreManuallyProvisioned": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineAddressesResults" + } + } + }, + "SetInstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Status": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "MachineAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "MachineAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "KeyManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DeleteKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ImportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListSSHKeys" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSSHKeys": { + "type": "object", + "properties": { + "entities": { + "$ref": "#/definitions/Entities" + }, + "mode": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "mode" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModifyUserSSHKeys": { + "type": "object", + "properties": { + "ssh-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "ssh-keys" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "KeyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "WatchAuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LeadershipService", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "BlockUntilLeadershipReleased": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationTag" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "ClaimLeadership": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ClaimLeadershipBulkParams" + }, + "Result": { + "$ref": "#/definitions/ClaimLeadershipBulkResults" + } + } + } + }, + "definitions": { + "ApplicationTag": { + "type": "object", + "properties": { + "Name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Name" + ] + }, + "ClaimLeadershipBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/ClaimLeadershipParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "ClaimLeadershipBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ClaimLeadershipParams": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "duration": { + "type": "number" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "unit-tag", + "duration" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "LifeFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LogForwarding", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingGetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/LogForwardingGetLastSentResults" + } + } + }, + "SetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingSetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingGetLastSentParams": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingID" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "LogForwardingGetLastSentResult": { + "type": "object", + "properties": { + "err": { + "$ref": "#/definitions/Error" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "record-id", + "record-timestamp", + "err" + ] + }, + "LogForwardingGetLastSentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingGetLastSentResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingID": { + "type": "object", + "properties": { + "model": { + "type": "string" + }, + "sink": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model", + "sink" + ] + }, + "LogForwardingSetLastSentParam": { + "type": "object", + "properties": { + "LogForwardingID": { + "$ref": "#/definitions/LogForwardingID" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "LogForwardingID", + "record-id", + "record-timestamp" + ] + }, + "LogForwardingSetLastSentParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingSetLastSentParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Logger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "LoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "WatchLoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineActions", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RunningActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + } + }, + "definitions": { + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MachineUndertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AllMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/EntitiesResults" + } + } + }, + "CompleteMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + } + } + }, + "GetMachineProviderInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProviderInterfaceInfoResults" + } + } + }, + "WatchMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResult": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProviderInterfaceInfo": { + "type": "object", + "properties": { + "interface-name": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "provider-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "interface-name", + "mac-address", + "provider-id" + ] + }, + "ProviderInterfaceInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "interfaces": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfo" + } + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "interfaces" + ] + }, + "ProviderInterfaceInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Machiner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Jobs": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/JobsResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetMachineAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetObservedNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineNetworkConfig" + } + } + }, + "SetProviderNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "JobsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "jobs" + ] + }, + "JobsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/JobsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "device-index", + "mac-address", + "cidr", + "mtu", + "provider-id", + "provider-subnet-id", + "provider-space-id", + "provider-address-id", + "provider-vlan-id", + "vlan-tag", + "interface-name", + "parent-interface-name", + "interface-type", + "disabled" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetMachineNetworkConfig": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "config" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MeterStatus", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsAdder", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + } + } + } + }, + { + "Name": "MetricsDebug", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "GetMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MetricResults" + } + } + }, + "SetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MeterStatusParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityMetrics": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricResult" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusParam": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "code", + "info" + ] + }, + "MeterStatusParams": { + "type": "object", + "properties": { + "statues": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusParam" + } + } + }, + "additionalProperties": false, + "required": [ + "statues" + ] + }, + "MetricResult": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "unit": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "time", + "key", + "value", + "unit" + ] + }, + "MetricResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityMetrics" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "CleanupOldMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SendMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "MigrationFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Phase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PhaseResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PhaseResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "phase": { + "type": "string" + } + }, + "additionalProperties": false + }, + "PhaseResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PhaseResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MigrationMaster", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Export": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "MigrationStatus": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MasterMigrationStatus" + } + } + }, + "MinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MinionReports" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + }, + "Prechecks": { + "type": "object" + }, + "Reap": { + "type": "object" + }, + "SetPhase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationPhaseArgs" + } + } + }, + "SetStatusMessage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationStatusMessageArgs" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchMinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MasterMigrationStatus": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "phase-changed-time": { + "type": "string", + "format": "date-time" + }, + "spec": { + "$ref": "#/definitions/MigrationSpec" + } + }, + "additionalProperties": false, + "required": [ + "spec", + "migration-id", + "phase", + "phase-changed-time" + ] + }, + "MigrationModelInfo": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version" + ] + }, + "MigrationSpec": { + "type": "object", + "properties": { + "external-control": { + "type": "boolean" + }, + "model-tag": { + "type": "string" + }, + "skip-initial-prechecks": { + "type": "boolean" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info", + "external-control", + "skip-initial-prechecks" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "MinionReports": { + "type": "object", + "properties": { + "failed": { + "type": "array", + "items": { + "type": "string" + } + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success-count": { + "type": "integer" + }, + "unknown-count": { + "type": "integer" + }, + "unknown-sample": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success-count", + "unknown-count", + "unknown-sample", + "failed" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "tools" + ] + }, + "SerializedModelTools": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + }, + "SetMigrationPhaseArgs": { + "type": "object", + "properties": { + "phase": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "phase" + ] + }, + "SetMigrationStatusMessageArgs": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message" + ] + } + } + } + }, + { + "Name": "MigrationMinion", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Report": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MinionReport" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MinionReport": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "MigrationStatusWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationStatus" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "MigrationStatus": { + "type": "object", + "properties": { + "attempt": { + "type": "integer" + }, + "external-control": { + "type": "boolean" + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "source-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "source-ca-cert": { + "type": "string" + }, + "target-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "target-ca-cert": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "attempt", + "phase", + "external-control", + "source-api-addrs", + "source-ca-cert", + "target-api-addrs", + "target-ca-cert" + ] + } + } + } + }, + { + "Name": "MigrationTarget", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Abort": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "Activate": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "Import": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "Prechecks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + } + }, + "definitions": { + "MigrationModelInfo": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version" + ] + }, + "ModelArgs": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "tools" + ] + }, + "SerializedModelTools": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + } + } + } + }, + { + "Name": "ModelConfig", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + } + }, + "definitions": { + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelSet": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + } + } + } + }, + { + "Name": "ModelManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CreateModel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelCreateArgs" + }, + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "DestroyModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DumpModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "DumpModelsDB": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "ListModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entity" + }, + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "ModelDefaults": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelDefaultsResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelInfoResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyModelAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnsetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MapResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "MapResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MapResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelCreateArgs": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "credential": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "region": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner-tag" + ] + }, + "ModelDefaultValues": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelDefaults": { + "type": "object", + "properties": { + "controller": { + "type": "object", + "additionalProperties": true + }, + "default": { + "type": "object", + "additionalProperties": true + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/RegionDefaults" + } + } + }, + "additionalProperties": false + }, + "ModelDefaultsResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ModelDefaults" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "provider-type", + "default-series", + "cloud-tag", + "owner-tag", + "life", + "status", + "users", + "machines" + ] + }, + "ModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelInfo" + } + }, + "additionalProperties": false + }, + "ModelInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelStatus": { + "type": "object", + "properties": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelUnsetKeys": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "model-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access", + "model-tag" + ] + }, + "ModifyModelAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyModelAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RegionDefaults": { + "type": "object", + "properties": { + "region-name": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "region-name", + "value" + ] + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelDefaultValues" + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUnsetKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "NotifyWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Payloads", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EnvListArgs" + }, + "Result": { + "$ref": "#/definitions/EnvListResults" + } + } + } + }, + "definitions": { + "EnvListArgs": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "EnvListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + } + } + } + }, + { + "Name": "PayloadsHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "LookUp": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LookUpArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatusArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Track": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/TrackArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Untrack": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LookUpArg": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "id" + ] + }, + "LookUpArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/LookUpArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + }, + "PayloadResult": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "not-found": { + "type": "boolean" + }, + "payload": { + "$ref": "#/definitions/Payload" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "payload", + "not-found" + ] + }, + "PayloadResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PayloadResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatusArg": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "status" + ] + }, + "SetStatusArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/SetStatusArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "TrackArgs": { + "type": "object", + "properties": { + "payloads": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "payloads" + ] + } + } + } + }, + { + "Name": "Pinger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Ping": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Provisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "Constraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConstraintsResults" + } + } + }, + "ContainerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ContainerConfig" + } + } + }, + "ContainerManagerConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ContainerManagerConfigParams" + }, + "Result": { + "$ref": "#/definitions/ContainerManagerConfig" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DistributionGroup": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DistributionGroupResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "GetContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "MachinesWithTransientErrors": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "MarkMachinesForRemoval": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PrepareContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProvisioningInfoResults" + } + } + }, + "ReleaseContainerAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Series": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "SetInstanceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/InstancesInfo" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetInstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetSupportedContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineContainersParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "Status": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Tools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ToolsResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchAllContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/WatchContainers" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/WatchContainers" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchMachineErrorRetry": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "CloudImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "image-id": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "region": { + "type": "string" + }, + "root-storage-size": { + "type": "integer" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "string" + }, + "source": { + "type": "string" + }, + "stream": { + "type": "string" + }, + "version": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "image-id", + "region", + "version", + "series", + "arch", + "source", + "priority" + ] + }, + "ConstraintsResult": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "ConstraintsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConstraintsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ContainerConfig": { + "type": "object", + "properties": { + "UpdateBehavior": { + "$ref": "#/definitions/UpdateBehavior" + }, + "apt-mirror": { + "type": "string" + }, + "apt-proxy": { + "$ref": "#/definitions/Settings" + }, + "authorized-keys": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "proxy": { + "$ref": "#/definitions/Settings" + }, + "ssl-hostname-verification": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "provider-type", + "authorized-keys", + "ssl-hostname-verification", + "proxy", + "apt-proxy", + "apt-mirror", + "UpdateBehavior" + ] + }, + "ContainerManagerConfig": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ContainerManagerConfigParams": { + "type": "object", + "properties": { + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "DistributionGroupResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "DistributionGroupResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/DistributionGroupResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FindToolsParams": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "number": { + "$ref": "#/definitions/Number" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "number", + "major", + "minor", + "arch", + "series" + ] + }, + "FindToolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "InstanceInfo": { + "type": "object", + "properties": { + "characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "network-config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "nonce": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "volume-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/VolumeAttachmentInfo" + } + } + }, + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/Volume" + } + } + }, + "additionalProperties": false, + "required": [ + "tag", + "instance-id", + "nonce", + "characteristics", + "volumes", + "volume-attachments", + "network-config" + ] + }, + "InstancesInfo": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/InstanceInfo" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineContainers": { + "type": "object", + "properties": { + "container-types": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "container-types" + ] + }, + "MachineContainersParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineContainers" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MachineNetworkConfigResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "info" + ] + }, + "MachineNetworkConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineNetworkConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "device-index", + "mac-address", + "cidr", + "mtu", + "provider-id", + "provider-subnet-id", + "provider-space-id", + "provider-address-id", + "provider-vlan-id", + "vlan-tag", + "interface-name", + "parent-interface-name", + "interface-type", + "disabled" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "controller-config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "image-metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "placement": { + "type": "string" + }, + "series": { + "type": "string" + }, + "subnets-to-zones": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParams" + } + } + }, + "additionalProperties": false, + "required": [ + "constraints", + "series", + "placement", + "jobs" + ] + }, + "ProvisioningInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ProvisioningInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ProvisioningInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProvisioningInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Settings": { + "type": "object", + "properties": { + "Ftp": { + "type": "string" + }, + "Http": { + "type": "string" + }, + "Https": { + "type": "string" + }, + "NoProxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Http", + "Https", + "Ftp", + "NoProxy" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateBehavior": { + "type": "object", + "properties": { + "enable-os-refresh-update": { + "type": "boolean" + }, + "enable-os-upgrade": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "enable-os-refresh-update", + "enable-os-upgrade" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "WatchContainer": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "container-type" + ] + }, + "WatchContainers": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/WatchContainer" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + } + } + } + }, + { + "Name": "ProxyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ProxyConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProxyConfigResults" + } + } + }, + "WatchForProxyConfigAndAPIHostPortChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProxyConfig": { + "type": "object", + "properties": { + "ftp": { + "type": "string" + }, + "http": { + "type": "string" + }, + "https": { + "type": "string" + }, + "no-proxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "http", + "https", + "ftp", + "no-proxy" + ] + }, + "ProxyConfigResult": { + "type": "object", + "properties": { + "apt-proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + } + }, + "additionalProperties": false, + "required": [ + "proxy-settings", + "apt-proxy-settings" + ] + }, + "ProxyConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProxyConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Reboot", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetRebootAction": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RebootActionResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchForRebootEvent": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "RebootActionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false + }, + "RebootActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RebootActionResult" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "RelationUnitsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + } + } + } + }, + { + "Name": "Resources", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddPendingResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddPendingResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/AddPendingResourcesResult" + } + } + }, + "ListResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/ResourcesResults" + } + } + } + }, + "definitions": { + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddPendingResourcesArgs": { + "type": "object", + "properties": { + "AddCharmWithAuthorization": { + "$ref": "#/definitions/AddCharmWithAuthorization" + }, + "Entity": { + "$ref": "#/definitions/Entity" + }, + "Resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "AddCharmWithAuthorization", + "Resources" + ] + }, + "AddPendingResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "pending-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "pending-ids" + ] + }, + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListResourcesArgs": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "ResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "charm-store-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + }, + "unit-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitResources" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources", + "charm-store-resources", + "unit-resources" + ] + }, + "ResourcesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourcesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitResources": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "download-progress": { + "type": "object", + "patternProperties": { + ".*": { + "type": "integer" + } + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "resources", + "download-progress" + ] + } + } + } + }, + { + "Name": "ResourcesHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetResourceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/ResourcesResult" + } + } + } + }, + "definitions": { + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListResourcesArgs": { + "type": "object", + "properties": { + "resource-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "resource-names" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "ResourceResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resource": { + "$ref": "#/definitions/Resource" + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resource" + ] + }, + "ResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources" + ] + } + } + } + }, + { + "Name": "Resumer", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ResumeTransactions": { + "type": "object" + } + } + } + }, + { + "Name": "RetryStrategy", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "RetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RetryStrategyResults" + } + } + }, + "WatchRetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RetryStrategy": { + "type": "object", + "properties": { + "jitter-retry-time": { + "type": "boolean" + }, + "max-retry-time": { + "type": "integer" + }, + "min-retry-time": { + "type": "integer" + }, + "retry-time-factor": { + "type": "integer" + }, + "should-retry": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "should-retry", + "min-retry-time", + "max-retry-time", + "jitter-retry-time", + "retry-time-factor" + ] + }, + "RetryStrategyResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/RetryStrategy" + } + }, + "additionalProperties": false + }, + "RetryStrategyResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RetryStrategyResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "SSHClient", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "Proxy": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SSHProxyResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "PublicKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHPublicKeysResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHAddressResult": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "SSHAddressResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHProxyResult": { + "type": "object", + "properties": { + "use-proxy": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "use-proxy" + ] + }, + "SSHPublicKeysResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "SSHPublicKeysResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHPublicKeysResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Singular", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Claim": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SingularClaims" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Wait": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SingularClaim": { + "type": "object", + "properties": { + "controller-tag": { + "type": "string" + }, + "duration": { + "type": "integer" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "controller-tag", + "duration" + ] + }, + "SingularClaims": { + "type": "object", + "properties": { + "claims": { + "type": "array", + "items": { + "$ref": "#/definitions/SingularClaim" + } + } + }, + "additionalProperties": false, + "required": [ + "claims" + ] + } + } + } + }, + { + "Name": "Spaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ListSpacesResults" + } + } + } + }, + "definitions": { + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Space" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Space": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + } + } + } + }, + { + "Name": "StatusHistory", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Prune": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryPruneArgs" + } + } + } + }, + "definitions": { + "StatusHistoryPruneArgs": { + "type": "object", + "properties": { + "max-history-mb": { + "type": "integer" + }, + "max-history-time": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "max-history-time", + "max-history-mb" + ] + } + } + } + }, + { + "Name": "Storage", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddToUnit": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreatePool": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "ListFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemFilters" + }, + "Result": { + "$ref": "#/definitions/FilesystemDetailsListResults" + } + } + }, + "ListPools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePoolFilters" + }, + "Result": { + "$ref": "#/definitions/StoragePoolsResults" + } + } + }, + "ListStorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageFilters" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsListResults" + } + } + }, + "ListVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeFilters" + }, + "Result": { + "$ref": "#/definitions/VolumeDetailsListResults" + } + } + }, + "StorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemDetails": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info", + "status" + ] + }, + "FilesystemDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetails" + } + } + }, + "additionalProperties": false + }, + "FilesystemDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemFilter" + } + } + }, + "additionalProperties": false + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "size" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachmentDetails": { + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag", + "machine-tag" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StorageDetails": { + "type": "object", + "properties": { + "attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageAttachmentDetails" + } + } + }, + "kind": { + "type": "integer" + }, + "owner-tag": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "kind", + "status", + "persistent" + ] + }, + "StorageDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetails" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageDetails" + } + }, + "additionalProperties": false + }, + "StorageDetailsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsResult" + } + } + }, + "additionalProperties": false + }, + "StorageFilter": { + "type": "object", + "additionalProperties": false + }, + "StorageFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePool": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "name": { + "type": "string" + }, + "provider": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider", + "attrs" + ] + }, + "StoragePoolFilter": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + }, + "providers": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StoragePoolFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "storage-pools": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolsResult" + } + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeDetails": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/VolumeAttachmentInfo" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info", + "status" + ] + }, + "VolumeDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetails" + } + } + }, + "additionalProperties": false + }, + "VolumeDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "VolumeFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "VolumeFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeFilter" + } + } + }, + "additionalProperties": false + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + } + } + } + }, + { + "Name": "StorageProvisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentParamsResults" + } + } + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentResults" + } + } + }, + "FilesystemParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemParamsResults" + } + } + }, + "Filesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveAttachment": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Filesystems" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Volumes" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentParamsResults" + } + } + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentResults" + } + } + }, + "VolumeBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/BlockDeviceResults" + } + } + }, + "VolumeParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeParamsResults" + } + } + }, + "Volumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeResults" + } + } + }, + "WatchBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchFilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchVolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "BlockDeviceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/BlockDevice" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockDeviceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDeviceResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Filesystem": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info" + ] + }, + "FilesystemAttachment": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "info" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "filesystem-tag": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "mount-point": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "provider" + ] + }, + "FilesystemAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "filesystem-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystem-attachments" + ] + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "size" + ] + }, + "FilesystemParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/FilesystemAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "filesystem-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "size", + "provider" + ] + }, + "FilesystemParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Filesystem" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemResult" + } + } + }, + "additionalProperties": false + }, + "Filesystems": { + "type": "object", + "properties": { + "filesystems": { + "type": "array", + "items": { + "$ref": "#/definitions/Filesystem" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystems" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "MachineStorageIdsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachment": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeAttachmentInfo" + }, + "machine-tag": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "volume-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "volume-attachments" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "VolumeParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Volume" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeResult" + } + } + }, + "additionalProperties": false + }, + "Volumes": { + "type": "object", + "properties": { + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/Volume" + } + } + }, + "additionalProperties": false, + "required": [ + "volumes" + ] + } + } + } + }, + { + "Name": "StringsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Subnets", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SpaceResults" + } + } + }, + "AllZones": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ZoneResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SpaceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "SpaceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SpaceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ZoneResult": { + "type": "object", + "properties": { + "available": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "available" + ] + }, + "ZoneResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ZoneResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Undertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UndertakerModelInfoResult" + } + } + }, + "ProcessDyingModel": { + "type": "object" + }, + "RemoveModel": { + "type": "object" + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchModelResources": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "UndertakerModelInfo": { + "type": "object", + "properties": { + "global-name": { + "type": "string" + }, + "is-system": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "global-name", + "is-system", + "life" + ] + }, + "UndertakerModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UndertakerModelInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + } + } + } + }, + { + "Name": "UnitAssigner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AssignUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchUnitAssignments": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Uniter", + "Version": 4, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AddUnitStorage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationStatusResults" + } + } + }, + "AssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "AvailabilityZone": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "CharmArchiveSha256": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURLs" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "CharmModifiedVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/IntResults" + } + } + }, + "CharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "ClearResolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ClosePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConfigSettingsResults" + } + } + }, + "CurrentModel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelResult" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyAllSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnterScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "GetPrincipal": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "HasSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "JoinedRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "LeaveScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Merge": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "NetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnitsNetworkConfig" + }, + "Result": { + "$ref": "#/definitions/UnitNetworkConfigResults" + } + } + }, + "OpenPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "ProviderType": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Read": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/GetLeadershipSettingsBulkResults" + } + } + }, + "ReadRemoteSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitPairs" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "ReadSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "Relation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RelationById": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationIds" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RemoveStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ResolvedModeResults" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesCharmURL" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetUnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetWorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityWorkloadVersions" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StorageAttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "StorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentResults" + } + } + }, + "UnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "UnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentIdsResults" + } + } + }, + "UpdateSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitsSettings" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchApplicationRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchLeadershipSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchRelationUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResults" + } + } + }, + "WatchStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "ApplicationStatusResult": { + "type": "object", + "properties": { + "application": { + "$ref": "#/definitions/StatusResult" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StatusResult" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "units" + ] + }, + "ApplicationStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmURLs": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ConfigSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "ConfigSettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Endpoint": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "relation": { + "$ref": "#/definitions/CharmRelation" + } + }, + "additionalProperties": false, + "required": [ + "application-name", + "relation" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesCharmURL": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityCharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesPortRanges": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityCharmURL": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "charm-url" + ] + }, + "EntityPortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "protocol", + "from-port", + "to-port" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "EntityWorkloadVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "workload-version" + ] + }, + "EntityWorkloadVersions": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityWorkloadVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/GetLeadershipSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "IntResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "IntResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/IntResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "MergeLeadershipSettingsBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MergeLeadershipSettingsParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MergeLeadershipSettingsParam": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "settings" + ] + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "device-index", + "mac-address", + "cidr", + "mtu", + "provider-id", + "provider-subnet-id", + "provider-space-id", + "provider-address-id", + "provider-vlan-id", + "vlan-tag", + "interface-name", + "parent-interface-name", + "interface-type", + "disabled" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "RelationIds": { + "type": "object", + "properties": { + "relation-ids": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-ids" + ] + }, + "RelationResult": { + "type": "object", + "properties": { + "endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "integer" + }, + "key": { + "type": "string" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "id", + "key", + "endpoint" + ] + }, + "RelationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RelationUnit": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit" + ] + }, + "RelationUnitPair": { + "type": "object", + "properties": { + "local-unit": { + "type": "string" + }, + "relation": { + "type": "string" + }, + "remote-unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "local-unit", + "remote-unit" + ] + }, + "RelationUnitPairs": { + "type": "object", + "properties": { + "relation-unit-pairs": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitPair" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-unit-pairs" + ] + }, + "RelationUnitSettings": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit", + "settings" + ] + }, + "RelationUnits": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnit" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsSettings": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitSettings" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "RelationUnitsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ResolvedModeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "mode": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "mode" + ] + }, + "ResolvedModeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolvedModeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "SettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "SettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachment": { + "type": "object", + "properties": { + "kind": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "location": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "unit-tag", + "kind", + "location", + "life" + ] + }, + "StorageAttachmentId": { + "type": "object", + "properties": { + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag" + ] + }, + "StorageAttachmentIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "StorageAttachmentIdsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachmentIds" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentIdsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentIdsResult" + } + } + }, + "additionalProperties": false + }, + "StorageAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "StringBoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ok": { + "type": "boolean" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result", + "ok" + ] + }, + "StringBoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringBoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitNetworkConfig": { + "type": "object", + "properties": { + "binding-name": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "binding-name" + ] + }, + "UnitNetworkConfigResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "info" + ] + }, + "UnitNetworkConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitNetworkConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "UnitsNetworkConfig": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitNetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + } + } + } + }, + { + "Name": "Upgrader", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "DesiredVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VersionResults" + } + } + }, + "SetTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesVersion" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Tools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ToolsResults" + } + } + }, + "WatchAPIVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesVersion": { + "type": "object", + "properties": { + "agent-tools": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "agent-tools" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "tools": { + "$ref": "#/definitions/Version" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "tools" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Version": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "VersionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false + }, + "VersionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VersionResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "UserManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddUsers" + }, + "Result": { + "$ref": "#/definitions/AddUserResults" + } + } + }, + "DisableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPassword": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserInfoRequest" + }, + "Result": { + "$ref": "#/definitions/UserInfoResults" + } + } + } + }, + "definitions": { + "AddUser": { + "type": "object", + "properties": { + "display-name": { + "type": "string" + }, + "password": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name" + ] + }, + "AddUserResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "secret-key": { + "type": "array", + "items": { + "type": "integer" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false + }, + "AddUserResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUserResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AddUsers": { + "type": "object", + "properties": { + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUser" + } + } + }, + "additionalProperties": false, + "required": [ + "users" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "UserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "created-by": { + "type": "string" + }, + "date-created": { + "type": "string", + "format": "date-time" + }, + "disabled": { + "type": "boolean" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name", + "access", + "created-by", + "date-created", + "disabled" + ] + }, + "UserInfoRequest": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "include-disabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "include-disabled" + ] + }, + "UserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserInfo" + } + }, + "additionalProperties": false + }, + "UserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "VolumeAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + } +] diff --git a/modules/libjuju/juju/client/schemas-juju-2.0.1.json b/modules/libjuju/juju/client/schemas-juju-2.0.1.json new file mode 100644 index 0000000..69db493 --- /dev/null +++ b/modules/libjuju/juju/client/schemas-juju-2.0.1.json @@ -0,0 +1,24799 @@ +[ + { + "Name": "Action", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "ApplicationsCharmsActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationsCharmActionsResults" + } + } + }, + "Cancel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "Enqueue": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Actions" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "FindActionTagsByPrefix": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindTags" + }, + "Result": { + "$ref": "#/definitions/FindTagsResults" + } + } + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindActionsByNames" + }, + "Result": { + "$ref": "#/definitions/ActionsByNames" + } + } + }, + "ListAll": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListCompleted": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListPending": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListRunning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "Run": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "RunOnAllMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "Actions": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/Action" + } + } + }, + "additionalProperties": false + }, + "ActionsByName": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByNames": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByName" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "ApplicationCharmActionsResult": { + "type": "object", + "properties": { + "actions": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ActionSpec" + } + } + }, + "application-tag": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ApplicationsCharmActionsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationCharmActionsResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FindTags": { + "type": "object", + "properties": { + "prefixes": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "prefixes" + ] + }, + "FindTagsResults": { + "type": "object", + "properties": { + "matches": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + } + } + }, + "additionalProperties": false, + "required": [ + "matches" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RunParams": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "type": "string" + } + }, + "commands": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "type": "string" + } + }, + "timeout": { + "type": "integer" + }, + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "commands", + "timeout" + ] + } + } + } + }, + { + "Name": "Agent", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetEntities": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AgentGetEntitiesResults" + } + } + }, + "IsMaster": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/IsMasterResult" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateServingInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StateServingInfo" + } + } + }, + "WatchCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "AgentGetEntitiesResult": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "jobs", + "container-type" + ] + }, + "AgentGetEntitiesResults": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/AgentGetEntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "IsMasterResult": { + "type": "object", + "properties": { + "master": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "master" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StateServingInfo": { + "type": "object", + "properties": { + "api-port": { + "type": "integer" + }, + "ca-private-key": { + "type": "string" + }, + "cert": { + "type": "string" + }, + "private-key": { + "type": "string" + }, + "shared-secret": { + "type": "string" + }, + "state-port": { + "type": "integer" + }, + "system-identity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "api-port", + "state-port", + "cert", + "private-key", + "ca-private-key", + "shared-secret", + "system-identity" + ] + } + } + } + }, + { + "Name": "AgentTools", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "UpdateToolsAvailable": { + "type": "object" + } + } + } + }, + { + "Name": "AllModelWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "AllWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "Annotations", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AnnotationsGetResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AnnotationsSet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "AnnotationsGetResult": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/ErrorResult" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "AnnotationsGetResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AnnotationsGetResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AnnotationsSet": { + "type": "object", + "properties": { + "annotations": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityAnnotations" + } + } + }, + "additionalProperties": false, + "required": [ + "annotations" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityAnnotations": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Application", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddRelation" + }, + "Result": { + "$ref": "#/definitions/AddRelationResults" + } + } + }, + "AddUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddApplicationUnits" + }, + "Result": { + "$ref": "#/definitions/AddApplicationUnitsResults" + } + } + }, + "CharmRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationCharmRelations" + }, + "Result": { + "$ref": "#/definitions/ApplicationCharmRelationsResults" + } + } + }, + "Deploy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationsDeploy" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationDestroy" + } + } + }, + "DestroyRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyRelation" + } + } + }, + "DestroyUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyApplicationUnits" + } + } + }, + "Expose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationExpose" + } + } + }, + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/ApplicationGetResults" + } + } + }, + "GetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "GetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/GetApplicationConstraints" + }, + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSet" + } + } + }, + "SetCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSetCharm" + } + } + }, + "SetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "SetMetricCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationMetricCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Unexpose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnexpose" + } + } + }, + "Unset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnset" + } + } + }, + "Update": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUpdate" + } + } + } + }, + "definitions": { + "AddApplicationUnits": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "num-units", + "placement" + ] + }, + "AddApplicationUnitsResults": { + "type": "object", + "properties": { + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "units" + ] + }, + "AddRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "AddRelationResults": { + "type": "object", + "properties": { + "endpoints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "ApplicationCharmRelations": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationCharmRelationsResults": { + "type": "object", + "properties": { + "charm-relations": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-relations" + ] + }, + "ApplicationDeploy": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-yaml": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "series": { + "type": "string" + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Constraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "series", + "charm-url", + "channel", + "num-units", + "config-yaml", + "constraints" + ] + }, + "ApplicationDestroy": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationExpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGet": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGetResults": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm", + "config", + "constraints", + "series" + ] + }, + "ApplicationMetricCredential": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "metrics-credentials": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "metrics-credentials" + ] + }, + "ApplicationMetricCredentials": { + "type": "object", + "properties": { + "creds": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationMetricCredential" + } + } + }, + "additionalProperties": false, + "required": [ + "creds" + ] + }, + "ApplicationSet": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationSetCharm": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config-settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-settings-yaml": { + "type": "string" + }, + "force-series": { + "type": "boolean" + }, + "force-units": { + "type": "boolean" + }, + "resource-ids": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "storage-constraints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageConstraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "channel", + "force-units", + "force-series" + ] + }, + "ApplicationUnexpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationUnset": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationUpdate": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "force-charm-url": { + "type": "boolean" + }, + "force-series": { + "type": "boolean" + }, + "min-units": { + "type": "integer" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "settings-yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "force-charm-url", + "force-series", + "settings-yaml" + ] + }, + "ApplicationsDeploy": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationDeploy" + } + } + }, + "additionalProperties": false, + "required": [ + "applications" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyApplicationUnits": { + "type": "object", + "properties": { + "unit-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "unit-names" + ] + }, + "DestroyRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetApplicationConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "ApplicationRelationsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ApplicationRelationsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "ApplicationRelationsChange": { + "type": "object", + "properties": { + "changed": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationChange" + } + }, + "removed": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false + }, + "ApplicationRelationsWatchResult": { + "type": "object", + "properties": { + "ApplicationRelationsWatcherId": { + "type": "string" + }, + "changes": { + "$ref": "#/definitions/ApplicationRelationsChange" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "ApplicationRelationsWatcherId" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RelationChange": { + "type": "object", + "properties": { + "changedunits": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/RelationUnitChange" + } + } + }, + "departedunits": { + "type": "array", + "items": { + "type": "string" + } + }, + "id": { + "type": "integer" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life" + ] + }, + "RelationUnitChange": { + "type": "object", + "properties": { + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "ApplicationScaler", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Rescale": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Backups", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Create": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsCreateArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "FinishRestore": { + "type": "object" + }, + "Info": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsInfoArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsListArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsListResult" + } + } + }, + "PrepareRestore": { + "type": "object" + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsRemoveArgs" + } + } + }, + "Restore": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RestoreArgs" + } + } + } + }, + "definitions": { + "BackupsCreateArgs": { + "type": "object", + "properties": { + "notes": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "notes" + ] + }, + "BackupsInfoArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "BackupsListArgs": { + "type": "object", + "additionalProperties": false + }, + "BackupsListResult": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "BackupsMetadataResult": { + "type": "object", + "properties": { + "ca-cert": { + "type": "string" + }, + "ca-private-key": { + "type": "string" + }, + "checksum": { + "type": "string" + }, + "checksum-format": { + "type": "string" + }, + "finished": { + "type": "string", + "format": "date-time" + }, + "hostname": { + "type": "string" + }, + "id": { + "type": "string" + }, + "machine": { + "type": "string" + }, + "model": { + "type": "string" + }, + "notes": { + "type": "string" + }, + "series": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "started": { + "type": "string", + "format": "date-time" + }, + "stored": { + "type": "string", + "format": "date-time" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "id", + "checksum", + "checksum-format", + "size", + "stored", + "started", + "finished", + "notes", + "model", + "machine", + "hostname", + "version", + "series", + "ca-cert", + "ca-private-key" + ] + }, + "BackupsRemoveArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "RestoreArgs": { + "type": "object", + "properties": { + "backup-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "backup-id" + ] + } + } + } + }, + { + "Name": "Block", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BlockResults" + } + } + }, + "SwitchBlockOff": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "SwitchBlockOn": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Block": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "tag", + "type" + ] + }, + "BlockResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Block" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockResult" + } + } + }, + "additionalProperties": false + }, + "BlockSwitchParams": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Bundle", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + } + }, + "definitions": { + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "CharmRevisionUpdater", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "UpdateLatestRevisions": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Charms", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CharmInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/CharmInfo" + } + } + }, + "IsMetered": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/IsMeteredResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmsList" + }, + "Result": { + "$ref": "#/definitions/CharmsListResult" + } + } + } + }, + "definitions": { + "CharmActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "CharmActions": { + "type": "object", + "properties": { + "specs": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmActionSpec" + } + } + } + }, + "additionalProperties": false + }, + "CharmInfo": { + "type": "object", + "properties": { + "actions": { + "$ref": "#/definitions/CharmActions" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmOption" + } + } + }, + "meta": { + "$ref": "#/definitions/CharmMeta" + }, + "metrics": { + "$ref": "#/definitions/CharmMetrics" + }, + "revision": { + "type": "integer" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "revision", + "url", + "config" + ] + }, + "CharmMeta": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "extra-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "min-juju-version": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload-classes": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmPayloadClass" + } + } + }, + "peers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "provides": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "requires": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmResourceMeta" + } + } + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmStorage" + } + } + }, + "subordinate": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "terms": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "summary", + "description", + "subordinate" + ] + }, + "CharmMetric": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "description" + ] + }, + "CharmMetrics": { + "type": "object", + "properties": { + "metrics": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmMetric" + } + } + }, + "plan": { + "$ref": "#/definitions/CharmPlan" + } + }, + "additionalProperties": false, + "required": [ + "metrics", + "plan" + ] + }, + "CharmOption": { + "type": "object", + "properties": { + "default": { + "type": "object", + "additionalProperties": true + }, + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CharmPayloadClass": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type" + ] + }, + "CharmPlan": { + "type": "object", + "properties": { + "required": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "required" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmResourceMeta": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "description" + ] + }, + "CharmStorage": { + "type": "object", + "properties": { + "count-max": { + "type": "integer" + }, + "count-min": { + "type": "integer" + }, + "description": { + "type": "string" + }, + "location": { + "type": "string" + }, + "minimum-size": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + }, + "read-only": { + "type": "boolean" + }, + "shared": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "description", + "type", + "shared", + "read-only", + "count-min", + "count-max", + "minimum-size" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmsList": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "names" + ] + }, + "CharmsListResult": { + "type": "object", + "properties": { + "charm-urls": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-urls" + ] + }, + "IsMeteredResult": { + "type": "object", + "properties": { + "metered": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "metered" + ] + } + } + } + }, + { + "Name": "Cleaner", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Cleanup": { + "type": "object" + }, + "WatchCleanups": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "Client", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "AbortCurrentUpgrade": { + "type": "object" + }, + "AddCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharm" + } + } + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharmWithAuthorization" + } + } + }, + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AddMachinesV2": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AgentVersion": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AgentVersionResult" + } + } + }, + "DestroyMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyMachines" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "FullStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusParams" + }, + "Result": { + "$ref": "#/definitions/FullStatus" + } + } + }, + "GetBundleChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + }, + "GetModelConstraints": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "InjectMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelUserInfoResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PrivateAddress" + }, + "Result": { + "$ref": "#/definitions/PrivateAddressResults" + } + } + }, + "ProvisioningScript": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ProvisioningScriptParams" + }, + "Result": { + "$ref": "#/definitions/ProvisioningScriptResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PublicAddress" + }, + "Result": { + "$ref": "#/definitions/PublicAddressResults" + } + } + }, + "ResolveCharms": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResolveCharms" + }, + "Result": { + "$ref": "#/definitions/ResolveCharmResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Resolved" + } + } + }, + "RetryProvisioning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelAgentVersion" + } + } + }, + "SetModelConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "StatusHistory": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryRequests" + }, + "Result": { + "$ref": "#/definitions/StatusHistoryResults" + } + } + }, + "WatchAll": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "AddCharm": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel" + ] + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "AgentVersionResult": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "can-upgrade-to": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "exposed": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "meter-statuses": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MeterStatus" + } + } + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "series": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + }, + "subordinate-to": { + "type": "array", + "items": { + "type": "string" + } + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "charm", + "series", + "exposed", + "life", + "relations", + "can-upgrade-to", + "subordinate-to", + "units", + "meter-statuses", + "status", + "workload-version" + ] + }, + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyMachines": { + "type": "object", + "properties": { + "force": { + "type": "boolean" + }, + "machine-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-names", + "force" + ] + }, + "DetailedStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "info": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "data", + "since", + "kind", + "version", + "life" + ] + }, + "EndpointStatus": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "subordinate": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "application", + "name", + "role", + "subordinate" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FindToolsParams": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "number": { + "$ref": "#/definitions/Number" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "number", + "major", + "minor", + "arch", + "series" + ] + }, + "FindToolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "FullStatus": { + "type": "object", + "properties": { + "applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ApplicationStatus" + } + } + }, + "machines": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "model": { + "$ref": "#/definitions/ModelStatusInfo" + }, + "relations": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationStatus" + } + }, + "remote-applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/RemoteApplicationStatus" + } + } + } + }, + "additionalProperties": false, + "required": [ + "model", + "machines", + "applications", + "remote-applications", + "relations" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "History": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/definitions/DetailedStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "statuses" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MachineStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "containers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "dns-name": { + "type": "string" + }, + "hardware": { + "type": "string" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "instance-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "ip-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "series": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "instance-status", + "dns-name", + "ip-addresses", + "instance-id", + "series", + "id", + "containers", + "hardware", + "jobs", + "has-vote", + "wants-vote" + ] + }, + "MeterStatus": { + "type": "object", + "properties": { + "color": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "color", + "message" + ] + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "provider-type", + "default-series", + "cloud-tag", + "owner-tag", + "life", + "status", + "users", + "machines" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelSet": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelStatusInfo": { + "type": "object", + "properties": { + "available-version": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "migration": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "cloud-tag", + "version", + "available-version" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModelUserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "additionalProperties": false + }, + "ModelUserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "PrivateAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PrivateAddressResults": { + "type": "object", + "properties": { + "private-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "private-address" + ] + }, + "ProvisioningScriptParams": { + "type": "object", + "properties": { + "data-dir": { + "type": "string" + }, + "disable-package-commands": { + "type": "boolean" + }, + "machine-id": { + "type": "string" + }, + "nonce": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-id", + "nonce", + "data-dir", + "disable-package-commands" + ] + }, + "ProvisioningScriptResult": { + "type": "object", + "properties": { + "script": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "script" + ] + }, + "PublicAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PublicAddressResults": { + "type": "object", + "properties": { + "public-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "public-address" + ] + }, + "RelationStatus": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/EndpointStatus" + } + }, + "id": { + "type": "integer" + }, + "interface": { + "type": "string" + }, + "key": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "key", + "interface", + "scope", + "endpoints" + ] + }, + "RemoteApplicationStatus": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "application-url": { + "type": "string" + }, + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteEndpoint" + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "life": { + "type": "string" + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + } + }, + "additionalProperties": false, + "required": [ + "application-url", + "application-name", + "endpoints", + "life", + "relations", + "status" + ] + }, + "RemoteEndpoint": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "limit", + "scope" + ] + }, + "ResolveCharmResult": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ResolveCharmResults": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolveCharmResult" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ResolveCharms": { + "type": "object", + "properties": { + "references": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "references" + ] + }, + "Resolved": { + "type": "object", + "properties": { + "retry": { + "type": "boolean" + }, + "unit-name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-name", + "retry" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "StatusHistoryFilter": { + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "delta": { + "type": "integer" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "size", + "date", + "delta" + ] + }, + "StatusHistoryRequest": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/definitions/StatusHistoryFilter" + }, + "historyKind": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "historyKind", + "size", + "filter", + "tag" + ] + }, + "StatusHistoryRequests": { + "type": "object", + "properties": { + "requests": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryRequest" + } + } + }, + "additionalProperties": false, + "required": [ + "requests" + ] + }, + "StatusHistoryResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "history": { + "$ref": "#/definitions/History" + } + }, + "additionalProperties": false, + "required": [ + "history" + ] + }, + "StatusHistoryResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusParams": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "UnitStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "charm": { + "type": "string" + }, + "leader": { + "type": "boolean" + }, + "machine": { + "type": "string" + }, + "opened-ports": { + "type": "array", + "items": { + "type": "string" + } + }, + "public-address": { + "type": "string" + }, + "subordinates": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "workload-status", + "workload-version", + "machine", + "opened-ports", + "public-address", + "charm", + "subordinates" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "Cloud", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Cloud": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudResults" + } + } + }, + "Clouds": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/CloudsResult" + } + } + }, + "Credential": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudCredentialResults" + } + } + }, + "DefaultCloud": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "RevokeCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpdateCloudCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserClouds" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Cloud": { + "type": "object", + "properties": { + "auth-types": { + "type": "array", + "items": { + "type": "string" + } + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudRegion" + } + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudCredentialResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudCredential" + } + }, + "additionalProperties": false + }, + "CloudCredentialResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudCredentialResult" + } + } + }, + "additionalProperties": false + }, + "CloudRegion": { + "type": "object", + "properties": { + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name" + ] + }, + "CloudResult": { + "type": "object", + "properties": { + "cloud": { + "$ref": "#/definitions/Cloud" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "CloudResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudResult" + } + } + }, + "additionalProperties": false + }, + "CloudsResult": { + "type": "object", + "properties": { + "clouds": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Cloud" + } + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateCloudCredential": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "credential" + ] + }, + "UpdateCloudCredentials": { + "type": "object", + "properties": { + "credentials": { + "type": "array", + "items": { + "$ref": "#/definitions/UpdateCloudCredential" + } + } + }, + "additionalProperties": false + }, + "UserCloud": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "cloud-tag" + ] + }, + "UserClouds": { + "type": "object", + "properties": { + "user-clouds": { + "type": "array", + "items": { + "$ref": "#/definitions/UserCloud" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "Controller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AllModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DestroyController": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyControllerArgs" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/UserAccessResults" + } + } + }, + "HostedModelConfigs": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/HostedModelConfigsResults" + } + } + }, + "InitiateMigration": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/InitiateMigrationArgs" + }, + "Result": { + "$ref": "#/definitions/InitiateMigrationResults" + } + } + }, + "ListBlockedModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelBlockInfoList" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyControllerAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveBlocks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RemoveBlocksArgs" + } + } + }, + "WatchAllModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "DestroyControllerArgs": { + "type": "object", + "properties": { + "destroy-models": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "destroy-models" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostedModelConfig": { + "type": "object", + "properties": { + "cloud-spec": { + "$ref": "#/definitions/CloudSpec" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "owner": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner" + ] + }, + "HostedModelConfigsResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/HostedModelConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "InitiateMigrationArgs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/MigrationSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "InitiateMigrationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "migration-id": { + "type": "string" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "migration-id" + ] + }, + "InitiateMigrationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/InitiateMigrationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MigrationSpec": { + "type": "object", + "properties": { + "external-control": { + "type": "boolean" + }, + "model-tag": { + "type": "string" + }, + "skip-initial-prechecks": { + "type": "boolean" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info", + "external-control", + "skip-initial-prechecks" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelBlockInfo": { + "type": "object", + "properties": { + "blocks": { + "type": "array", + "items": { + "type": "string" + } + }, + "model-uuid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "model-uuid", + "owner-tag", + "blocks" + ] + }, + "ModelBlockInfoList": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelBlockInfo" + } + } + }, + "additionalProperties": false + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelStatus": { + "type": "object", + "properties": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access" + ] + }, + "ModifyControllerAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyControllerAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RemoveBlocksArgs": { + "type": "object", + "properties": { + "all": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "all" + ] + }, + "UserAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "access" + ] + }, + "UserAccessResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserAccess" + } + }, + "additionalProperties": false + }, + "UserAccessResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserAccessResult" + } + } + }, + "additionalProperties": false + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "Deployer", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "ConnectionInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DeployerConnectionValues" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "DeployerConnectionValues": { + "type": "object", + "properties": { + "api-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "state-addresses": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "state-addresses", + "api-addresses" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "DiscoverSpaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DiscoverSpacesResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "DiscoverSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderSpace" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ProviderSpace": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider-id", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "DiskManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineBlockDevices" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineBlockDevices": { + "type": "object", + "properties": { + "block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDevice" + } + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "machine-block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineBlockDevices" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-block-devices" + ] + } + } + } + }, + { + "Name": "EntityWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/EntitiesWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "EntitiesWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "FilesystemAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + }, + { + "Name": "Firewaller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "GetAssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetExposed": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "GetMachineActiveSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "GetMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachinePortsParams" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "WatchOpenedPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePorts": { + "type": "object", + "properties": { + "machine-tag": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "subnet-tag" + ] + }, + "MachinePortsParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePorts" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "HighAvailability", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "EnableHA": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ControllersSpecs" + }, + "Result": { + "$ref": "#/definitions/ControllersChangeResults" + } + } + }, + "ResumeHAReplicationAfterUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResumeReplicationParams" + } + } + }, + "StopHAReplicationForUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpgradeMongoParams" + }, + "Result": { + "$ref": "#/definitions/MongoUpgradeResults" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "Scope": { + "type": "string" + }, + "SpaceName": { + "type": "string" + }, + "SpaceProviderId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Value", + "Type", + "Scope", + "SpaceName", + "SpaceProviderId" + ] + }, + "ControllersChangeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ControllersChanges" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ControllersChangeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersChangeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ControllersChanges": { + "type": "object", + "properties": { + "added": { + "type": "array", + "items": { + "type": "string" + } + }, + "converted": { + "type": "array", + "items": { + "type": "string" + } + }, + "demoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "maintained": { + "type": "array", + "items": { + "type": "string" + } + }, + "promoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "removed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ControllersSpec": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "num-controllers": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "type": "string" + } + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "num-controllers" + ] + }, + "ControllersSpecs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "HAMember": { + "type": "object", + "properties": { + "public-address": { + "$ref": "#/definitions/Address" + }, + "series": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-address", + "series" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Member": { + "type": "object", + "properties": { + "Address": { + "type": "string" + }, + "Arbiter": { + "type": "boolean" + }, + "BuildIndexes": { + "type": "boolean" + }, + "Hidden": { + "type": "boolean" + }, + "Id": { + "type": "integer" + }, + "Priority": { + "type": "number" + }, + "SlaveDelay": { + "type": "integer" + }, + "Tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "Votes": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Id", + "Address", + "Arbiter", + "BuildIndexes", + "Hidden", + "Priority", + "Tags", + "SlaveDelay", + "Votes" + ] + }, + "MongoUpgradeResults": { + "type": "object", + "properties": { + "ha-members": { + "type": "array", + "items": { + "$ref": "#/definitions/HAMember" + } + }, + "master": { + "$ref": "#/definitions/HAMember" + }, + "rs-members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "rs-members", + "master", + "ha-members" + ] + }, + "MongoVersion": { + "type": "object", + "properties": { + "engine": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "patch": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "major", + "minor", + "patch", + "engine" + ] + }, + "ResumeReplicationParams": { + "type": "object", + "properties": { + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "members" + ] + }, + "UpgradeMongoParams": { + "type": "object", + "properties": { + "target": { + "$ref": "#/definitions/MongoVersion" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "HostKeyReporter", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ReportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SSHHostKeySet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHHostKeySet": { + "type": "object", + "properties": { + "entity-keys": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHHostKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "entity-keys" + ] + }, + "SSHHostKeys": { + "type": "object", + "properties": { + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-keys" + ] + } + } + } + }, + { + "Name": "ImageManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "DeleteImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ListImageResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageFilterParams": { + "type": "object", + "properties": { + "images": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "images" + ] + }, + "ImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series", + "url", + "created" + ] + }, + "ImageSpec": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series" + ] + }, + "ListImageResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "ImageMetadata", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Delete": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataImageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageMetadataFilter" + }, + "Result": { + "$ref": "#/definitions/ListCloudImageMetadataResult" + } + } + }, + "Save": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataSaveParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateFromPublishedImages": { + "type": "object" + } + }, + "definitions": { + "CloudImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "image-id": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "region": { + "type": "string" + }, + "root-storage-size": { + "type": "integer" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "string" + }, + "source": { + "type": "string" + }, + "stream": { + "type": "string" + }, + "version": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "image-id", + "region", + "version", + "series", + "arch", + "source", + "priority" + ] + }, + "CloudImageMetadataList": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageMetadataFilter": { + "type": "object", + "properties": { + "arches": { + "type": "array", + "items": { + "type": "string" + } + }, + "region": { + "type": "string" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "stream": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ListCloudImageMetadataResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MetadataImageIds": { + "type": "object", + "properties": { + "image-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "image-ids" + ] + }, + "MetadataSaveParams": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadataList" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "InstancePoller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AreManuallyProvisioned": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineAddressesResults" + } + } + }, + "SetInstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Status": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "MachineAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "MachineAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "KeyManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DeleteKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ImportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListSSHKeys" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSSHKeys": { + "type": "object", + "properties": { + "entities": { + "$ref": "#/definitions/Entities" + }, + "mode": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "mode" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModifyUserSSHKeys": { + "type": "object", + "properties": { + "ssh-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "ssh-keys" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "KeyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "WatchAuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LeadershipService", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "BlockUntilLeadershipReleased": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationTag" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "ClaimLeadership": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ClaimLeadershipBulkParams" + }, + "Result": { + "$ref": "#/definitions/ClaimLeadershipBulkResults" + } + } + } + }, + "definitions": { + "ApplicationTag": { + "type": "object", + "properties": { + "Name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Name" + ] + }, + "ClaimLeadershipBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/ClaimLeadershipParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "ClaimLeadershipBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ClaimLeadershipParams": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "duration": { + "type": "number" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "unit-tag", + "duration" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "LifeFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LogForwarding", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingGetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/LogForwardingGetLastSentResults" + } + } + }, + "SetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingSetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingGetLastSentParams": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingID" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "LogForwardingGetLastSentResult": { + "type": "object", + "properties": { + "err": { + "$ref": "#/definitions/Error" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "record-id", + "record-timestamp", + "err" + ] + }, + "LogForwardingGetLastSentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingGetLastSentResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingID": { + "type": "object", + "properties": { + "model": { + "type": "string" + }, + "sink": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model", + "sink" + ] + }, + "LogForwardingSetLastSentParam": { + "type": "object", + "properties": { + "LogForwardingID": { + "$ref": "#/definitions/LogForwardingID" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "LogForwardingID", + "record-id", + "record-timestamp" + ] + }, + "LogForwardingSetLastSentParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingSetLastSentParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Logger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "LoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "WatchLoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineActions", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RunningActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + } + }, + "definitions": { + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MachineUndertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AllMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/EntitiesResults" + } + } + }, + "CompleteMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + } + } + }, + "GetMachineProviderInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProviderInterfaceInfoResults" + } + } + }, + "WatchMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResult": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProviderInterfaceInfo": { + "type": "object", + "properties": { + "interface-name": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "provider-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "interface-name", + "mac-address", + "provider-id" + ] + }, + "ProviderInterfaceInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "interfaces": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfo" + } + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "interfaces" + ] + }, + "ProviderInterfaceInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Machiner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Jobs": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/JobsResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetMachineAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetObservedNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineNetworkConfig" + } + } + }, + "SetProviderNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "JobsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "jobs" + ] + }, + "JobsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/JobsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "device-index", + "mac-address", + "cidr", + "mtu", + "provider-id", + "provider-subnet-id", + "provider-space-id", + "provider-address-id", + "provider-vlan-id", + "vlan-tag", + "interface-name", + "parent-interface-name", + "interface-type", + "disabled" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetMachineNetworkConfig": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "config" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MeterStatus", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsAdder", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + } + } + } + }, + { + "Name": "MetricsDebug", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "GetMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MetricResults" + } + } + }, + "SetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MeterStatusParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityMetrics": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricResult" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusParam": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "code", + "info" + ] + }, + "MeterStatusParams": { + "type": "object", + "properties": { + "statues": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusParam" + } + } + }, + "additionalProperties": false, + "required": [ + "statues" + ] + }, + "MetricResult": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "unit": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "time", + "key", + "value", + "unit" + ] + }, + "MetricResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityMetrics" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "CleanupOldMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SendMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "MigrationFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Phase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PhaseResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PhaseResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "phase": { + "type": "string" + } + }, + "additionalProperties": false + }, + "PhaseResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PhaseResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MigrationMaster", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Export": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "MigrationStatus": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MasterMigrationStatus" + } + } + }, + "MinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MinionReports" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + }, + "Prechecks": { + "type": "object" + }, + "Reap": { + "type": "object" + }, + "SetPhase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationPhaseArgs" + } + } + }, + "SetStatusMessage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationStatusMessageArgs" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchMinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MasterMigrationStatus": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "phase-changed-time": { + "type": "string", + "format": "date-time" + }, + "spec": { + "$ref": "#/definitions/MigrationSpec" + } + }, + "additionalProperties": false, + "required": [ + "spec", + "migration-id", + "phase", + "phase-changed-time" + ] + }, + "MigrationModelInfo": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version" + ] + }, + "MigrationSpec": { + "type": "object", + "properties": { + "external-control": { + "type": "boolean" + }, + "model-tag": { + "type": "string" + }, + "skip-initial-prechecks": { + "type": "boolean" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info", + "external-control", + "skip-initial-prechecks" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "MinionReports": { + "type": "object", + "properties": { + "failed": { + "type": "array", + "items": { + "type": "string" + } + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success-count": { + "type": "integer" + }, + "unknown-count": { + "type": "integer" + }, + "unknown-sample": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success-count", + "unknown-count", + "unknown-sample", + "failed" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "tools" + ] + }, + "SerializedModelTools": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + }, + "SetMigrationPhaseArgs": { + "type": "object", + "properties": { + "phase": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "phase" + ] + }, + "SetMigrationStatusMessageArgs": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message" + ] + } + } + } + }, + { + "Name": "MigrationMinion", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Report": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MinionReport" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MinionReport": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "MigrationStatusWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationStatus" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "MigrationStatus": { + "type": "object", + "properties": { + "attempt": { + "type": "integer" + }, + "external-control": { + "type": "boolean" + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "source-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "source-ca-cert": { + "type": "string" + }, + "target-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "target-ca-cert": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "attempt", + "phase", + "external-control", + "source-api-addrs", + "source-ca-cert", + "target-api-addrs", + "target-ca-cert" + ] + } + } + } + }, + { + "Name": "MigrationTarget", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Abort": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "Activate": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "Import": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "Prechecks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + } + }, + "definitions": { + "MigrationModelInfo": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version" + ] + }, + "ModelArgs": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "tools" + ] + }, + "SerializedModelTools": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + } + } + } + }, + { + "Name": "ModelConfig", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + } + }, + "definitions": { + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelSet": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + } + } + } + }, + { + "Name": "ModelManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CreateModel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelCreateArgs" + }, + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "DestroyModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DumpModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "DumpModelsDB": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "ListModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entity" + }, + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "ModelDefaults": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelDefaultsResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelInfoResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyModelAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnsetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MapResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "MapResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MapResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelCreateArgs": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "credential": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "region": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner-tag" + ] + }, + "ModelDefaultValues": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelDefaults": { + "type": "object", + "properties": { + "controller": { + "type": "object", + "additionalProperties": true + }, + "default": { + "type": "object", + "additionalProperties": true + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/RegionDefaults" + } + } + }, + "additionalProperties": false + }, + "ModelDefaultsResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ModelDefaults" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "provider-type", + "default-series", + "cloud-tag", + "owner-tag", + "life", + "status", + "users", + "machines" + ] + }, + "ModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelInfo" + } + }, + "additionalProperties": false + }, + "ModelInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelStatus": { + "type": "object", + "properties": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelUnsetKeys": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "model-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access", + "model-tag" + ] + }, + "ModifyModelAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyModelAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RegionDefaults": { + "type": "object", + "properties": { + "region-name": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "region-name", + "value" + ] + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelDefaultValues" + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUnsetKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "NotifyWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Payloads", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EnvListArgs" + }, + "Result": { + "$ref": "#/definitions/EnvListResults" + } + } + } + }, + "definitions": { + "EnvListArgs": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "EnvListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + } + } + } + }, + { + "Name": "PayloadsHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "LookUp": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LookUpArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatusArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Track": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/TrackArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Untrack": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LookUpArg": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "id" + ] + }, + "LookUpArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/LookUpArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + }, + "PayloadResult": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "not-found": { + "type": "boolean" + }, + "payload": { + "$ref": "#/definitions/Payload" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "payload", + "not-found" + ] + }, + "PayloadResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PayloadResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatusArg": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "status" + ] + }, + "SetStatusArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/SetStatusArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "TrackArgs": { + "type": "object", + "properties": { + "payloads": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "payloads" + ] + } + } + } + }, + { + "Name": "Pinger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Ping": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Provisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "Constraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConstraintsResults" + } + } + }, + "ContainerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ContainerConfig" + } + } + }, + "ContainerManagerConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ContainerManagerConfigParams" + }, + "Result": { + "$ref": "#/definitions/ContainerManagerConfig" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DistributionGroup": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DistributionGroupResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "GetContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "MachinesWithTransientErrors": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "MarkMachinesForRemoval": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PrepareContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProvisioningInfoResults" + } + } + }, + "ReleaseContainerAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Series": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "SetInstanceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/InstancesInfo" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetInstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetSupportedContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineContainersParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "Status": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Tools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ToolsResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchAllContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/WatchContainers" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/WatchContainers" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchMachineErrorRetry": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "CloudImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "image-id": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "region": { + "type": "string" + }, + "root-storage-size": { + "type": "integer" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "string" + }, + "source": { + "type": "string" + }, + "stream": { + "type": "string" + }, + "version": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "image-id", + "region", + "version", + "series", + "arch", + "source", + "priority" + ] + }, + "ConstraintsResult": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "ConstraintsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConstraintsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ContainerConfig": { + "type": "object", + "properties": { + "UpdateBehavior": { + "$ref": "#/definitions/UpdateBehavior" + }, + "apt-mirror": { + "type": "string" + }, + "apt-proxy": { + "$ref": "#/definitions/Settings" + }, + "authorized-keys": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "proxy": { + "$ref": "#/definitions/Settings" + }, + "ssl-hostname-verification": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "provider-type", + "authorized-keys", + "ssl-hostname-verification", + "proxy", + "apt-proxy", + "apt-mirror", + "UpdateBehavior" + ] + }, + "ContainerManagerConfig": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ContainerManagerConfigParams": { + "type": "object", + "properties": { + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "DistributionGroupResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "DistributionGroupResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/DistributionGroupResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FindToolsParams": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "number": { + "$ref": "#/definitions/Number" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "number", + "major", + "minor", + "arch", + "series" + ] + }, + "FindToolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "InstanceInfo": { + "type": "object", + "properties": { + "characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "network-config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "nonce": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "volume-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/VolumeAttachmentInfo" + } + } + }, + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/Volume" + } + } + }, + "additionalProperties": false, + "required": [ + "tag", + "instance-id", + "nonce", + "characteristics", + "volumes", + "volume-attachments", + "network-config" + ] + }, + "InstancesInfo": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/InstanceInfo" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineContainers": { + "type": "object", + "properties": { + "container-types": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "container-types" + ] + }, + "MachineContainersParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineContainers" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MachineNetworkConfigResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "info" + ] + }, + "MachineNetworkConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineNetworkConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "device-index", + "mac-address", + "cidr", + "mtu", + "provider-id", + "provider-subnet-id", + "provider-space-id", + "provider-address-id", + "provider-vlan-id", + "vlan-tag", + "interface-name", + "parent-interface-name", + "interface-type", + "disabled" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "controller-config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "image-metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "placement": { + "type": "string" + }, + "series": { + "type": "string" + }, + "subnets-to-zones": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParams" + } + } + }, + "additionalProperties": false, + "required": [ + "constraints", + "series", + "placement", + "jobs" + ] + }, + "ProvisioningInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ProvisioningInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ProvisioningInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProvisioningInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Settings": { + "type": "object", + "properties": { + "Ftp": { + "type": "string" + }, + "Http": { + "type": "string" + }, + "Https": { + "type": "string" + }, + "NoProxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Http", + "Https", + "Ftp", + "NoProxy" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateBehavior": { + "type": "object", + "properties": { + "enable-os-refresh-update": { + "type": "boolean" + }, + "enable-os-upgrade": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "enable-os-refresh-update", + "enable-os-upgrade" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "WatchContainer": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "container-type" + ] + }, + "WatchContainers": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/WatchContainer" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + } + } + } + }, + { + "Name": "ProxyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ProxyConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProxyConfigResults" + } + } + }, + "WatchForProxyConfigAndAPIHostPortChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProxyConfig": { + "type": "object", + "properties": { + "ftp": { + "type": "string" + }, + "http": { + "type": "string" + }, + "https": { + "type": "string" + }, + "no-proxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "http", + "https", + "ftp", + "no-proxy" + ] + }, + "ProxyConfigResult": { + "type": "object", + "properties": { + "apt-proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + } + }, + "additionalProperties": false, + "required": [ + "proxy-settings", + "apt-proxy-settings" + ] + }, + "ProxyConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProxyConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Reboot", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetRebootAction": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RebootActionResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchForRebootEvent": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "RebootActionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false + }, + "RebootActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RebootActionResult" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "RelationUnitsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + } + } + } + }, + { + "Name": "Resources", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddPendingResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddPendingResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/AddPendingResourcesResult" + } + } + }, + "ListResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/ResourcesResults" + } + } + } + }, + "definitions": { + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddPendingResourcesArgs": { + "type": "object", + "properties": { + "AddCharmWithAuthorization": { + "$ref": "#/definitions/AddCharmWithAuthorization" + }, + "Entity": { + "$ref": "#/definitions/Entity" + }, + "Resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "AddCharmWithAuthorization", + "Resources" + ] + }, + "AddPendingResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "pending-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "pending-ids" + ] + }, + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListResourcesArgs": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "ResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "charm-store-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + }, + "unit-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitResources" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources", + "charm-store-resources", + "unit-resources" + ] + }, + "ResourcesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourcesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitResources": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "download-progress": { + "type": "object", + "patternProperties": { + ".*": { + "type": "integer" + } + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "resources", + "download-progress" + ] + } + } + } + }, + { + "Name": "ResourcesHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetResourceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/ResourcesResult" + } + } + } + }, + "definitions": { + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListResourcesArgs": { + "type": "object", + "properties": { + "resource-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "resource-names" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "ResourceResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resource": { + "$ref": "#/definitions/Resource" + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resource" + ] + }, + "ResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources" + ] + } + } + } + }, + { + "Name": "Resumer", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ResumeTransactions": { + "type": "object" + } + } + } + }, + { + "Name": "RetryStrategy", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "RetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RetryStrategyResults" + } + } + }, + "WatchRetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RetryStrategy": { + "type": "object", + "properties": { + "jitter-retry-time": { + "type": "boolean" + }, + "max-retry-time": { + "type": "integer" + }, + "min-retry-time": { + "type": "integer" + }, + "retry-time-factor": { + "type": "integer" + }, + "should-retry": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "should-retry", + "min-retry-time", + "max-retry-time", + "jitter-retry-time", + "retry-time-factor" + ] + }, + "RetryStrategyResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/RetryStrategy" + } + }, + "additionalProperties": false + }, + "RetryStrategyResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RetryStrategyResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "SSHClient", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AllAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressesResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "Proxy": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SSHProxyResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "PublicKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHPublicKeysResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHAddressResult": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "SSHAddressResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "SSHAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHProxyResult": { + "type": "object", + "properties": { + "use-proxy": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "use-proxy" + ] + }, + "SSHPublicKeysResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "SSHPublicKeysResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHPublicKeysResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Singular", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Claim": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SingularClaims" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Wait": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SingularClaim": { + "type": "object", + "properties": { + "controller-tag": { + "type": "string" + }, + "duration": { + "type": "integer" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "controller-tag", + "duration" + ] + }, + "SingularClaims": { + "type": "object", + "properties": { + "claims": { + "type": "array", + "items": { + "$ref": "#/definitions/SingularClaim" + } + } + }, + "additionalProperties": false, + "required": [ + "claims" + ] + } + } + } + }, + { + "Name": "Spaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ListSpacesResults" + } + } + } + }, + "definitions": { + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Space" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Space": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + } + } + } + }, + { + "Name": "StatusHistory", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Prune": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryPruneArgs" + } + } + } + }, + "definitions": { + "StatusHistoryPruneArgs": { + "type": "object", + "properties": { + "max-history-mb": { + "type": "integer" + }, + "max-history-time": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "max-history-time", + "max-history-mb" + ] + } + } + } + }, + { + "Name": "Storage", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddToUnit": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreatePool": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "ListFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemFilters" + }, + "Result": { + "$ref": "#/definitions/FilesystemDetailsListResults" + } + } + }, + "ListPools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePoolFilters" + }, + "Result": { + "$ref": "#/definitions/StoragePoolsResults" + } + } + }, + "ListStorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageFilters" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsListResults" + } + } + }, + "ListVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeFilters" + }, + "Result": { + "$ref": "#/definitions/VolumeDetailsListResults" + } + } + }, + "StorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemDetails": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info", + "status" + ] + }, + "FilesystemDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetails" + } + } + }, + "additionalProperties": false + }, + "FilesystemDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemFilter" + } + } + }, + "additionalProperties": false + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "size" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachmentDetails": { + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag", + "machine-tag" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StorageDetails": { + "type": "object", + "properties": { + "attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageAttachmentDetails" + } + } + }, + "kind": { + "type": "integer" + }, + "owner-tag": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "kind", + "status", + "persistent" + ] + }, + "StorageDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetails" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageDetails" + } + }, + "additionalProperties": false + }, + "StorageDetailsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsResult" + } + } + }, + "additionalProperties": false + }, + "StorageFilter": { + "type": "object", + "additionalProperties": false + }, + "StorageFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePool": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "name": { + "type": "string" + }, + "provider": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider", + "attrs" + ] + }, + "StoragePoolFilter": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + }, + "providers": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StoragePoolFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "storage-pools": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolsResult" + } + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeDetails": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/VolumeAttachmentInfo" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info", + "status" + ] + }, + "VolumeDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetails" + } + } + }, + "additionalProperties": false + }, + "VolumeDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "VolumeFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "VolumeFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeFilter" + } + } + }, + "additionalProperties": false + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + } + } + } + }, + { + "Name": "StorageProvisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentParamsResults" + } + } + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentResults" + } + } + }, + "FilesystemParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemParamsResults" + } + } + }, + "Filesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveAttachment": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Filesystems" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Volumes" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentParamsResults" + } + } + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentResults" + } + } + }, + "VolumeBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/BlockDeviceResults" + } + } + }, + "VolumeParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeParamsResults" + } + } + }, + "Volumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeResults" + } + } + }, + "WatchBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchFilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchVolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "BlockDeviceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/BlockDevice" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockDeviceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDeviceResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Filesystem": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info" + ] + }, + "FilesystemAttachment": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "info" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "filesystem-tag": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "mount-point": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "provider" + ] + }, + "FilesystemAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "filesystem-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystem-attachments" + ] + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "size" + ] + }, + "FilesystemParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/FilesystemAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "filesystem-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "size", + "provider" + ] + }, + "FilesystemParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Filesystem" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemResult" + } + } + }, + "additionalProperties": false + }, + "Filesystems": { + "type": "object", + "properties": { + "filesystems": { + "type": "array", + "items": { + "$ref": "#/definitions/Filesystem" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystems" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "MachineStorageIdsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachment": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeAttachmentInfo" + }, + "machine-tag": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "volume-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "volume-attachments" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "VolumeParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Volume" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeResult" + } + } + }, + "additionalProperties": false + }, + "Volumes": { + "type": "object", + "properties": { + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/Volume" + } + } + }, + "additionalProperties": false, + "required": [ + "volumes" + ] + } + } + } + }, + { + "Name": "StringsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Subnets", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SpaceResults" + } + } + }, + "AllZones": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ZoneResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SpaceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "SpaceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SpaceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ZoneResult": { + "type": "object", + "properties": { + "available": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "available" + ] + }, + "ZoneResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ZoneResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Undertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UndertakerModelInfoResult" + } + } + }, + "ProcessDyingModel": { + "type": "object" + }, + "RemoveModel": { + "type": "object" + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchModelResources": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "UndertakerModelInfo": { + "type": "object", + "properties": { + "global-name": { + "type": "string" + }, + "is-system": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "global-name", + "is-system", + "life" + ] + }, + "UndertakerModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UndertakerModelInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + } + } + } + }, + { + "Name": "UnitAssigner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AssignUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchUnitAssignments": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Uniter", + "Version": 4, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AddUnitStorage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationStatusResults" + } + } + }, + "AssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "AvailabilityZone": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "CharmArchiveSha256": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURLs" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "CharmModifiedVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/IntResults" + } + } + }, + "CharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "ClearResolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ClosePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConfigSettingsResults" + } + } + }, + "CurrentModel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelResult" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyAllSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnterScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "GetPrincipal": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "HasSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "JoinedRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "LeaveScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Merge": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "NetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnitsNetworkConfig" + }, + "Result": { + "$ref": "#/definitions/UnitNetworkConfigResults" + } + } + }, + "OpenPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "ProviderType": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Read": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/GetLeadershipSettingsBulkResults" + } + } + }, + "ReadRemoteSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitPairs" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "ReadSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "Relation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RelationById": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationIds" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RemoveStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ResolvedModeResults" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesCharmURL" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetUnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetWorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityWorkloadVersions" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StorageAttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "StorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentResults" + } + } + }, + "UnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "UnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentIdsResults" + } + } + }, + "UpdateSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitsSettings" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchApplicationRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchLeadershipSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchRelationUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResults" + } + } + }, + "WatchStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "ApplicationStatusResult": { + "type": "object", + "properties": { + "application": { + "$ref": "#/definitions/StatusResult" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StatusResult" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "units" + ] + }, + "ApplicationStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmURLs": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ConfigSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "ConfigSettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Endpoint": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "relation": { + "$ref": "#/definitions/CharmRelation" + } + }, + "additionalProperties": false, + "required": [ + "application-name", + "relation" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesCharmURL": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityCharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesPortRanges": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityCharmURL": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "charm-url" + ] + }, + "EntityPortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "protocol", + "from-port", + "to-port" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "EntityWorkloadVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "workload-version" + ] + }, + "EntityWorkloadVersions": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityWorkloadVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/GetLeadershipSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "IntResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "IntResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/IntResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "MergeLeadershipSettingsBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MergeLeadershipSettingsParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MergeLeadershipSettingsParam": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "settings" + ] + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "device-index", + "mac-address", + "cidr", + "mtu", + "provider-id", + "provider-subnet-id", + "provider-space-id", + "provider-address-id", + "provider-vlan-id", + "vlan-tag", + "interface-name", + "parent-interface-name", + "interface-type", + "disabled" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "RelationIds": { + "type": "object", + "properties": { + "relation-ids": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-ids" + ] + }, + "RelationResult": { + "type": "object", + "properties": { + "endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "integer" + }, + "key": { + "type": "string" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "id", + "key", + "endpoint" + ] + }, + "RelationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RelationUnit": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit" + ] + }, + "RelationUnitPair": { + "type": "object", + "properties": { + "local-unit": { + "type": "string" + }, + "relation": { + "type": "string" + }, + "remote-unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "local-unit", + "remote-unit" + ] + }, + "RelationUnitPairs": { + "type": "object", + "properties": { + "relation-unit-pairs": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitPair" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-unit-pairs" + ] + }, + "RelationUnitSettings": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit", + "settings" + ] + }, + "RelationUnits": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnit" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsSettings": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitSettings" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "RelationUnitsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ResolvedModeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "mode": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "mode" + ] + }, + "ResolvedModeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolvedModeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "SettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "SettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachment": { + "type": "object", + "properties": { + "kind": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "location": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "unit-tag", + "kind", + "location", + "life" + ] + }, + "StorageAttachmentId": { + "type": "object", + "properties": { + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag" + ] + }, + "StorageAttachmentIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "StorageAttachmentIdsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachmentIds" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentIdsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentIdsResult" + } + } + }, + "additionalProperties": false + }, + "StorageAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "StringBoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ok": { + "type": "boolean" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result", + "ok" + ] + }, + "StringBoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringBoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitNetworkConfig": { + "type": "object", + "properties": { + "binding-name": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "binding-name" + ] + }, + "UnitNetworkConfigResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "info" + ] + }, + "UnitNetworkConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitNetworkConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "UnitsNetworkConfig": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitNetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + } + } + } + }, + { + "Name": "Upgrader", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "DesiredVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VersionResults" + } + } + }, + "SetTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesVersion" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Tools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ToolsResults" + } + } + }, + "WatchAPIVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesVersion": { + "type": "object", + "properties": { + "agent-tools": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "agent-tools" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "tools": { + "$ref": "#/definitions/Version" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "tools" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Version": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "VersionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false + }, + "VersionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VersionResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "UserManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddUsers" + }, + "Result": { + "$ref": "#/definitions/AddUserResults" + } + } + }, + "DisableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPassword": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserInfoRequest" + }, + "Result": { + "$ref": "#/definitions/UserInfoResults" + } + } + } + }, + "definitions": { + "AddUser": { + "type": "object", + "properties": { + "display-name": { + "type": "string" + }, + "password": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name" + ] + }, + "AddUserResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "secret-key": { + "type": "array", + "items": { + "type": "integer" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false + }, + "AddUserResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUserResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AddUsers": { + "type": "object", + "properties": { + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUser" + } + } + }, + "additionalProperties": false, + "required": [ + "users" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "UserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "created-by": { + "type": "string" + }, + "date-created": { + "type": "string", + "format": "date-time" + }, + "disabled": { + "type": "boolean" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name", + "access", + "created-by", + "date-created", + "disabled" + ] + }, + "UserInfoRequest": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "include-disabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "include-disabled" + ] + }, + "UserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserInfo" + } + }, + "additionalProperties": false + }, + "UserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "VolumeAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + } +] diff --git a/modules/libjuju/juju/client/schemas-juju-2.0.2.json b/modules/libjuju/juju/client/schemas-juju-2.0.2.json new file mode 100644 index 0000000..69db493 --- /dev/null +++ b/modules/libjuju/juju/client/schemas-juju-2.0.2.json @@ -0,0 +1,24799 @@ +[ + { + "Name": "Action", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "ApplicationsCharmsActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationsCharmActionsResults" + } + } + }, + "Cancel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "Enqueue": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Actions" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "FindActionTagsByPrefix": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindTags" + }, + "Result": { + "$ref": "#/definitions/FindTagsResults" + } + } + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindActionsByNames" + }, + "Result": { + "$ref": "#/definitions/ActionsByNames" + } + } + }, + "ListAll": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListCompleted": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListPending": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListRunning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "Run": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "RunOnAllMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "Actions": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/Action" + } + } + }, + "additionalProperties": false + }, + "ActionsByName": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByNames": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByName" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "ApplicationCharmActionsResult": { + "type": "object", + "properties": { + "actions": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ActionSpec" + } + } + }, + "application-tag": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ApplicationsCharmActionsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationCharmActionsResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FindTags": { + "type": "object", + "properties": { + "prefixes": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "prefixes" + ] + }, + "FindTagsResults": { + "type": "object", + "properties": { + "matches": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + } + } + }, + "additionalProperties": false, + "required": [ + "matches" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RunParams": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "type": "string" + } + }, + "commands": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "type": "string" + } + }, + "timeout": { + "type": "integer" + }, + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "commands", + "timeout" + ] + } + } + } + }, + { + "Name": "Agent", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetEntities": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AgentGetEntitiesResults" + } + } + }, + "IsMaster": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/IsMasterResult" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateServingInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StateServingInfo" + } + } + }, + "WatchCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "AgentGetEntitiesResult": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "jobs", + "container-type" + ] + }, + "AgentGetEntitiesResults": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/AgentGetEntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "IsMasterResult": { + "type": "object", + "properties": { + "master": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "master" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StateServingInfo": { + "type": "object", + "properties": { + "api-port": { + "type": "integer" + }, + "ca-private-key": { + "type": "string" + }, + "cert": { + "type": "string" + }, + "private-key": { + "type": "string" + }, + "shared-secret": { + "type": "string" + }, + "state-port": { + "type": "integer" + }, + "system-identity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "api-port", + "state-port", + "cert", + "private-key", + "ca-private-key", + "shared-secret", + "system-identity" + ] + } + } + } + }, + { + "Name": "AgentTools", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "UpdateToolsAvailable": { + "type": "object" + } + } + } + }, + { + "Name": "AllModelWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "AllWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "Annotations", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AnnotationsGetResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AnnotationsSet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "AnnotationsGetResult": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/ErrorResult" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "AnnotationsGetResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AnnotationsGetResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AnnotationsSet": { + "type": "object", + "properties": { + "annotations": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityAnnotations" + } + } + }, + "additionalProperties": false, + "required": [ + "annotations" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityAnnotations": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Application", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddRelation" + }, + "Result": { + "$ref": "#/definitions/AddRelationResults" + } + } + }, + "AddUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddApplicationUnits" + }, + "Result": { + "$ref": "#/definitions/AddApplicationUnitsResults" + } + } + }, + "CharmRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationCharmRelations" + }, + "Result": { + "$ref": "#/definitions/ApplicationCharmRelationsResults" + } + } + }, + "Deploy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationsDeploy" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationDestroy" + } + } + }, + "DestroyRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyRelation" + } + } + }, + "DestroyUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyApplicationUnits" + } + } + }, + "Expose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationExpose" + } + } + }, + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/ApplicationGetResults" + } + } + }, + "GetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "GetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/GetApplicationConstraints" + }, + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSet" + } + } + }, + "SetCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSetCharm" + } + } + }, + "SetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "SetMetricCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationMetricCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Unexpose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnexpose" + } + } + }, + "Unset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnset" + } + } + }, + "Update": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUpdate" + } + } + } + }, + "definitions": { + "AddApplicationUnits": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "num-units", + "placement" + ] + }, + "AddApplicationUnitsResults": { + "type": "object", + "properties": { + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "units" + ] + }, + "AddRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "AddRelationResults": { + "type": "object", + "properties": { + "endpoints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "ApplicationCharmRelations": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationCharmRelationsResults": { + "type": "object", + "properties": { + "charm-relations": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-relations" + ] + }, + "ApplicationDeploy": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-yaml": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "series": { + "type": "string" + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Constraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "series", + "charm-url", + "channel", + "num-units", + "config-yaml", + "constraints" + ] + }, + "ApplicationDestroy": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationExpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGet": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGetResults": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm", + "config", + "constraints", + "series" + ] + }, + "ApplicationMetricCredential": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "metrics-credentials": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "metrics-credentials" + ] + }, + "ApplicationMetricCredentials": { + "type": "object", + "properties": { + "creds": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationMetricCredential" + } + } + }, + "additionalProperties": false, + "required": [ + "creds" + ] + }, + "ApplicationSet": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationSetCharm": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config-settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-settings-yaml": { + "type": "string" + }, + "force-series": { + "type": "boolean" + }, + "force-units": { + "type": "boolean" + }, + "resource-ids": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "storage-constraints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageConstraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "channel", + "force-units", + "force-series" + ] + }, + "ApplicationUnexpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationUnset": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationUpdate": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "force-charm-url": { + "type": "boolean" + }, + "force-series": { + "type": "boolean" + }, + "min-units": { + "type": "integer" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "settings-yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "force-charm-url", + "force-series", + "settings-yaml" + ] + }, + "ApplicationsDeploy": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationDeploy" + } + } + }, + "additionalProperties": false, + "required": [ + "applications" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyApplicationUnits": { + "type": "object", + "properties": { + "unit-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "unit-names" + ] + }, + "DestroyRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetApplicationConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "ApplicationRelationsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ApplicationRelationsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "ApplicationRelationsChange": { + "type": "object", + "properties": { + "changed": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationChange" + } + }, + "removed": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false + }, + "ApplicationRelationsWatchResult": { + "type": "object", + "properties": { + "ApplicationRelationsWatcherId": { + "type": "string" + }, + "changes": { + "$ref": "#/definitions/ApplicationRelationsChange" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "ApplicationRelationsWatcherId" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RelationChange": { + "type": "object", + "properties": { + "changedunits": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/RelationUnitChange" + } + } + }, + "departedunits": { + "type": "array", + "items": { + "type": "string" + } + }, + "id": { + "type": "integer" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life" + ] + }, + "RelationUnitChange": { + "type": "object", + "properties": { + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "ApplicationScaler", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Rescale": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Backups", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Create": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsCreateArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "FinishRestore": { + "type": "object" + }, + "Info": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsInfoArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsListArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsListResult" + } + } + }, + "PrepareRestore": { + "type": "object" + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsRemoveArgs" + } + } + }, + "Restore": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RestoreArgs" + } + } + } + }, + "definitions": { + "BackupsCreateArgs": { + "type": "object", + "properties": { + "notes": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "notes" + ] + }, + "BackupsInfoArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "BackupsListArgs": { + "type": "object", + "additionalProperties": false + }, + "BackupsListResult": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "BackupsMetadataResult": { + "type": "object", + "properties": { + "ca-cert": { + "type": "string" + }, + "ca-private-key": { + "type": "string" + }, + "checksum": { + "type": "string" + }, + "checksum-format": { + "type": "string" + }, + "finished": { + "type": "string", + "format": "date-time" + }, + "hostname": { + "type": "string" + }, + "id": { + "type": "string" + }, + "machine": { + "type": "string" + }, + "model": { + "type": "string" + }, + "notes": { + "type": "string" + }, + "series": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "started": { + "type": "string", + "format": "date-time" + }, + "stored": { + "type": "string", + "format": "date-time" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "id", + "checksum", + "checksum-format", + "size", + "stored", + "started", + "finished", + "notes", + "model", + "machine", + "hostname", + "version", + "series", + "ca-cert", + "ca-private-key" + ] + }, + "BackupsRemoveArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "RestoreArgs": { + "type": "object", + "properties": { + "backup-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "backup-id" + ] + } + } + } + }, + { + "Name": "Block", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BlockResults" + } + } + }, + "SwitchBlockOff": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "SwitchBlockOn": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Block": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "tag", + "type" + ] + }, + "BlockResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Block" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockResult" + } + } + }, + "additionalProperties": false + }, + "BlockSwitchParams": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Bundle", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + } + }, + "definitions": { + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "CharmRevisionUpdater", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "UpdateLatestRevisions": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Charms", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CharmInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/CharmInfo" + } + } + }, + "IsMetered": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/IsMeteredResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmsList" + }, + "Result": { + "$ref": "#/definitions/CharmsListResult" + } + } + } + }, + "definitions": { + "CharmActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "CharmActions": { + "type": "object", + "properties": { + "specs": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmActionSpec" + } + } + } + }, + "additionalProperties": false + }, + "CharmInfo": { + "type": "object", + "properties": { + "actions": { + "$ref": "#/definitions/CharmActions" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmOption" + } + } + }, + "meta": { + "$ref": "#/definitions/CharmMeta" + }, + "metrics": { + "$ref": "#/definitions/CharmMetrics" + }, + "revision": { + "type": "integer" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "revision", + "url", + "config" + ] + }, + "CharmMeta": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "extra-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "min-juju-version": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload-classes": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmPayloadClass" + } + } + }, + "peers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "provides": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "requires": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmResourceMeta" + } + } + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmStorage" + } + } + }, + "subordinate": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "terms": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "summary", + "description", + "subordinate" + ] + }, + "CharmMetric": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "description" + ] + }, + "CharmMetrics": { + "type": "object", + "properties": { + "metrics": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmMetric" + } + } + }, + "plan": { + "$ref": "#/definitions/CharmPlan" + } + }, + "additionalProperties": false, + "required": [ + "metrics", + "plan" + ] + }, + "CharmOption": { + "type": "object", + "properties": { + "default": { + "type": "object", + "additionalProperties": true + }, + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CharmPayloadClass": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type" + ] + }, + "CharmPlan": { + "type": "object", + "properties": { + "required": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "required" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmResourceMeta": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "description" + ] + }, + "CharmStorage": { + "type": "object", + "properties": { + "count-max": { + "type": "integer" + }, + "count-min": { + "type": "integer" + }, + "description": { + "type": "string" + }, + "location": { + "type": "string" + }, + "minimum-size": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + }, + "read-only": { + "type": "boolean" + }, + "shared": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "description", + "type", + "shared", + "read-only", + "count-min", + "count-max", + "minimum-size" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmsList": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "names" + ] + }, + "CharmsListResult": { + "type": "object", + "properties": { + "charm-urls": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-urls" + ] + }, + "IsMeteredResult": { + "type": "object", + "properties": { + "metered": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "metered" + ] + } + } + } + }, + { + "Name": "Cleaner", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Cleanup": { + "type": "object" + }, + "WatchCleanups": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "Client", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "AbortCurrentUpgrade": { + "type": "object" + }, + "AddCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharm" + } + } + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharmWithAuthorization" + } + } + }, + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AddMachinesV2": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AgentVersion": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AgentVersionResult" + } + } + }, + "DestroyMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyMachines" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "FullStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusParams" + }, + "Result": { + "$ref": "#/definitions/FullStatus" + } + } + }, + "GetBundleChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + }, + "GetModelConstraints": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "InjectMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelUserInfoResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PrivateAddress" + }, + "Result": { + "$ref": "#/definitions/PrivateAddressResults" + } + } + }, + "ProvisioningScript": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ProvisioningScriptParams" + }, + "Result": { + "$ref": "#/definitions/ProvisioningScriptResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PublicAddress" + }, + "Result": { + "$ref": "#/definitions/PublicAddressResults" + } + } + }, + "ResolveCharms": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResolveCharms" + }, + "Result": { + "$ref": "#/definitions/ResolveCharmResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Resolved" + } + } + }, + "RetryProvisioning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelAgentVersion" + } + } + }, + "SetModelConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "StatusHistory": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryRequests" + }, + "Result": { + "$ref": "#/definitions/StatusHistoryResults" + } + } + }, + "WatchAll": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "AddCharm": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel" + ] + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "AgentVersionResult": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "can-upgrade-to": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "exposed": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "meter-statuses": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MeterStatus" + } + } + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "series": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + }, + "subordinate-to": { + "type": "array", + "items": { + "type": "string" + } + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "charm", + "series", + "exposed", + "life", + "relations", + "can-upgrade-to", + "subordinate-to", + "units", + "meter-statuses", + "status", + "workload-version" + ] + }, + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyMachines": { + "type": "object", + "properties": { + "force": { + "type": "boolean" + }, + "machine-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-names", + "force" + ] + }, + "DetailedStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "info": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "data", + "since", + "kind", + "version", + "life" + ] + }, + "EndpointStatus": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "subordinate": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "application", + "name", + "role", + "subordinate" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FindToolsParams": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "number": { + "$ref": "#/definitions/Number" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "number", + "major", + "minor", + "arch", + "series" + ] + }, + "FindToolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "FullStatus": { + "type": "object", + "properties": { + "applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ApplicationStatus" + } + } + }, + "machines": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "model": { + "$ref": "#/definitions/ModelStatusInfo" + }, + "relations": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationStatus" + } + }, + "remote-applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/RemoteApplicationStatus" + } + } + } + }, + "additionalProperties": false, + "required": [ + "model", + "machines", + "applications", + "remote-applications", + "relations" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "History": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/definitions/DetailedStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "statuses" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MachineStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "containers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "dns-name": { + "type": "string" + }, + "hardware": { + "type": "string" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "instance-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "ip-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "series": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "instance-status", + "dns-name", + "ip-addresses", + "instance-id", + "series", + "id", + "containers", + "hardware", + "jobs", + "has-vote", + "wants-vote" + ] + }, + "MeterStatus": { + "type": "object", + "properties": { + "color": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "color", + "message" + ] + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "provider-type", + "default-series", + "cloud-tag", + "owner-tag", + "life", + "status", + "users", + "machines" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelSet": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelStatusInfo": { + "type": "object", + "properties": { + "available-version": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "migration": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "cloud-tag", + "version", + "available-version" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModelUserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "additionalProperties": false + }, + "ModelUserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "PrivateAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PrivateAddressResults": { + "type": "object", + "properties": { + "private-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "private-address" + ] + }, + "ProvisioningScriptParams": { + "type": "object", + "properties": { + "data-dir": { + "type": "string" + }, + "disable-package-commands": { + "type": "boolean" + }, + "machine-id": { + "type": "string" + }, + "nonce": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-id", + "nonce", + "data-dir", + "disable-package-commands" + ] + }, + "ProvisioningScriptResult": { + "type": "object", + "properties": { + "script": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "script" + ] + }, + "PublicAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PublicAddressResults": { + "type": "object", + "properties": { + "public-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "public-address" + ] + }, + "RelationStatus": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/EndpointStatus" + } + }, + "id": { + "type": "integer" + }, + "interface": { + "type": "string" + }, + "key": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "key", + "interface", + "scope", + "endpoints" + ] + }, + "RemoteApplicationStatus": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "application-url": { + "type": "string" + }, + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteEndpoint" + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "life": { + "type": "string" + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + } + }, + "additionalProperties": false, + "required": [ + "application-url", + "application-name", + "endpoints", + "life", + "relations", + "status" + ] + }, + "RemoteEndpoint": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "limit", + "scope" + ] + }, + "ResolveCharmResult": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ResolveCharmResults": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolveCharmResult" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ResolveCharms": { + "type": "object", + "properties": { + "references": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "references" + ] + }, + "Resolved": { + "type": "object", + "properties": { + "retry": { + "type": "boolean" + }, + "unit-name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-name", + "retry" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "StatusHistoryFilter": { + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "delta": { + "type": "integer" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "size", + "date", + "delta" + ] + }, + "StatusHistoryRequest": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/definitions/StatusHistoryFilter" + }, + "historyKind": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "historyKind", + "size", + "filter", + "tag" + ] + }, + "StatusHistoryRequests": { + "type": "object", + "properties": { + "requests": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryRequest" + } + } + }, + "additionalProperties": false, + "required": [ + "requests" + ] + }, + "StatusHistoryResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "history": { + "$ref": "#/definitions/History" + } + }, + "additionalProperties": false, + "required": [ + "history" + ] + }, + "StatusHistoryResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusParams": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "UnitStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "charm": { + "type": "string" + }, + "leader": { + "type": "boolean" + }, + "machine": { + "type": "string" + }, + "opened-ports": { + "type": "array", + "items": { + "type": "string" + } + }, + "public-address": { + "type": "string" + }, + "subordinates": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "workload-status", + "workload-version", + "machine", + "opened-ports", + "public-address", + "charm", + "subordinates" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "Cloud", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Cloud": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudResults" + } + } + }, + "Clouds": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/CloudsResult" + } + } + }, + "Credential": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudCredentialResults" + } + } + }, + "DefaultCloud": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "RevokeCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpdateCloudCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserClouds" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Cloud": { + "type": "object", + "properties": { + "auth-types": { + "type": "array", + "items": { + "type": "string" + } + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudRegion" + } + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudCredentialResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudCredential" + } + }, + "additionalProperties": false + }, + "CloudCredentialResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudCredentialResult" + } + } + }, + "additionalProperties": false + }, + "CloudRegion": { + "type": "object", + "properties": { + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name" + ] + }, + "CloudResult": { + "type": "object", + "properties": { + "cloud": { + "$ref": "#/definitions/Cloud" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "CloudResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudResult" + } + } + }, + "additionalProperties": false + }, + "CloudsResult": { + "type": "object", + "properties": { + "clouds": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Cloud" + } + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateCloudCredential": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "credential" + ] + }, + "UpdateCloudCredentials": { + "type": "object", + "properties": { + "credentials": { + "type": "array", + "items": { + "$ref": "#/definitions/UpdateCloudCredential" + } + } + }, + "additionalProperties": false + }, + "UserCloud": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "cloud-tag" + ] + }, + "UserClouds": { + "type": "object", + "properties": { + "user-clouds": { + "type": "array", + "items": { + "$ref": "#/definitions/UserCloud" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "Controller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AllModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DestroyController": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyControllerArgs" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/UserAccessResults" + } + } + }, + "HostedModelConfigs": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/HostedModelConfigsResults" + } + } + }, + "InitiateMigration": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/InitiateMigrationArgs" + }, + "Result": { + "$ref": "#/definitions/InitiateMigrationResults" + } + } + }, + "ListBlockedModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelBlockInfoList" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyControllerAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveBlocks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RemoveBlocksArgs" + } + } + }, + "WatchAllModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "DestroyControllerArgs": { + "type": "object", + "properties": { + "destroy-models": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "destroy-models" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostedModelConfig": { + "type": "object", + "properties": { + "cloud-spec": { + "$ref": "#/definitions/CloudSpec" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "owner": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner" + ] + }, + "HostedModelConfigsResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/HostedModelConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "InitiateMigrationArgs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/MigrationSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "InitiateMigrationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "migration-id": { + "type": "string" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "migration-id" + ] + }, + "InitiateMigrationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/InitiateMigrationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MigrationSpec": { + "type": "object", + "properties": { + "external-control": { + "type": "boolean" + }, + "model-tag": { + "type": "string" + }, + "skip-initial-prechecks": { + "type": "boolean" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info", + "external-control", + "skip-initial-prechecks" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelBlockInfo": { + "type": "object", + "properties": { + "blocks": { + "type": "array", + "items": { + "type": "string" + } + }, + "model-uuid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "model-uuid", + "owner-tag", + "blocks" + ] + }, + "ModelBlockInfoList": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelBlockInfo" + } + } + }, + "additionalProperties": false + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelStatus": { + "type": "object", + "properties": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access" + ] + }, + "ModifyControllerAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyControllerAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RemoveBlocksArgs": { + "type": "object", + "properties": { + "all": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "all" + ] + }, + "UserAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "access" + ] + }, + "UserAccessResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserAccess" + } + }, + "additionalProperties": false + }, + "UserAccessResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserAccessResult" + } + } + }, + "additionalProperties": false + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "Deployer", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "ConnectionInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DeployerConnectionValues" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "DeployerConnectionValues": { + "type": "object", + "properties": { + "api-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "state-addresses": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "state-addresses", + "api-addresses" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "DiscoverSpaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DiscoverSpacesResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "DiscoverSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderSpace" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ProviderSpace": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider-id", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "DiskManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineBlockDevices" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineBlockDevices": { + "type": "object", + "properties": { + "block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDevice" + } + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "machine-block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineBlockDevices" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-block-devices" + ] + } + } + } + }, + { + "Name": "EntityWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/EntitiesWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "EntitiesWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "FilesystemAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + }, + { + "Name": "Firewaller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "GetAssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetExposed": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "GetMachineActiveSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "GetMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachinePortsParams" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "WatchOpenedPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePorts": { + "type": "object", + "properties": { + "machine-tag": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "subnet-tag" + ] + }, + "MachinePortsParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePorts" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "HighAvailability", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "EnableHA": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ControllersSpecs" + }, + "Result": { + "$ref": "#/definitions/ControllersChangeResults" + } + } + }, + "ResumeHAReplicationAfterUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResumeReplicationParams" + } + } + }, + "StopHAReplicationForUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpgradeMongoParams" + }, + "Result": { + "$ref": "#/definitions/MongoUpgradeResults" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "Scope": { + "type": "string" + }, + "SpaceName": { + "type": "string" + }, + "SpaceProviderId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Value", + "Type", + "Scope", + "SpaceName", + "SpaceProviderId" + ] + }, + "ControllersChangeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ControllersChanges" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ControllersChangeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersChangeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ControllersChanges": { + "type": "object", + "properties": { + "added": { + "type": "array", + "items": { + "type": "string" + } + }, + "converted": { + "type": "array", + "items": { + "type": "string" + } + }, + "demoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "maintained": { + "type": "array", + "items": { + "type": "string" + } + }, + "promoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "removed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ControllersSpec": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "num-controllers": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "type": "string" + } + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "num-controllers" + ] + }, + "ControllersSpecs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "HAMember": { + "type": "object", + "properties": { + "public-address": { + "$ref": "#/definitions/Address" + }, + "series": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-address", + "series" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Member": { + "type": "object", + "properties": { + "Address": { + "type": "string" + }, + "Arbiter": { + "type": "boolean" + }, + "BuildIndexes": { + "type": "boolean" + }, + "Hidden": { + "type": "boolean" + }, + "Id": { + "type": "integer" + }, + "Priority": { + "type": "number" + }, + "SlaveDelay": { + "type": "integer" + }, + "Tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "Votes": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Id", + "Address", + "Arbiter", + "BuildIndexes", + "Hidden", + "Priority", + "Tags", + "SlaveDelay", + "Votes" + ] + }, + "MongoUpgradeResults": { + "type": "object", + "properties": { + "ha-members": { + "type": "array", + "items": { + "$ref": "#/definitions/HAMember" + } + }, + "master": { + "$ref": "#/definitions/HAMember" + }, + "rs-members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "rs-members", + "master", + "ha-members" + ] + }, + "MongoVersion": { + "type": "object", + "properties": { + "engine": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "patch": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "major", + "minor", + "patch", + "engine" + ] + }, + "ResumeReplicationParams": { + "type": "object", + "properties": { + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "members" + ] + }, + "UpgradeMongoParams": { + "type": "object", + "properties": { + "target": { + "$ref": "#/definitions/MongoVersion" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "HostKeyReporter", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ReportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SSHHostKeySet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHHostKeySet": { + "type": "object", + "properties": { + "entity-keys": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHHostKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "entity-keys" + ] + }, + "SSHHostKeys": { + "type": "object", + "properties": { + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-keys" + ] + } + } + } + }, + { + "Name": "ImageManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "DeleteImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ListImageResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageFilterParams": { + "type": "object", + "properties": { + "images": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "images" + ] + }, + "ImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series", + "url", + "created" + ] + }, + "ImageSpec": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series" + ] + }, + "ListImageResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "ImageMetadata", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Delete": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataImageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageMetadataFilter" + }, + "Result": { + "$ref": "#/definitions/ListCloudImageMetadataResult" + } + } + }, + "Save": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataSaveParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateFromPublishedImages": { + "type": "object" + } + }, + "definitions": { + "CloudImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "image-id": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "region": { + "type": "string" + }, + "root-storage-size": { + "type": "integer" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "string" + }, + "source": { + "type": "string" + }, + "stream": { + "type": "string" + }, + "version": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "image-id", + "region", + "version", + "series", + "arch", + "source", + "priority" + ] + }, + "CloudImageMetadataList": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageMetadataFilter": { + "type": "object", + "properties": { + "arches": { + "type": "array", + "items": { + "type": "string" + } + }, + "region": { + "type": "string" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "stream": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ListCloudImageMetadataResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MetadataImageIds": { + "type": "object", + "properties": { + "image-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "image-ids" + ] + }, + "MetadataSaveParams": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadataList" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "InstancePoller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AreManuallyProvisioned": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineAddressesResults" + } + } + }, + "SetInstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Status": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "MachineAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "MachineAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "KeyManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DeleteKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ImportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListSSHKeys" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSSHKeys": { + "type": "object", + "properties": { + "entities": { + "$ref": "#/definitions/Entities" + }, + "mode": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "mode" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModifyUserSSHKeys": { + "type": "object", + "properties": { + "ssh-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "ssh-keys" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "KeyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "WatchAuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LeadershipService", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "BlockUntilLeadershipReleased": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationTag" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "ClaimLeadership": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ClaimLeadershipBulkParams" + }, + "Result": { + "$ref": "#/definitions/ClaimLeadershipBulkResults" + } + } + } + }, + "definitions": { + "ApplicationTag": { + "type": "object", + "properties": { + "Name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Name" + ] + }, + "ClaimLeadershipBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/ClaimLeadershipParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "ClaimLeadershipBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ClaimLeadershipParams": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "duration": { + "type": "number" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "unit-tag", + "duration" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "LifeFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LogForwarding", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingGetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/LogForwardingGetLastSentResults" + } + } + }, + "SetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingSetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingGetLastSentParams": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingID" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "LogForwardingGetLastSentResult": { + "type": "object", + "properties": { + "err": { + "$ref": "#/definitions/Error" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "record-id", + "record-timestamp", + "err" + ] + }, + "LogForwardingGetLastSentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingGetLastSentResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingID": { + "type": "object", + "properties": { + "model": { + "type": "string" + }, + "sink": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model", + "sink" + ] + }, + "LogForwardingSetLastSentParam": { + "type": "object", + "properties": { + "LogForwardingID": { + "$ref": "#/definitions/LogForwardingID" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "LogForwardingID", + "record-id", + "record-timestamp" + ] + }, + "LogForwardingSetLastSentParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingSetLastSentParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Logger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "LoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "WatchLoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineActions", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RunningActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + } + }, + "definitions": { + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MachineUndertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AllMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/EntitiesResults" + } + } + }, + "CompleteMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + } + } + }, + "GetMachineProviderInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProviderInterfaceInfoResults" + } + } + }, + "WatchMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResult": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProviderInterfaceInfo": { + "type": "object", + "properties": { + "interface-name": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "provider-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "interface-name", + "mac-address", + "provider-id" + ] + }, + "ProviderInterfaceInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "interfaces": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfo" + } + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "interfaces" + ] + }, + "ProviderInterfaceInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Machiner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Jobs": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/JobsResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetMachineAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetObservedNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineNetworkConfig" + } + } + }, + "SetProviderNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "JobsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "jobs" + ] + }, + "JobsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/JobsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "device-index", + "mac-address", + "cidr", + "mtu", + "provider-id", + "provider-subnet-id", + "provider-space-id", + "provider-address-id", + "provider-vlan-id", + "vlan-tag", + "interface-name", + "parent-interface-name", + "interface-type", + "disabled" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetMachineNetworkConfig": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "config" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MeterStatus", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsAdder", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + } + } + } + }, + { + "Name": "MetricsDebug", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "GetMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MetricResults" + } + } + }, + "SetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MeterStatusParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityMetrics": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricResult" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusParam": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "code", + "info" + ] + }, + "MeterStatusParams": { + "type": "object", + "properties": { + "statues": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusParam" + } + } + }, + "additionalProperties": false, + "required": [ + "statues" + ] + }, + "MetricResult": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "unit": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "time", + "key", + "value", + "unit" + ] + }, + "MetricResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityMetrics" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "CleanupOldMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SendMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "MigrationFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Phase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PhaseResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PhaseResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "phase": { + "type": "string" + } + }, + "additionalProperties": false + }, + "PhaseResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PhaseResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MigrationMaster", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Export": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "MigrationStatus": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MasterMigrationStatus" + } + } + }, + "MinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MinionReports" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + }, + "Prechecks": { + "type": "object" + }, + "Reap": { + "type": "object" + }, + "SetPhase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationPhaseArgs" + } + } + }, + "SetStatusMessage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationStatusMessageArgs" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchMinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MasterMigrationStatus": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "phase-changed-time": { + "type": "string", + "format": "date-time" + }, + "spec": { + "$ref": "#/definitions/MigrationSpec" + } + }, + "additionalProperties": false, + "required": [ + "spec", + "migration-id", + "phase", + "phase-changed-time" + ] + }, + "MigrationModelInfo": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version" + ] + }, + "MigrationSpec": { + "type": "object", + "properties": { + "external-control": { + "type": "boolean" + }, + "model-tag": { + "type": "string" + }, + "skip-initial-prechecks": { + "type": "boolean" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info", + "external-control", + "skip-initial-prechecks" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "MinionReports": { + "type": "object", + "properties": { + "failed": { + "type": "array", + "items": { + "type": "string" + } + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success-count": { + "type": "integer" + }, + "unknown-count": { + "type": "integer" + }, + "unknown-sample": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success-count", + "unknown-count", + "unknown-sample", + "failed" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "tools" + ] + }, + "SerializedModelTools": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + }, + "SetMigrationPhaseArgs": { + "type": "object", + "properties": { + "phase": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "phase" + ] + }, + "SetMigrationStatusMessageArgs": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message" + ] + } + } + } + }, + { + "Name": "MigrationMinion", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Report": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MinionReport" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MinionReport": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "MigrationStatusWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationStatus" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "MigrationStatus": { + "type": "object", + "properties": { + "attempt": { + "type": "integer" + }, + "external-control": { + "type": "boolean" + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "source-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "source-ca-cert": { + "type": "string" + }, + "target-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "target-ca-cert": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "attempt", + "phase", + "external-control", + "source-api-addrs", + "source-ca-cert", + "target-api-addrs", + "target-ca-cert" + ] + } + } + } + }, + { + "Name": "MigrationTarget", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Abort": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "Activate": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "Import": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "Prechecks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + } + }, + "definitions": { + "MigrationModelInfo": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version" + ] + }, + "ModelArgs": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "tools" + ] + }, + "SerializedModelTools": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + } + } + } + }, + { + "Name": "ModelConfig", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + } + }, + "definitions": { + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelSet": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + } + } + } + }, + { + "Name": "ModelManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CreateModel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelCreateArgs" + }, + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "DestroyModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DumpModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "DumpModelsDB": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "ListModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entity" + }, + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "ModelDefaults": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelDefaultsResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelInfoResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyModelAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnsetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MapResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "MapResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MapResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelCreateArgs": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "credential": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "region": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner-tag" + ] + }, + "ModelDefaultValues": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelDefaults": { + "type": "object", + "properties": { + "controller": { + "type": "object", + "additionalProperties": true + }, + "default": { + "type": "object", + "additionalProperties": true + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/RegionDefaults" + } + } + }, + "additionalProperties": false + }, + "ModelDefaultsResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ModelDefaults" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "provider-type", + "default-series", + "cloud-tag", + "owner-tag", + "life", + "status", + "users", + "machines" + ] + }, + "ModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelInfo" + } + }, + "additionalProperties": false + }, + "ModelInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelStatus": { + "type": "object", + "properties": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelUnsetKeys": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "model-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access", + "model-tag" + ] + }, + "ModifyModelAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyModelAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RegionDefaults": { + "type": "object", + "properties": { + "region-name": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "region-name", + "value" + ] + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelDefaultValues" + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUnsetKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "NotifyWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Payloads", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EnvListArgs" + }, + "Result": { + "$ref": "#/definitions/EnvListResults" + } + } + } + }, + "definitions": { + "EnvListArgs": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "EnvListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + } + } + } + }, + { + "Name": "PayloadsHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "LookUp": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LookUpArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatusArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Track": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/TrackArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Untrack": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LookUpArg": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "id" + ] + }, + "LookUpArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/LookUpArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + }, + "PayloadResult": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "not-found": { + "type": "boolean" + }, + "payload": { + "$ref": "#/definitions/Payload" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "payload", + "not-found" + ] + }, + "PayloadResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PayloadResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatusArg": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "status" + ] + }, + "SetStatusArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/SetStatusArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "TrackArgs": { + "type": "object", + "properties": { + "payloads": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "payloads" + ] + } + } + } + }, + { + "Name": "Pinger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Ping": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Provisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "Constraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConstraintsResults" + } + } + }, + "ContainerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ContainerConfig" + } + } + }, + "ContainerManagerConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ContainerManagerConfigParams" + }, + "Result": { + "$ref": "#/definitions/ContainerManagerConfig" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DistributionGroup": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DistributionGroupResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "GetContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "MachinesWithTransientErrors": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "MarkMachinesForRemoval": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PrepareContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProvisioningInfoResults" + } + } + }, + "ReleaseContainerAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Series": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "SetInstanceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/InstancesInfo" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetInstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetSupportedContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineContainersParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "Status": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Tools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ToolsResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchAllContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/WatchContainers" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/WatchContainers" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchMachineErrorRetry": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "CloudImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "image-id": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "region": { + "type": "string" + }, + "root-storage-size": { + "type": "integer" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "string" + }, + "source": { + "type": "string" + }, + "stream": { + "type": "string" + }, + "version": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "image-id", + "region", + "version", + "series", + "arch", + "source", + "priority" + ] + }, + "ConstraintsResult": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "ConstraintsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConstraintsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ContainerConfig": { + "type": "object", + "properties": { + "UpdateBehavior": { + "$ref": "#/definitions/UpdateBehavior" + }, + "apt-mirror": { + "type": "string" + }, + "apt-proxy": { + "$ref": "#/definitions/Settings" + }, + "authorized-keys": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "proxy": { + "$ref": "#/definitions/Settings" + }, + "ssl-hostname-verification": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "provider-type", + "authorized-keys", + "ssl-hostname-verification", + "proxy", + "apt-proxy", + "apt-mirror", + "UpdateBehavior" + ] + }, + "ContainerManagerConfig": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ContainerManagerConfigParams": { + "type": "object", + "properties": { + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "DistributionGroupResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "DistributionGroupResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/DistributionGroupResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FindToolsParams": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "number": { + "$ref": "#/definitions/Number" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "number", + "major", + "minor", + "arch", + "series" + ] + }, + "FindToolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "InstanceInfo": { + "type": "object", + "properties": { + "characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "network-config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "nonce": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "volume-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/VolumeAttachmentInfo" + } + } + }, + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/Volume" + } + } + }, + "additionalProperties": false, + "required": [ + "tag", + "instance-id", + "nonce", + "characteristics", + "volumes", + "volume-attachments", + "network-config" + ] + }, + "InstancesInfo": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/InstanceInfo" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineContainers": { + "type": "object", + "properties": { + "container-types": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "container-types" + ] + }, + "MachineContainersParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineContainers" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MachineNetworkConfigResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "info" + ] + }, + "MachineNetworkConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineNetworkConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "device-index", + "mac-address", + "cidr", + "mtu", + "provider-id", + "provider-subnet-id", + "provider-space-id", + "provider-address-id", + "provider-vlan-id", + "vlan-tag", + "interface-name", + "parent-interface-name", + "interface-type", + "disabled" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "controller-config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "image-metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "placement": { + "type": "string" + }, + "series": { + "type": "string" + }, + "subnets-to-zones": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParams" + } + } + }, + "additionalProperties": false, + "required": [ + "constraints", + "series", + "placement", + "jobs" + ] + }, + "ProvisioningInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ProvisioningInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ProvisioningInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProvisioningInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Settings": { + "type": "object", + "properties": { + "Ftp": { + "type": "string" + }, + "Http": { + "type": "string" + }, + "Https": { + "type": "string" + }, + "NoProxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Http", + "Https", + "Ftp", + "NoProxy" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateBehavior": { + "type": "object", + "properties": { + "enable-os-refresh-update": { + "type": "boolean" + }, + "enable-os-upgrade": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "enable-os-refresh-update", + "enable-os-upgrade" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "WatchContainer": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "container-type" + ] + }, + "WatchContainers": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/WatchContainer" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + } + } + } + }, + { + "Name": "ProxyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ProxyConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProxyConfigResults" + } + } + }, + "WatchForProxyConfigAndAPIHostPortChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProxyConfig": { + "type": "object", + "properties": { + "ftp": { + "type": "string" + }, + "http": { + "type": "string" + }, + "https": { + "type": "string" + }, + "no-proxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "http", + "https", + "ftp", + "no-proxy" + ] + }, + "ProxyConfigResult": { + "type": "object", + "properties": { + "apt-proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + } + }, + "additionalProperties": false, + "required": [ + "proxy-settings", + "apt-proxy-settings" + ] + }, + "ProxyConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProxyConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Reboot", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetRebootAction": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RebootActionResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchForRebootEvent": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "RebootActionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false + }, + "RebootActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RebootActionResult" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "RelationUnitsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + } + } + } + }, + { + "Name": "Resources", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddPendingResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddPendingResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/AddPendingResourcesResult" + } + } + }, + "ListResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/ResourcesResults" + } + } + } + }, + "definitions": { + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddPendingResourcesArgs": { + "type": "object", + "properties": { + "AddCharmWithAuthorization": { + "$ref": "#/definitions/AddCharmWithAuthorization" + }, + "Entity": { + "$ref": "#/definitions/Entity" + }, + "Resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "AddCharmWithAuthorization", + "Resources" + ] + }, + "AddPendingResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "pending-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "pending-ids" + ] + }, + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListResourcesArgs": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "ResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "charm-store-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + }, + "unit-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitResources" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources", + "charm-store-resources", + "unit-resources" + ] + }, + "ResourcesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourcesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitResources": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "download-progress": { + "type": "object", + "patternProperties": { + ".*": { + "type": "integer" + } + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "resources", + "download-progress" + ] + } + } + } + }, + { + "Name": "ResourcesHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetResourceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/ResourcesResult" + } + } + } + }, + "definitions": { + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListResourcesArgs": { + "type": "object", + "properties": { + "resource-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "resource-names" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "ResourceResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resource": { + "$ref": "#/definitions/Resource" + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resource" + ] + }, + "ResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources" + ] + } + } + } + }, + { + "Name": "Resumer", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ResumeTransactions": { + "type": "object" + } + } + } + }, + { + "Name": "RetryStrategy", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "RetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RetryStrategyResults" + } + } + }, + "WatchRetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RetryStrategy": { + "type": "object", + "properties": { + "jitter-retry-time": { + "type": "boolean" + }, + "max-retry-time": { + "type": "integer" + }, + "min-retry-time": { + "type": "integer" + }, + "retry-time-factor": { + "type": "integer" + }, + "should-retry": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "should-retry", + "min-retry-time", + "max-retry-time", + "jitter-retry-time", + "retry-time-factor" + ] + }, + "RetryStrategyResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/RetryStrategy" + } + }, + "additionalProperties": false + }, + "RetryStrategyResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RetryStrategyResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "SSHClient", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AllAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressesResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "Proxy": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SSHProxyResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "PublicKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHPublicKeysResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHAddressResult": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "SSHAddressResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "SSHAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHProxyResult": { + "type": "object", + "properties": { + "use-proxy": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "use-proxy" + ] + }, + "SSHPublicKeysResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "SSHPublicKeysResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHPublicKeysResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Singular", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Claim": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SingularClaims" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Wait": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SingularClaim": { + "type": "object", + "properties": { + "controller-tag": { + "type": "string" + }, + "duration": { + "type": "integer" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "controller-tag", + "duration" + ] + }, + "SingularClaims": { + "type": "object", + "properties": { + "claims": { + "type": "array", + "items": { + "$ref": "#/definitions/SingularClaim" + } + } + }, + "additionalProperties": false, + "required": [ + "claims" + ] + } + } + } + }, + { + "Name": "Spaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ListSpacesResults" + } + } + } + }, + "definitions": { + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Space" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Space": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + } + } + } + }, + { + "Name": "StatusHistory", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Prune": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryPruneArgs" + } + } + } + }, + "definitions": { + "StatusHistoryPruneArgs": { + "type": "object", + "properties": { + "max-history-mb": { + "type": "integer" + }, + "max-history-time": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "max-history-time", + "max-history-mb" + ] + } + } + } + }, + { + "Name": "Storage", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddToUnit": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreatePool": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "ListFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemFilters" + }, + "Result": { + "$ref": "#/definitions/FilesystemDetailsListResults" + } + } + }, + "ListPools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePoolFilters" + }, + "Result": { + "$ref": "#/definitions/StoragePoolsResults" + } + } + }, + "ListStorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageFilters" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsListResults" + } + } + }, + "ListVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeFilters" + }, + "Result": { + "$ref": "#/definitions/VolumeDetailsListResults" + } + } + }, + "StorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemDetails": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info", + "status" + ] + }, + "FilesystemDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetails" + } + } + }, + "additionalProperties": false + }, + "FilesystemDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemFilter" + } + } + }, + "additionalProperties": false + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "size" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachmentDetails": { + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag", + "machine-tag" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StorageDetails": { + "type": "object", + "properties": { + "attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageAttachmentDetails" + } + } + }, + "kind": { + "type": "integer" + }, + "owner-tag": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "kind", + "status", + "persistent" + ] + }, + "StorageDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetails" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageDetails" + } + }, + "additionalProperties": false + }, + "StorageDetailsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsResult" + } + } + }, + "additionalProperties": false + }, + "StorageFilter": { + "type": "object", + "additionalProperties": false + }, + "StorageFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePool": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "name": { + "type": "string" + }, + "provider": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider", + "attrs" + ] + }, + "StoragePoolFilter": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + }, + "providers": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StoragePoolFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "storage-pools": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolsResult" + } + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeDetails": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/VolumeAttachmentInfo" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info", + "status" + ] + }, + "VolumeDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetails" + } + } + }, + "additionalProperties": false + }, + "VolumeDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "VolumeFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "VolumeFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeFilter" + } + } + }, + "additionalProperties": false + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + } + } + } + }, + { + "Name": "StorageProvisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentParamsResults" + } + } + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentResults" + } + } + }, + "FilesystemParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemParamsResults" + } + } + }, + "Filesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveAttachment": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Filesystems" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Volumes" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentParamsResults" + } + } + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentResults" + } + } + }, + "VolumeBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/BlockDeviceResults" + } + } + }, + "VolumeParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeParamsResults" + } + } + }, + "Volumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeResults" + } + } + }, + "WatchBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchFilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchVolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "BlockDeviceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/BlockDevice" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockDeviceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDeviceResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Filesystem": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info" + ] + }, + "FilesystemAttachment": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "info" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "filesystem-tag": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "mount-point": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "provider" + ] + }, + "FilesystemAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "filesystem-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystem-attachments" + ] + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "size" + ] + }, + "FilesystemParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/FilesystemAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "filesystem-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "size", + "provider" + ] + }, + "FilesystemParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Filesystem" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemResult" + } + } + }, + "additionalProperties": false + }, + "Filesystems": { + "type": "object", + "properties": { + "filesystems": { + "type": "array", + "items": { + "$ref": "#/definitions/Filesystem" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystems" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "MachineStorageIdsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachment": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeAttachmentInfo" + }, + "machine-tag": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "volume-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "volume-attachments" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "VolumeParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Volume" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeResult" + } + } + }, + "additionalProperties": false + }, + "Volumes": { + "type": "object", + "properties": { + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/Volume" + } + } + }, + "additionalProperties": false, + "required": [ + "volumes" + ] + } + } + } + }, + { + "Name": "StringsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Subnets", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SpaceResults" + } + } + }, + "AllZones": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ZoneResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SpaceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "SpaceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SpaceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ZoneResult": { + "type": "object", + "properties": { + "available": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "available" + ] + }, + "ZoneResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ZoneResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Undertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UndertakerModelInfoResult" + } + } + }, + "ProcessDyingModel": { + "type": "object" + }, + "RemoveModel": { + "type": "object" + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchModelResources": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "UndertakerModelInfo": { + "type": "object", + "properties": { + "global-name": { + "type": "string" + }, + "is-system": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "global-name", + "is-system", + "life" + ] + }, + "UndertakerModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UndertakerModelInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + } + } + } + }, + { + "Name": "UnitAssigner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AssignUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchUnitAssignments": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Uniter", + "Version": 4, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AddUnitStorage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationStatusResults" + } + } + }, + "AssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "AvailabilityZone": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "CharmArchiveSha256": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURLs" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "CharmModifiedVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/IntResults" + } + } + }, + "CharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "ClearResolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ClosePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConfigSettingsResults" + } + } + }, + "CurrentModel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelResult" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyAllSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnterScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "GetPrincipal": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "HasSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "JoinedRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "LeaveScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Merge": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "NetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnitsNetworkConfig" + }, + "Result": { + "$ref": "#/definitions/UnitNetworkConfigResults" + } + } + }, + "OpenPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "ProviderType": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Read": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/GetLeadershipSettingsBulkResults" + } + } + }, + "ReadRemoteSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitPairs" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "ReadSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "Relation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RelationById": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationIds" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RemoveStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ResolvedModeResults" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesCharmURL" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetUnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetWorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityWorkloadVersions" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StorageAttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "StorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentResults" + } + } + }, + "UnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "UnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentIdsResults" + } + } + }, + "UpdateSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitsSettings" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchApplicationRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchLeadershipSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchRelationUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResults" + } + } + }, + "WatchStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "ApplicationStatusResult": { + "type": "object", + "properties": { + "application": { + "$ref": "#/definitions/StatusResult" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StatusResult" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "units" + ] + }, + "ApplicationStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmURLs": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ConfigSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "ConfigSettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Endpoint": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "relation": { + "$ref": "#/definitions/CharmRelation" + } + }, + "additionalProperties": false, + "required": [ + "application-name", + "relation" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesCharmURL": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityCharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesPortRanges": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityCharmURL": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "charm-url" + ] + }, + "EntityPortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "protocol", + "from-port", + "to-port" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "EntityWorkloadVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "workload-version" + ] + }, + "EntityWorkloadVersions": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityWorkloadVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/GetLeadershipSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "IntResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "IntResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/IntResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "MergeLeadershipSettingsBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MergeLeadershipSettingsParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MergeLeadershipSettingsParam": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "settings" + ] + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "device-index", + "mac-address", + "cidr", + "mtu", + "provider-id", + "provider-subnet-id", + "provider-space-id", + "provider-address-id", + "provider-vlan-id", + "vlan-tag", + "interface-name", + "parent-interface-name", + "interface-type", + "disabled" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "RelationIds": { + "type": "object", + "properties": { + "relation-ids": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-ids" + ] + }, + "RelationResult": { + "type": "object", + "properties": { + "endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "integer" + }, + "key": { + "type": "string" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "id", + "key", + "endpoint" + ] + }, + "RelationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RelationUnit": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit" + ] + }, + "RelationUnitPair": { + "type": "object", + "properties": { + "local-unit": { + "type": "string" + }, + "relation": { + "type": "string" + }, + "remote-unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "local-unit", + "remote-unit" + ] + }, + "RelationUnitPairs": { + "type": "object", + "properties": { + "relation-unit-pairs": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitPair" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-unit-pairs" + ] + }, + "RelationUnitSettings": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit", + "settings" + ] + }, + "RelationUnits": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnit" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsSettings": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitSettings" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "RelationUnitsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ResolvedModeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "mode": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "mode" + ] + }, + "ResolvedModeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolvedModeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "SettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "SettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachment": { + "type": "object", + "properties": { + "kind": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "location": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "unit-tag", + "kind", + "location", + "life" + ] + }, + "StorageAttachmentId": { + "type": "object", + "properties": { + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag" + ] + }, + "StorageAttachmentIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "StorageAttachmentIdsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachmentIds" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentIdsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentIdsResult" + } + } + }, + "additionalProperties": false + }, + "StorageAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "StringBoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ok": { + "type": "boolean" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result", + "ok" + ] + }, + "StringBoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringBoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitNetworkConfig": { + "type": "object", + "properties": { + "binding-name": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "binding-name" + ] + }, + "UnitNetworkConfigResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "info" + ] + }, + "UnitNetworkConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitNetworkConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "UnitsNetworkConfig": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitNetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + } + } + } + }, + { + "Name": "Upgrader", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "DesiredVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VersionResults" + } + } + }, + "SetTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesVersion" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Tools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ToolsResults" + } + } + }, + "WatchAPIVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesVersion": { + "type": "object", + "properties": { + "agent-tools": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "agent-tools" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "tools": { + "$ref": "#/definitions/Version" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "tools" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Version": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "VersionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false + }, + "VersionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VersionResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "UserManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddUsers" + }, + "Result": { + "$ref": "#/definitions/AddUserResults" + } + } + }, + "DisableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPassword": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserInfoRequest" + }, + "Result": { + "$ref": "#/definitions/UserInfoResults" + } + } + } + }, + "definitions": { + "AddUser": { + "type": "object", + "properties": { + "display-name": { + "type": "string" + }, + "password": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name" + ] + }, + "AddUserResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "secret-key": { + "type": "array", + "items": { + "type": "integer" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false + }, + "AddUserResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUserResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AddUsers": { + "type": "object", + "properties": { + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUser" + } + } + }, + "additionalProperties": false, + "required": [ + "users" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "UserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "created-by": { + "type": "string" + }, + "date-created": { + "type": "string", + "format": "date-time" + }, + "disabled": { + "type": "boolean" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name", + "access", + "created-by", + "date-created", + "disabled" + ] + }, + "UserInfoRequest": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "include-disabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "include-disabled" + ] + }, + "UserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserInfo" + } + }, + "additionalProperties": false + }, + "UserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "VolumeAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + } +] diff --git a/modules/libjuju/juju/client/schemas-juju-2.0.3.json b/modules/libjuju/juju/client/schemas-juju-2.0.3.json new file mode 100644 index 0000000..69db493 --- /dev/null +++ b/modules/libjuju/juju/client/schemas-juju-2.0.3.json @@ -0,0 +1,24799 @@ +[ + { + "Name": "Action", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "ApplicationsCharmsActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationsCharmActionsResults" + } + } + }, + "Cancel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "Enqueue": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Actions" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "FindActionTagsByPrefix": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindTags" + }, + "Result": { + "$ref": "#/definitions/FindTagsResults" + } + } + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindActionsByNames" + }, + "Result": { + "$ref": "#/definitions/ActionsByNames" + } + } + }, + "ListAll": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListCompleted": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListPending": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListRunning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "Run": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "RunOnAllMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "Actions": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/Action" + } + } + }, + "additionalProperties": false + }, + "ActionsByName": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByNames": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByName" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "ApplicationCharmActionsResult": { + "type": "object", + "properties": { + "actions": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ActionSpec" + } + } + }, + "application-tag": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ApplicationsCharmActionsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationCharmActionsResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FindTags": { + "type": "object", + "properties": { + "prefixes": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "prefixes" + ] + }, + "FindTagsResults": { + "type": "object", + "properties": { + "matches": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + } + } + }, + "additionalProperties": false, + "required": [ + "matches" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RunParams": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "type": "string" + } + }, + "commands": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "type": "string" + } + }, + "timeout": { + "type": "integer" + }, + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "commands", + "timeout" + ] + } + } + } + }, + { + "Name": "Agent", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetEntities": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AgentGetEntitiesResults" + } + } + }, + "IsMaster": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/IsMasterResult" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateServingInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StateServingInfo" + } + } + }, + "WatchCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "AgentGetEntitiesResult": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "jobs", + "container-type" + ] + }, + "AgentGetEntitiesResults": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/AgentGetEntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "IsMasterResult": { + "type": "object", + "properties": { + "master": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "master" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StateServingInfo": { + "type": "object", + "properties": { + "api-port": { + "type": "integer" + }, + "ca-private-key": { + "type": "string" + }, + "cert": { + "type": "string" + }, + "private-key": { + "type": "string" + }, + "shared-secret": { + "type": "string" + }, + "state-port": { + "type": "integer" + }, + "system-identity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "api-port", + "state-port", + "cert", + "private-key", + "ca-private-key", + "shared-secret", + "system-identity" + ] + } + } + } + }, + { + "Name": "AgentTools", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "UpdateToolsAvailable": { + "type": "object" + } + } + } + }, + { + "Name": "AllModelWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "AllWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "Annotations", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AnnotationsGetResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AnnotationsSet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "AnnotationsGetResult": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/ErrorResult" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "AnnotationsGetResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AnnotationsGetResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AnnotationsSet": { + "type": "object", + "properties": { + "annotations": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityAnnotations" + } + } + }, + "additionalProperties": false, + "required": [ + "annotations" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityAnnotations": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Application", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddRelation" + }, + "Result": { + "$ref": "#/definitions/AddRelationResults" + } + } + }, + "AddUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddApplicationUnits" + }, + "Result": { + "$ref": "#/definitions/AddApplicationUnitsResults" + } + } + }, + "CharmRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationCharmRelations" + }, + "Result": { + "$ref": "#/definitions/ApplicationCharmRelationsResults" + } + } + }, + "Deploy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationsDeploy" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationDestroy" + } + } + }, + "DestroyRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyRelation" + } + } + }, + "DestroyUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyApplicationUnits" + } + } + }, + "Expose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationExpose" + } + } + }, + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/ApplicationGetResults" + } + } + }, + "GetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "GetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/GetApplicationConstraints" + }, + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSet" + } + } + }, + "SetCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSetCharm" + } + } + }, + "SetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "SetMetricCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationMetricCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Unexpose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnexpose" + } + } + }, + "Unset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnset" + } + } + }, + "Update": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUpdate" + } + } + } + }, + "definitions": { + "AddApplicationUnits": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "num-units", + "placement" + ] + }, + "AddApplicationUnitsResults": { + "type": "object", + "properties": { + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "units" + ] + }, + "AddRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "AddRelationResults": { + "type": "object", + "properties": { + "endpoints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "ApplicationCharmRelations": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationCharmRelationsResults": { + "type": "object", + "properties": { + "charm-relations": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-relations" + ] + }, + "ApplicationDeploy": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-yaml": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "series": { + "type": "string" + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Constraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "series", + "charm-url", + "channel", + "num-units", + "config-yaml", + "constraints" + ] + }, + "ApplicationDestroy": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationExpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGet": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGetResults": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm", + "config", + "constraints", + "series" + ] + }, + "ApplicationMetricCredential": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "metrics-credentials": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "metrics-credentials" + ] + }, + "ApplicationMetricCredentials": { + "type": "object", + "properties": { + "creds": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationMetricCredential" + } + } + }, + "additionalProperties": false, + "required": [ + "creds" + ] + }, + "ApplicationSet": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationSetCharm": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config-settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-settings-yaml": { + "type": "string" + }, + "force-series": { + "type": "boolean" + }, + "force-units": { + "type": "boolean" + }, + "resource-ids": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "storage-constraints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageConstraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "channel", + "force-units", + "force-series" + ] + }, + "ApplicationUnexpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationUnset": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationUpdate": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "force-charm-url": { + "type": "boolean" + }, + "force-series": { + "type": "boolean" + }, + "min-units": { + "type": "integer" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "settings-yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "force-charm-url", + "force-series", + "settings-yaml" + ] + }, + "ApplicationsDeploy": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationDeploy" + } + } + }, + "additionalProperties": false, + "required": [ + "applications" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyApplicationUnits": { + "type": "object", + "properties": { + "unit-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "unit-names" + ] + }, + "DestroyRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetApplicationConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "ApplicationRelationsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ApplicationRelationsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "ApplicationRelationsChange": { + "type": "object", + "properties": { + "changed": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationChange" + } + }, + "removed": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false + }, + "ApplicationRelationsWatchResult": { + "type": "object", + "properties": { + "ApplicationRelationsWatcherId": { + "type": "string" + }, + "changes": { + "$ref": "#/definitions/ApplicationRelationsChange" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "ApplicationRelationsWatcherId" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RelationChange": { + "type": "object", + "properties": { + "changedunits": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/RelationUnitChange" + } + } + }, + "departedunits": { + "type": "array", + "items": { + "type": "string" + } + }, + "id": { + "type": "integer" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life" + ] + }, + "RelationUnitChange": { + "type": "object", + "properties": { + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "ApplicationScaler", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Rescale": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Backups", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Create": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsCreateArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "FinishRestore": { + "type": "object" + }, + "Info": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsInfoArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsListArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsListResult" + } + } + }, + "PrepareRestore": { + "type": "object" + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsRemoveArgs" + } + } + }, + "Restore": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RestoreArgs" + } + } + } + }, + "definitions": { + "BackupsCreateArgs": { + "type": "object", + "properties": { + "notes": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "notes" + ] + }, + "BackupsInfoArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "BackupsListArgs": { + "type": "object", + "additionalProperties": false + }, + "BackupsListResult": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "BackupsMetadataResult": { + "type": "object", + "properties": { + "ca-cert": { + "type": "string" + }, + "ca-private-key": { + "type": "string" + }, + "checksum": { + "type": "string" + }, + "checksum-format": { + "type": "string" + }, + "finished": { + "type": "string", + "format": "date-time" + }, + "hostname": { + "type": "string" + }, + "id": { + "type": "string" + }, + "machine": { + "type": "string" + }, + "model": { + "type": "string" + }, + "notes": { + "type": "string" + }, + "series": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "started": { + "type": "string", + "format": "date-time" + }, + "stored": { + "type": "string", + "format": "date-time" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "id", + "checksum", + "checksum-format", + "size", + "stored", + "started", + "finished", + "notes", + "model", + "machine", + "hostname", + "version", + "series", + "ca-cert", + "ca-private-key" + ] + }, + "BackupsRemoveArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "RestoreArgs": { + "type": "object", + "properties": { + "backup-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "backup-id" + ] + } + } + } + }, + { + "Name": "Block", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BlockResults" + } + } + }, + "SwitchBlockOff": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "SwitchBlockOn": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Block": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "tag", + "type" + ] + }, + "BlockResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Block" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockResult" + } + } + }, + "additionalProperties": false + }, + "BlockSwitchParams": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Bundle", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + } + }, + "definitions": { + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "CharmRevisionUpdater", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "UpdateLatestRevisions": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Charms", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CharmInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/CharmInfo" + } + } + }, + "IsMetered": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/IsMeteredResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmsList" + }, + "Result": { + "$ref": "#/definitions/CharmsListResult" + } + } + } + }, + "definitions": { + "CharmActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "CharmActions": { + "type": "object", + "properties": { + "specs": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmActionSpec" + } + } + } + }, + "additionalProperties": false + }, + "CharmInfo": { + "type": "object", + "properties": { + "actions": { + "$ref": "#/definitions/CharmActions" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmOption" + } + } + }, + "meta": { + "$ref": "#/definitions/CharmMeta" + }, + "metrics": { + "$ref": "#/definitions/CharmMetrics" + }, + "revision": { + "type": "integer" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "revision", + "url", + "config" + ] + }, + "CharmMeta": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "extra-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "min-juju-version": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload-classes": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmPayloadClass" + } + } + }, + "peers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "provides": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "requires": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmResourceMeta" + } + } + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmStorage" + } + } + }, + "subordinate": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "terms": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "summary", + "description", + "subordinate" + ] + }, + "CharmMetric": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "description" + ] + }, + "CharmMetrics": { + "type": "object", + "properties": { + "metrics": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmMetric" + } + } + }, + "plan": { + "$ref": "#/definitions/CharmPlan" + } + }, + "additionalProperties": false, + "required": [ + "metrics", + "plan" + ] + }, + "CharmOption": { + "type": "object", + "properties": { + "default": { + "type": "object", + "additionalProperties": true + }, + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CharmPayloadClass": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type" + ] + }, + "CharmPlan": { + "type": "object", + "properties": { + "required": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "required" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmResourceMeta": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "description" + ] + }, + "CharmStorage": { + "type": "object", + "properties": { + "count-max": { + "type": "integer" + }, + "count-min": { + "type": "integer" + }, + "description": { + "type": "string" + }, + "location": { + "type": "string" + }, + "minimum-size": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + }, + "read-only": { + "type": "boolean" + }, + "shared": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "description", + "type", + "shared", + "read-only", + "count-min", + "count-max", + "minimum-size" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmsList": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "names" + ] + }, + "CharmsListResult": { + "type": "object", + "properties": { + "charm-urls": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-urls" + ] + }, + "IsMeteredResult": { + "type": "object", + "properties": { + "metered": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "metered" + ] + } + } + } + }, + { + "Name": "Cleaner", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Cleanup": { + "type": "object" + }, + "WatchCleanups": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "Client", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "AbortCurrentUpgrade": { + "type": "object" + }, + "AddCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharm" + } + } + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharmWithAuthorization" + } + } + }, + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AddMachinesV2": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AgentVersion": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AgentVersionResult" + } + } + }, + "DestroyMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyMachines" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "FullStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusParams" + }, + "Result": { + "$ref": "#/definitions/FullStatus" + } + } + }, + "GetBundleChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + }, + "GetModelConstraints": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "InjectMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelUserInfoResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PrivateAddress" + }, + "Result": { + "$ref": "#/definitions/PrivateAddressResults" + } + } + }, + "ProvisioningScript": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ProvisioningScriptParams" + }, + "Result": { + "$ref": "#/definitions/ProvisioningScriptResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PublicAddress" + }, + "Result": { + "$ref": "#/definitions/PublicAddressResults" + } + } + }, + "ResolveCharms": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResolveCharms" + }, + "Result": { + "$ref": "#/definitions/ResolveCharmResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Resolved" + } + } + }, + "RetryProvisioning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelAgentVersion" + } + } + }, + "SetModelConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "StatusHistory": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryRequests" + }, + "Result": { + "$ref": "#/definitions/StatusHistoryResults" + } + } + }, + "WatchAll": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "AddCharm": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel" + ] + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "AgentVersionResult": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "can-upgrade-to": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "exposed": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "meter-statuses": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MeterStatus" + } + } + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "series": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + }, + "subordinate-to": { + "type": "array", + "items": { + "type": "string" + } + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "charm", + "series", + "exposed", + "life", + "relations", + "can-upgrade-to", + "subordinate-to", + "units", + "meter-statuses", + "status", + "workload-version" + ] + }, + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyMachines": { + "type": "object", + "properties": { + "force": { + "type": "boolean" + }, + "machine-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-names", + "force" + ] + }, + "DetailedStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "info": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "data", + "since", + "kind", + "version", + "life" + ] + }, + "EndpointStatus": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "subordinate": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "application", + "name", + "role", + "subordinate" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FindToolsParams": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "number": { + "$ref": "#/definitions/Number" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "number", + "major", + "minor", + "arch", + "series" + ] + }, + "FindToolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "FullStatus": { + "type": "object", + "properties": { + "applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ApplicationStatus" + } + } + }, + "machines": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "model": { + "$ref": "#/definitions/ModelStatusInfo" + }, + "relations": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationStatus" + } + }, + "remote-applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/RemoteApplicationStatus" + } + } + } + }, + "additionalProperties": false, + "required": [ + "model", + "machines", + "applications", + "remote-applications", + "relations" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "History": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/definitions/DetailedStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "statuses" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MachineStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "containers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "dns-name": { + "type": "string" + }, + "hardware": { + "type": "string" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "instance-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "ip-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "series": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "instance-status", + "dns-name", + "ip-addresses", + "instance-id", + "series", + "id", + "containers", + "hardware", + "jobs", + "has-vote", + "wants-vote" + ] + }, + "MeterStatus": { + "type": "object", + "properties": { + "color": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "color", + "message" + ] + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "provider-type", + "default-series", + "cloud-tag", + "owner-tag", + "life", + "status", + "users", + "machines" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelSet": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelStatusInfo": { + "type": "object", + "properties": { + "available-version": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "migration": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "cloud-tag", + "version", + "available-version" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModelUserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "additionalProperties": false + }, + "ModelUserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "PrivateAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PrivateAddressResults": { + "type": "object", + "properties": { + "private-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "private-address" + ] + }, + "ProvisioningScriptParams": { + "type": "object", + "properties": { + "data-dir": { + "type": "string" + }, + "disable-package-commands": { + "type": "boolean" + }, + "machine-id": { + "type": "string" + }, + "nonce": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-id", + "nonce", + "data-dir", + "disable-package-commands" + ] + }, + "ProvisioningScriptResult": { + "type": "object", + "properties": { + "script": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "script" + ] + }, + "PublicAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PublicAddressResults": { + "type": "object", + "properties": { + "public-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "public-address" + ] + }, + "RelationStatus": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/EndpointStatus" + } + }, + "id": { + "type": "integer" + }, + "interface": { + "type": "string" + }, + "key": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "key", + "interface", + "scope", + "endpoints" + ] + }, + "RemoteApplicationStatus": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "application-url": { + "type": "string" + }, + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteEndpoint" + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "life": { + "type": "string" + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + } + }, + "additionalProperties": false, + "required": [ + "application-url", + "application-name", + "endpoints", + "life", + "relations", + "status" + ] + }, + "RemoteEndpoint": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "limit", + "scope" + ] + }, + "ResolveCharmResult": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ResolveCharmResults": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolveCharmResult" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ResolveCharms": { + "type": "object", + "properties": { + "references": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "references" + ] + }, + "Resolved": { + "type": "object", + "properties": { + "retry": { + "type": "boolean" + }, + "unit-name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-name", + "retry" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "StatusHistoryFilter": { + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "delta": { + "type": "integer" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "size", + "date", + "delta" + ] + }, + "StatusHistoryRequest": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/definitions/StatusHistoryFilter" + }, + "historyKind": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "historyKind", + "size", + "filter", + "tag" + ] + }, + "StatusHistoryRequests": { + "type": "object", + "properties": { + "requests": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryRequest" + } + } + }, + "additionalProperties": false, + "required": [ + "requests" + ] + }, + "StatusHistoryResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "history": { + "$ref": "#/definitions/History" + } + }, + "additionalProperties": false, + "required": [ + "history" + ] + }, + "StatusHistoryResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusParams": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "UnitStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "charm": { + "type": "string" + }, + "leader": { + "type": "boolean" + }, + "machine": { + "type": "string" + }, + "opened-ports": { + "type": "array", + "items": { + "type": "string" + } + }, + "public-address": { + "type": "string" + }, + "subordinates": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "workload-status", + "workload-version", + "machine", + "opened-ports", + "public-address", + "charm", + "subordinates" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "Cloud", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Cloud": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudResults" + } + } + }, + "Clouds": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/CloudsResult" + } + } + }, + "Credential": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudCredentialResults" + } + } + }, + "DefaultCloud": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "RevokeCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpdateCloudCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserClouds" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Cloud": { + "type": "object", + "properties": { + "auth-types": { + "type": "array", + "items": { + "type": "string" + } + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudRegion" + } + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudCredentialResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudCredential" + } + }, + "additionalProperties": false + }, + "CloudCredentialResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudCredentialResult" + } + } + }, + "additionalProperties": false + }, + "CloudRegion": { + "type": "object", + "properties": { + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name" + ] + }, + "CloudResult": { + "type": "object", + "properties": { + "cloud": { + "$ref": "#/definitions/Cloud" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "CloudResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudResult" + } + } + }, + "additionalProperties": false + }, + "CloudsResult": { + "type": "object", + "properties": { + "clouds": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Cloud" + } + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateCloudCredential": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "credential" + ] + }, + "UpdateCloudCredentials": { + "type": "object", + "properties": { + "credentials": { + "type": "array", + "items": { + "$ref": "#/definitions/UpdateCloudCredential" + } + } + }, + "additionalProperties": false + }, + "UserCloud": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "cloud-tag" + ] + }, + "UserClouds": { + "type": "object", + "properties": { + "user-clouds": { + "type": "array", + "items": { + "$ref": "#/definitions/UserCloud" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "Controller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AllModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DestroyController": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyControllerArgs" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/UserAccessResults" + } + } + }, + "HostedModelConfigs": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/HostedModelConfigsResults" + } + } + }, + "InitiateMigration": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/InitiateMigrationArgs" + }, + "Result": { + "$ref": "#/definitions/InitiateMigrationResults" + } + } + }, + "ListBlockedModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelBlockInfoList" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyControllerAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveBlocks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RemoveBlocksArgs" + } + } + }, + "WatchAllModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "DestroyControllerArgs": { + "type": "object", + "properties": { + "destroy-models": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "destroy-models" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostedModelConfig": { + "type": "object", + "properties": { + "cloud-spec": { + "$ref": "#/definitions/CloudSpec" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "owner": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner" + ] + }, + "HostedModelConfigsResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/HostedModelConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "InitiateMigrationArgs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/MigrationSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "InitiateMigrationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "migration-id": { + "type": "string" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "migration-id" + ] + }, + "InitiateMigrationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/InitiateMigrationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MigrationSpec": { + "type": "object", + "properties": { + "external-control": { + "type": "boolean" + }, + "model-tag": { + "type": "string" + }, + "skip-initial-prechecks": { + "type": "boolean" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info", + "external-control", + "skip-initial-prechecks" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelBlockInfo": { + "type": "object", + "properties": { + "blocks": { + "type": "array", + "items": { + "type": "string" + } + }, + "model-uuid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "model-uuid", + "owner-tag", + "blocks" + ] + }, + "ModelBlockInfoList": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelBlockInfo" + } + } + }, + "additionalProperties": false + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelStatus": { + "type": "object", + "properties": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access" + ] + }, + "ModifyControllerAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyControllerAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RemoveBlocksArgs": { + "type": "object", + "properties": { + "all": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "all" + ] + }, + "UserAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "access" + ] + }, + "UserAccessResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserAccess" + } + }, + "additionalProperties": false + }, + "UserAccessResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserAccessResult" + } + } + }, + "additionalProperties": false + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "Deployer", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "ConnectionInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DeployerConnectionValues" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "DeployerConnectionValues": { + "type": "object", + "properties": { + "api-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "state-addresses": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "state-addresses", + "api-addresses" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "DiscoverSpaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DiscoverSpacesResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "DiscoverSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderSpace" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ProviderSpace": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider-id", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "DiskManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineBlockDevices" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineBlockDevices": { + "type": "object", + "properties": { + "block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDevice" + } + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "machine-block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineBlockDevices" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-block-devices" + ] + } + } + } + }, + { + "Name": "EntityWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/EntitiesWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "EntitiesWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "FilesystemAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + }, + { + "Name": "Firewaller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "GetAssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetExposed": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "GetMachineActiveSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "GetMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachinePortsParams" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "WatchOpenedPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePorts": { + "type": "object", + "properties": { + "machine-tag": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "subnet-tag" + ] + }, + "MachinePortsParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePorts" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "HighAvailability", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "EnableHA": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ControllersSpecs" + }, + "Result": { + "$ref": "#/definitions/ControllersChangeResults" + } + } + }, + "ResumeHAReplicationAfterUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResumeReplicationParams" + } + } + }, + "StopHAReplicationForUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpgradeMongoParams" + }, + "Result": { + "$ref": "#/definitions/MongoUpgradeResults" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "Scope": { + "type": "string" + }, + "SpaceName": { + "type": "string" + }, + "SpaceProviderId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Value", + "Type", + "Scope", + "SpaceName", + "SpaceProviderId" + ] + }, + "ControllersChangeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ControllersChanges" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ControllersChangeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersChangeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ControllersChanges": { + "type": "object", + "properties": { + "added": { + "type": "array", + "items": { + "type": "string" + } + }, + "converted": { + "type": "array", + "items": { + "type": "string" + } + }, + "demoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "maintained": { + "type": "array", + "items": { + "type": "string" + } + }, + "promoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "removed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ControllersSpec": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "num-controllers": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "type": "string" + } + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "num-controllers" + ] + }, + "ControllersSpecs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "HAMember": { + "type": "object", + "properties": { + "public-address": { + "$ref": "#/definitions/Address" + }, + "series": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-address", + "series" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Member": { + "type": "object", + "properties": { + "Address": { + "type": "string" + }, + "Arbiter": { + "type": "boolean" + }, + "BuildIndexes": { + "type": "boolean" + }, + "Hidden": { + "type": "boolean" + }, + "Id": { + "type": "integer" + }, + "Priority": { + "type": "number" + }, + "SlaveDelay": { + "type": "integer" + }, + "Tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "Votes": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Id", + "Address", + "Arbiter", + "BuildIndexes", + "Hidden", + "Priority", + "Tags", + "SlaveDelay", + "Votes" + ] + }, + "MongoUpgradeResults": { + "type": "object", + "properties": { + "ha-members": { + "type": "array", + "items": { + "$ref": "#/definitions/HAMember" + } + }, + "master": { + "$ref": "#/definitions/HAMember" + }, + "rs-members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "rs-members", + "master", + "ha-members" + ] + }, + "MongoVersion": { + "type": "object", + "properties": { + "engine": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "patch": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "major", + "minor", + "patch", + "engine" + ] + }, + "ResumeReplicationParams": { + "type": "object", + "properties": { + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "members" + ] + }, + "UpgradeMongoParams": { + "type": "object", + "properties": { + "target": { + "$ref": "#/definitions/MongoVersion" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "HostKeyReporter", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ReportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SSHHostKeySet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHHostKeySet": { + "type": "object", + "properties": { + "entity-keys": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHHostKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "entity-keys" + ] + }, + "SSHHostKeys": { + "type": "object", + "properties": { + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-keys" + ] + } + } + } + }, + { + "Name": "ImageManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "DeleteImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ListImageResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageFilterParams": { + "type": "object", + "properties": { + "images": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "images" + ] + }, + "ImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series", + "url", + "created" + ] + }, + "ImageSpec": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series" + ] + }, + "ListImageResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "ImageMetadata", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Delete": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataImageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageMetadataFilter" + }, + "Result": { + "$ref": "#/definitions/ListCloudImageMetadataResult" + } + } + }, + "Save": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataSaveParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateFromPublishedImages": { + "type": "object" + } + }, + "definitions": { + "CloudImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "image-id": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "region": { + "type": "string" + }, + "root-storage-size": { + "type": "integer" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "string" + }, + "source": { + "type": "string" + }, + "stream": { + "type": "string" + }, + "version": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "image-id", + "region", + "version", + "series", + "arch", + "source", + "priority" + ] + }, + "CloudImageMetadataList": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageMetadataFilter": { + "type": "object", + "properties": { + "arches": { + "type": "array", + "items": { + "type": "string" + } + }, + "region": { + "type": "string" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "stream": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ListCloudImageMetadataResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MetadataImageIds": { + "type": "object", + "properties": { + "image-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "image-ids" + ] + }, + "MetadataSaveParams": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadataList" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "InstancePoller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AreManuallyProvisioned": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineAddressesResults" + } + } + }, + "SetInstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Status": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "MachineAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "MachineAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "KeyManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DeleteKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ImportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListSSHKeys" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSSHKeys": { + "type": "object", + "properties": { + "entities": { + "$ref": "#/definitions/Entities" + }, + "mode": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "mode" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModifyUserSSHKeys": { + "type": "object", + "properties": { + "ssh-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "ssh-keys" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "KeyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "WatchAuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LeadershipService", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "BlockUntilLeadershipReleased": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationTag" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "ClaimLeadership": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ClaimLeadershipBulkParams" + }, + "Result": { + "$ref": "#/definitions/ClaimLeadershipBulkResults" + } + } + } + }, + "definitions": { + "ApplicationTag": { + "type": "object", + "properties": { + "Name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Name" + ] + }, + "ClaimLeadershipBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/ClaimLeadershipParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "ClaimLeadershipBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ClaimLeadershipParams": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "duration": { + "type": "number" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "unit-tag", + "duration" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "LifeFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LogForwarding", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingGetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/LogForwardingGetLastSentResults" + } + } + }, + "SetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingSetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingGetLastSentParams": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingID" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "LogForwardingGetLastSentResult": { + "type": "object", + "properties": { + "err": { + "$ref": "#/definitions/Error" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "record-id", + "record-timestamp", + "err" + ] + }, + "LogForwardingGetLastSentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingGetLastSentResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingID": { + "type": "object", + "properties": { + "model": { + "type": "string" + }, + "sink": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model", + "sink" + ] + }, + "LogForwardingSetLastSentParam": { + "type": "object", + "properties": { + "LogForwardingID": { + "$ref": "#/definitions/LogForwardingID" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "LogForwardingID", + "record-id", + "record-timestamp" + ] + }, + "LogForwardingSetLastSentParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingSetLastSentParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Logger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "LoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "WatchLoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineActions", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RunningActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + } + }, + "definitions": { + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MachineUndertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AllMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/EntitiesResults" + } + } + }, + "CompleteMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + } + } + }, + "GetMachineProviderInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProviderInterfaceInfoResults" + } + } + }, + "WatchMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResult": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProviderInterfaceInfo": { + "type": "object", + "properties": { + "interface-name": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "provider-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "interface-name", + "mac-address", + "provider-id" + ] + }, + "ProviderInterfaceInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "interfaces": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfo" + } + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "interfaces" + ] + }, + "ProviderInterfaceInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Machiner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Jobs": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/JobsResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetMachineAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetObservedNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineNetworkConfig" + } + } + }, + "SetProviderNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "JobsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "jobs" + ] + }, + "JobsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/JobsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "device-index", + "mac-address", + "cidr", + "mtu", + "provider-id", + "provider-subnet-id", + "provider-space-id", + "provider-address-id", + "provider-vlan-id", + "vlan-tag", + "interface-name", + "parent-interface-name", + "interface-type", + "disabled" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetMachineNetworkConfig": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "config" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MeterStatus", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsAdder", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + } + } + } + }, + { + "Name": "MetricsDebug", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "GetMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MetricResults" + } + } + }, + "SetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MeterStatusParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityMetrics": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricResult" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusParam": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "code", + "info" + ] + }, + "MeterStatusParams": { + "type": "object", + "properties": { + "statues": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusParam" + } + } + }, + "additionalProperties": false, + "required": [ + "statues" + ] + }, + "MetricResult": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "unit": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "time", + "key", + "value", + "unit" + ] + }, + "MetricResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityMetrics" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "CleanupOldMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SendMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "MigrationFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Phase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PhaseResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PhaseResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "phase": { + "type": "string" + } + }, + "additionalProperties": false + }, + "PhaseResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PhaseResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MigrationMaster", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Export": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "MigrationStatus": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MasterMigrationStatus" + } + } + }, + "MinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MinionReports" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + }, + "Prechecks": { + "type": "object" + }, + "Reap": { + "type": "object" + }, + "SetPhase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationPhaseArgs" + } + } + }, + "SetStatusMessage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationStatusMessageArgs" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchMinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MasterMigrationStatus": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "phase-changed-time": { + "type": "string", + "format": "date-time" + }, + "spec": { + "$ref": "#/definitions/MigrationSpec" + } + }, + "additionalProperties": false, + "required": [ + "spec", + "migration-id", + "phase", + "phase-changed-time" + ] + }, + "MigrationModelInfo": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version" + ] + }, + "MigrationSpec": { + "type": "object", + "properties": { + "external-control": { + "type": "boolean" + }, + "model-tag": { + "type": "string" + }, + "skip-initial-prechecks": { + "type": "boolean" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info", + "external-control", + "skip-initial-prechecks" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "MinionReports": { + "type": "object", + "properties": { + "failed": { + "type": "array", + "items": { + "type": "string" + } + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success-count": { + "type": "integer" + }, + "unknown-count": { + "type": "integer" + }, + "unknown-sample": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success-count", + "unknown-count", + "unknown-sample", + "failed" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "tools" + ] + }, + "SerializedModelTools": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + }, + "SetMigrationPhaseArgs": { + "type": "object", + "properties": { + "phase": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "phase" + ] + }, + "SetMigrationStatusMessageArgs": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message" + ] + } + } + } + }, + { + "Name": "MigrationMinion", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Report": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MinionReport" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MinionReport": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "MigrationStatusWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationStatus" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "MigrationStatus": { + "type": "object", + "properties": { + "attempt": { + "type": "integer" + }, + "external-control": { + "type": "boolean" + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "source-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "source-ca-cert": { + "type": "string" + }, + "target-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "target-ca-cert": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "attempt", + "phase", + "external-control", + "source-api-addrs", + "source-ca-cert", + "target-api-addrs", + "target-ca-cert" + ] + } + } + } + }, + { + "Name": "MigrationTarget", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Abort": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "Activate": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "Import": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "Prechecks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + } + }, + "definitions": { + "MigrationModelInfo": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version" + ] + }, + "ModelArgs": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "tools" + ] + }, + "SerializedModelTools": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + } + } + } + }, + { + "Name": "ModelConfig", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + } + }, + "definitions": { + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelSet": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + } + } + } + }, + { + "Name": "ModelManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CreateModel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelCreateArgs" + }, + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "DestroyModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DumpModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "DumpModelsDB": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "ListModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entity" + }, + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "ModelDefaults": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelDefaultsResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelInfoResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyModelAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnsetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MapResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "MapResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MapResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelCreateArgs": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "credential": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "region": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner-tag" + ] + }, + "ModelDefaultValues": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelDefaults": { + "type": "object", + "properties": { + "controller": { + "type": "object", + "additionalProperties": true + }, + "default": { + "type": "object", + "additionalProperties": true + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/RegionDefaults" + } + } + }, + "additionalProperties": false + }, + "ModelDefaultsResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ModelDefaults" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "provider-type", + "default-series", + "cloud-tag", + "owner-tag", + "life", + "status", + "users", + "machines" + ] + }, + "ModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelInfo" + } + }, + "additionalProperties": false + }, + "ModelInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelStatus": { + "type": "object", + "properties": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelUnsetKeys": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "model-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access", + "model-tag" + ] + }, + "ModifyModelAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyModelAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RegionDefaults": { + "type": "object", + "properties": { + "region-name": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "region-name", + "value" + ] + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelDefaultValues" + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUnsetKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "NotifyWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Payloads", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EnvListArgs" + }, + "Result": { + "$ref": "#/definitions/EnvListResults" + } + } + } + }, + "definitions": { + "EnvListArgs": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "EnvListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + } + } + } + }, + { + "Name": "PayloadsHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "LookUp": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LookUpArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatusArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Track": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/TrackArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Untrack": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LookUpArg": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "id" + ] + }, + "LookUpArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/LookUpArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + }, + "PayloadResult": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "not-found": { + "type": "boolean" + }, + "payload": { + "$ref": "#/definitions/Payload" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "payload", + "not-found" + ] + }, + "PayloadResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PayloadResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatusArg": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "status" + ] + }, + "SetStatusArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/SetStatusArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "TrackArgs": { + "type": "object", + "properties": { + "payloads": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "payloads" + ] + } + } + } + }, + { + "Name": "Pinger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Ping": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Provisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "Constraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConstraintsResults" + } + } + }, + "ContainerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ContainerConfig" + } + } + }, + "ContainerManagerConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ContainerManagerConfigParams" + }, + "Result": { + "$ref": "#/definitions/ContainerManagerConfig" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DistributionGroup": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DistributionGroupResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "GetContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "MachinesWithTransientErrors": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "MarkMachinesForRemoval": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PrepareContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProvisioningInfoResults" + } + } + }, + "ReleaseContainerAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Series": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "SetInstanceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/InstancesInfo" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetInstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetSupportedContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineContainersParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "Status": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Tools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ToolsResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchAllContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/WatchContainers" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/WatchContainers" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchMachineErrorRetry": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "CloudImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "image-id": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "region": { + "type": "string" + }, + "root-storage-size": { + "type": "integer" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "string" + }, + "source": { + "type": "string" + }, + "stream": { + "type": "string" + }, + "version": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "image-id", + "region", + "version", + "series", + "arch", + "source", + "priority" + ] + }, + "ConstraintsResult": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "ConstraintsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConstraintsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ContainerConfig": { + "type": "object", + "properties": { + "UpdateBehavior": { + "$ref": "#/definitions/UpdateBehavior" + }, + "apt-mirror": { + "type": "string" + }, + "apt-proxy": { + "$ref": "#/definitions/Settings" + }, + "authorized-keys": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "proxy": { + "$ref": "#/definitions/Settings" + }, + "ssl-hostname-verification": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "provider-type", + "authorized-keys", + "ssl-hostname-verification", + "proxy", + "apt-proxy", + "apt-mirror", + "UpdateBehavior" + ] + }, + "ContainerManagerConfig": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ContainerManagerConfigParams": { + "type": "object", + "properties": { + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "DistributionGroupResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "DistributionGroupResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/DistributionGroupResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FindToolsParams": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "number": { + "$ref": "#/definitions/Number" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "number", + "major", + "minor", + "arch", + "series" + ] + }, + "FindToolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "InstanceInfo": { + "type": "object", + "properties": { + "characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "network-config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "nonce": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "volume-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/VolumeAttachmentInfo" + } + } + }, + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/Volume" + } + } + }, + "additionalProperties": false, + "required": [ + "tag", + "instance-id", + "nonce", + "characteristics", + "volumes", + "volume-attachments", + "network-config" + ] + }, + "InstancesInfo": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/InstanceInfo" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineContainers": { + "type": "object", + "properties": { + "container-types": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "container-types" + ] + }, + "MachineContainersParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineContainers" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MachineNetworkConfigResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "info" + ] + }, + "MachineNetworkConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineNetworkConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "device-index", + "mac-address", + "cidr", + "mtu", + "provider-id", + "provider-subnet-id", + "provider-space-id", + "provider-address-id", + "provider-vlan-id", + "vlan-tag", + "interface-name", + "parent-interface-name", + "interface-type", + "disabled" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "controller-config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "image-metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "placement": { + "type": "string" + }, + "series": { + "type": "string" + }, + "subnets-to-zones": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParams" + } + } + }, + "additionalProperties": false, + "required": [ + "constraints", + "series", + "placement", + "jobs" + ] + }, + "ProvisioningInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ProvisioningInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ProvisioningInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProvisioningInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Settings": { + "type": "object", + "properties": { + "Ftp": { + "type": "string" + }, + "Http": { + "type": "string" + }, + "Https": { + "type": "string" + }, + "NoProxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Http", + "Https", + "Ftp", + "NoProxy" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateBehavior": { + "type": "object", + "properties": { + "enable-os-refresh-update": { + "type": "boolean" + }, + "enable-os-upgrade": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "enable-os-refresh-update", + "enable-os-upgrade" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "WatchContainer": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "container-type" + ] + }, + "WatchContainers": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/WatchContainer" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + } + } + } + }, + { + "Name": "ProxyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ProxyConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProxyConfigResults" + } + } + }, + "WatchForProxyConfigAndAPIHostPortChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProxyConfig": { + "type": "object", + "properties": { + "ftp": { + "type": "string" + }, + "http": { + "type": "string" + }, + "https": { + "type": "string" + }, + "no-proxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "http", + "https", + "ftp", + "no-proxy" + ] + }, + "ProxyConfigResult": { + "type": "object", + "properties": { + "apt-proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + } + }, + "additionalProperties": false, + "required": [ + "proxy-settings", + "apt-proxy-settings" + ] + }, + "ProxyConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProxyConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Reboot", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetRebootAction": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RebootActionResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchForRebootEvent": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "RebootActionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false + }, + "RebootActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RebootActionResult" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "RelationUnitsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + } + } + } + }, + { + "Name": "Resources", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddPendingResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddPendingResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/AddPendingResourcesResult" + } + } + }, + "ListResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/ResourcesResults" + } + } + } + }, + "definitions": { + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddPendingResourcesArgs": { + "type": "object", + "properties": { + "AddCharmWithAuthorization": { + "$ref": "#/definitions/AddCharmWithAuthorization" + }, + "Entity": { + "$ref": "#/definitions/Entity" + }, + "Resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "AddCharmWithAuthorization", + "Resources" + ] + }, + "AddPendingResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "pending-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "pending-ids" + ] + }, + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListResourcesArgs": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "ResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "charm-store-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + }, + "unit-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitResources" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources", + "charm-store-resources", + "unit-resources" + ] + }, + "ResourcesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourcesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitResources": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "download-progress": { + "type": "object", + "patternProperties": { + ".*": { + "type": "integer" + } + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "resources", + "download-progress" + ] + } + } + } + }, + { + "Name": "ResourcesHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetResourceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/ResourcesResult" + } + } + } + }, + "definitions": { + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListResourcesArgs": { + "type": "object", + "properties": { + "resource-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "resource-names" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "ResourceResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resource": { + "$ref": "#/definitions/Resource" + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resource" + ] + }, + "ResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources" + ] + } + } + } + }, + { + "Name": "Resumer", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ResumeTransactions": { + "type": "object" + } + } + } + }, + { + "Name": "RetryStrategy", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "RetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RetryStrategyResults" + } + } + }, + "WatchRetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RetryStrategy": { + "type": "object", + "properties": { + "jitter-retry-time": { + "type": "boolean" + }, + "max-retry-time": { + "type": "integer" + }, + "min-retry-time": { + "type": "integer" + }, + "retry-time-factor": { + "type": "integer" + }, + "should-retry": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "should-retry", + "min-retry-time", + "max-retry-time", + "jitter-retry-time", + "retry-time-factor" + ] + }, + "RetryStrategyResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/RetryStrategy" + } + }, + "additionalProperties": false + }, + "RetryStrategyResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RetryStrategyResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "SSHClient", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AllAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressesResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "Proxy": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SSHProxyResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "PublicKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHPublicKeysResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHAddressResult": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "SSHAddressResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "SSHAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHProxyResult": { + "type": "object", + "properties": { + "use-proxy": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "use-proxy" + ] + }, + "SSHPublicKeysResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "SSHPublicKeysResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHPublicKeysResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Singular", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Claim": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SingularClaims" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Wait": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SingularClaim": { + "type": "object", + "properties": { + "controller-tag": { + "type": "string" + }, + "duration": { + "type": "integer" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "controller-tag", + "duration" + ] + }, + "SingularClaims": { + "type": "object", + "properties": { + "claims": { + "type": "array", + "items": { + "$ref": "#/definitions/SingularClaim" + } + } + }, + "additionalProperties": false, + "required": [ + "claims" + ] + } + } + } + }, + { + "Name": "Spaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ListSpacesResults" + } + } + } + }, + "definitions": { + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Space" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Space": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + } + } + } + }, + { + "Name": "StatusHistory", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Prune": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryPruneArgs" + } + } + } + }, + "definitions": { + "StatusHistoryPruneArgs": { + "type": "object", + "properties": { + "max-history-mb": { + "type": "integer" + }, + "max-history-time": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "max-history-time", + "max-history-mb" + ] + } + } + } + }, + { + "Name": "Storage", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddToUnit": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreatePool": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "ListFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemFilters" + }, + "Result": { + "$ref": "#/definitions/FilesystemDetailsListResults" + } + } + }, + "ListPools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePoolFilters" + }, + "Result": { + "$ref": "#/definitions/StoragePoolsResults" + } + } + }, + "ListStorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageFilters" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsListResults" + } + } + }, + "ListVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeFilters" + }, + "Result": { + "$ref": "#/definitions/VolumeDetailsListResults" + } + } + }, + "StorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemDetails": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info", + "status" + ] + }, + "FilesystemDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetails" + } + } + }, + "additionalProperties": false + }, + "FilesystemDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemFilter" + } + } + }, + "additionalProperties": false + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "size" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachmentDetails": { + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag", + "machine-tag" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StorageDetails": { + "type": "object", + "properties": { + "attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageAttachmentDetails" + } + } + }, + "kind": { + "type": "integer" + }, + "owner-tag": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "kind", + "status", + "persistent" + ] + }, + "StorageDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetails" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageDetails" + } + }, + "additionalProperties": false + }, + "StorageDetailsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsResult" + } + } + }, + "additionalProperties": false + }, + "StorageFilter": { + "type": "object", + "additionalProperties": false + }, + "StorageFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePool": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "name": { + "type": "string" + }, + "provider": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider", + "attrs" + ] + }, + "StoragePoolFilter": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + }, + "providers": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StoragePoolFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "storage-pools": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolsResult" + } + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeDetails": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/VolumeAttachmentInfo" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info", + "status" + ] + }, + "VolumeDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetails" + } + } + }, + "additionalProperties": false + }, + "VolumeDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "VolumeFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "VolumeFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeFilter" + } + } + }, + "additionalProperties": false + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + } + } + } + }, + { + "Name": "StorageProvisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentParamsResults" + } + } + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentResults" + } + } + }, + "FilesystemParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemParamsResults" + } + } + }, + "Filesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveAttachment": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Filesystems" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Volumes" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentParamsResults" + } + } + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentResults" + } + } + }, + "VolumeBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/BlockDeviceResults" + } + } + }, + "VolumeParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeParamsResults" + } + } + }, + "Volumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeResults" + } + } + }, + "WatchBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchFilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchVolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "BlockDeviceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/BlockDevice" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockDeviceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDeviceResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Filesystem": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info" + ] + }, + "FilesystemAttachment": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "info" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "filesystem-tag": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "mount-point": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "provider" + ] + }, + "FilesystemAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "filesystem-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystem-attachments" + ] + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "size" + ] + }, + "FilesystemParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/FilesystemAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "filesystem-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "size", + "provider" + ] + }, + "FilesystemParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Filesystem" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemResult" + } + } + }, + "additionalProperties": false + }, + "Filesystems": { + "type": "object", + "properties": { + "filesystems": { + "type": "array", + "items": { + "$ref": "#/definitions/Filesystem" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystems" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "MachineStorageIdsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachment": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeAttachmentInfo" + }, + "machine-tag": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "volume-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "volume-attachments" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "VolumeParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Volume" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeResult" + } + } + }, + "additionalProperties": false + }, + "Volumes": { + "type": "object", + "properties": { + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/Volume" + } + } + }, + "additionalProperties": false, + "required": [ + "volumes" + ] + } + } + } + }, + { + "Name": "StringsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Subnets", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SpaceResults" + } + } + }, + "AllZones": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ZoneResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SpaceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "SpaceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SpaceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ZoneResult": { + "type": "object", + "properties": { + "available": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "available" + ] + }, + "ZoneResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ZoneResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Undertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UndertakerModelInfoResult" + } + } + }, + "ProcessDyingModel": { + "type": "object" + }, + "RemoveModel": { + "type": "object" + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchModelResources": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "UndertakerModelInfo": { + "type": "object", + "properties": { + "global-name": { + "type": "string" + }, + "is-system": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "global-name", + "is-system", + "life" + ] + }, + "UndertakerModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UndertakerModelInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + } + } + } + }, + { + "Name": "UnitAssigner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AssignUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchUnitAssignments": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Uniter", + "Version": 4, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AddUnitStorage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationStatusResults" + } + } + }, + "AssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "AvailabilityZone": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "CharmArchiveSha256": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURLs" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "CharmModifiedVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/IntResults" + } + } + }, + "CharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "ClearResolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ClosePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConfigSettingsResults" + } + } + }, + "CurrentModel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelResult" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyAllSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnterScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "GetPrincipal": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "HasSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "JoinedRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "LeaveScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Merge": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "NetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnitsNetworkConfig" + }, + "Result": { + "$ref": "#/definitions/UnitNetworkConfigResults" + } + } + }, + "OpenPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "ProviderType": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Read": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/GetLeadershipSettingsBulkResults" + } + } + }, + "ReadRemoteSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitPairs" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "ReadSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "Relation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RelationById": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationIds" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RemoveStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ResolvedModeResults" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesCharmURL" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetUnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetWorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityWorkloadVersions" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StorageAttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "StorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentResults" + } + } + }, + "UnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "UnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentIdsResults" + } + } + }, + "UpdateSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitsSettings" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchApplicationRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchLeadershipSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchRelationUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResults" + } + } + }, + "WatchStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "ApplicationStatusResult": { + "type": "object", + "properties": { + "application": { + "$ref": "#/definitions/StatusResult" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StatusResult" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "units" + ] + }, + "ApplicationStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmURLs": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ConfigSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "ConfigSettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Endpoint": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "relation": { + "$ref": "#/definitions/CharmRelation" + } + }, + "additionalProperties": false, + "required": [ + "application-name", + "relation" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesCharmURL": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityCharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesPortRanges": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityCharmURL": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "charm-url" + ] + }, + "EntityPortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "protocol", + "from-port", + "to-port" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "EntityWorkloadVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "workload-version" + ] + }, + "EntityWorkloadVersions": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityWorkloadVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/GetLeadershipSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "IntResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "IntResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/IntResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "MergeLeadershipSettingsBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MergeLeadershipSettingsParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MergeLeadershipSettingsParam": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "settings" + ] + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "device-index", + "mac-address", + "cidr", + "mtu", + "provider-id", + "provider-subnet-id", + "provider-space-id", + "provider-address-id", + "provider-vlan-id", + "vlan-tag", + "interface-name", + "parent-interface-name", + "interface-type", + "disabled" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "RelationIds": { + "type": "object", + "properties": { + "relation-ids": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-ids" + ] + }, + "RelationResult": { + "type": "object", + "properties": { + "endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "integer" + }, + "key": { + "type": "string" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "id", + "key", + "endpoint" + ] + }, + "RelationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RelationUnit": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit" + ] + }, + "RelationUnitPair": { + "type": "object", + "properties": { + "local-unit": { + "type": "string" + }, + "relation": { + "type": "string" + }, + "remote-unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "local-unit", + "remote-unit" + ] + }, + "RelationUnitPairs": { + "type": "object", + "properties": { + "relation-unit-pairs": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitPair" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-unit-pairs" + ] + }, + "RelationUnitSettings": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit", + "settings" + ] + }, + "RelationUnits": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnit" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsSettings": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitSettings" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "RelationUnitsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ResolvedModeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "mode": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "mode" + ] + }, + "ResolvedModeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolvedModeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "SettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "SettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachment": { + "type": "object", + "properties": { + "kind": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "location": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "unit-tag", + "kind", + "location", + "life" + ] + }, + "StorageAttachmentId": { + "type": "object", + "properties": { + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag" + ] + }, + "StorageAttachmentIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "StorageAttachmentIdsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachmentIds" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentIdsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentIdsResult" + } + } + }, + "additionalProperties": false + }, + "StorageAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "StringBoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ok": { + "type": "boolean" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result", + "ok" + ] + }, + "StringBoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringBoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitNetworkConfig": { + "type": "object", + "properties": { + "binding-name": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "binding-name" + ] + }, + "UnitNetworkConfigResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "info" + ] + }, + "UnitNetworkConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitNetworkConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "UnitsNetworkConfig": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitNetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + } + } + } + }, + { + "Name": "Upgrader", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "DesiredVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VersionResults" + } + } + }, + "SetTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesVersion" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Tools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ToolsResults" + } + } + }, + "WatchAPIVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesVersion": { + "type": "object", + "properties": { + "agent-tools": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "agent-tools" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "tools": { + "$ref": "#/definitions/Version" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "tools" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Version": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "VersionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false + }, + "VersionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VersionResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "UserManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddUsers" + }, + "Result": { + "$ref": "#/definitions/AddUserResults" + } + } + }, + "DisableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPassword": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserInfoRequest" + }, + "Result": { + "$ref": "#/definitions/UserInfoResults" + } + } + } + }, + "definitions": { + "AddUser": { + "type": "object", + "properties": { + "display-name": { + "type": "string" + }, + "password": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name" + ] + }, + "AddUserResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "secret-key": { + "type": "array", + "items": { + "type": "integer" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false + }, + "AddUserResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUserResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AddUsers": { + "type": "object", + "properties": { + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUser" + } + } + }, + "additionalProperties": false, + "required": [ + "users" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "UserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "created-by": { + "type": "string" + }, + "date-created": { + "type": "string", + "format": "date-time" + }, + "disabled": { + "type": "boolean" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name", + "access", + "created-by", + "date-created", + "disabled" + ] + }, + "UserInfoRequest": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "include-disabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "include-disabled" + ] + }, + "UserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserInfo" + } + }, + "additionalProperties": false + }, + "UserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "VolumeAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + } +] diff --git a/modules/libjuju/juju/client/schemas-juju-2.1.0.json b/modules/libjuju/juju/client/schemas-juju-2.1.0.json new file mode 100644 index 0000000..15f068f --- /dev/null +++ b/modules/libjuju/juju/client/schemas-juju-2.1.0.json @@ -0,0 +1,25652 @@ +[ + { + "Name": "Action", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "ApplicationsCharmsActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationsCharmActionsResults" + } + } + }, + "Cancel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "Enqueue": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Actions" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "FindActionTagsByPrefix": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindTags" + }, + "Result": { + "$ref": "#/definitions/FindTagsResults" + } + } + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindActionsByNames" + }, + "Result": { + "$ref": "#/definitions/ActionsByNames" + } + } + }, + "ListAll": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListCompleted": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListPending": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListRunning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "Run": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "RunOnAllMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "Actions": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/Action" + } + } + }, + "additionalProperties": false + }, + "ActionsByName": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByNames": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByName" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "ApplicationCharmActionsResult": { + "type": "object", + "properties": { + "actions": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ActionSpec" + } + } + }, + "application-tag": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ApplicationsCharmActionsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationCharmActionsResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FindTags": { + "type": "object", + "properties": { + "prefixes": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "prefixes" + ] + }, + "FindTagsResults": { + "type": "object", + "properties": { + "matches": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + } + } + }, + "additionalProperties": false, + "required": [ + "matches" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RunParams": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "type": "string" + } + }, + "commands": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "type": "string" + } + }, + "timeout": { + "type": "integer" + }, + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "commands", + "timeout" + ] + } + } + } + }, + { + "Name": "Agent", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetEntities": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AgentGetEntitiesResults" + } + } + }, + "IsMaster": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/IsMasterResult" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateServingInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StateServingInfo" + } + } + }, + "WatchCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "AgentGetEntitiesResult": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "jobs", + "container-type" + ] + }, + "AgentGetEntitiesResults": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/AgentGetEntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "IsMasterResult": { + "type": "object", + "properties": { + "master": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "master" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StateServingInfo": { + "type": "object", + "properties": { + "api-port": { + "type": "integer" + }, + "ca-private-key": { + "type": "string" + }, + "cert": { + "type": "string" + }, + "private-key": { + "type": "string" + }, + "shared-secret": { + "type": "string" + }, + "state-port": { + "type": "integer" + }, + "system-identity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "api-port", + "state-port", + "cert", + "private-key", + "ca-private-key", + "shared-secret", + "system-identity" + ] + } + } + } + }, + { + "Name": "AgentTools", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "UpdateToolsAvailable": { + "type": "object" + } + } + } + }, + { + "Name": "AllModelWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "AllWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "Annotations", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AnnotationsGetResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AnnotationsSet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "AnnotationsGetResult": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/ErrorResult" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "AnnotationsGetResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AnnotationsGetResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AnnotationsSet": { + "type": "object", + "properties": { + "annotations": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityAnnotations" + } + } + }, + "additionalProperties": false, + "required": [ + "annotations" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityAnnotations": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Application", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddRelation" + }, + "Result": { + "$ref": "#/definitions/AddRelationResults" + } + } + }, + "AddUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddApplicationUnits" + }, + "Result": { + "$ref": "#/definitions/AddApplicationUnitsResults" + } + } + }, + "CharmRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationCharmRelations" + }, + "Result": { + "$ref": "#/definitions/ApplicationCharmRelationsResults" + } + } + }, + "Deploy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationsDeploy" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationDestroy" + } + } + }, + "DestroyRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyRelation" + } + } + }, + "DestroyUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyApplicationUnits" + } + } + }, + "Expose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationExpose" + } + } + }, + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/ApplicationGetResults" + } + } + }, + "GetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "GetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/GetApplicationConstraints" + }, + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSet" + } + } + }, + "SetCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSetCharm" + } + } + }, + "SetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "SetMetricCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationMetricCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Unexpose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnexpose" + } + } + }, + "Unset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnset" + } + } + }, + "Update": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUpdate" + } + } + } + }, + "definitions": { + "AddApplicationUnits": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "num-units", + "placement" + ] + }, + "AddApplicationUnitsResults": { + "type": "object", + "properties": { + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "units" + ] + }, + "AddRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "AddRelationResults": { + "type": "object", + "properties": { + "endpoints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "ApplicationCharmRelations": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationCharmRelationsResults": { + "type": "object", + "properties": { + "charm-relations": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-relations" + ] + }, + "ApplicationDeploy": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-yaml": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "series": { + "type": "string" + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Constraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "series", + "charm-url", + "channel", + "num-units", + "config-yaml", + "constraints" + ] + }, + "ApplicationDestroy": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationExpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGet": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGetResults": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm", + "config", + "constraints", + "series" + ] + }, + "ApplicationMetricCredential": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "metrics-credentials": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "metrics-credentials" + ] + }, + "ApplicationMetricCredentials": { + "type": "object", + "properties": { + "creds": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationMetricCredential" + } + } + }, + "additionalProperties": false, + "required": [ + "creds" + ] + }, + "ApplicationSet": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationSetCharm": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config-settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-settings-yaml": { + "type": "string" + }, + "force-series": { + "type": "boolean" + }, + "force-units": { + "type": "boolean" + }, + "resource-ids": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "storage-constraints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageConstraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "channel", + "force-units", + "force-series" + ] + }, + "ApplicationUnexpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationUnset": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationUpdate": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "force-charm-url": { + "type": "boolean" + }, + "force-series": { + "type": "boolean" + }, + "min-units": { + "type": "integer" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "settings-yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "force-charm-url", + "force-series", + "settings-yaml" + ] + }, + "ApplicationsDeploy": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationDeploy" + } + } + }, + "additionalProperties": false, + "required": [ + "applications" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyApplicationUnits": { + "type": "object", + "properties": { + "unit-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "unit-names" + ] + }, + "DestroyRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetApplicationConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "ApplicationScaler", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Rescale": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Backups", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Create": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsCreateArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "FinishRestore": { + "type": "object" + }, + "Info": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsInfoArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsListArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsListResult" + } + } + }, + "PrepareRestore": { + "type": "object" + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsRemoveArgs" + } + } + }, + "Restore": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RestoreArgs" + } + } + } + }, + "definitions": { + "BackupsCreateArgs": { + "type": "object", + "properties": { + "notes": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "notes" + ] + }, + "BackupsInfoArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "BackupsListArgs": { + "type": "object", + "additionalProperties": false + }, + "BackupsListResult": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "BackupsMetadataResult": { + "type": "object", + "properties": { + "ca-cert": { + "type": "string" + }, + "ca-private-key": { + "type": "string" + }, + "checksum": { + "type": "string" + }, + "checksum-format": { + "type": "string" + }, + "finished": { + "type": "string", + "format": "date-time" + }, + "hostname": { + "type": "string" + }, + "id": { + "type": "string" + }, + "machine": { + "type": "string" + }, + "model": { + "type": "string" + }, + "notes": { + "type": "string" + }, + "series": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "started": { + "type": "string", + "format": "date-time" + }, + "stored": { + "type": "string", + "format": "date-time" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "id", + "checksum", + "checksum-format", + "size", + "stored", + "started", + "finished", + "notes", + "model", + "machine", + "hostname", + "version", + "series", + "ca-cert", + "ca-private-key" + ] + }, + "BackupsRemoveArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "RestoreArgs": { + "type": "object", + "properties": { + "backup-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "backup-id" + ] + } + } + } + }, + { + "Name": "Block", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BlockResults" + } + } + }, + "SwitchBlockOff": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "SwitchBlockOn": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Block": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "tag", + "type" + ] + }, + "BlockResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Block" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockResult" + } + } + }, + "additionalProperties": false + }, + "BlockSwitchParams": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Bundle", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + } + }, + "definitions": { + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "CharmRevisionUpdater", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "UpdateLatestRevisions": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Charms", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CharmInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/CharmInfo" + } + } + }, + "IsMetered": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/IsMeteredResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmsList" + }, + "Result": { + "$ref": "#/definitions/CharmsListResult" + } + } + } + }, + "definitions": { + "CharmActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "CharmActions": { + "type": "object", + "properties": { + "specs": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmActionSpec" + } + } + } + }, + "additionalProperties": false + }, + "CharmInfo": { + "type": "object", + "properties": { + "actions": { + "$ref": "#/definitions/CharmActions" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmOption" + } + } + }, + "meta": { + "$ref": "#/definitions/CharmMeta" + }, + "metrics": { + "$ref": "#/definitions/CharmMetrics" + }, + "revision": { + "type": "integer" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "revision", + "url", + "config" + ] + }, + "CharmMeta": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "extra-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "min-juju-version": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload-classes": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmPayloadClass" + } + } + }, + "peers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "provides": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "requires": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmResourceMeta" + } + } + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmStorage" + } + } + }, + "subordinate": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "terms": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "summary", + "description", + "subordinate" + ] + }, + "CharmMetric": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "description" + ] + }, + "CharmMetrics": { + "type": "object", + "properties": { + "metrics": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmMetric" + } + } + }, + "plan": { + "$ref": "#/definitions/CharmPlan" + } + }, + "additionalProperties": false, + "required": [ + "metrics", + "plan" + ] + }, + "CharmOption": { + "type": "object", + "properties": { + "default": { + "type": "object", + "additionalProperties": true + }, + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CharmPayloadClass": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type" + ] + }, + "CharmPlan": { + "type": "object", + "properties": { + "required": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "required" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmResourceMeta": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "description" + ] + }, + "CharmStorage": { + "type": "object", + "properties": { + "count-max": { + "type": "integer" + }, + "count-min": { + "type": "integer" + }, + "description": { + "type": "string" + }, + "location": { + "type": "string" + }, + "minimum-size": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + }, + "read-only": { + "type": "boolean" + }, + "shared": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "description", + "type", + "shared", + "read-only", + "count-min", + "count-max", + "minimum-size" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmsList": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "names" + ] + }, + "CharmsListResult": { + "type": "object", + "properties": { + "charm-urls": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-urls" + ] + }, + "IsMeteredResult": { + "type": "object", + "properties": { + "metered": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "metered" + ] + } + } + } + }, + { + "Name": "Cleaner", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Cleanup": { + "type": "object" + }, + "WatchCleanups": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "Client", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "AbortCurrentUpgrade": { + "type": "object" + }, + "AddCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharm" + } + } + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharmWithAuthorization" + } + } + }, + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AddMachinesV2": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AgentVersion": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AgentVersionResult" + } + } + }, + "DestroyMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyMachines" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "FullStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusParams" + }, + "Result": { + "$ref": "#/definitions/FullStatus" + } + } + }, + "GetBundleChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + }, + "GetModelConstraints": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "InjectMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelUserInfoResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PrivateAddress" + }, + "Result": { + "$ref": "#/definitions/PrivateAddressResults" + } + } + }, + "ProvisioningScript": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ProvisioningScriptParams" + }, + "Result": { + "$ref": "#/definitions/ProvisioningScriptResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PublicAddress" + }, + "Result": { + "$ref": "#/definitions/PublicAddressResults" + } + } + }, + "ResolveCharms": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResolveCharms" + }, + "Result": { + "$ref": "#/definitions/ResolveCharmResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Resolved" + } + } + }, + "RetryProvisioning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelAgentVersion" + } + } + }, + "SetModelConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "StatusHistory": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryRequests" + }, + "Result": { + "$ref": "#/definitions/StatusHistoryResults" + } + } + }, + "WatchAll": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "AddCharm": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel" + ] + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "AgentVersionResult": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "can-upgrade-to": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "exposed": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "meter-statuses": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MeterStatus" + } + } + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "series": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + }, + "subordinate-to": { + "type": "array", + "items": { + "type": "string" + } + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "charm", + "series", + "exposed", + "life", + "relations", + "can-upgrade-to", + "subordinate-to", + "units", + "meter-statuses", + "status", + "workload-version" + ] + }, + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyMachines": { + "type": "object", + "properties": { + "force": { + "type": "boolean" + }, + "machine-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-names", + "force" + ] + }, + "DetailedStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "info": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "data", + "since", + "kind", + "version", + "life" + ] + }, + "EndpointStatus": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "subordinate": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "application", + "name", + "role", + "subordinate" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FindToolsParams": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "number": { + "$ref": "#/definitions/Number" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "number", + "major", + "minor", + "arch", + "series" + ] + }, + "FindToolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "FullStatus": { + "type": "object", + "properties": { + "applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ApplicationStatus" + } + } + }, + "machines": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "model": { + "$ref": "#/definitions/ModelStatusInfo" + }, + "relations": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationStatus" + } + }, + "remote-applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/RemoteApplicationStatus" + } + } + } + }, + "additionalProperties": false, + "required": [ + "model", + "machines", + "applications", + "remote-applications", + "relations" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "History": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/definitions/DetailedStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "statuses" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MachineStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "constraints": { + "type": "string" + }, + "containers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "dns-name": { + "type": "string" + }, + "hardware": { + "type": "string" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "instance-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "ip-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "series": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "instance-status", + "dns-name", + "ip-addresses", + "instance-id", + "series", + "id", + "containers", + "constraints", + "hardware", + "jobs", + "has-vote", + "wants-vote" + ] + }, + "MeterStatus": { + "type": "object", + "properties": { + "color": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "color", + "message" + ] + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "migration": { + "$ref": "#/definitions/ModelMigrationStatus" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "provider-type", + "default-series", + "cloud-tag", + "owner-tag", + "life", + "status", + "users", + "machines" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "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": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelStatusInfo": { + "type": "object", + "properties": { + "available-version": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "migration": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "cloud-tag", + "version", + "available-version" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModelUserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "additionalProperties": false + }, + "ModelUserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "PrivateAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PrivateAddressResults": { + "type": "object", + "properties": { + "private-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "private-address" + ] + }, + "ProvisioningScriptParams": { + "type": "object", + "properties": { + "data-dir": { + "type": "string" + }, + "disable-package-commands": { + "type": "boolean" + }, + "machine-id": { + "type": "string" + }, + "nonce": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-id", + "nonce", + "data-dir", + "disable-package-commands" + ] + }, + "ProvisioningScriptResult": { + "type": "object", + "properties": { + "script": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "script" + ] + }, + "PublicAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PublicAddressResults": { + "type": "object", + "properties": { + "public-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "public-address" + ] + }, + "RelationStatus": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/EndpointStatus" + } + }, + "id": { + "type": "integer" + }, + "interface": { + "type": "string" + }, + "key": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "key", + "interface", + "scope", + "endpoints" + ] + }, + "RemoteApplicationStatus": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "application-url": { + "type": "string" + }, + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteEndpoint" + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "life": { + "type": "string" + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + } + }, + "additionalProperties": false, + "required": [ + "application-url", + "application-name", + "endpoints", + "life", + "relations", + "status" + ] + }, + "RemoteEndpoint": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "limit", + "scope" + ] + }, + "ResolveCharmResult": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ResolveCharmResults": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolveCharmResult" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ResolveCharms": { + "type": "object", + "properties": { + "references": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "references" + ] + }, + "Resolved": { + "type": "object", + "properties": { + "retry": { + "type": "boolean" + }, + "unit-name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-name", + "retry" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "StatusHistoryFilter": { + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "delta": { + "type": "integer" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "size", + "date", + "delta" + ] + }, + "StatusHistoryRequest": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/definitions/StatusHistoryFilter" + }, + "historyKind": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "historyKind", + "size", + "filter", + "tag" + ] + }, + "StatusHistoryRequests": { + "type": "object", + "properties": { + "requests": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryRequest" + } + } + }, + "additionalProperties": false, + "required": [ + "requests" + ] + }, + "StatusHistoryResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "history": { + "$ref": "#/definitions/History" + } + }, + "additionalProperties": false, + "required": [ + "history" + ] + }, + "StatusHistoryResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusParams": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "UnitStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "charm": { + "type": "string" + }, + "leader": { + "type": "boolean" + }, + "machine": { + "type": "string" + }, + "opened-ports": { + "type": "array", + "items": { + "type": "string" + } + }, + "public-address": { + "type": "string" + }, + "subordinates": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "workload-status", + "workload-version", + "machine", + "opened-ports", + "public-address", + "charm", + "subordinates" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "Cloud", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Cloud": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudResults" + } + } + }, + "Clouds": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/CloudsResult" + } + } + }, + "Credential": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudCredentialResults" + } + } + }, + "DefaultCloud": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "InstanceTypes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CloudInstanceTypesConstraints" + }, + "Result": { + "$ref": "#/definitions/InstanceTypesResults" + } + } + }, + "RevokeCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpdateCloudCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserClouds" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Cloud": { + "type": "object", + "properties": { + "auth-types": { + "type": "array", + "items": { + "type": "string" + } + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudRegion" + } + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudCredentialResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudCredential" + } + }, + "additionalProperties": false + }, + "CloudCredentialResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudCredentialResult" + } + } + }, + "additionalProperties": false + }, + "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": { + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name" + ] + }, + "CloudResult": { + "type": "object", + "properties": { + "cloud": { + "$ref": "#/definitions/Cloud" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "CloudResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudResult" + } + } + }, + "additionalProperties": false + }, + "CloudsResult": { + "type": "object", + "properties": { + "clouds": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Cloud" + } + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "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 + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateCloudCredential": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "credential" + ] + }, + "UpdateCloudCredentials": { + "type": "object", + "properties": { + "credentials": { + "type": "array", + "items": { + "$ref": "#/definitions/UpdateCloudCredential" + } + } + }, + "additionalProperties": false + }, + "UserCloud": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "cloud-tag" + ] + }, + "UserClouds": { + "type": "object", + "properties": { + "user-clouds": { + "type": "array", + "items": { + "$ref": "#/definitions/UserCloud" + } + } + }, + "additionalProperties": false + }, + "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": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DestroyController": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyControllerArgs" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/UserAccessResults" + } + } + }, + "HostedModelConfigs": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/HostedModelConfigsResults" + } + } + }, + "InitiateMigration": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/InitiateMigrationArgs" + }, + "Result": { + "$ref": "#/definitions/InitiateMigrationResults" + } + } + }, + "ListBlockedModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelBlockInfoList" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyControllerAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveBlocks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RemoveBlocksArgs" + } + } + }, + "WatchAllModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "DestroyControllerArgs": { + "type": "object", + "properties": { + "destroy-models": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "destroy-models" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostedModelConfig": { + "type": "object", + "properties": { + "cloud-spec": { + "$ref": "#/definitions/CloudSpec" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "owner": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner" + ] + }, + "HostedModelConfigsResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/HostedModelConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "InitiateMigrationArgs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/MigrationSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "InitiateMigrationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "migration-id": { + "type": "string" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "migration-id" + ] + }, + "InitiateMigrationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/InitiateMigrationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MigrationSpec": { + "type": "object", + "properties": { + "external-control": { + "type": "boolean" + }, + "model-tag": { + "type": "string" + }, + "skip-initial-prechecks": { + "type": "boolean" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info", + "external-control", + "skip-initial-prechecks" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelBlockInfo": { + "type": "object", + "properties": { + "blocks": { + "type": "array", + "items": { + "type": "string" + } + }, + "model-uuid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "model-uuid", + "owner-tag", + "blocks" + ] + }, + "ModelBlockInfoList": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelBlockInfo" + } + } + }, + "additionalProperties": false + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelStatus": { + "type": "object", + "properties": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access" + ] + }, + "ModifyControllerAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyControllerAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RemoveBlocksArgs": { + "type": "object", + "properties": { + "all": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "all" + ] + }, + "UserAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "access" + ] + }, + "UserAccessResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserAccess" + } + }, + "additionalProperties": false + }, + "UserAccessResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserAccessResult" + } + } + }, + "additionalProperties": false + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "Deployer", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "ConnectionInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DeployerConnectionValues" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "DeployerConnectionValues": { + "type": "object", + "properties": { + "api-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "state-addresses": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "state-addresses", + "api-addresses" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "DiscoverSpaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DiscoverSpacesResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "DiscoverSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderSpace" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ProviderSpace": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider-id", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "DiskManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineBlockDevices" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineBlockDevices": { + "type": "object", + "properties": { + "block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDevice" + } + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "machine-block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineBlockDevices" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-block-devices" + ] + } + } + } + }, + { + "Name": "EntityWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/EntitiesWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "EntitiesWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "FilesystemAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + }, + { + "Name": "Firewaller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "GetAssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetExposed": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "GetMachineActiveSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "GetMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachinePortsParams" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "WatchOpenedPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePorts": { + "type": "object", + "properties": { + "machine-tag": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "subnet-tag" + ] + }, + "MachinePortsParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePorts" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "HighAvailability", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "EnableHA": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ControllersSpecs" + }, + "Result": { + "$ref": "#/definitions/ControllersChangeResults" + } + } + }, + "ResumeHAReplicationAfterUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResumeReplicationParams" + } + } + }, + "StopHAReplicationForUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpgradeMongoParams" + }, + "Result": { + "$ref": "#/definitions/MongoUpgradeResults" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "Scope": { + "type": "string" + }, + "SpaceName": { + "type": "string" + }, + "SpaceProviderId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Value", + "Type", + "Scope", + "SpaceName", + "SpaceProviderId" + ] + }, + "ControllersChangeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ControllersChanges" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ControllersChangeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersChangeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ControllersChanges": { + "type": "object", + "properties": { + "added": { + "type": "array", + "items": { + "type": "string" + } + }, + "converted": { + "type": "array", + "items": { + "type": "string" + } + }, + "demoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "maintained": { + "type": "array", + "items": { + "type": "string" + } + }, + "promoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "removed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ControllersSpec": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "num-controllers": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "type": "string" + } + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "num-controllers" + ] + }, + "ControllersSpecs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "HAMember": { + "type": "object", + "properties": { + "public-address": { + "$ref": "#/definitions/Address" + }, + "series": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-address", + "series" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Member": { + "type": "object", + "properties": { + "Address": { + "type": "string" + }, + "Arbiter": { + "type": "boolean" + }, + "BuildIndexes": { + "type": "boolean" + }, + "Hidden": { + "type": "boolean" + }, + "Id": { + "type": "integer" + }, + "Priority": { + "type": "number" + }, + "SlaveDelay": { + "type": "integer" + }, + "Tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "Votes": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Id", + "Address", + "Arbiter", + "BuildIndexes", + "Hidden", + "Priority", + "Tags", + "SlaveDelay", + "Votes" + ] + }, + "MongoUpgradeResults": { + "type": "object", + "properties": { + "ha-members": { + "type": "array", + "items": { + "$ref": "#/definitions/HAMember" + } + }, + "master": { + "$ref": "#/definitions/HAMember" + }, + "rs-members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "rs-members", + "master", + "ha-members" + ] + }, + "MongoVersion": { + "type": "object", + "properties": { + "engine": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "patch": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "major", + "minor", + "patch", + "engine" + ] + }, + "ResumeReplicationParams": { + "type": "object", + "properties": { + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "members" + ] + }, + "UpgradeMongoParams": { + "type": "object", + "properties": { + "target": { + "$ref": "#/definitions/MongoVersion" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "HostKeyReporter", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ReportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SSHHostKeySet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHHostKeySet": { + "type": "object", + "properties": { + "entity-keys": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHHostKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "entity-keys" + ] + }, + "SSHHostKeys": { + "type": "object", + "properties": { + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-keys" + ] + } + } + } + }, + { + "Name": "ImageManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "DeleteImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ListImageResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageFilterParams": { + "type": "object", + "properties": { + "images": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "images" + ] + }, + "ImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series", + "url", + "created" + ] + }, + "ImageSpec": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series" + ] + }, + "ListImageResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "ImageMetadata", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Delete": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataImageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageMetadataFilter" + }, + "Result": { + "$ref": "#/definitions/ListCloudImageMetadataResult" + } + } + }, + "Save": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataSaveParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateFromPublishedImages": { + "type": "object" + } + }, + "definitions": { + "CloudImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "image-id": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "region": { + "type": "string" + }, + "root-storage-size": { + "type": "integer" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "string" + }, + "source": { + "type": "string" + }, + "stream": { + "type": "string" + }, + "version": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "image-id", + "region", + "version", + "series", + "arch", + "source", + "priority" + ] + }, + "CloudImageMetadataList": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageMetadataFilter": { + "type": "object", + "properties": { + "arches": { + "type": "array", + "items": { + "type": "string" + } + }, + "region": { + "type": "string" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "stream": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ListCloudImageMetadataResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MetadataImageIds": { + "type": "object", + "properties": { + "image-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "image-ids" + ] + }, + "MetadataSaveParams": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadataList" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "InstancePoller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AreManuallyProvisioned": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineAddressesResults" + } + } + }, + "SetInstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Status": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "MachineAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "MachineAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "KeyManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DeleteKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ImportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListSSHKeys" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSSHKeys": { + "type": "object", + "properties": { + "entities": { + "$ref": "#/definitions/Entities" + }, + "mode": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "mode" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModifyUserSSHKeys": { + "type": "object", + "properties": { + "ssh-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "ssh-keys" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "KeyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "WatchAuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LeadershipService", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "BlockUntilLeadershipReleased": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationTag" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "ClaimLeadership": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ClaimLeadershipBulkParams" + }, + "Result": { + "$ref": "#/definitions/ClaimLeadershipBulkResults" + } + } + } + }, + "definitions": { + "ApplicationTag": { + "type": "object", + "properties": { + "Name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Name" + ] + }, + "ClaimLeadershipBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/ClaimLeadershipParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "ClaimLeadershipBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ClaimLeadershipParams": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "duration": { + "type": "number" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "unit-tag", + "duration" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "LifeFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LogForwarding", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingGetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/LogForwardingGetLastSentResults" + } + } + }, + "SetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingSetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingGetLastSentParams": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingID" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "LogForwardingGetLastSentResult": { + "type": "object", + "properties": { + "err": { + "$ref": "#/definitions/Error" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "record-id", + "record-timestamp", + "err" + ] + }, + "LogForwardingGetLastSentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingGetLastSentResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingID": { + "type": "object", + "properties": { + "model": { + "type": "string" + }, + "sink": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model", + "sink" + ] + }, + "LogForwardingSetLastSentParam": { + "type": "object", + "properties": { + "LogForwardingID": { + "$ref": "#/definitions/LogForwardingID" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "LogForwardingID", + "record-id", + "record-timestamp" + ] + }, + "LogForwardingSetLastSentParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingSetLastSentParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Logger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "LoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "WatchLoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineActions", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RunningActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "InstanceTypes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelInstanceTypesConstraints" + }, + "Result": { + "$ref": "#/definitions/InstanceTypesResults" + } + } + } + }, + "definitions": { + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "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": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MachineUndertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AllMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/EntitiesResults" + } + } + }, + "CompleteMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + } + } + }, + "GetMachineProviderInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProviderInterfaceInfoResults" + } + } + }, + "WatchMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResult": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProviderInterfaceInfo": { + "type": "object", + "properties": { + "interface-name": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "provider-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "interface-name", + "mac-address", + "provider-id" + ] + }, + "ProviderInterfaceInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "interfaces": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfo" + } + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "interfaces" + ] + }, + "ProviderInterfaceInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Machiner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Jobs": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/JobsResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetMachineAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetObservedNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineNetworkConfig" + } + } + }, + "SetProviderNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "JobsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "jobs" + ] + }, + "JobsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/JobsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "device-index", + "mac-address", + "cidr", + "mtu", + "provider-id", + "provider-subnet-id", + "provider-space-id", + "provider-address-id", + "provider-vlan-id", + "vlan-tag", + "interface-name", + "parent-interface-name", + "interface-type", + "disabled" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetMachineNetworkConfig": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "config" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MeterStatus", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsAdder", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + } + } + } + }, + { + "Name": "MetricsDebug", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "GetMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MetricResults" + } + } + }, + "SetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MeterStatusParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityMetrics": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricResult" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusParam": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "code", + "info" + ] + }, + "MeterStatusParams": { + "type": "object", + "properties": { + "statues": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusParam" + } + } + }, + "additionalProperties": false, + "required": [ + "statues" + ] + }, + "MetricResult": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "unit": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "time", + "key", + "value", + "unit" + ] + }, + "MetricResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityMetrics" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "CleanupOldMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SendMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "MigrationFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Phase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PhaseResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PhaseResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "phase": { + "type": "string" + } + }, + "additionalProperties": false + }, + "PhaseResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PhaseResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MigrationMaster", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Export": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "MigrationStatus": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MasterMigrationStatus" + } + } + }, + "MinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MinionReports" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + }, + "Prechecks": { + "type": "object" + }, + "Reap": { + "type": "object" + }, + "SetPhase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationPhaseArgs" + } + } + }, + "SetStatusMessage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationStatusMessageArgs" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchMinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MasterMigrationStatus": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "phase-changed-time": { + "type": "string", + "format": "date-time" + }, + "spec": { + "$ref": "#/definitions/MigrationSpec" + } + }, + "additionalProperties": false, + "required": [ + "spec", + "migration-id", + "phase", + "phase-changed-time" + ] + }, + "MigrationModelInfo": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "controller-agent-version": { + "$ref": "#/definitions/Number" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version", + "controller-agent-version" + ] + }, + "MigrationSpec": { + "type": "object", + "properties": { + "external-control": { + "type": "boolean" + }, + "model-tag": { + "type": "string" + }, + "skip-initial-prechecks": { + "type": "boolean" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info", + "external-control", + "skip-initial-prechecks" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "MinionReports": { + "type": "object", + "properties": { + "failed": { + "type": "array", + "items": { + "type": "string" + } + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success-count": { + "type": "integer" + }, + "unknown-count": { + "type": "integer" + }, + "unknown-sample": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success-count", + "unknown-count", + "unknown-sample", + "failed" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelResource" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "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": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + }, + "SetMigrationPhaseArgs": { + "type": "object", + "properties": { + "phase": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "phase" + ] + }, + "SetMigrationStatusMessageArgs": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message" + ] + } + } + } + }, + { + "Name": "MigrationMinion", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Report": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MinionReport" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MinionReport": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "MigrationStatusWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationStatus" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "MigrationStatus": { + "type": "object", + "properties": { + "attempt": { + "type": "integer" + }, + "external-control": { + "type": "boolean" + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "source-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "source-ca-cert": { + "type": "string" + }, + "target-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "target-ca-cert": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "attempt", + "phase", + "external-control", + "source-api-addrs", + "source-ca-cert", + "target-api-addrs", + "target-ca-cert" + ] + } + } + } + }, + { + "Name": "MigrationTarget", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Abort": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "Activate": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "AdoptResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AdoptResourcesArgs" + } + } + }, + "Import": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "LatestLogTime": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + }, + "Result": { + "type": "string", + "format": "date-time" + } + } + }, + "Prechecks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + } + }, + "definitions": { + "AdoptResourcesArgs": { + "type": "object", + "properties": { + "model-tag": { + "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, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version", + "controller-agent-version" + ] + }, + "ModelArgs": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelResource" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "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": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + } + } + } + }, + { + "Name": "ModelConfig", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + } + }, + "definitions": { + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelSet": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + } + } + } + }, + { + "Name": "ModelManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CreateModel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelCreateArgs" + }, + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "DestroyModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DumpModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "DumpModelsDB": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "ListModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entity" + }, + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "ModelDefaults": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelDefaultsResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelInfoResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyModelAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnsetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MapResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "MapResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MapResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelCreateArgs": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "credential": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "region": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner-tag" + ] + }, + "ModelDefaultValues": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelDefaults": { + "type": "object", + "properties": { + "controller": { + "type": "object", + "additionalProperties": true + }, + "default": { + "type": "object", + "additionalProperties": true + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/RegionDefaults" + } + } + }, + "additionalProperties": false + }, + "ModelDefaultsResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ModelDefaults" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "migration": { + "$ref": "#/definitions/ModelMigrationStatus" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "provider-type", + "default-series", + "cloud-tag", + "owner-tag", + "life", + "status", + "users", + "machines" + ] + }, + "ModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelInfo" + } + }, + "additionalProperties": false + }, + "ModelInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "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": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelUnsetKeys": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "model-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access", + "model-tag" + ] + }, + "ModifyModelAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyModelAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RegionDefaults": { + "type": "object", + "properties": { + "region-name": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "region-name", + "value" + ] + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelDefaultValues" + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUnsetKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "NotifyWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Payloads", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EnvListArgs" + }, + "Result": { + "$ref": "#/definitions/EnvListResults" + } + } + } + }, + "definitions": { + "EnvListArgs": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "EnvListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + } + } + } + }, + { + "Name": "PayloadsHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "LookUp": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LookUpArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatusArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Track": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/TrackArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Untrack": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LookUpArg": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "id" + ] + }, + "LookUpArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/LookUpArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + }, + "PayloadResult": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "not-found": { + "type": "boolean" + }, + "payload": { + "$ref": "#/definitions/Payload" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "payload", + "not-found" + ] + }, + "PayloadResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PayloadResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatusArg": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "status" + ] + }, + "SetStatusArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/SetStatusArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "TrackArgs": { + "type": "object", + "properties": { + "payloads": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "payloads" + ] + } + } + } + }, + { + "Name": "Pinger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Ping": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Provisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "Constraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConstraintsResults" + } + } + }, + "ContainerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ContainerConfig" + } + } + }, + "ContainerManagerConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ContainerManagerConfigParams" + }, + "Result": { + "$ref": "#/definitions/ContainerManagerConfig" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DistributionGroup": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DistributionGroupResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "GetContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "HostChangesForContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/HostNetworkChangeResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "MachinesWithTransientErrors": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "MarkMachinesForRemoval": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PrepareContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProvisioningInfoResults" + } + } + }, + "ReleaseContainerAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Series": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "SetHostMachineNetworkConfig": { + "type": "object", + "properties": { + "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" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "device-index", + "mac-address", + "cidr", + "mtu", + "provider-id", + "provider-subnet-id", + "provider-space-id", + "provider-address-id", + "provider-vlan-id", + "vlan-tag", + "interface-name", + "parent-interface-name", + "interface-type", + "disabled" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "controller-config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "image-metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "placement": { + "type": "string" + }, + "series": { + "type": "string" + }, + "subnets-to-zones": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParams" + } + } + }, + "additionalProperties": false, + "required": [ + "constraints", + "series", + "placement", + "jobs" + ] + }, + "ProvisioningInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ProvisioningInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ProvisioningInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProvisioningInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetMachineNetworkConfig": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "config" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Settings": { + "type": "object", + "properties": { + "Ftp": { + "type": "string" + }, + "Http": { + "type": "string" + }, + "Https": { + "type": "string" + }, + "NoProxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Http", + "Https", + "Ftp", + "NoProxy" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateBehavior": { + "type": "object", + "properties": { + "enable-os-refresh-update": { + "type": "boolean" + }, + "enable-os-upgrade": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "enable-os-refresh-update", + "enable-os-upgrade" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "WatchContainer": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "container-type" + ] + }, + "WatchContainers": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/WatchContainer" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + } + } + } + }, + { + "Name": "ProxyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ProxyConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProxyConfigResults" + } + } + }, + "WatchForProxyConfigAndAPIHostPortChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProxyConfig": { + "type": "object", + "properties": { + "ftp": { + "type": "string" + }, + "http": { + "type": "string" + }, + "https": { + "type": "string" + }, + "no-proxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "http", + "https", + "ftp", + "no-proxy" + ] + }, + "ProxyConfigResult": { + "type": "object", + "properties": { + "apt-proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + } + }, + "additionalProperties": false, + "required": [ + "proxy-settings", + "apt-proxy-settings" + ] + }, + "ProxyConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProxyConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Reboot", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetRebootAction": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RebootActionResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchForRebootEvent": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "RebootActionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false + }, + "RebootActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RebootActionResult" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "RelationUnitsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + } + } + } + }, + { + "Name": "RemoteApplicationWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/RemoteApplicationWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RemoteApplicationChange": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "life": { + "type": "string" + }, + "relations": { + "$ref": "#/definitions/RemoteRelationsChange" + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "life", + "relations" + ] + }, + "RemoteApplicationWatchResult": { + "type": "object", + "properties": { + "change": { + "$ref": "#/definitions/RemoteApplicationChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "RemoteEntityId": { + "type": "object", + "properties": { + "model-uuid": { + "type": "string" + }, + "token": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-uuid", + "token" + ] + }, + "RemoteRelationChange": { + "type": "object", + "properties": { + "changed-units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/RemoteRelationUnitChange" + } + } + }, + "departed-units": { + "type": "array", + "items": { + "type": "string" + } + }, + "id": { + "type": "integer" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life" + ] + }, + "RemoteRelationUnitChange": { + "type": "object", + "properties": { + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "unit-id": { + "$ref": "#/definitions/RemoteEntityId" + } + }, + "additionalProperties": false, + "required": [ + "unit-id" + ] + }, + "RemoteRelationsChange": { + "type": "object", + "properties": { + "changed": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteRelationChange" + } + }, + "initial": { + "type": "boolean" + }, + "removed": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "initial" + ] + } + } + } + }, + { + "Name": "RemoteRelationsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/RemoteRelationsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RemoteEntityId": { + "type": "object", + "properties": { + "model-uuid": { + "type": "string" + }, + "token": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-uuid", + "token" + ] + }, + "RemoteRelationChange": { + "type": "object", + "properties": { + "changed-units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/RemoteRelationUnitChange" + } + } + }, + "departed-units": { + "type": "array", + "items": { + "type": "string" + } + }, + "id": { + "type": "integer" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life" + ] + }, + "RemoteRelationUnitChange": { + "type": "object", + "properties": { + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "unit-id": { + "$ref": "#/definitions/RemoteEntityId" + } + }, + "additionalProperties": false, + "required": [ + "unit-id" + ] + }, + "RemoteRelationsChange": { + "type": "object", + "properties": { + "changed": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteRelationChange" + } + }, + "initial": { + "type": "boolean" + }, + "removed": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "initial" + ] + }, + "RemoteRelationsWatchResult": { + "type": "object", + "properties": { + "RemoteRelationsWatcherId": { + "type": "string" + }, + "change": { + "$ref": "#/definitions/RemoteRelationsChange" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "RemoteRelationsWatcherId" + ] + } + } + } + }, + { + "Name": "Resources", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddPendingResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddPendingResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/AddPendingResourcesResult" + } + } + }, + "ListResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/ResourcesResults" + } + } + } + }, + "definitions": { + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddPendingResourcesArgs": { + "type": "object", + "properties": { + "AddCharmWithAuthorization": { + "$ref": "#/definitions/AddCharmWithAuthorization" + }, + "Entity": { + "$ref": "#/definitions/Entity" + }, + "Resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "AddCharmWithAuthorization", + "Resources" + ] + }, + "AddPendingResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "pending-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "pending-ids" + ] + }, + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListResourcesArgs": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "ResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "charm-store-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + }, + "unit-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitResources" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources", + "charm-store-resources", + "unit-resources" + ] + }, + "ResourcesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourcesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitResources": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "download-progress": { + "type": "object", + "patternProperties": { + ".*": { + "type": "integer" + } + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "resources", + "download-progress" + ] + } + } + } + }, + { + "Name": "ResourcesHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetResourceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/ResourcesResult" + } + } + } + }, + "definitions": { + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListResourcesArgs": { + "type": "object", + "properties": { + "resource-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "resource-names" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "ResourceResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resource": { + "$ref": "#/definitions/Resource" + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resource" + ] + }, + "ResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources" + ] + } + } + } + }, + { + "Name": "Resumer", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ResumeTransactions": { + "type": "object" + } + } + } + }, + { + "Name": "RetryStrategy", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "RetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RetryStrategyResults" + } + } + }, + "WatchRetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RetryStrategy": { + "type": "object", + "properties": { + "jitter-retry-time": { + "type": "boolean" + }, + "max-retry-time": { + "type": "integer" + }, + "min-retry-time": { + "type": "integer" + }, + "retry-time-factor": { + "type": "integer" + }, + "should-retry": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "should-retry", + "min-retry-time", + "max-retry-time", + "jitter-retry-time", + "retry-time-factor" + ] + }, + "RetryStrategyResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/RetryStrategy" + } + }, + "additionalProperties": false + }, + "RetryStrategyResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RetryStrategyResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "SSHClient", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AllAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressesResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "Proxy": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SSHProxyResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "PublicKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHPublicKeysResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHAddressResult": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "SSHAddressResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "SSHAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHProxyResult": { + "type": "object", + "properties": { + "use-proxy": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "use-proxy" + ] + }, + "SSHPublicKeysResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "SSHPublicKeysResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHPublicKeysResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Singular", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Claim": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SingularClaims" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Wait": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SingularClaim": { + "type": "object", + "properties": { + "controller-tag": { + "type": "string" + }, + "duration": { + "type": "integer" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "controller-tag", + "duration" + ] + }, + "SingularClaims": { + "type": "object", + "properties": { + "claims": { + "type": "array", + "items": { + "$ref": "#/definitions/SingularClaim" + } + } + }, + "additionalProperties": false, + "required": [ + "claims" + ] + } + } + } + }, + { + "Name": "Spaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ListSpacesResults" + } + } + } + }, + "definitions": { + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Space" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Space": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + } + } + } + }, + { + "Name": "StatusHistory", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Prune": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryPruneArgs" + } + } + } + }, + "definitions": { + "StatusHistoryPruneArgs": { + "type": "object", + "properties": { + "max-history-mb": { + "type": "integer" + }, + "max-history-time": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "max-history-time", + "max-history-mb" + ] + } + } + } + }, + { + "Name": "Storage", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddToUnit": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreatePool": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "ListFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemFilters" + }, + "Result": { + "$ref": "#/definitions/FilesystemDetailsListResults" + } + } + }, + "ListPools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePoolFilters" + }, + "Result": { + "$ref": "#/definitions/StoragePoolsResults" + } + } + }, + "ListStorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageFilters" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsListResults" + } + } + }, + "ListVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeFilters" + }, + "Result": { + "$ref": "#/definitions/VolumeDetailsListResults" + } + } + }, + "StorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemDetails": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info", + "status" + ] + }, + "FilesystemDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetails" + } + } + }, + "additionalProperties": false + }, + "FilesystemDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemFilter" + } + } + }, + "additionalProperties": false + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "size" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachmentDetails": { + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag", + "machine-tag" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StorageDetails": { + "type": "object", + "properties": { + "attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageAttachmentDetails" + } + } + }, + "kind": { + "type": "integer" + }, + "owner-tag": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "kind", + "status", + "persistent" + ] + }, + "StorageDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetails" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageDetails" + } + }, + "additionalProperties": false + }, + "StorageDetailsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsResult" + } + } + }, + "additionalProperties": false + }, + "StorageFilter": { + "type": "object", + "additionalProperties": false + }, + "StorageFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePool": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "name": { + "type": "string" + }, + "provider": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider", + "attrs" + ] + }, + "StoragePoolFilter": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + }, + "providers": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StoragePoolFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "storage-pools": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolsResult" + } + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeDetails": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/VolumeAttachmentInfo" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info", + "status" + ] + }, + "VolumeDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetails" + } + } + }, + "additionalProperties": false + }, + "VolumeDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "VolumeFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "VolumeFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeFilter" + } + } + }, + "additionalProperties": false + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + } + } + } + }, + { + "Name": "StorageProvisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentParamsResults" + } + } + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentResults" + } + } + }, + "FilesystemParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemParamsResults" + } + } + }, + "Filesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveAttachment": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Filesystems" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Volumes" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentParamsResults" + } + } + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentResults" + } + } + }, + "VolumeBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/BlockDeviceResults" + } + } + }, + "VolumeParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeParamsResults" + } + } + }, + "Volumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeResults" + } + } + }, + "WatchBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchFilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchVolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "BlockDeviceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/BlockDevice" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockDeviceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDeviceResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Filesystem": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info" + ] + }, + "FilesystemAttachment": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "info" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "filesystem-tag": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "mount-point": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "provider" + ] + }, + "FilesystemAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "filesystem-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystem-attachments" + ] + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "size" + ] + }, + "FilesystemParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/FilesystemAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "filesystem-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "size", + "provider" + ] + }, + "FilesystemParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Filesystem" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemResult" + } + } + }, + "additionalProperties": false + }, + "Filesystems": { + "type": "object", + "properties": { + "filesystems": { + "type": "array", + "items": { + "$ref": "#/definitions/Filesystem" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystems" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "MachineStorageIdsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachment": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeAttachmentInfo" + }, + "machine-tag": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "volume-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "volume-attachments" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "VolumeParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Volume" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeResult" + } + } + }, + "additionalProperties": false + }, + "Volumes": { + "type": "object", + "properties": { + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/Volume" + } + } + }, + "additionalProperties": false, + "required": [ + "volumes" + ] + } + } + } + }, + { + "Name": "StringsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Subnets", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SpaceResults" + } + } + }, + "AllZones": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ZoneResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SpaceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "SpaceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SpaceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ZoneResult": { + "type": "object", + "properties": { + "available": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "available" + ] + }, + "ZoneResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ZoneResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Undertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UndertakerModelInfoResult" + } + } + }, + "ProcessDyingModel": { + "type": "object" + }, + "RemoveModel": { + "type": "object" + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchModelResources": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "UndertakerModelInfo": { + "type": "object", + "properties": { + "global-name": { + "type": "string" + }, + "is-system": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "global-name", + "is-system", + "life" + ] + }, + "UndertakerModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UndertakerModelInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + } + } + } + }, + { + "Name": "UnitAssigner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AssignUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchUnitAssignments": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Uniter", + "Version": 4, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AddUnitStorage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationStatusResults" + } + } + }, + "AssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "AvailabilityZone": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "CharmArchiveSha256": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURLs" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "CharmModifiedVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/IntResults" + } + } + }, + "CharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "ClearResolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ClosePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConfigSettingsResults" + } + } + }, + "CurrentModel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelResult" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyAllSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnterScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "GetPrincipal": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "HasSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "JoinedRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "LeaveScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Merge": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "NetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnitsNetworkConfig" + }, + "Result": { + "$ref": "#/definitions/UnitNetworkConfigResults" + } + } + }, + "OpenPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "ProviderType": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Read": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/GetLeadershipSettingsBulkResults" + } + } + }, + "ReadRemoteSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitPairs" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "ReadSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "Relation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RelationById": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationIds" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RemoveStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ResolvedModeResults" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesCharmURL" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetUnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetWorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityWorkloadVersions" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StorageAttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "StorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentResults" + } + } + }, + "UnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "UnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentIdsResults" + } + } + }, + "UpdateSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitsSettings" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchApplicationRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchLeadershipSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchRelationUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResults" + } + } + }, + "WatchStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "ApplicationStatusResult": { + "type": "object", + "properties": { + "application": { + "$ref": "#/definitions/StatusResult" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StatusResult" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "units" + ] + }, + "ApplicationStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmURLs": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ConfigSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "ConfigSettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Endpoint": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "relation": { + "$ref": "#/definitions/CharmRelation" + } + }, + "additionalProperties": false, + "required": [ + "application-name", + "relation" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesCharmURL": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityCharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesPortRanges": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityCharmURL": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "charm-url" + ] + }, + "EntityPortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "protocol", + "from-port", + "to-port" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "EntityWorkloadVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "workload-version" + ] + }, + "EntityWorkloadVersions": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityWorkloadVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/GetLeadershipSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "IntResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "IntResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/IntResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "MergeLeadershipSettingsBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MergeLeadershipSettingsParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MergeLeadershipSettingsParam": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "settings" + ] + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "device-index", + "mac-address", + "cidr", + "mtu", + "provider-id", + "provider-subnet-id", + "provider-space-id", + "provider-address-id", + "provider-vlan-id", + "vlan-tag", + "interface-name", + "parent-interface-name", + "interface-type", + "disabled" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "RelationIds": { + "type": "object", + "properties": { + "relation-ids": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-ids" + ] + }, + "RelationResult": { + "type": "object", + "properties": { + "endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "integer" + }, + "key": { + "type": "string" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "id", + "key", + "endpoint" + ] + }, + "RelationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RelationUnit": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit" + ] + }, + "RelationUnitPair": { + "type": "object", + "properties": { + "local-unit": { + "type": "string" + }, + "relation": { + "type": "string" + }, + "remote-unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "local-unit", + "remote-unit" + ] + }, + "RelationUnitPairs": { + "type": "object", + "properties": { + "relation-unit-pairs": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitPair" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-unit-pairs" + ] + }, + "RelationUnitSettings": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit", + "settings" + ] + }, + "RelationUnits": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnit" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsSettings": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitSettings" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "RelationUnitsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ResolvedModeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "mode": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "mode" + ] + }, + "ResolvedModeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolvedModeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "SettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "SettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachment": { + "type": "object", + "properties": { + "kind": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "location": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "unit-tag", + "kind", + "location", + "life" + ] + }, + "StorageAttachmentId": { + "type": "object", + "properties": { + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag" + ] + }, + "StorageAttachmentIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "StorageAttachmentIdsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachmentIds" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentIdsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentIdsResult" + } + } + }, + "additionalProperties": false + }, + "StorageAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "StringBoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ok": { + "type": "boolean" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result", + "ok" + ] + }, + "StringBoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringBoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitNetworkConfig": { + "type": "object", + "properties": { + "binding-name": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "binding-name" + ] + }, + "UnitNetworkConfigResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "info" + ] + }, + "UnitNetworkConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitNetworkConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "UnitsNetworkConfig": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitNetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + } + } + } + }, + { + "Name": "Upgrader", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "DesiredVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VersionResults" + } + } + }, + "SetTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesVersion" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Tools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ToolsResults" + } + } + }, + "WatchAPIVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesVersion": { + "type": "object", + "properties": { + "agent-tools": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "agent-tools" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "tools": { + "$ref": "#/definitions/Version" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "tools" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Version": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "VersionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false + }, + "VersionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VersionResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "UserManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddUsers" + }, + "Result": { + "$ref": "#/definitions/AddUserResults" + } + } + }, + "DisableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPassword": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserInfoRequest" + }, + "Result": { + "$ref": "#/definitions/UserInfoResults" + } + } + } + }, + "definitions": { + "AddUser": { + "type": "object", + "properties": { + "display-name": { + "type": "string" + }, + "password": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name" + ] + }, + "AddUserResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "secret-key": { + "type": "array", + "items": { + "type": "integer" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false + }, + "AddUserResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUserResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AddUsers": { + "type": "object", + "properties": { + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUser" + } + } + }, + "additionalProperties": false, + "required": [ + "users" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "UserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "created-by": { + "type": "string" + }, + "date-created": { + "type": "string", + "format": "date-time" + }, + "disabled": { + "type": "boolean" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name", + "access", + "created-by", + "date-created", + "disabled" + ] + }, + "UserInfoRequest": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "include-disabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "include-disabled" + ] + }, + "UserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserInfo" + } + }, + "additionalProperties": false + }, + "UserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "VolumeAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + } +] diff --git a/modules/libjuju/juju/client/schemas-juju-2.1.1.json b/modules/libjuju/juju/client/schemas-juju-2.1.1.json new file mode 100644 index 0000000..474b204 --- /dev/null +++ b/modules/libjuju/juju/client/schemas-juju-2.1.1.json @@ -0,0 +1,25730 @@ +[ + { + "Name": "Action", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "ApplicationsCharmsActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationsCharmActionsResults" + } + } + }, + "Cancel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "Enqueue": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Actions" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "FindActionTagsByPrefix": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindTags" + }, + "Result": { + "$ref": "#/definitions/FindTagsResults" + } + } + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindActionsByNames" + }, + "Result": { + "$ref": "#/definitions/ActionsByNames" + } + } + }, + "ListAll": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListCompleted": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListPending": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListRunning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "Run": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "RunOnAllMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "Actions": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/Action" + } + } + }, + "additionalProperties": false + }, + "ActionsByName": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByNames": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByName" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "ApplicationCharmActionsResult": { + "type": "object", + "properties": { + "actions": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ActionSpec" + } + } + }, + "application-tag": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ApplicationsCharmActionsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationCharmActionsResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FindTags": { + "type": "object", + "properties": { + "prefixes": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "prefixes" + ] + }, + "FindTagsResults": { + "type": "object", + "properties": { + "matches": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + } + } + }, + "additionalProperties": false, + "required": [ + "matches" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RunParams": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "type": "string" + } + }, + "commands": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "type": "string" + } + }, + "timeout": { + "type": "integer" + }, + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "commands", + "timeout" + ] + } + } + } + }, + { + "Name": "Agent", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetEntities": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AgentGetEntitiesResults" + } + } + }, + "IsMaster": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/IsMasterResult" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateServingInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StateServingInfo" + } + } + }, + "WatchCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "AgentGetEntitiesResult": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "jobs", + "container-type" + ] + }, + "AgentGetEntitiesResults": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/AgentGetEntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "IsMasterResult": { + "type": "object", + "properties": { + "master": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "master" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StateServingInfo": { + "type": "object", + "properties": { + "api-port": { + "type": "integer" + }, + "ca-private-key": { + "type": "string" + }, + "cert": { + "type": "string" + }, + "private-key": { + "type": "string" + }, + "shared-secret": { + "type": "string" + }, + "state-port": { + "type": "integer" + }, + "system-identity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "api-port", + "state-port", + "cert", + "private-key", + "ca-private-key", + "shared-secret", + "system-identity" + ] + } + } + } + }, + { + "Name": "AgentTools", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "UpdateToolsAvailable": { + "type": "object" + } + } + } + }, + { + "Name": "AllModelWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "AllWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "Annotations", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AnnotationsGetResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AnnotationsSet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "AnnotationsGetResult": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/ErrorResult" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "AnnotationsGetResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AnnotationsGetResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AnnotationsSet": { + "type": "object", + "properties": { + "annotations": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityAnnotations" + } + } + }, + "additionalProperties": false, + "required": [ + "annotations" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityAnnotations": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Application", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddRelation" + }, + "Result": { + "$ref": "#/definitions/AddRelationResults" + } + } + }, + "AddUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddApplicationUnits" + }, + "Result": { + "$ref": "#/definitions/AddApplicationUnitsResults" + } + } + }, + "CharmRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationCharmRelations" + }, + "Result": { + "$ref": "#/definitions/ApplicationCharmRelationsResults" + } + } + }, + "Deploy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationsDeploy" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationDestroy" + } + } + }, + "DestroyRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyRelation" + } + } + }, + "DestroyUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyApplicationUnits" + } + } + }, + "Expose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationExpose" + } + } + }, + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/ApplicationGetResults" + } + } + }, + "GetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "GetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/GetApplicationConstraints" + }, + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSet" + } + } + }, + "SetCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSetCharm" + } + } + }, + "SetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "SetMetricCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationMetricCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Unexpose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnexpose" + } + } + }, + "Unset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnset" + } + } + }, + "Update": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUpdate" + } + } + } + }, + "definitions": { + "AddApplicationUnits": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "num-units", + "placement" + ] + }, + "AddApplicationUnitsResults": { + "type": "object", + "properties": { + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "units" + ] + }, + "AddRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "AddRelationResults": { + "type": "object", + "properties": { + "endpoints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "ApplicationCharmRelations": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationCharmRelationsResults": { + "type": "object", + "properties": { + "charm-relations": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-relations" + ] + }, + "ApplicationDeploy": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-yaml": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "series": { + "type": "string" + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Constraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "series", + "charm-url", + "channel", + "num-units", + "config-yaml", + "constraints" + ] + }, + "ApplicationDestroy": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationExpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGet": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGetResults": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm", + "config", + "constraints", + "series" + ] + }, + "ApplicationMetricCredential": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "metrics-credentials": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "metrics-credentials" + ] + }, + "ApplicationMetricCredentials": { + "type": "object", + "properties": { + "creds": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationMetricCredential" + } + } + }, + "additionalProperties": false, + "required": [ + "creds" + ] + }, + "ApplicationSet": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationSetCharm": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config-settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-settings-yaml": { + "type": "string" + }, + "force-series": { + "type": "boolean" + }, + "force-units": { + "type": "boolean" + }, + "resource-ids": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "storage-constraints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageConstraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "channel", + "force-units", + "force-series" + ] + }, + "ApplicationUnexpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationUnset": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationUpdate": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "force-charm-url": { + "type": "boolean" + }, + "force-series": { + "type": "boolean" + }, + "min-units": { + "type": "integer" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "settings-yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "force-charm-url", + "force-series", + "settings-yaml" + ] + }, + "ApplicationsDeploy": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationDeploy" + } + } + }, + "additionalProperties": false, + "required": [ + "applications" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyApplicationUnits": { + "type": "object", + "properties": { + "unit-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "unit-names" + ] + }, + "DestroyRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetApplicationConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "ApplicationScaler", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Rescale": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Backups", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Create": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsCreateArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "FinishRestore": { + "type": "object" + }, + "Info": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsInfoArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsListArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsListResult" + } + } + }, + "PrepareRestore": { + "type": "object" + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsRemoveArgs" + } + } + }, + "Restore": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RestoreArgs" + } + } + } + }, + "definitions": { + "BackupsCreateArgs": { + "type": "object", + "properties": { + "notes": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "notes" + ] + }, + "BackupsInfoArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "BackupsListArgs": { + "type": "object", + "additionalProperties": false + }, + "BackupsListResult": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "BackupsMetadataResult": { + "type": "object", + "properties": { + "ca-cert": { + "type": "string" + }, + "ca-private-key": { + "type": "string" + }, + "checksum": { + "type": "string" + }, + "checksum-format": { + "type": "string" + }, + "finished": { + "type": "string", + "format": "date-time" + }, + "hostname": { + "type": "string" + }, + "id": { + "type": "string" + }, + "machine": { + "type": "string" + }, + "model": { + "type": "string" + }, + "notes": { + "type": "string" + }, + "series": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "started": { + "type": "string", + "format": "date-time" + }, + "stored": { + "type": "string", + "format": "date-time" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "id", + "checksum", + "checksum-format", + "size", + "stored", + "started", + "finished", + "notes", + "model", + "machine", + "hostname", + "version", + "series", + "ca-cert", + "ca-private-key" + ] + }, + "BackupsRemoveArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "RestoreArgs": { + "type": "object", + "properties": { + "backup-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "backup-id" + ] + } + } + } + }, + { + "Name": "Block", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BlockResults" + } + } + }, + "SwitchBlockOff": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "SwitchBlockOn": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Block": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "tag", + "type" + ] + }, + "BlockResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Block" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockResult" + } + } + }, + "additionalProperties": false + }, + "BlockSwitchParams": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Bundle", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + } + }, + "definitions": { + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "CharmRevisionUpdater", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "UpdateLatestRevisions": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Charms", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CharmInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/CharmInfo" + } + } + }, + "IsMetered": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/IsMeteredResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmsList" + }, + "Result": { + "$ref": "#/definitions/CharmsListResult" + } + } + } + }, + "definitions": { + "CharmActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "CharmActions": { + "type": "object", + "properties": { + "specs": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmActionSpec" + } + } + } + }, + "additionalProperties": false + }, + "CharmInfo": { + "type": "object", + "properties": { + "actions": { + "$ref": "#/definitions/CharmActions" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmOption" + } + } + }, + "meta": { + "$ref": "#/definitions/CharmMeta" + }, + "metrics": { + "$ref": "#/definitions/CharmMetrics" + }, + "revision": { + "type": "integer" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "revision", + "url", + "config" + ] + }, + "CharmMeta": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "extra-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "min-juju-version": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload-classes": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmPayloadClass" + } + } + }, + "peers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "provides": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "requires": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmResourceMeta" + } + } + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmStorage" + } + } + }, + "subordinate": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "terms": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "summary", + "description", + "subordinate" + ] + }, + "CharmMetric": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "description" + ] + }, + "CharmMetrics": { + "type": "object", + "properties": { + "metrics": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmMetric" + } + } + }, + "plan": { + "$ref": "#/definitions/CharmPlan" + } + }, + "additionalProperties": false, + "required": [ + "metrics", + "plan" + ] + }, + "CharmOption": { + "type": "object", + "properties": { + "default": { + "type": "object", + "additionalProperties": true + }, + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CharmPayloadClass": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type" + ] + }, + "CharmPlan": { + "type": "object", + "properties": { + "required": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "required" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmResourceMeta": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "description" + ] + }, + "CharmStorage": { + "type": "object", + "properties": { + "count-max": { + "type": "integer" + }, + "count-min": { + "type": "integer" + }, + "description": { + "type": "string" + }, + "location": { + "type": "string" + }, + "minimum-size": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + }, + "read-only": { + "type": "boolean" + }, + "shared": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "description", + "type", + "shared", + "read-only", + "count-min", + "count-max", + "minimum-size" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmsList": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "names" + ] + }, + "CharmsListResult": { + "type": "object", + "properties": { + "charm-urls": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-urls" + ] + }, + "IsMeteredResult": { + "type": "object", + "properties": { + "metered": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "metered" + ] + } + } + } + }, + { + "Name": "Cleaner", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Cleanup": { + "type": "object" + }, + "WatchCleanups": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "Client", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "AbortCurrentUpgrade": { + "type": "object" + }, + "AddCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharm" + } + } + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharmWithAuthorization" + } + } + }, + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AddMachinesV2": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AgentVersion": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AgentVersionResult" + } + } + }, + "DestroyMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyMachines" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "FullStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusParams" + }, + "Result": { + "$ref": "#/definitions/FullStatus" + } + } + }, + "GetBundleChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + }, + "GetModelConstraints": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "InjectMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelUserInfoResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PrivateAddress" + }, + "Result": { + "$ref": "#/definitions/PrivateAddressResults" + } + } + }, + "ProvisioningScript": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ProvisioningScriptParams" + }, + "Result": { + "$ref": "#/definitions/ProvisioningScriptResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PublicAddress" + }, + "Result": { + "$ref": "#/definitions/PublicAddressResults" + } + } + }, + "ResolveCharms": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResolveCharms" + }, + "Result": { + "$ref": "#/definitions/ResolveCharmResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Resolved" + } + } + }, + "RetryProvisioning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelAgentVersion" + } + } + }, + "SetModelConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "StatusHistory": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryRequests" + }, + "Result": { + "$ref": "#/definitions/StatusHistoryResults" + } + } + }, + "WatchAll": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "AddCharm": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel" + ] + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "AgentVersionResult": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "can-upgrade-to": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "exposed": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "meter-statuses": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MeterStatus" + } + } + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "series": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + }, + "subordinate-to": { + "type": "array", + "items": { + "type": "string" + } + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "charm", + "series", + "exposed", + "life", + "relations", + "can-upgrade-to", + "subordinate-to", + "units", + "meter-statuses", + "status", + "workload-version" + ] + }, + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyMachines": { + "type": "object", + "properties": { + "force": { + "type": "boolean" + }, + "machine-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-names", + "force" + ] + }, + "DetailedStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "info": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "data", + "since", + "kind", + "version", + "life" + ] + }, + "EndpointStatus": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "subordinate": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "application", + "name", + "role", + "subordinate" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FindToolsParams": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "number": { + "$ref": "#/definitions/Number" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "number", + "major", + "minor", + "arch", + "series" + ] + }, + "FindToolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "FullStatus": { + "type": "object", + "properties": { + "applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ApplicationStatus" + } + } + }, + "machines": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "model": { + "$ref": "#/definitions/ModelStatusInfo" + }, + "relations": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationStatus" + } + }, + "remote-applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/RemoteApplicationStatus" + } + } + } + }, + "additionalProperties": false, + "required": [ + "model", + "machines", + "applications", + "remote-applications", + "relations" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "History": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/definitions/DetailedStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "statuses" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MachineStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "constraints": { + "type": "string" + }, + "containers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "dns-name": { + "type": "string" + }, + "hardware": { + "type": "string" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "instance-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "ip-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "series": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "instance-status", + "dns-name", + "ip-addresses", + "instance-id", + "series", + "id", + "containers", + "constraints", + "hardware", + "jobs", + "has-vote", + "wants-vote" + ] + }, + "MeterStatus": { + "type": "object", + "properties": { + "color": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "color", + "message" + ] + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "migration": { + "$ref": "#/definitions/ModelMigrationStatus" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "provider-type", + "default-series", + "cloud-tag", + "owner-tag", + "life", + "status", + "users", + "machines" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "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": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelStatusInfo": { + "type": "object", + "properties": { + "available-version": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "migration": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "cloud-tag", + "version", + "available-version" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModelUserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "additionalProperties": false + }, + "ModelUserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "PrivateAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PrivateAddressResults": { + "type": "object", + "properties": { + "private-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "private-address" + ] + }, + "ProvisioningScriptParams": { + "type": "object", + "properties": { + "data-dir": { + "type": "string" + }, + "disable-package-commands": { + "type": "boolean" + }, + "machine-id": { + "type": "string" + }, + "nonce": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-id", + "nonce", + "data-dir", + "disable-package-commands" + ] + }, + "ProvisioningScriptResult": { + "type": "object", + "properties": { + "script": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "script" + ] + }, + "PublicAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PublicAddressResults": { + "type": "object", + "properties": { + "public-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "public-address" + ] + }, + "RelationStatus": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/EndpointStatus" + } + }, + "id": { + "type": "integer" + }, + "interface": { + "type": "string" + }, + "key": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "key", + "interface", + "scope", + "endpoints" + ] + }, + "RemoteApplicationStatus": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "application-url": { + "type": "string" + }, + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteEndpoint" + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "life": { + "type": "string" + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + } + }, + "additionalProperties": false, + "required": [ + "application-url", + "application-name", + "endpoints", + "life", + "relations", + "status" + ] + }, + "RemoteEndpoint": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "limit", + "scope" + ] + }, + "ResolveCharmResult": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ResolveCharmResults": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolveCharmResult" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ResolveCharms": { + "type": "object", + "properties": { + "references": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "references" + ] + }, + "Resolved": { + "type": "object", + "properties": { + "retry": { + "type": "boolean" + }, + "unit-name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-name", + "retry" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "StatusHistoryFilter": { + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "delta": { + "type": "integer" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "size", + "date", + "delta" + ] + }, + "StatusHistoryRequest": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/definitions/StatusHistoryFilter" + }, + "historyKind": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "historyKind", + "size", + "filter", + "tag" + ] + }, + "StatusHistoryRequests": { + "type": "object", + "properties": { + "requests": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryRequest" + } + } + }, + "additionalProperties": false, + "required": [ + "requests" + ] + }, + "StatusHistoryResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "history": { + "$ref": "#/definitions/History" + } + }, + "additionalProperties": false, + "required": [ + "history" + ] + }, + "StatusHistoryResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusParams": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "UnitStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "charm": { + "type": "string" + }, + "leader": { + "type": "boolean" + }, + "machine": { + "type": "string" + }, + "opened-ports": { + "type": "array", + "items": { + "type": "string" + } + }, + "public-address": { + "type": "string" + }, + "subordinates": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "workload-status", + "workload-version", + "machine", + "opened-ports", + "public-address", + "charm", + "subordinates" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "Cloud", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Cloud": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudResults" + } + } + }, + "Clouds": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/CloudsResult" + } + } + }, + "Credential": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudCredentialResults" + } + } + }, + "DefaultCloud": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "InstanceTypes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CloudInstanceTypesConstraints" + }, + "Result": { + "$ref": "#/definitions/InstanceTypesResults" + } + } + }, + "RevokeCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpdateCloudCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserClouds" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Cloud": { + "type": "object", + "properties": { + "auth-types": { + "type": "array", + "items": { + "type": "string" + } + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudRegion" + } + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudCredentialResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudCredential" + } + }, + "additionalProperties": false + }, + "CloudCredentialResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudCredentialResult" + } + } + }, + "additionalProperties": false + }, + "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": { + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name" + ] + }, + "CloudResult": { + "type": "object", + "properties": { + "cloud": { + "$ref": "#/definitions/Cloud" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "CloudResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudResult" + } + } + }, + "additionalProperties": false + }, + "CloudsResult": { + "type": "object", + "properties": { + "clouds": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Cloud" + } + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "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 + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateCloudCredential": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "credential" + ] + }, + "UpdateCloudCredentials": { + "type": "object", + "properties": { + "credentials": { + "type": "array", + "items": { + "$ref": "#/definitions/UpdateCloudCredential" + } + } + }, + "additionalProperties": false + }, + "UserCloud": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "cloud-tag" + ] + }, + "UserClouds": { + "type": "object", + "properties": { + "user-clouds": { + "type": "array", + "items": { + "$ref": "#/definitions/UserCloud" + } + } + }, + "additionalProperties": false + }, + "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": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DestroyController": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyControllerArgs" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/UserAccessResults" + } + } + }, + "HostedModelConfigs": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/HostedModelConfigsResults" + } + } + }, + "InitiateMigration": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/InitiateMigrationArgs" + }, + "Result": { + "$ref": "#/definitions/InitiateMigrationResults" + } + } + }, + "ListBlockedModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelBlockInfoList" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyControllerAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveBlocks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RemoveBlocksArgs" + } + } + }, + "WatchAllModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "DestroyControllerArgs": { + "type": "object", + "properties": { + "destroy-models": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "destroy-models" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostedModelConfig": { + "type": "object", + "properties": { + "cloud-spec": { + "$ref": "#/definitions/CloudSpec" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "owner": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner" + ] + }, + "HostedModelConfigsResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/HostedModelConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "InitiateMigrationArgs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/MigrationSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "InitiateMigrationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "migration-id": { + "type": "string" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "migration-id" + ] + }, + "InitiateMigrationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/InitiateMigrationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MigrationSpec": { + "type": "object", + "properties": { + "external-control": { + "type": "boolean" + }, + "model-tag": { + "type": "string" + }, + "skip-initial-prechecks": { + "type": "boolean" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info", + "external-control", + "skip-initial-prechecks" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelBlockInfo": { + "type": "object", + "properties": { + "blocks": { + "type": "array", + "items": { + "type": "string" + } + }, + "model-uuid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "model-uuid", + "owner-tag", + "blocks" + ] + }, + "ModelBlockInfoList": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelBlockInfo" + } + } + }, + "additionalProperties": false + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelStatus": { + "type": "object", + "properties": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access" + ] + }, + "ModifyControllerAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyControllerAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RemoveBlocksArgs": { + "type": "object", + "properties": { + "all": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "all" + ] + }, + "UserAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "access" + ] + }, + "UserAccessResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserAccess" + } + }, + "additionalProperties": false + }, + "UserAccessResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserAccessResult" + } + } + }, + "additionalProperties": false + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "Deployer", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "ConnectionInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DeployerConnectionValues" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "DeployerConnectionValues": { + "type": "object", + "properties": { + "api-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "state-addresses": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "state-addresses", + "api-addresses" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "DiscoverSpaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DiscoverSpacesResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "DiscoverSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderSpace" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ProviderSpace": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider-id", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "DiskManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineBlockDevices" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineBlockDevices": { + "type": "object", + "properties": { + "block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDevice" + } + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "machine-block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineBlockDevices" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-block-devices" + ] + } + } + } + }, + { + "Name": "EntityWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/EntitiesWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "EntitiesWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "FilesystemAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + }, + { + "Name": "Firewaller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "GetAssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetExposed": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "GetMachineActiveSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "GetMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachinePortsParams" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "WatchOpenedPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePorts": { + "type": "object", + "properties": { + "machine-tag": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "subnet-tag" + ] + }, + "MachinePortsParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePorts" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "HighAvailability", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "EnableHA": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ControllersSpecs" + }, + "Result": { + "$ref": "#/definitions/ControllersChangeResults" + } + } + }, + "ResumeHAReplicationAfterUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResumeReplicationParams" + } + } + }, + "StopHAReplicationForUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpgradeMongoParams" + }, + "Result": { + "$ref": "#/definitions/MongoUpgradeResults" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "Scope": { + "type": "string" + }, + "SpaceName": { + "type": "string" + }, + "SpaceProviderId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Value", + "Type", + "Scope", + "SpaceName", + "SpaceProviderId" + ] + }, + "ControllersChangeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ControllersChanges" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ControllersChangeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersChangeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ControllersChanges": { + "type": "object", + "properties": { + "added": { + "type": "array", + "items": { + "type": "string" + } + }, + "converted": { + "type": "array", + "items": { + "type": "string" + } + }, + "demoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "maintained": { + "type": "array", + "items": { + "type": "string" + } + }, + "promoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "removed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ControllersSpec": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "num-controllers": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "type": "string" + } + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "num-controllers" + ] + }, + "ControllersSpecs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "HAMember": { + "type": "object", + "properties": { + "public-address": { + "$ref": "#/definitions/Address" + }, + "series": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-address", + "series" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Member": { + "type": "object", + "properties": { + "Address": { + "type": "string" + }, + "Arbiter": { + "type": "boolean" + }, + "BuildIndexes": { + "type": "boolean" + }, + "Hidden": { + "type": "boolean" + }, + "Id": { + "type": "integer" + }, + "Priority": { + "type": "number" + }, + "SlaveDelay": { + "type": "integer" + }, + "Tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "Votes": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Id", + "Address", + "Arbiter", + "BuildIndexes", + "Hidden", + "Priority", + "Tags", + "SlaveDelay", + "Votes" + ] + }, + "MongoUpgradeResults": { + "type": "object", + "properties": { + "ha-members": { + "type": "array", + "items": { + "$ref": "#/definitions/HAMember" + } + }, + "master": { + "$ref": "#/definitions/HAMember" + }, + "rs-members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "rs-members", + "master", + "ha-members" + ] + }, + "MongoVersion": { + "type": "object", + "properties": { + "engine": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "patch": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "major", + "minor", + "patch", + "engine" + ] + }, + "ResumeReplicationParams": { + "type": "object", + "properties": { + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "members" + ] + }, + "UpgradeMongoParams": { + "type": "object", + "properties": { + "target": { + "$ref": "#/definitions/MongoVersion" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "HostKeyReporter", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ReportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SSHHostKeySet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHHostKeySet": { + "type": "object", + "properties": { + "entity-keys": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHHostKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "entity-keys" + ] + }, + "SSHHostKeys": { + "type": "object", + "properties": { + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-keys" + ] + } + } + } + }, + { + "Name": "ImageManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "DeleteImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ListImageResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageFilterParams": { + "type": "object", + "properties": { + "images": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "images" + ] + }, + "ImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series", + "url", + "created" + ] + }, + "ImageSpec": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series" + ] + }, + "ListImageResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "ImageMetadata", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Delete": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataImageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageMetadataFilter" + }, + "Result": { + "$ref": "#/definitions/ListCloudImageMetadataResult" + } + } + }, + "Save": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataSaveParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateFromPublishedImages": { + "type": "object" + } + }, + "definitions": { + "CloudImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "image-id": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "region": { + "type": "string" + }, + "root-storage-size": { + "type": "integer" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "string" + }, + "source": { + "type": "string" + }, + "stream": { + "type": "string" + }, + "version": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "image-id", + "region", + "version", + "series", + "arch", + "source", + "priority" + ] + }, + "CloudImageMetadataList": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageMetadataFilter": { + "type": "object", + "properties": { + "arches": { + "type": "array", + "items": { + "type": "string" + } + }, + "region": { + "type": "string" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "stream": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ListCloudImageMetadataResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MetadataImageIds": { + "type": "object", + "properties": { + "image-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "image-ids" + ] + }, + "MetadataSaveParams": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadataList" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "InstancePoller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AreManuallyProvisioned": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineAddressesResults" + } + } + }, + "SetInstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Status": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "MachineAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "MachineAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "KeyManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DeleteKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ImportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListSSHKeys" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSSHKeys": { + "type": "object", + "properties": { + "entities": { + "$ref": "#/definitions/Entities" + }, + "mode": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "mode" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModifyUserSSHKeys": { + "type": "object", + "properties": { + "ssh-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "ssh-keys" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "KeyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "WatchAuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LeadershipService", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "BlockUntilLeadershipReleased": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationTag" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "ClaimLeadership": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ClaimLeadershipBulkParams" + }, + "Result": { + "$ref": "#/definitions/ClaimLeadershipBulkResults" + } + } + } + }, + "definitions": { + "ApplicationTag": { + "type": "object", + "properties": { + "Name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Name" + ] + }, + "ClaimLeadershipBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/ClaimLeadershipParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "ClaimLeadershipBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ClaimLeadershipParams": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "duration": { + "type": "number" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "unit-tag", + "duration" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "LifeFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LogForwarding", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingGetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/LogForwardingGetLastSentResults" + } + } + }, + "SetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingSetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingGetLastSentParams": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingID" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "LogForwardingGetLastSentResult": { + "type": "object", + "properties": { + "err": { + "$ref": "#/definitions/Error" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "record-id", + "record-timestamp", + "err" + ] + }, + "LogForwardingGetLastSentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingGetLastSentResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingID": { + "type": "object", + "properties": { + "model": { + "type": "string" + }, + "sink": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model", + "sink" + ] + }, + "LogForwardingSetLastSentParam": { + "type": "object", + "properties": { + "LogForwardingID": { + "$ref": "#/definitions/LogForwardingID" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "LogForwardingID", + "record-id", + "record-timestamp" + ] + }, + "LogForwardingSetLastSentParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingSetLastSentParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Logger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "LoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "WatchLoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineActions", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RunningActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "InstanceTypes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelInstanceTypesConstraints" + }, + "Result": { + "$ref": "#/definitions/InstanceTypesResults" + } + } + } + }, + "definitions": { + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "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": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MachineUndertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AllMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/EntitiesResults" + } + } + }, + "CompleteMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + } + } + }, + "GetMachineProviderInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProviderInterfaceInfoResults" + } + } + }, + "WatchMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResult": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProviderInterfaceInfo": { + "type": "object", + "properties": { + "interface-name": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "provider-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "interface-name", + "mac-address", + "provider-id" + ] + }, + "ProviderInterfaceInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "interfaces": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfo" + } + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "interfaces" + ] + }, + "ProviderInterfaceInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Machiner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Jobs": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/JobsResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetMachineAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetObservedNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineNetworkConfig" + } + } + }, + "SetProviderNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "JobsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "jobs" + ] + }, + "JobsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/JobsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkRoute" + } + }, + "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" + ] + }, + "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": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetMachineNetworkConfig": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "config" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MeterStatus", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsAdder", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + } + } + } + }, + { + "Name": "MetricsDebug", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "GetMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MetricResults" + } + } + }, + "SetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MeterStatusParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityMetrics": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricResult" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusParam": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "code", + "info" + ] + }, + "MeterStatusParams": { + "type": "object", + "properties": { + "statues": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusParam" + } + } + }, + "additionalProperties": false, + "required": [ + "statues" + ] + }, + "MetricResult": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "unit": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "time", + "key", + "value", + "unit" + ] + }, + "MetricResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityMetrics" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "CleanupOldMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SendMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "MigrationFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Phase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PhaseResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PhaseResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "phase": { + "type": "string" + } + }, + "additionalProperties": false + }, + "PhaseResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PhaseResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MigrationMaster", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Export": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "MigrationStatus": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MasterMigrationStatus" + } + } + }, + "MinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MinionReports" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + }, + "Prechecks": { + "type": "object" + }, + "Reap": { + "type": "object" + }, + "SetPhase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationPhaseArgs" + } + } + }, + "SetStatusMessage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationStatusMessageArgs" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchMinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MasterMigrationStatus": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "phase-changed-time": { + "type": "string", + "format": "date-time" + }, + "spec": { + "$ref": "#/definitions/MigrationSpec" + } + }, + "additionalProperties": false, + "required": [ + "spec", + "migration-id", + "phase", + "phase-changed-time" + ] + }, + "MigrationModelInfo": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "controller-agent-version": { + "$ref": "#/definitions/Number" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version", + "controller-agent-version" + ] + }, + "MigrationSpec": { + "type": "object", + "properties": { + "external-control": { + "type": "boolean" + }, + "model-tag": { + "type": "string" + }, + "skip-initial-prechecks": { + "type": "boolean" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info", + "external-control", + "skip-initial-prechecks" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "MinionReports": { + "type": "object", + "properties": { + "failed": { + "type": "array", + "items": { + "type": "string" + } + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success-count": { + "type": "integer" + }, + "unknown-count": { + "type": "integer" + }, + "unknown-sample": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success-count", + "unknown-count", + "unknown-sample", + "failed" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelResource" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "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": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + }, + "SetMigrationPhaseArgs": { + "type": "object", + "properties": { + "phase": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "phase" + ] + }, + "SetMigrationStatusMessageArgs": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message" + ] + } + } + } + }, + { + "Name": "MigrationMinion", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Report": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MinionReport" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MinionReport": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "MigrationStatusWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationStatus" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "MigrationStatus": { + "type": "object", + "properties": { + "attempt": { + "type": "integer" + }, + "external-control": { + "type": "boolean" + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "source-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "source-ca-cert": { + "type": "string" + }, + "target-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "target-ca-cert": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "attempt", + "phase", + "external-control", + "source-api-addrs", + "source-ca-cert", + "target-api-addrs", + "target-ca-cert" + ] + } + } + } + }, + { + "Name": "MigrationTarget", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Abort": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "Activate": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "AdoptResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AdoptResourcesArgs" + } + } + }, + "Import": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "LatestLogTime": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + }, + "Result": { + "type": "string", + "format": "date-time" + } + } + }, + "Prechecks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + } + }, + "definitions": { + "AdoptResourcesArgs": { + "type": "object", + "properties": { + "model-tag": { + "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, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version", + "controller-agent-version" + ] + }, + "ModelArgs": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelResource" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "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": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + } + } + } + }, + { + "Name": "ModelConfig", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + } + }, + "definitions": { + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelSet": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + } + } + } + }, + { + "Name": "ModelManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CreateModel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelCreateArgs" + }, + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "DestroyModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DumpModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "DumpModelsDB": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "ListModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entity" + }, + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "ModelDefaults": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelDefaultsResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelInfoResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyModelAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnsetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MapResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "MapResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MapResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelCreateArgs": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "credential": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "region": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner-tag" + ] + }, + "ModelDefaultValues": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelDefaults": { + "type": "object", + "properties": { + "controller": { + "type": "object", + "additionalProperties": true + }, + "default": { + "type": "object", + "additionalProperties": true + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/RegionDefaults" + } + } + }, + "additionalProperties": false + }, + "ModelDefaultsResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ModelDefaults" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "migration": { + "$ref": "#/definitions/ModelMigrationStatus" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "provider-type", + "default-series", + "cloud-tag", + "owner-tag", + "life", + "status", + "users", + "machines" + ] + }, + "ModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelInfo" + } + }, + "additionalProperties": false + }, + "ModelInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "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": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelUnsetKeys": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "model-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access", + "model-tag" + ] + }, + "ModifyModelAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyModelAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RegionDefaults": { + "type": "object", + "properties": { + "region-name": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "region-name", + "value" + ] + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelDefaultValues" + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUnsetKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "NotifyWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Payloads", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EnvListArgs" + }, + "Result": { + "$ref": "#/definitions/EnvListResults" + } + } + } + }, + "definitions": { + "EnvListArgs": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "EnvListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + } + } + } + }, + { + "Name": "PayloadsHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "LookUp": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LookUpArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatusArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Track": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/TrackArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Untrack": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LookUpArg": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "id" + ] + }, + "LookUpArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/LookUpArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + }, + "PayloadResult": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "not-found": { + "type": "boolean" + }, + "payload": { + "$ref": "#/definitions/Payload" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "payload", + "not-found" + ] + }, + "PayloadResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PayloadResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatusArg": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "status" + ] + }, + "SetStatusArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/SetStatusArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "TrackArgs": { + "type": "object", + "properties": { + "payloads": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "payloads" + ] + } + } + } + }, + { + "Name": "Pinger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Ping": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Provisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "Constraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConstraintsResults" + } + } + }, + "ContainerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ContainerConfig" + } + } + }, + "ContainerManagerConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ContainerManagerConfigParams" + }, + "Result": { + "$ref": "#/definitions/ContainerManagerConfig" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DistributionGroup": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DistributionGroupResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "GetContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "HostChangesForContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/HostNetworkChangeResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "MachinesWithTransientErrors": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "MarkMachinesForRemoval": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PrepareContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProvisioningInfoResults" + } + } + }, + "ReleaseContainerAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Series": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "SetHostMachineNetworkConfig": { + "type": "object", + "properties": { + "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" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkRoute" + } + }, + "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" + ] + }, + "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": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "controller-config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "image-metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "placement": { + "type": "string" + }, + "series": { + "type": "string" + }, + "subnets-to-zones": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParams" + } + } + }, + "additionalProperties": false, + "required": [ + "constraints", + "series", + "placement", + "jobs" + ] + }, + "ProvisioningInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ProvisioningInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ProvisioningInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProvisioningInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetMachineNetworkConfig": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "config" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Settings": { + "type": "object", + "properties": { + "Ftp": { + "type": "string" + }, + "Http": { + "type": "string" + }, + "Https": { + "type": "string" + }, + "NoProxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Http", + "Https", + "Ftp", + "NoProxy" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateBehavior": { + "type": "object", + "properties": { + "enable-os-refresh-update": { + "type": "boolean" + }, + "enable-os-upgrade": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "enable-os-refresh-update", + "enable-os-upgrade" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "WatchContainer": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "container-type" + ] + }, + "WatchContainers": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/WatchContainer" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + } + } + } + }, + { + "Name": "ProxyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ProxyConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProxyConfigResults" + } + } + }, + "WatchForProxyConfigAndAPIHostPortChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProxyConfig": { + "type": "object", + "properties": { + "ftp": { + "type": "string" + }, + "http": { + "type": "string" + }, + "https": { + "type": "string" + }, + "no-proxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "http", + "https", + "ftp", + "no-proxy" + ] + }, + "ProxyConfigResult": { + "type": "object", + "properties": { + "apt-proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + } + }, + "additionalProperties": false, + "required": [ + "proxy-settings", + "apt-proxy-settings" + ] + }, + "ProxyConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProxyConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Reboot", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetRebootAction": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RebootActionResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchForRebootEvent": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "RebootActionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false + }, + "RebootActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RebootActionResult" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "RelationUnitsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + } + } + } + }, + { + "Name": "RemoteApplicationWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/RemoteApplicationWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RemoteApplicationChange": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "life": { + "type": "string" + }, + "relations": { + "$ref": "#/definitions/RemoteRelationsChange" + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "life", + "relations" + ] + }, + "RemoteApplicationWatchResult": { + "type": "object", + "properties": { + "change": { + "$ref": "#/definitions/RemoteApplicationChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "RemoteEntityId": { + "type": "object", + "properties": { + "model-uuid": { + "type": "string" + }, + "token": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-uuid", + "token" + ] + }, + "RemoteRelationChange": { + "type": "object", + "properties": { + "changed-units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/RemoteRelationUnitChange" + } + } + }, + "departed-units": { + "type": "array", + "items": { + "type": "string" + } + }, + "id": { + "type": "integer" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life" + ] + }, + "RemoteRelationUnitChange": { + "type": "object", + "properties": { + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "unit-id": { + "$ref": "#/definitions/RemoteEntityId" + } + }, + "additionalProperties": false, + "required": [ + "unit-id" + ] + }, + "RemoteRelationsChange": { + "type": "object", + "properties": { + "changed": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteRelationChange" + } + }, + "initial": { + "type": "boolean" + }, + "removed": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "initial" + ] + } + } + } + }, + { + "Name": "RemoteRelationsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/RemoteRelationsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RemoteEntityId": { + "type": "object", + "properties": { + "model-uuid": { + "type": "string" + }, + "token": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-uuid", + "token" + ] + }, + "RemoteRelationChange": { + "type": "object", + "properties": { + "changed-units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/RemoteRelationUnitChange" + } + } + }, + "departed-units": { + "type": "array", + "items": { + "type": "string" + } + }, + "id": { + "type": "integer" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life" + ] + }, + "RemoteRelationUnitChange": { + "type": "object", + "properties": { + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "unit-id": { + "$ref": "#/definitions/RemoteEntityId" + } + }, + "additionalProperties": false, + "required": [ + "unit-id" + ] + }, + "RemoteRelationsChange": { + "type": "object", + "properties": { + "changed": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteRelationChange" + } + }, + "initial": { + "type": "boolean" + }, + "removed": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "initial" + ] + }, + "RemoteRelationsWatchResult": { + "type": "object", + "properties": { + "RemoteRelationsWatcherId": { + "type": "string" + }, + "change": { + "$ref": "#/definitions/RemoteRelationsChange" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "RemoteRelationsWatcherId" + ] + } + } + } + }, + { + "Name": "Resources", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddPendingResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddPendingResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/AddPendingResourcesResult" + } + } + }, + "ListResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/ResourcesResults" + } + } + } + }, + "definitions": { + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddPendingResourcesArgs": { + "type": "object", + "properties": { + "AddCharmWithAuthorization": { + "$ref": "#/definitions/AddCharmWithAuthorization" + }, + "Entity": { + "$ref": "#/definitions/Entity" + }, + "Resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "AddCharmWithAuthorization", + "Resources" + ] + }, + "AddPendingResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "pending-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "pending-ids" + ] + }, + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListResourcesArgs": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "ResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "charm-store-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + }, + "unit-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitResources" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources", + "charm-store-resources", + "unit-resources" + ] + }, + "ResourcesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourcesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitResources": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "download-progress": { + "type": "object", + "patternProperties": { + ".*": { + "type": "integer" + } + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "resources", + "download-progress" + ] + } + } + } + }, + { + "Name": "ResourcesHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetResourceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/ResourcesResult" + } + } + } + }, + "definitions": { + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListResourcesArgs": { + "type": "object", + "properties": { + "resource-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "resource-names" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "ResourceResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resource": { + "$ref": "#/definitions/Resource" + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resource" + ] + }, + "ResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources" + ] + } + } + } + }, + { + "Name": "Resumer", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ResumeTransactions": { + "type": "object" + } + } + } + }, + { + "Name": "RetryStrategy", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "RetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RetryStrategyResults" + } + } + }, + "WatchRetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RetryStrategy": { + "type": "object", + "properties": { + "jitter-retry-time": { + "type": "boolean" + }, + "max-retry-time": { + "type": "integer" + }, + "min-retry-time": { + "type": "integer" + }, + "retry-time-factor": { + "type": "integer" + }, + "should-retry": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "should-retry", + "min-retry-time", + "max-retry-time", + "jitter-retry-time", + "retry-time-factor" + ] + }, + "RetryStrategyResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/RetryStrategy" + } + }, + "additionalProperties": false + }, + "RetryStrategyResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RetryStrategyResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "SSHClient", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AllAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressesResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "Proxy": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SSHProxyResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "PublicKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHPublicKeysResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHAddressResult": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "SSHAddressResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "SSHAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHProxyResult": { + "type": "object", + "properties": { + "use-proxy": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "use-proxy" + ] + }, + "SSHPublicKeysResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "SSHPublicKeysResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHPublicKeysResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Singular", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Claim": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SingularClaims" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Wait": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SingularClaim": { + "type": "object", + "properties": { + "controller-tag": { + "type": "string" + }, + "duration": { + "type": "integer" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "controller-tag", + "duration" + ] + }, + "SingularClaims": { + "type": "object", + "properties": { + "claims": { + "type": "array", + "items": { + "$ref": "#/definitions/SingularClaim" + } + } + }, + "additionalProperties": false, + "required": [ + "claims" + ] + } + } + } + }, + { + "Name": "Spaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ListSpacesResults" + } + } + } + }, + "definitions": { + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Space" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Space": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + } + } + } + }, + { + "Name": "StatusHistory", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Prune": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryPruneArgs" + } + } + } + }, + "definitions": { + "StatusHistoryPruneArgs": { + "type": "object", + "properties": { + "max-history-mb": { + "type": "integer" + }, + "max-history-time": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "max-history-time", + "max-history-mb" + ] + } + } + } + }, + { + "Name": "Storage", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddToUnit": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreatePool": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "ListFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemFilters" + }, + "Result": { + "$ref": "#/definitions/FilesystemDetailsListResults" + } + } + }, + "ListPools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePoolFilters" + }, + "Result": { + "$ref": "#/definitions/StoragePoolsResults" + } + } + }, + "ListStorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageFilters" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsListResults" + } + } + }, + "ListVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeFilters" + }, + "Result": { + "$ref": "#/definitions/VolumeDetailsListResults" + } + } + }, + "StorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemDetails": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info", + "status" + ] + }, + "FilesystemDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetails" + } + } + }, + "additionalProperties": false + }, + "FilesystemDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemFilter" + } + } + }, + "additionalProperties": false + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "size" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachmentDetails": { + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag", + "machine-tag" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StorageDetails": { + "type": "object", + "properties": { + "attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageAttachmentDetails" + } + } + }, + "kind": { + "type": "integer" + }, + "owner-tag": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "kind", + "status", + "persistent" + ] + }, + "StorageDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetails" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageDetails" + } + }, + "additionalProperties": false + }, + "StorageDetailsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsResult" + } + } + }, + "additionalProperties": false + }, + "StorageFilter": { + "type": "object", + "additionalProperties": false + }, + "StorageFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePool": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "name": { + "type": "string" + }, + "provider": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider", + "attrs" + ] + }, + "StoragePoolFilter": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + }, + "providers": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StoragePoolFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "storage-pools": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolsResult" + } + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeDetails": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/VolumeAttachmentInfo" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info", + "status" + ] + }, + "VolumeDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetails" + } + } + }, + "additionalProperties": false + }, + "VolumeDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "VolumeFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "VolumeFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeFilter" + } + } + }, + "additionalProperties": false + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + } + } + } + }, + { + "Name": "StorageProvisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentParamsResults" + } + } + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentResults" + } + } + }, + "FilesystemParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemParamsResults" + } + } + }, + "Filesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveAttachment": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Filesystems" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Volumes" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentParamsResults" + } + } + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentResults" + } + } + }, + "VolumeBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/BlockDeviceResults" + } + } + }, + "VolumeParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeParamsResults" + } + } + }, + "Volumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeResults" + } + } + }, + "WatchBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchFilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchVolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "BlockDeviceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/BlockDevice" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockDeviceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDeviceResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Filesystem": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info" + ] + }, + "FilesystemAttachment": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "info" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "filesystem-tag": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "mount-point": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "provider" + ] + }, + "FilesystemAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "filesystem-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystem-attachments" + ] + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "size" + ] + }, + "FilesystemParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/FilesystemAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "filesystem-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "size", + "provider" + ] + }, + "FilesystemParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Filesystem" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemResult" + } + } + }, + "additionalProperties": false + }, + "Filesystems": { + "type": "object", + "properties": { + "filesystems": { + "type": "array", + "items": { + "$ref": "#/definitions/Filesystem" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystems" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "MachineStorageIdsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachment": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeAttachmentInfo" + }, + "machine-tag": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "volume-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "volume-attachments" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "VolumeParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Volume" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeResult" + } + } + }, + "additionalProperties": false + }, + "Volumes": { + "type": "object", + "properties": { + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/Volume" + } + } + }, + "additionalProperties": false, + "required": [ + "volumes" + ] + } + } + } + }, + { + "Name": "StringsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Subnets", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SpaceResults" + } + } + }, + "AllZones": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ZoneResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SpaceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "SpaceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SpaceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ZoneResult": { + "type": "object", + "properties": { + "available": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "available" + ] + }, + "ZoneResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ZoneResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Undertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UndertakerModelInfoResult" + } + } + }, + "ProcessDyingModel": { + "type": "object" + }, + "RemoveModel": { + "type": "object" + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchModelResources": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "UndertakerModelInfo": { + "type": "object", + "properties": { + "global-name": { + "type": "string" + }, + "is-system": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "global-name", + "is-system", + "life" + ] + }, + "UndertakerModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UndertakerModelInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + } + } + } + }, + { + "Name": "UnitAssigner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AssignUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchUnitAssignments": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Uniter", + "Version": 4, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AddUnitStorage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationStatusResults" + } + } + }, + "AssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "AvailabilityZone": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "CharmArchiveSha256": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURLs" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "CharmModifiedVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/IntResults" + } + } + }, + "CharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "ClearResolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ClosePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConfigSettingsResults" + } + } + }, + "CurrentModel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelResult" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyAllSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnterScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "GetPrincipal": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "HasSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "JoinedRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "LeaveScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Merge": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "NetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnitsNetworkConfig" + }, + "Result": { + "$ref": "#/definitions/UnitNetworkConfigResults" + } + } + }, + "OpenPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "ProviderType": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Read": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/GetLeadershipSettingsBulkResults" + } + } + }, + "ReadRemoteSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitPairs" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "ReadSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "Relation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RelationById": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationIds" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RemoveStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ResolvedModeResults" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesCharmURL" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetUnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetWorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityWorkloadVersions" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StorageAttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "StorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentResults" + } + } + }, + "UnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "UnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentIdsResults" + } + } + }, + "UpdateSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitsSettings" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchApplicationRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchLeadershipSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchRelationUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResults" + } + } + }, + "WatchStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "ApplicationStatusResult": { + "type": "object", + "properties": { + "application": { + "$ref": "#/definitions/StatusResult" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StatusResult" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "units" + ] + }, + "ApplicationStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmURLs": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ConfigSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "ConfigSettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Endpoint": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "relation": { + "$ref": "#/definitions/CharmRelation" + } + }, + "additionalProperties": false, + "required": [ + "application-name", + "relation" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesCharmURL": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityCharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesPortRanges": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityCharmURL": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "charm-url" + ] + }, + "EntityPortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "protocol", + "from-port", + "to-port" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "EntityWorkloadVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "workload-version" + ] + }, + "EntityWorkloadVersions": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityWorkloadVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/GetLeadershipSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "IntResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "IntResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/IntResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "MergeLeadershipSettingsBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MergeLeadershipSettingsParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MergeLeadershipSettingsParam": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "settings" + ] + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkRoute" + } + }, + "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" + ] + }, + "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": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "RelationIds": { + "type": "object", + "properties": { + "relation-ids": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-ids" + ] + }, + "RelationResult": { + "type": "object", + "properties": { + "endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "integer" + }, + "key": { + "type": "string" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "id", + "key", + "endpoint" + ] + }, + "RelationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RelationUnit": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit" + ] + }, + "RelationUnitPair": { + "type": "object", + "properties": { + "local-unit": { + "type": "string" + }, + "relation": { + "type": "string" + }, + "remote-unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "local-unit", + "remote-unit" + ] + }, + "RelationUnitPairs": { + "type": "object", + "properties": { + "relation-unit-pairs": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitPair" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-unit-pairs" + ] + }, + "RelationUnitSettings": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit", + "settings" + ] + }, + "RelationUnits": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnit" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsSettings": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitSettings" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "RelationUnitsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ResolvedModeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "mode": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "mode" + ] + }, + "ResolvedModeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolvedModeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "SettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "SettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachment": { + "type": "object", + "properties": { + "kind": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "location": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "unit-tag", + "kind", + "location", + "life" + ] + }, + "StorageAttachmentId": { + "type": "object", + "properties": { + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag" + ] + }, + "StorageAttachmentIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "StorageAttachmentIdsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachmentIds" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentIdsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentIdsResult" + } + } + }, + "additionalProperties": false + }, + "StorageAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "StringBoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ok": { + "type": "boolean" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result", + "ok" + ] + }, + "StringBoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringBoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitNetworkConfig": { + "type": "object", + "properties": { + "binding-name": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "binding-name" + ] + }, + "UnitNetworkConfigResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "info" + ] + }, + "UnitNetworkConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitNetworkConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "UnitsNetworkConfig": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitNetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + } + } + } + }, + { + "Name": "Upgrader", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "DesiredVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VersionResults" + } + } + }, + "SetTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesVersion" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Tools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ToolsResults" + } + } + }, + "WatchAPIVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesVersion": { + "type": "object", + "properties": { + "agent-tools": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "agent-tools" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "tools": { + "$ref": "#/definitions/Version" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "tools" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Version": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "VersionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false + }, + "VersionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VersionResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "UserManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddUsers" + }, + "Result": { + "$ref": "#/definitions/AddUserResults" + } + } + }, + "DisableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPassword": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserInfoRequest" + }, + "Result": { + "$ref": "#/definitions/UserInfoResults" + } + } + } + }, + "definitions": { + "AddUser": { + "type": "object", + "properties": { + "display-name": { + "type": "string" + }, + "password": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name" + ] + }, + "AddUserResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "secret-key": { + "type": "array", + "items": { + "type": "integer" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false + }, + "AddUserResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUserResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AddUsers": { + "type": "object", + "properties": { + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUser" + } + } + }, + "additionalProperties": false, + "required": [ + "users" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "UserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "created-by": { + "type": "string" + }, + "date-created": { + "type": "string", + "format": "date-time" + }, + "disabled": { + "type": "boolean" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name", + "access", + "created-by", + "date-created", + "disabled" + ] + }, + "UserInfoRequest": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "include-disabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "include-disabled" + ] + }, + "UserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserInfo" + } + }, + "additionalProperties": false + }, + "UserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "VolumeAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + } +] diff --git a/modules/libjuju/juju/client/schemas-juju-2.1.2.json b/modules/libjuju/juju/client/schemas-juju-2.1.2.json new file mode 100644 index 0000000..474b204 --- /dev/null +++ b/modules/libjuju/juju/client/schemas-juju-2.1.2.json @@ -0,0 +1,25730 @@ +[ + { + "Name": "Action", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "ApplicationsCharmsActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationsCharmActionsResults" + } + } + }, + "Cancel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "Enqueue": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Actions" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "FindActionTagsByPrefix": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindTags" + }, + "Result": { + "$ref": "#/definitions/FindTagsResults" + } + } + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindActionsByNames" + }, + "Result": { + "$ref": "#/definitions/ActionsByNames" + } + } + }, + "ListAll": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListCompleted": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListPending": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListRunning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "Run": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "RunOnAllMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "Actions": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/Action" + } + } + }, + "additionalProperties": false + }, + "ActionsByName": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByNames": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByName" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "ApplicationCharmActionsResult": { + "type": "object", + "properties": { + "actions": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ActionSpec" + } + } + }, + "application-tag": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ApplicationsCharmActionsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationCharmActionsResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FindTags": { + "type": "object", + "properties": { + "prefixes": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "prefixes" + ] + }, + "FindTagsResults": { + "type": "object", + "properties": { + "matches": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + } + } + }, + "additionalProperties": false, + "required": [ + "matches" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RunParams": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "type": "string" + } + }, + "commands": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "type": "string" + } + }, + "timeout": { + "type": "integer" + }, + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "commands", + "timeout" + ] + } + } + } + }, + { + "Name": "Agent", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetEntities": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AgentGetEntitiesResults" + } + } + }, + "IsMaster": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/IsMasterResult" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateServingInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StateServingInfo" + } + } + }, + "WatchCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "AgentGetEntitiesResult": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "jobs", + "container-type" + ] + }, + "AgentGetEntitiesResults": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/AgentGetEntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "IsMasterResult": { + "type": "object", + "properties": { + "master": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "master" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StateServingInfo": { + "type": "object", + "properties": { + "api-port": { + "type": "integer" + }, + "ca-private-key": { + "type": "string" + }, + "cert": { + "type": "string" + }, + "private-key": { + "type": "string" + }, + "shared-secret": { + "type": "string" + }, + "state-port": { + "type": "integer" + }, + "system-identity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "api-port", + "state-port", + "cert", + "private-key", + "ca-private-key", + "shared-secret", + "system-identity" + ] + } + } + } + }, + { + "Name": "AgentTools", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "UpdateToolsAvailable": { + "type": "object" + } + } + } + }, + { + "Name": "AllModelWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "AllWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "Annotations", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AnnotationsGetResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AnnotationsSet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "AnnotationsGetResult": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/ErrorResult" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "AnnotationsGetResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AnnotationsGetResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AnnotationsSet": { + "type": "object", + "properties": { + "annotations": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityAnnotations" + } + } + }, + "additionalProperties": false, + "required": [ + "annotations" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityAnnotations": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Application", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddRelation" + }, + "Result": { + "$ref": "#/definitions/AddRelationResults" + } + } + }, + "AddUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddApplicationUnits" + }, + "Result": { + "$ref": "#/definitions/AddApplicationUnitsResults" + } + } + }, + "CharmRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationCharmRelations" + }, + "Result": { + "$ref": "#/definitions/ApplicationCharmRelationsResults" + } + } + }, + "Deploy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationsDeploy" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationDestroy" + } + } + }, + "DestroyRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyRelation" + } + } + }, + "DestroyUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyApplicationUnits" + } + } + }, + "Expose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationExpose" + } + } + }, + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/ApplicationGetResults" + } + } + }, + "GetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "GetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/GetApplicationConstraints" + }, + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSet" + } + } + }, + "SetCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSetCharm" + } + } + }, + "SetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "SetMetricCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationMetricCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Unexpose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnexpose" + } + } + }, + "Unset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnset" + } + } + }, + "Update": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUpdate" + } + } + } + }, + "definitions": { + "AddApplicationUnits": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "num-units", + "placement" + ] + }, + "AddApplicationUnitsResults": { + "type": "object", + "properties": { + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "units" + ] + }, + "AddRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "AddRelationResults": { + "type": "object", + "properties": { + "endpoints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "ApplicationCharmRelations": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationCharmRelationsResults": { + "type": "object", + "properties": { + "charm-relations": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-relations" + ] + }, + "ApplicationDeploy": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-yaml": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "series": { + "type": "string" + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Constraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "series", + "charm-url", + "channel", + "num-units", + "config-yaml", + "constraints" + ] + }, + "ApplicationDestroy": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationExpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGet": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGetResults": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm", + "config", + "constraints", + "series" + ] + }, + "ApplicationMetricCredential": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "metrics-credentials": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "metrics-credentials" + ] + }, + "ApplicationMetricCredentials": { + "type": "object", + "properties": { + "creds": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationMetricCredential" + } + } + }, + "additionalProperties": false, + "required": [ + "creds" + ] + }, + "ApplicationSet": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationSetCharm": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config-settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-settings-yaml": { + "type": "string" + }, + "force-series": { + "type": "boolean" + }, + "force-units": { + "type": "boolean" + }, + "resource-ids": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "storage-constraints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageConstraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "channel", + "force-units", + "force-series" + ] + }, + "ApplicationUnexpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationUnset": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationUpdate": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "force-charm-url": { + "type": "boolean" + }, + "force-series": { + "type": "boolean" + }, + "min-units": { + "type": "integer" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "settings-yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "force-charm-url", + "force-series", + "settings-yaml" + ] + }, + "ApplicationsDeploy": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationDeploy" + } + } + }, + "additionalProperties": false, + "required": [ + "applications" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyApplicationUnits": { + "type": "object", + "properties": { + "unit-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "unit-names" + ] + }, + "DestroyRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetApplicationConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "ApplicationScaler", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Rescale": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Backups", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Create": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsCreateArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "FinishRestore": { + "type": "object" + }, + "Info": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsInfoArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsListArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsListResult" + } + } + }, + "PrepareRestore": { + "type": "object" + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsRemoveArgs" + } + } + }, + "Restore": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RestoreArgs" + } + } + } + }, + "definitions": { + "BackupsCreateArgs": { + "type": "object", + "properties": { + "notes": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "notes" + ] + }, + "BackupsInfoArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "BackupsListArgs": { + "type": "object", + "additionalProperties": false + }, + "BackupsListResult": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "BackupsMetadataResult": { + "type": "object", + "properties": { + "ca-cert": { + "type": "string" + }, + "ca-private-key": { + "type": "string" + }, + "checksum": { + "type": "string" + }, + "checksum-format": { + "type": "string" + }, + "finished": { + "type": "string", + "format": "date-time" + }, + "hostname": { + "type": "string" + }, + "id": { + "type": "string" + }, + "machine": { + "type": "string" + }, + "model": { + "type": "string" + }, + "notes": { + "type": "string" + }, + "series": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "started": { + "type": "string", + "format": "date-time" + }, + "stored": { + "type": "string", + "format": "date-time" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "id", + "checksum", + "checksum-format", + "size", + "stored", + "started", + "finished", + "notes", + "model", + "machine", + "hostname", + "version", + "series", + "ca-cert", + "ca-private-key" + ] + }, + "BackupsRemoveArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "RestoreArgs": { + "type": "object", + "properties": { + "backup-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "backup-id" + ] + } + } + } + }, + { + "Name": "Block", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BlockResults" + } + } + }, + "SwitchBlockOff": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "SwitchBlockOn": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Block": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "tag", + "type" + ] + }, + "BlockResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Block" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockResult" + } + } + }, + "additionalProperties": false + }, + "BlockSwitchParams": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Bundle", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + } + }, + "definitions": { + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "CharmRevisionUpdater", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "UpdateLatestRevisions": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Charms", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CharmInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/CharmInfo" + } + } + }, + "IsMetered": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/IsMeteredResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmsList" + }, + "Result": { + "$ref": "#/definitions/CharmsListResult" + } + } + } + }, + "definitions": { + "CharmActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "CharmActions": { + "type": "object", + "properties": { + "specs": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmActionSpec" + } + } + } + }, + "additionalProperties": false + }, + "CharmInfo": { + "type": "object", + "properties": { + "actions": { + "$ref": "#/definitions/CharmActions" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmOption" + } + } + }, + "meta": { + "$ref": "#/definitions/CharmMeta" + }, + "metrics": { + "$ref": "#/definitions/CharmMetrics" + }, + "revision": { + "type": "integer" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "revision", + "url", + "config" + ] + }, + "CharmMeta": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "extra-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "min-juju-version": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload-classes": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmPayloadClass" + } + } + }, + "peers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "provides": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "requires": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmResourceMeta" + } + } + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmStorage" + } + } + }, + "subordinate": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "terms": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "summary", + "description", + "subordinate" + ] + }, + "CharmMetric": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "description" + ] + }, + "CharmMetrics": { + "type": "object", + "properties": { + "metrics": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmMetric" + } + } + }, + "plan": { + "$ref": "#/definitions/CharmPlan" + } + }, + "additionalProperties": false, + "required": [ + "metrics", + "plan" + ] + }, + "CharmOption": { + "type": "object", + "properties": { + "default": { + "type": "object", + "additionalProperties": true + }, + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CharmPayloadClass": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type" + ] + }, + "CharmPlan": { + "type": "object", + "properties": { + "required": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "required" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmResourceMeta": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "description" + ] + }, + "CharmStorage": { + "type": "object", + "properties": { + "count-max": { + "type": "integer" + }, + "count-min": { + "type": "integer" + }, + "description": { + "type": "string" + }, + "location": { + "type": "string" + }, + "minimum-size": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + }, + "read-only": { + "type": "boolean" + }, + "shared": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "description", + "type", + "shared", + "read-only", + "count-min", + "count-max", + "minimum-size" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmsList": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "names" + ] + }, + "CharmsListResult": { + "type": "object", + "properties": { + "charm-urls": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-urls" + ] + }, + "IsMeteredResult": { + "type": "object", + "properties": { + "metered": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "metered" + ] + } + } + } + }, + { + "Name": "Cleaner", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Cleanup": { + "type": "object" + }, + "WatchCleanups": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "Client", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "AbortCurrentUpgrade": { + "type": "object" + }, + "AddCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharm" + } + } + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharmWithAuthorization" + } + } + }, + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AddMachinesV2": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AgentVersion": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AgentVersionResult" + } + } + }, + "DestroyMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyMachines" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "FullStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusParams" + }, + "Result": { + "$ref": "#/definitions/FullStatus" + } + } + }, + "GetBundleChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + }, + "GetModelConstraints": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "InjectMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelUserInfoResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PrivateAddress" + }, + "Result": { + "$ref": "#/definitions/PrivateAddressResults" + } + } + }, + "ProvisioningScript": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ProvisioningScriptParams" + }, + "Result": { + "$ref": "#/definitions/ProvisioningScriptResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PublicAddress" + }, + "Result": { + "$ref": "#/definitions/PublicAddressResults" + } + } + }, + "ResolveCharms": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResolveCharms" + }, + "Result": { + "$ref": "#/definitions/ResolveCharmResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Resolved" + } + } + }, + "RetryProvisioning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelAgentVersion" + } + } + }, + "SetModelConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "StatusHistory": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryRequests" + }, + "Result": { + "$ref": "#/definitions/StatusHistoryResults" + } + } + }, + "WatchAll": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "AddCharm": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel" + ] + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "AgentVersionResult": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "can-upgrade-to": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "exposed": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "meter-statuses": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MeterStatus" + } + } + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "series": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + }, + "subordinate-to": { + "type": "array", + "items": { + "type": "string" + } + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "charm", + "series", + "exposed", + "life", + "relations", + "can-upgrade-to", + "subordinate-to", + "units", + "meter-statuses", + "status", + "workload-version" + ] + }, + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyMachines": { + "type": "object", + "properties": { + "force": { + "type": "boolean" + }, + "machine-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-names", + "force" + ] + }, + "DetailedStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "info": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "data", + "since", + "kind", + "version", + "life" + ] + }, + "EndpointStatus": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "subordinate": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "application", + "name", + "role", + "subordinate" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FindToolsParams": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "number": { + "$ref": "#/definitions/Number" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "number", + "major", + "minor", + "arch", + "series" + ] + }, + "FindToolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "FullStatus": { + "type": "object", + "properties": { + "applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ApplicationStatus" + } + } + }, + "machines": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "model": { + "$ref": "#/definitions/ModelStatusInfo" + }, + "relations": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationStatus" + } + }, + "remote-applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/RemoteApplicationStatus" + } + } + } + }, + "additionalProperties": false, + "required": [ + "model", + "machines", + "applications", + "remote-applications", + "relations" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "History": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/definitions/DetailedStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "statuses" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MachineStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "constraints": { + "type": "string" + }, + "containers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "dns-name": { + "type": "string" + }, + "hardware": { + "type": "string" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "instance-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "ip-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "series": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "instance-status", + "dns-name", + "ip-addresses", + "instance-id", + "series", + "id", + "containers", + "constraints", + "hardware", + "jobs", + "has-vote", + "wants-vote" + ] + }, + "MeterStatus": { + "type": "object", + "properties": { + "color": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "color", + "message" + ] + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "migration": { + "$ref": "#/definitions/ModelMigrationStatus" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "provider-type", + "default-series", + "cloud-tag", + "owner-tag", + "life", + "status", + "users", + "machines" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "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": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelStatusInfo": { + "type": "object", + "properties": { + "available-version": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "migration": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "cloud-tag", + "version", + "available-version" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModelUserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "additionalProperties": false + }, + "ModelUserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "PrivateAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PrivateAddressResults": { + "type": "object", + "properties": { + "private-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "private-address" + ] + }, + "ProvisioningScriptParams": { + "type": "object", + "properties": { + "data-dir": { + "type": "string" + }, + "disable-package-commands": { + "type": "boolean" + }, + "machine-id": { + "type": "string" + }, + "nonce": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-id", + "nonce", + "data-dir", + "disable-package-commands" + ] + }, + "ProvisioningScriptResult": { + "type": "object", + "properties": { + "script": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "script" + ] + }, + "PublicAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PublicAddressResults": { + "type": "object", + "properties": { + "public-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "public-address" + ] + }, + "RelationStatus": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/EndpointStatus" + } + }, + "id": { + "type": "integer" + }, + "interface": { + "type": "string" + }, + "key": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "key", + "interface", + "scope", + "endpoints" + ] + }, + "RemoteApplicationStatus": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "application-url": { + "type": "string" + }, + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteEndpoint" + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "life": { + "type": "string" + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + } + }, + "additionalProperties": false, + "required": [ + "application-url", + "application-name", + "endpoints", + "life", + "relations", + "status" + ] + }, + "RemoteEndpoint": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "limit", + "scope" + ] + }, + "ResolveCharmResult": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ResolveCharmResults": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolveCharmResult" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ResolveCharms": { + "type": "object", + "properties": { + "references": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "references" + ] + }, + "Resolved": { + "type": "object", + "properties": { + "retry": { + "type": "boolean" + }, + "unit-name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-name", + "retry" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "StatusHistoryFilter": { + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "delta": { + "type": "integer" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "size", + "date", + "delta" + ] + }, + "StatusHistoryRequest": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/definitions/StatusHistoryFilter" + }, + "historyKind": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "historyKind", + "size", + "filter", + "tag" + ] + }, + "StatusHistoryRequests": { + "type": "object", + "properties": { + "requests": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryRequest" + } + } + }, + "additionalProperties": false, + "required": [ + "requests" + ] + }, + "StatusHistoryResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "history": { + "$ref": "#/definitions/History" + } + }, + "additionalProperties": false, + "required": [ + "history" + ] + }, + "StatusHistoryResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusParams": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "UnitStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "charm": { + "type": "string" + }, + "leader": { + "type": "boolean" + }, + "machine": { + "type": "string" + }, + "opened-ports": { + "type": "array", + "items": { + "type": "string" + } + }, + "public-address": { + "type": "string" + }, + "subordinates": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "workload-status", + "workload-version", + "machine", + "opened-ports", + "public-address", + "charm", + "subordinates" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "Cloud", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Cloud": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudResults" + } + } + }, + "Clouds": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/CloudsResult" + } + } + }, + "Credential": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudCredentialResults" + } + } + }, + "DefaultCloud": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "InstanceTypes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CloudInstanceTypesConstraints" + }, + "Result": { + "$ref": "#/definitions/InstanceTypesResults" + } + } + }, + "RevokeCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpdateCloudCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserClouds" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Cloud": { + "type": "object", + "properties": { + "auth-types": { + "type": "array", + "items": { + "type": "string" + } + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudRegion" + } + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudCredentialResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudCredential" + } + }, + "additionalProperties": false + }, + "CloudCredentialResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudCredentialResult" + } + } + }, + "additionalProperties": false + }, + "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": { + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name" + ] + }, + "CloudResult": { + "type": "object", + "properties": { + "cloud": { + "$ref": "#/definitions/Cloud" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "CloudResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudResult" + } + } + }, + "additionalProperties": false + }, + "CloudsResult": { + "type": "object", + "properties": { + "clouds": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Cloud" + } + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "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 + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateCloudCredential": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "credential" + ] + }, + "UpdateCloudCredentials": { + "type": "object", + "properties": { + "credentials": { + "type": "array", + "items": { + "$ref": "#/definitions/UpdateCloudCredential" + } + } + }, + "additionalProperties": false + }, + "UserCloud": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "cloud-tag" + ] + }, + "UserClouds": { + "type": "object", + "properties": { + "user-clouds": { + "type": "array", + "items": { + "$ref": "#/definitions/UserCloud" + } + } + }, + "additionalProperties": false + }, + "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": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DestroyController": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyControllerArgs" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/UserAccessResults" + } + } + }, + "HostedModelConfigs": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/HostedModelConfigsResults" + } + } + }, + "InitiateMigration": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/InitiateMigrationArgs" + }, + "Result": { + "$ref": "#/definitions/InitiateMigrationResults" + } + } + }, + "ListBlockedModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelBlockInfoList" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyControllerAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveBlocks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RemoveBlocksArgs" + } + } + }, + "WatchAllModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "DestroyControllerArgs": { + "type": "object", + "properties": { + "destroy-models": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "destroy-models" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostedModelConfig": { + "type": "object", + "properties": { + "cloud-spec": { + "$ref": "#/definitions/CloudSpec" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "owner": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner" + ] + }, + "HostedModelConfigsResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/HostedModelConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "InitiateMigrationArgs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/MigrationSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "InitiateMigrationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "migration-id": { + "type": "string" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "migration-id" + ] + }, + "InitiateMigrationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/InitiateMigrationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MigrationSpec": { + "type": "object", + "properties": { + "external-control": { + "type": "boolean" + }, + "model-tag": { + "type": "string" + }, + "skip-initial-prechecks": { + "type": "boolean" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info", + "external-control", + "skip-initial-prechecks" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelBlockInfo": { + "type": "object", + "properties": { + "blocks": { + "type": "array", + "items": { + "type": "string" + } + }, + "model-uuid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "model-uuid", + "owner-tag", + "blocks" + ] + }, + "ModelBlockInfoList": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelBlockInfo" + } + } + }, + "additionalProperties": false + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelStatus": { + "type": "object", + "properties": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access" + ] + }, + "ModifyControllerAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyControllerAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RemoveBlocksArgs": { + "type": "object", + "properties": { + "all": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "all" + ] + }, + "UserAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "access" + ] + }, + "UserAccessResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserAccess" + } + }, + "additionalProperties": false + }, + "UserAccessResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserAccessResult" + } + } + }, + "additionalProperties": false + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "Deployer", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "ConnectionInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DeployerConnectionValues" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "DeployerConnectionValues": { + "type": "object", + "properties": { + "api-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "state-addresses": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "state-addresses", + "api-addresses" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "DiscoverSpaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DiscoverSpacesResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "DiscoverSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderSpace" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ProviderSpace": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider-id", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "DiskManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineBlockDevices" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineBlockDevices": { + "type": "object", + "properties": { + "block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDevice" + } + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "machine-block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineBlockDevices" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-block-devices" + ] + } + } + } + }, + { + "Name": "EntityWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/EntitiesWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "EntitiesWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "FilesystemAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + }, + { + "Name": "Firewaller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "GetAssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetExposed": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "GetMachineActiveSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "GetMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachinePortsParams" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "WatchOpenedPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePorts": { + "type": "object", + "properties": { + "machine-tag": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "subnet-tag" + ] + }, + "MachinePortsParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePorts" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "HighAvailability", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "EnableHA": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ControllersSpecs" + }, + "Result": { + "$ref": "#/definitions/ControllersChangeResults" + } + } + }, + "ResumeHAReplicationAfterUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResumeReplicationParams" + } + } + }, + "StopHAReplicationForUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpgradeMongoParams" + }, + "Result": { + "$ref": "#/definitions/MongoUpgradeResults" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "Scope": { + "type": "string" + }, + "SpaceName": { + "type": "string" + }, + "SpaceProviderId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Value", + "Type", + "Scope", + "SpaceName", + "SpaceProviderId" + ] + }, + "ControllersChangeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ControllersChanges" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ControllersChangeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersChangeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ControllersChanges": { + "type": "object", + "properties": { + "added": { + "type": "array", + "items": { + "type": "string" + } + }, + "converted": { + "type": "array", + "items": { + "type": "string" + } + }, + "demoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "maintained": { + "type": "array", + "items": { + "type": "string" + } + }, + "promoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "removed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ControllersSpec": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "num-controllers": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "type": "string" + } + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "num-controllers" + ] + }, + "ControllersSpecs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "HAMember": { + "type": "object", + "properties": { + "public-address": { + "$ref": "#/definitions/Address" + }, + "series": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-address", + "series" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Member": { + "type": "object", + "properties": { + "Address": { + "type": "string" + }, + "Arbiter": { + "type": "boolean" + }, + "BuildIndexes": { + "type": "boolean" + }, + "Hidden": { + "type": "boolean" + }, + "Id": { + "type": "integer" + }, + "Priority": { + "type": "number" + }, + "SlaveDelay": { + "type": "integer" + }, + "Tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "Votes": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Id", + "Address", + "Arbiter", + "BuildIndexes", + "Hidden", + "Priority", + "Tags", + "SlaveDelay", + "Votes" + ] + }, + "MongoUpgradeResults": { + "type": "object", + "properties": { + "ha-members": { + "type": "array", + "items": { + "$ref": "#/definitions/HAMember" + } + }, + "master": { + "$ref": "#/definitions/HAMember" + }, + "rs-members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "rs-members", + "master", + "ha-members" + ] + }, + "MongoVersion": { + "type": "object", + "properties": { + "engine": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "patch": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "major", + "minor", + "patch", + "engine" + ] + }, + "ResumeReplicationParams": { + "type": "object", + "properties": { + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "members" + ] + }, + "UpgradeMongoParams": { + "type": "object", + "properties": { + "target": { + "$ref": "#/definitions/MongoVersion" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "HostKeyReporter", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ReportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SSHHostKeySet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHHostKeySet": { + "type": "object", + "properties": { + "entity-keys": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHHostKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "entity-keys" + ] + }, + "SSHHostKeys": { + "type": "object", + "properties": { + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-keys" + ] + } + } + } + }, + { + "Name": "ImageManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "DeleteImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ListImageResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageFilterParams": { + "type": "object", + "properties": { + "images": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "images" + ] + }, + "ImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series", + "url", + "created" + ] + }, + "ImageSpec": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series" + ] + }, + "ListImageResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "ImageMetadata", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Delete": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataImageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageMetadataFilter" + }, + "Result": { + "$ref": "#/definitions/ListCloudImageMetadataResult" + } + } + }, + "Save": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataSaveParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateFromPublishedImages": { + "type": "object" + } + }, + "definitions": { + "CloudImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "image-id": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "region": { + "type": "string" + }, + "root-storage-size": { + "type": "integer" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "string" + }, + "source": { + "type": "string" + }, + "stream": { + "type": "string" + }, + "version": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "image-id", + "region", + "version", + "series", + "arch", + "source", + "priority" + ] + }, + "CloudImageMetadataList": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageMetadataFilter": { + "type": "object", + "properties": { + "arches": { + "type": "array", + "items": { + "type": "string" + } + }, + "region": { + "type": "string" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "stream": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ListCloudImageMetadataResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MetadataImageIds": { + "type": "object", + "properties": { + "image-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "image-ids" + ] + }, + "MetadataSaveParams": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadataList" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "InstancePoller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AreManuallyProvisioned": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineAddressesResults" + } + } + }, + "SetInstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Status": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "MachineAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "MachineAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "KeyManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DeleteKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ImportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListSSHKeys" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSSHKeys": { + "type": "object", + "properties": { + "entities": { + "$ref": "#/definitions/Entities" + }, + "mode": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "mode" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModifyUserSSHKeys": { + "type": "object", + "properties": { + "ssh-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "ssh-keys" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "KeyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "WatchAuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LeadershipService", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "BlockUntilLeadershipReleased": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationTag" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "ClaimLeadership": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ClaimLeadershipBulkParams" + }, + "Result": { + "$ref": "#/definitions/ClaimLeadershipBulkResults" + } + } + } + }, + "definitions": { + "ApplicationTag": { + "type": "object", + "properties": { + "Name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Name" + ] + }, + "ClaimLeadershipBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/ClaimLeadershipParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "ClaimLeadershipBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ClaimLeadershipParams": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "duration": { + "type": "number" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "unit-tag", + "duration" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "LifeFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LogForwarding", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingGetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/LogForwardingGetLastSentResults" + } + } + }, + "SetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingSetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingGetLastSentParams": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingID" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "LogForwardingGetLastSentResult": { + "type": "object", + "properties": { + "err": { + "$ref": "#/definitions/Error" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "record-id", + "record-timestamp", + "err" + ] + }, + "LogForwardingGetLastSentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingGetLastSentResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingID": { + "type": "object", + "properties": { + "model": { + "type": "string" + }, + "sink": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model", + "sink" + ] + }, + "LogForwardingSetLastSentParam": { + "type": "object", + "properties": { + "LogForwardingID": { + "$ref": "#/definitions/LogForwardingID" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "LogForwardingID", + "record-id", + "record-timestamp" + ] + }, + "LogForwardingSetLastSentParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingSetLastSentParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Logger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "LoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "WatchLoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineActions", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RunningActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "InstanceTypes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelInstanceTypesConstraints" + }, + "Result": { + "$ref": "#/definitions/InstanceTypesResults" + } + } + } + }, + "definitions": { + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "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": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MachineUndertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AllMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/EntitiesResults" + } + } + }, + "CompleteMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + } + } + }, + "GetMachineProviderInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProviderInterfaceInfoResults" + } + } + }, + "WatchMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResult": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProviderInterfaceInfo": { + "type": "object", + "properties": { + "interface-name": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "provider-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "interface-name", + "mac-address", + "provider-id" + ] + }, + "ProviderInterfaceInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "interfaces": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfo" + } + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "interfaces" + ] + }, + "ProviderInterfaceInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Machiner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Jobs": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/JobsResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetMachineAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetObservedNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineNetworkConfig" + } + } + }, + "SetProviderNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "JobsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "jobs" + ] + }, + "JobsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/JobsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkRoute" + } + }, + "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" + ] + }, + "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": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetMachineNetworkConfig": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "config" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MeterStatus", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsAdder", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + } + } + } + }, + { + "Name": "MetricsDebug", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "GetMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MetricResults" + } + } + }, + "SetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MeterStatusParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityMetrics": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricResult" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusParam": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "code", + "info" + ] + }, + "MeterStatusParams": { + "type": "object", + "properties": { + "statues": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusParam" + } + } + }, + "additionalProperties": false, + "required": [ + "statues" + ] + }, + "MetricResult": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "unit": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "time", + "key", + "value", + "unit" + ] + }, + "MetricResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityMetrics" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "CleanupOldMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SendMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "MigrationFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Phase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PhaseResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PhaseResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "phase": { + "type": "string" + } + }, + "additionalProperties": false + }, + "PhaseResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PhaseResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MigrationMaster", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Export": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "MigrationStatus": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MasterMigrationStatus" + } + } + }, + "MinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MinionReports" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + }, + "Prechecks": { + "type": "object" + }, + "Reap": { + "type": "object" + }, + "SetPhase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationPhaseArgs" + } + } + }, + "SetStatusMessage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationStatusMessageArgs" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchMinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MasterMigrationStatus": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "phase-changed-time": { + "type": "string", + "format": "date-time" + }, + "spec": { + "$ref": "#/definitions/MigrationSpec" + } + }, + "additionalProperties": false, + "required": [ + "spec", + "migration-id", + "phase", + "phase-changed-time" + ] + }, + "MigrationModelInfo": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "controller-agent-version": { + "$ref": "#/definitions/Number" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version", + "controller-agent-version" + ] + }, + "MigrationSpec": { + "type": "object", + "properties": { + "external-control": { + "type": "boolean" + }, + "model-tag": { + "type": "string" + }, + "skip-initial-prechecks": { + "type": "boolean" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info", + "external-control", + "skip-initial-prechecks" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "MinionReports": { + "type": "object", + "properties": { + "failed": { + "type": "array", + "items": { + "type": "string" + } + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success-count": { + "type": "integer" + }, + "unknown-count": { + "type": "integer" + }, + "unknown-sample": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success-count", + "unknown-count", + "unknown-sample", + "failed" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelResource" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "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": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + }, + "SetMigrationPhaseArgs": { + "type": "object", + "properties": { + "phase": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "phase" + ] + }, + "SetMigrationStatusMessageArgs": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message" + ] + } + } + } + }, + { + "Name": "MigrationMinion", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Report": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MinionReport" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MinionReport": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "MigrationStatusWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationStatus" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "MigrationStatus": { + "type": "object", + "properties": { + "attempt": { + "type": "integer" + }, + "external-control": { + "type": "boolean" + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "source-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "source-ca-cert": { + "type": "string" + }, + "target-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "target-ca-cert": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "attempt", + "phase", + "external-control", + "source-api-addrs", + "source-ca-cert", + "target-api-addrs", + "target-ca-cert" + ] + } + } + } + }, + { + "Name": "MigrationTarget", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Abort": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "Activate": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "AdoptResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AdoptResourcesArgs" + } + } + }, + "Import": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "LatestLogTime": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + }, + "Result": { + "type": "string", + "format": "date-time" + } + } + }, + "Prechecks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + } + }, + "definitions": { + "AdoptResourcesArgs": { + "type": "object", + "properties": { + "model-tag": { + "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, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version", + "controller-agent-version" + ] + }, + "ModelArgs": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelResource" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "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": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + } + } + } + }, + { + "Name": "ModelConfig", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + } + }, + "definitions": { + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelSet": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + } + } + } + }, + { + "Name": "ModelManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CreateModel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelCreateArgs" + }, + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "DestroyModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DumpModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "DumpModelsDB": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "ListModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entity" + }, + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "ModelDefaults": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelDefaultsResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelInfoResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyModelAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnsetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MapResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "MapResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MapResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelCreateArgs": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "credential": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "region": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner-tag" + ] + }, + "ModelDefaultValues": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelDefaults": { + "type": "object", + "properties": { + "controller": { + "type": "object", + "additionalProperties": true + }, + "default": { + "type": "object", + "additionalProperties": true + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/RegionDefaults" + } + } + }, + "additionalProperties": false + }, + "ModelDefaultsResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ModelDefaults" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "migration": { + "$ref": "#/definitions/ModelMigrationStatus" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "provider-type", + "default-series", + "cloud-tag", + "owner-tag", + "life", + "status", + "users", + "machines" + ] + }, + "ModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelInfo" + } + }, + "additionalProperties": false + }, + "ModelInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "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": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelUnsetKeys": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "model-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access", + "model-tag" + ] + }, + "ModifyModelAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyModelAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RegionDefaults": { + "type": "object", + "properties": { + "region-name": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "region-name", + "value" + ] + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelDefaultValues" + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUnsetKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "NotifyWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Payloads", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EnvListArgs" + }, + "Result": { + "$ref": "#/definitions/EnvListResults" + } + } + } + }, + "definitions": { + "EnvListArgs": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "EnvListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + } + } + } + }, + { + "Name": "PayloadsHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "LookUp": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LookUpArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatusArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Track": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/TrackArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Untrack": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LookUpArg": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "id" + ] + }, + "LookUpArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/LookUpArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + }, + "PayloadResult": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "not-found": { + "type": "boolean" + }, + "payload": { + "$ref": "#/definitions/Payload" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "payload", + "not-found" + ] + }, + "PayloadResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PayloadResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatusArg": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "status" + ] + }, + "SetStatusArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/SetStatusArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "TrackArgs": { + "type": "object", + "properties": { + "payloads": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "payloads" + ] + } + } + } + }, + { + "Name": "Pinger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Ping": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Provisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "Constraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConstraintsResults" + } + } + }, + "ContainerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ContainerConfig" + } + } + }, + "ContainerManagerConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ContainerManagerConfigParams" + }, + "Result": { + "$ref": "#/definitions/ContainerManagerConfig" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DistributionGroup": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DistributionGroupResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "GetContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "HostChangesForContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/HostNetworkChangeResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "MachinesWithTransientErrors": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "MarkMachinesForRemoval": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PrepareContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProvisioningInfoResults" + } + } + }, + "ReleaseContainerAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Series": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "SetHostMachineNetworkConfig": { + "type": "object", + "properties": { + "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" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkRoute" + } + }, + "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" + ] + }, + "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": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "controller-config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "image-metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "placement": { + "type": "string" + }, + "series": { + "type": "string" + }, + "subnets-to-zones": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParams" + } + } + }, + "additionalProperties": false, + "required": [ + "constraints", + "series", + "placement", + "jobs" + ] + }, + "ProvisioningInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ProvisioningInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ProvisioningInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProvisioningInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetMachineNetworkConfig": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "config" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Settings": { + "type": "object", + "properties": { + "Ftp": { + "type": "string" + }, + "Http": { + "type": "string" + }, + "Https": { + "type": "string" + }, + "NoProxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Http", + "Https", + "Ftp", + "NoProxy" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateBehavior": { + "type": "object", + "properties": { + "enable-os-refresh-update": { + "type": "boolean" + }, + "enable-os-upgrade": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "enable-os-refresh-update", + "enable-os-upgrade" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "WatchContainer": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "container-type" + ] + }, + "WatchContainers": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/WatchContainer" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + } + } + } + }, + { + "Name": "ProxyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ProxyConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProxyConfigResults" + } + } + }, + "WatchForProxyConfigAndAPIHostPortChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProxyConfig": { + "type": "object", + "properties": { + "ftp": { + "type": "string" + }, + "http": { + "type": "string" + }, + "https": { + "type": "string" + }, + "no-proxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "http", + "https", + "ftp", + "no-proxy" + ] + }, + "ProxyConfigResult": { + "type": "object", + "properties": { + "apt-proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + } + }, + "additionalProperties": false, + "required": [ + "proxy-settings", + "apt-proxy-settings" + ] + }, + "ProxyConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProxyConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Reboot", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetRebootAction": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RebootActionResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchForRebootEvent": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "RebootActionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false + }, + "RebootActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RebootActionResult" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "RelationUnitsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + } + } + } + }, + { + "Name": "RemoteApplicationWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/RemoteApplicationWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RemoteApplicationChange": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "life": { + "type": "string" + }, + "relations": { + "$ref": "#/definitions/RemoteRelationsChange" + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "life", + "relations" + ] + }, + "RemoteApplicationWatchResult": { + "type": "object", + "properties": { + "change": { + "$ref": "#/definitions/RemoteApplicationChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "RemoteEntityId": { + "type": "object", + "properties": { + "model-uuid": { + "type": "string" + }, + "token": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-uuid", + "token" + ] + }, + "RemoteRelationChange": { + "type": "object", + "properties": { + "changed-units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/RemoteRelationUnitChange" + } + } + }, + "departed-units": { + "type": "array", + "items": { + "type": "string" + } + }, + "id": { + "type": "integer" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life" + ] + }, + "RemoteRelationUnitChange": { + "type": "object", + "properties": { + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "unit-id": { + "$ref": "#/definitions/RemoteEntityId" + } + }, + "additionalProperties": false, + "required": [ + "unit-id" + ] + }, + "RemoteRelationsChange": { + "type": "object", + "properties": { + "changed": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteRelationChange" + } + }, + "initial": { + "type": "boolean" + }, + "removed": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "initial" + ] + } + } + } + }, + { + "Name": "RemoteRelationsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/RemoteRelationsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RemoteEntityId": { + "type": "object", + "properties": { + "model-uuid": { + "type": "string" + }, + "token": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-uuid", + "token" + ] + }, + "RemoteRelationChange": { + "type": "object", + "properties": { + "changed-units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/RemoteRelationUnitChange" + } + } + }, + "departed-units": { + "type": "array", + "items": { + "type": "string" + } + }, + "id": { + "type": "integer" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life" + ] + }, + "RemoteRelationUnitChange": { + "type": "object", + "properties": { + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "unit-id": { + "$ref": "#/definitions/RemoteEntityId" + } + }, + "additionalProperties": false, + "required": [ + "unit-id" + ] + }, + "RemoteRelationsChange": { + "type": "object", + "properties": { + "changed": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteRelationChange" + } + }, + "initial": { + "type": "boolean" + }, + "removed": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "initial" + ] + }, + "RemoteRelationsWatchResult": { + "type": "object", + "properties": { + "RemoteRelationsWatcherId": { + "type": "string" + }, + "change": { + "$ref": "#/definitions/RemoteRelationsChange" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "RemoteRelationsWatcherId" + ] + } + } + } + }, + { + "Name": "Resources", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddPendingResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddPendingResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/AddPendingResourcesResult" + } + } + }, + "ListResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/ResourcesResults" + } + } + } + }, + "definitions": { + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddPendingResourcesArgs": { + "type": "object", + "properties": { + "AddCharmWithAuthorization": { + "$ref": "#/definitions/AddCharmWithAuthorization" + }, + "Entity": { + "$ref": "#/definitions/Entity" + }, + "Resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "AddCharmWithAuthorization", + "Resources" + ] + }, + "AddPendingResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "pending-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "pending-ids" + ] + }, + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListResourcesArgs": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "ResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "charm-store-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + }, + "unit-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitResources" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources", + "charm-store-resources", + "unit-resources" + ] + }, + "ResourcesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourcesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitResources": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "download-progress": { + "type": "object", + "patternProperties": { + ".*": { + "type": "integer" + } + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "resources", + "download-progress" + ] + } + } + } + }, + { + "Name": "ResourcesHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetResourceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/ResourcesResult" + } + } + } + }, + "definitions": { + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListResourcesArgs": { + "type": "object", + "properties": { + "resource-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "resource-names" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "ResourceResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resource": { + "$ref": "#/definitions/Resource" + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resource" + ] + }, + "ResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources" + ] + } + } + } + }, + { + "Name": "Resumer", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ResumeTransactions": { + "type": "object" + } + } + } + }, + { + "Name": "RetryStrategy", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "RetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RetryStrategyResults" + } + } + }, + "WatchRetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RetryStrategy": { + "type": "object", + "properties": { + "jitter-retry-time": { + "type": "boolean" + }, + "max-retry-time": { + "type": "integer" + }, + "min-retry-time": { + "type": "integer" + }, + "retry-time-factor": { + "type": "integer" + }, + "should-retry": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "should-retry", + "min-retry-time", + "max-retry-time", + "jitter-retry-time", + "retry-time-factor" + ] + }, + "RetryStrategyResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/RetryStrategy" + } + }, + "additionalProperties": false + }, + "RetryStrategyResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RetryStrategyResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "SSHClient", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AllAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressesResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "Proxy": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SSHProxyResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "PublicKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHPublicKeysResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHAddressResult": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "SSHAddressResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "SSHAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHProxyResult": { + "type": "object", + "properties": { + "use-proxy": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "use-proxy" + ] + }, + "SSHPublicKeysResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "SSHPublicKeysResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHPublicKeysResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Singular", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Claim": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SingularClaims" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Wait": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SingularClaim": { + "type": "object", + "properties": { + "controller-tag": { + "type": "string" + }, + "duration": { + "type": "integer" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "controller-tag", + "duration" + ] + }, + "SingularClaims": { + "type": "object", + "properties": { + "claims": { + "type": "array", + "items": { + "$ref": "#/definitions/SingularClaim" + } + } + }, + "additionalProperties": false, + "required": [ + "claims" + ] + } + } + } + }, + { + "Name": "Spaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ListSpacesResults" + } + } + } + }, + "definitions": { + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Space" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Space": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + } + } + } + }, + { + "Name": "StatusHistory", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Prune": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryPruneArgs" + } + } + } + }, + "definitions": { + "StatusHistoryPruneArgs": { + "type": "object", + "properties": { + "max-history-mb": { + "type": "integer" + }, + "max-history-time": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "max-history-time", + "max-history-mb" + ] + } + } + } + }, + { + "Name": "Storage", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddToUnit": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreatePool": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "ListFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemFilters" + }, + "Result": { + "$ref": "#/definitions/FilesystemDetailsListResults" + } + } + }, + "ListPools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePoolFilters" + }, + "Result": { + "$ref": "#/definitions/StoragePoolsResults" + } + } + }, + "ListStorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageFilters" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsListResults" + } + } + }, + "ListVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeFilters" + }, + "Result": { + "$ref": "#/definitions/VolumeDetailsListResults" + } + } + }, + "StorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemDetails": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info", + "status" + ] + }, + "FilesystemDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetails" + } + } + }, + "additionalProperties": false + }, + "FilesystemDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemFilter" + } + } + }, + "additionalProperties": false + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "size" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachmentDetails": { + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag", + "machine-tag" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StorageDetails": { + "type": "object", + "properties": { + "attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageAttachmentDetails" + } + } + }, + "kind": { + "type": "integer" + }, + "owner-tag": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "kind", + "status", + "persistent" + ] + }, + "StorageDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetails" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageDetails" + } + }, + "additionalProperties": false + }, + "StorageDetailsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsResult" + } + } + }, + "additionalProperties": false + }, + "StorageFilter": { + "type": "object", + "additionalProperties": false + }, + "StorageFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePool": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "name": { + "type": "string" + }, + "provider": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider", + "attrs" + ] + }, + "StoragePoolFilter": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + }, + "providers": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StoragePoolFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "storage-pools": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolsResult" + } + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeDetails": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/VolumeAttachmentInfo" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info", + "status" + ] + }, + "VolumeDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetails" + } + } + }, + "additionalProperties": false + }, + "VolumeDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "VolumeFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "VolumeFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeFilter" + } + } + }, + "additionalProperties": false + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + } + } + } + }, + { + "Name": "StorageProvisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentParamsResults" + } + } + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentResults" + } + } + }, + "FilesystemParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemParamsResults" + } + } + }, + "Filesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveAttachment": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Filesystems" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Volumes" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentParamsResults" + } + } + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentResults" + } + } + }, + "VolumeBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/BlockDeviceResults" + } + } + }, + "VolumeParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeParamsResults" + } + } + }, + "Volumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeResults" + } + } + }, + "WatchBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchFilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchVolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "BlockDeviceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/BlockDevice" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockDeviceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDeviceResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Filesystem": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info" + ] + }, + "FilesystemAttachment": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "info" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "filesystem-tag": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "mount-point": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "provider" + ] + }, + "FilesystemAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "filesystem-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystem-attachments" + ] + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "size" + ] + }, + "FilesystemParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/FilesystemAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "filesystem-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "size", + "provider" + ] + }, + "FilesystemParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Filesystem" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemResult" + } + } + }, + "additionalProperties": false + }, + "Filesystems": { + "type": "object", + "properties": { + "filesystems": { + "type": "array", + "items": { + "$ref": "#/definitions/Filesystem" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystems" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "MachineStorageIdsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachment": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeAttachmentInfo" + }, + "machine-tag": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "volume-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "volume-attachments" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "VolumeParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Volume" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeResult" + } + } + }, + "additionalProperties": false + }, + "Volumes": { + "type": "object", + "properties": { + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/Volume" + } + } + }, + "additionalProperties": false, + "required": [ + "volumes" + ] + } + } + } + }, + { + "Name": "StringsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Subnets", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SpaceResults" + } + } + }, + "AllZones": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ZoneResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SpaceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "SpaceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SpaceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ZoneResult": { + "type": "object", + "properties": { + "available": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "available" + ] + }, + "ZoneResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ZoneResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Undertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UndertakerModelInfoResult" + } + } + }, + "ProcessDyingModel": { + "type": "object" + }, + "RemoveModel": { + "type": "object" + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchModelResources": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "UndertakerModelInfo": { + "type": "object", + "properties": { + "global-name": { + "type": "string" + }, + "is-system": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "global-name", + "is-system", + "life" + ] + }, + "UndertakerModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UndertakerModelInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + } + } + } + }, + { + "Name": "UnitAssigner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AssignUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchUnitAssignments": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Uniter", + "Version": 4, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AddUnitStorage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationStatusResults" + } + } + }, + "AssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "AvailabilityZone": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "CharmArchiveSha256": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURLs" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "CharmModifiedVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/IntResults" + } + } + }, + "CharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "ClearResolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ClosePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConfigSettingsResults" + } + } + }, + "CurrentModel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelResult" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyAllSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnterScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "GetPrincipal": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "HasSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "JoinedRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "LeaveScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Merge": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "NetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnitsNetworkConfig" + }, + "Result": { + "$ref": "#/definitions/UnitNetworkConfigResults" + } + } + }, + "OpenPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "ProviderType": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Read": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/GetLeadershipSettingsBulkResults" + } + } + }, + "ReadRemoteSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitPairs" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "ReadSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "Relation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RelationById": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationIds" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RemoveStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ResolvedModeResults" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesCharmURL" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetUnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetWorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityWorkloadVersions" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StorageAttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "StorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentResults" + } + } + }, + "UnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "UnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentIdsResults" + } + } + }, + "UpdateSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitsSettings" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchApplicationRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchLeadershipSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchRelationUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResults" + } + } + }, + "WatchStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "ApplicationStatusResult": { + "type": "object", + "properties": { + "application": { + "$ref": "#/definitions/StatusResult" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StatusResult" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "units" + ] + }, + "ApplicationStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmURLs": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ConfigSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "ConfigSettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Endpoint": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "relation": { + "$ref": "#/definitions/CharmRelation" + } + }, + "additionalProperties": false, + "required": [ + "application-name", + "relation" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesCharmURL": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityCharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesPortRanges": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityCharmURL": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "charm-url" + ] + }, + "EntityPortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "protocol", + "from-port", + "to-port" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "EntityWorkloadVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "workload-version" + ] + }, + "EntityWorkloadVersions": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityWorkloadVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/GetLeadershipSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "IntResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "IntResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/IntResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "MergeLeadershipSettingsBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MergeLeadershipSettingsParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MergeLeadershipSettingsParam": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "settings" + ] + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkRoute" + } + }, + "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" + ] + }, + "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": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "RelationIds": { + "type": "object", + "properties": { + "relation-ids": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-ids" + ] + }, + "RelationResult": { + "type": "object", + "properties": { + "endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "integer" + }, + "key": { + "type": "string" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "id", + "key", + "endpoint" + ] + }, + "RelationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RelationUnit": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit" + ] + }, + "RelationUnitPair": { + "type": "object", + "properties": { + "local-unit": { + "type": "string" + }, + "relation": { + "type": "string" + }, + "remote-unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "local-unit", + "remote-unit" + ] + }, + "RelationUnitPairs": { + "type": "object", + "properties": { + "relation-unit-pairs": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitPair" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-unit-pairs" + ] + }, + "RelationUnitSettings": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit", + "settings" + ] + }, + "RelationUnits": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnit" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsSettings": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitSettings" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "RelationUnitsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ResolvedModeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "mode": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "mode" + ] + }, + "ResolvedModeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolvedModeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "SettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "SettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachment": { + "type": "object", + "properties": { + "kind": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "location": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "unit-tag", + "kind", + "location", + "life" + ] + }, + "StorageAttachmentId": { + "type": "object", + "properties": { + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag" + ] + }, + "StorageAttachmentIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "StorageAttachmentIdsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachmentIds" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentIdsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentIdsResult" + } + } + }, + "additionalProperties": false + }, + "StorageAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "StringBoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ok": { + "type": "boolean" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result", + "ok" + ] + }, + "StringBoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringBoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitNetworkConfig": { + "type": "object", + "properties": { + "binding-name": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "binding-name" + ] + }, + "UnitNetworkConfigResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "info" + ] + }, + "UnitNetworkConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitNetworkConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "UnitsNetworkConfig": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitNetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + } + } + } + }, + { + "Name": "Upgrader", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "DesiredVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VersionResults" + } + } + }, + "SetTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesVersion" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Tools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ToolsResults" + } + } + }, + "WatchAPIVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesVersion": { + "type": "object", + "properties": { + "agent-tools": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "agent-tools" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "tools": { + "$ref": "#/definitions/Version" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "tools" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Version": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "VersionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false + }, + "VersionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VersionResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "UserManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddUsers" + }, + "Result": { + "$ref": "#/definitions/AddUserResults" + } + } + }, + "DisableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPassword": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserInfoRequest" + }, + "Result": { + "$ref": "#/definitions/UserInfoResults" + } + } + } + }, + "definitions": { + "AddUser": { + "type": "object", + "properties": { + "display-name": { + "type": "string" + }, + "password": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name" + ] + }, + "AddUserResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "secret-key": { + "type": "array", + "items": { + "type": "integer" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false + }, + "AddUserResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUserResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AddUsers": { + "type": "object", + "properties": { + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUser" + } + } + }, + "additionalProperties": false, + "required": [ + "users" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "UserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "created-by": { + "type": "string" + }, + "date-created": { + "type": "string", + "format": "date-time" + }, + "disabled": { + "type": "boolean" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name", + "access", + "created-by", + "date-created", + "disabled" + ] + }, + "UserInfoRequest": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "include-disabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "include-disabled" + ] + }, + "UserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserInfo" + } + }, + "additionalProperties": false + }, + "UserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "VolumeAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + } +] diff --git a/modules/libjuju/juju/client/schemas-juju-2.2-alpha1.json b/modules/libjuju/juju/client/schemas-juju-2.2-alpha1.json new file mode 100644 index 0000000..8fa5071 --- /dev/null +++ b/modules/libjuju/juju/client/schemas-juju-2.2-alpha1.json @@ -0,0 +1,25974 @@ +[ + { + "Name": "Action", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "ApplicationsCharmsActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationsCharmActionsResults" + } + } + }, + "Cancel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "Enqueue": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Actions" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "FindActionTagsByPrefix": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindTags" + }, + "Result": { + "$ref": "#/definitions/FindTagsResults" + } + } + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindActionsByNames" + }, + "Result": { + "$ref": "#/definitions/ActionsByNames" + } + } + }, + "ListAll": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListCompleted": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListPending": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListRunning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "Run": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "RunOnAllMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "Actions": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/Action" + } + } + }, + "additionalProperties": false + }, + "ActionsByName": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByNames": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByName" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "ApplicationCharmActionsResult": { + "type": "object", + "properties": { + "actions": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ActionSpec" + } + } + }, + "application-tag": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ApplicationsCharmActionsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationCharmActionsResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FindTags": { + "type": "object", + "properties": { + "prefixes": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "prefixes" + ] + }, + "FindTagsResults": { + "type": "object", + "properties": { + "matches": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + } + } + }, + "additionalProperties": false, + "required": [ + "matches" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RunParams": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "type": "string" + } + }, + "commands": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "type": "string" + } + }, + "timeout": { + "type": "integer" + }, + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "commands", + "timeout" + ] + } + } + } + }, + { + "Name": "Agent", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetEntities": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AgentGetEntitiesResults" + } + } + }, + "IsMaster": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/IsMasterResult" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateServingInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StateServingInfo" + } + } + }, + "WatchCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "AgentGetEntitiesResult": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "jobs", + "container-type" + ] + }, + "AgentGetEntitiesResults": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/AgentGetEntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "IsMasterResult": { + "type": "object", + "properties": { + "master": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "master" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StateServingInfo": { + "type": "object", + "properties": { + "api-port": { + "type": "integer" + }, + "ca-private-key": { + "type": "string" + }, + "cert": { + "type": "string" + }, + "private-key": { + "type": "string" + }, + "shared-secret": { + "type": "string" + }, + "state-port": { + "type": "integer" + }, + "system-identity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "api-port", + "state-port", + "cert", + "private-key", + "ca-private-key", + "shared-secret", + "system-identity" + ] + } + } + } + }, + { + "Name": "AgentTools", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "UpdateToolsAvailable": { + "type": "object" + } + } + } + }, + { + "Name": "AllModelWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "AllWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "Annotations", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AnnotationsGetResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AnnotationsSet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "AnnotationsGetResult": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/ErrorResult" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "AnnotationsGetResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AnnotationsGetResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AnnotationsSet": { + "type": "object", + "properties": { + "annotations": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityAnnotations" + } + } + }, + "additionalProperties": false, + "required": [ + "annotations" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityAnnotations": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Application", + "Version": 4, + "Schema": { + "type": "object", + "properties": { + "AddRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddRelation" + }, + "Result": { + "$ref": "#/definitions/AddRelationResults" + } + } + }, + "AddUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddApplicationUnits" + }, + "Result": { + "$ref": "#/definitions/AddApplicationUnitsResults" + } + } + }, + "CharmRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationCharmRelations" + }, + "Result": { + "$ref": "#/definitions/ApplicationCharmRelationsResults" + } + } + }, + "Consume": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ConsumeApplicationArgs" + }, + "Result": { + "$ref": "#/definitions/ConsumeApplicationResults" + } + } + }, + "Deploy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationsDeploy" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationDestroy" + } + } + }, + "DestroyApplication": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DestroyApplicationResults" + } + } + }, + "DestroyRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyRelation" + } + } + }, + "DestroyUnit": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DestroyUnitResults" + } + } + }, + "DestroyUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyApplicationUnits" + } + } + }, + "Expose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationExpose" + } + } + }, + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/ApplicationGetResults" + } + } + }, + "GetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "GetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/GetApplicationConstraints" + }, + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "RemoteApplicationInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationURLs" + }, + "Result": { + "$ref": "#/definitions/RemoteApplicationInfoResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSet" + } + } + }, + "SetCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSetCharm" + } + } + }, + "SetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "SetMetricCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationMetricCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Unexpose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnexpose" + } + } + }, + "Unset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnset" + } + } + }, + "Update": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUpdate" + } + } + } + }, + "definitions": { + "AddApplicationUnits": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "num-units", + "placement" + ] + }, + "AddApplicationUnitsResults": { + "type": "object", + "properties": { + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "units" + ] + }, + "AddRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "AddRelationResults": { + "type": "object", + "properties": { + "endpoints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "ApplicationCharmRelations": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationCharmRelationsResults": { + "type": "object", + "properties": { + "charm-relations": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-relations" + ] + }, + "ApplicationDeploy": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-yaml": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "series": { + "type": "string" + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Constraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "series", + "charm-url", + "channel", + "num-units", + "config-yaml", + "constraints" + ] + }, + "ApplicationDestroy": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationExpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGet": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGetResults": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm", + "config", + "constraints", + "series" + ] + }, + "ApplicationMetricCredential": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "metrics-credentials": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "metrics-credentials" + ] + }, + "ApplicationMetricCredentials": { + "type": "object", + "properties": { + "creds": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationMetricCredential" + } + } + }, + "additionalProperties": false, + "required": [ + "creds" + ] + }, + "ApplicationSet": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationSetCharm": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config-settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-settings-yaml": { + "type": "string" + }, + "force-series": { + "type": "boolean" + }, + "force-units": { + "type": "boolean" + }, + "resource-ids": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "storage-constraints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageConstraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "channel", + "force-units", + "force-series" + ] + }, + "ApplicationURLs": { + "type": "object", + "properties": { + "application-urls": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ApplicationUnexpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationUnset": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationUpdate": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "force-charm-url": { + "type": "boolean" + }, + "force-series": { + "type": "boolean" + }, + "min-units": { + "type": "integer" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "settings-yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "force-charm-url", + "force-series", + "settings-yaml" + ] + }, + "ApplicationsDeploy": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationDeploy" + } + } + }, + "additionalProperties": false, + "required": [ + "applications" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "ConsumeApplicationArg": { + "type": "object", + "properties": { + "application-alias": { + "type": "string" + }, + "application-url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application-url" + ] + }, + "ConsumeApplicationArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/ConsumeApplicationArg" + } + } + }, + "additionalProperties": false + }, + "ConsumeApplicationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "local-name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ConsumeApplicationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConsumeApplicationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "DestroyApplicationInfo": { + "type": "object", + "properties": { + "destroyed-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "destroyed-units": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "detached-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false + }, + "DestroyApplicationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "$ref": "#/definitions/DestroyApplicationInfo" + } + }, + "additionalProperties": false + }, + "DestroyApplicationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/DestroyApplicationResult" + } + } + }, + "additionalProperties": false + }, + "DestroyApplicationUnits": { + "type": "object", + "properties": { + "unit-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "unit-names" + ] + }, + "DestroyRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "DestroyUnitInfo": { + "type": "object", + "properties": { + "destroyed-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "detached-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false + }, + "DestroyUnitResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "$ref": "#/definitions/DestroyUnitInfo" + } + }, + "additionalProperties": false + }, + "DestroyUnitResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/DestroyUnitResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetApplicationConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "RemoteApplicationInfo": { + "type": "object", + "properties": { + "application-url": { + "type": "string" + }, + "description": { + "type": "string" + }, + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteEndpoint" + } + }, + "icon-url-path": { + "type": "string" + }, + "model-tag": { + "type": "string" + }, + "name": { + "type": "string" + }, + "source-model-label": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "name", + "description", + "application-url", + "endpoints", + "icon-url-path" + ] + }, + "RemoteApplicationInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/RemoteApplicationInfo" + } + }, + "additionalProperties": false + }, + "RemoteApplicationInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteApplicationInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RemoteEndpoint": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "limit", + "scope" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "ApplicationScaler", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Rescale": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Backups", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Create": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsCreateArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "FinishRestore": { + "type": "object" + }, + "Info": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsInfoArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsListArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsListResult" + } + } + }, + "PrepareRestore": { + "type": "object" + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsRemoveArgs" + } + } + }, + "Restore": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RestoreArgs" + } + } + } + }, + "definitions": { + "BackupsCreateArgs": { + "type": "object", + "properties": { + "notes": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "notes" + ] + }, + "BackupsInfoArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "BackupsListArgs": { + "type": "object", + "additionalProperties": false + }, + "BackupsListResult": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "BackupsMetadataResult": { + "type": "object", + "properties": { + "ca-cert": { + "type": "string" + }, + "ca-private-key": { + "type": "string" + }, + "checksum": { + "type": "string" + }, + "checksum-format": { + "type": "string" + }, + "finished": { + "type": "string", + "format": "date-time" + }, + "hostname": { + "type": "string" + }, + "id": { + "type": "string" + }, + "machine": { + "type": "string" + }, + "model": { + "type": "string" + }, + "notes": { + "type": "string" + }, + "series": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "started": { + "type": "string", + "format": "date-time" + }, + "stored": { + "type": "string", + "format": "date-time" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "id", + "checksum", + "checksum-format", + "size", + "stored", + "started", + "finished", + "notes", + "model", + "machine", + "hostname", + "version", + "series", + "ca-cert", + "ca-private-key" + ] + }, + "BackupsRemoveArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "RestoreArgs": { + "type": "object", + "properties": { + "backup-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "backup-id" + ] + } + } + } + }, + { + "Name": "Block", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BlockResults" + } + } + }, + "SwitchBlockOff": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "SwitchBlockOn": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Block": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "tag", + "type" + ] + }, + "BlockResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Block" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockResult" + } + } + }, + "additionalProperties": false + }, + "BlockSwitchParams": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Bundle", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + } + }, + "definitions": { + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "CharmRevisionUpdater", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "UpdateLatestRevisions": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Charms", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CharmInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/CharmInfo" + } + } + }, + "IsMetered": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/IsMeteredResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmsList" + }, + "Result": { + "$ref": "#/definitions/CharmsListResult" + } + } + } + }, + "definitions": { + "CharmActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "CharmActions": { + "type": "object", + "properties": { + "specs": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmActionSpec" + } + } + } + }, + "additionalProperties": false + }, + "CharmInfo": { + "type": "object", + "properties": { + "actions": { + "$ref": "#/definitions/CharmActions" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmOption" + } + } + }, + "meta": { + "$ref": "#/definitions/CharmMeta" + }, + "metrics": { + "$ref": "#/definitions/CharmMetrics" + }, + "revision": { + "type": "integer" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "revision", + "url", + "config" + ] + }, + "CharmMeta": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "extra-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "min-juju-version": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload-classes": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmPayloadClass" + } + } + }, + "peers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "provides": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "requires": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmResourceMeta" + } + } + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmStorage" + } + } + }, + "subordinate": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "terms": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "summary", + "description", + "subordinate" + ] + }, + "CharmMetric": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "description" + ] + }, + "CharmMetrics": { + "type": "object", + "properties": { + "metrics": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmMetric" + } + } + }, + "plan": { + "$ref": "#/definitions/CharmPlan" + } + }, + "additionalProperties": false, + "required": [ + "metrics", + "plan" + ] + }, + "CharmOption": { + "type": "object", + "properties": { + "default": { + "type": "object", + "additionalProperties": true + }, + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CharmPayloadClass": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type" + ] + }, + "CharmPlan": { + "type": "object", + "properties": { + "required": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "required" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmResourceMeta": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "description" + ] + }, + "CharmStorage": { + "type": "object", + "properties": { + "count-max": { + "type": "integer" + }, + "count-min": { + "type": "integer" + }, + "description": { + "type": "string" + }, + "location": { + "type": "string" + }, + "minimum-size": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + }, + "read-only": { + "type": "boolean" + }, + "shared": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "description", + "type", + "shared", + "read-only", + "count-min", + "count-max", + "minimum-size" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmsList": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "names" + ] + }, + "CharmsListResult": { + "type": "object", + "properties": { + "charm-urls": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-urls" + ] + }, + "IsMeteredResult": { + "type": "object", + "properties": { + "metered": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "metered" + ] + } + } + } + }, + { + "Name": "Cleaner", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Cleanup": { + "type": "object" + }, + "WatchCleanups": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "Client", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "AbortCurrentUpgrade": { + "type": "object" + }, + "AddCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharm" + } + } + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharmWithAuthorization" + } + } + }, + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AddMachinesV2": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AgentVersion": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AgentVersionResult" + } + } + }, + "DestroyMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyMachines" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "FullStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusParams" + }, + "Result": { + "$ref": "#/definitions/FullStatus" + } + } + }, + "GetBundleChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + }, + "GetModelConstraints": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "InjectMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelUserInfoResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PrivateAddress" + }, + "Result": { + "$ref": "#/definitions/PrivateAddressResults" + } + } + }, + "ProvisioningScript": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ProvisioningScriptParams" + }, + "Result": { + "$ref": "#/definitions/ProvisioningScriptResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PublicAddress" + }, + "Result": { + "$ref": "#/definitions/PublicAddressResults" + } + } + }, + "ResolveCharms": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResolveCharms" + }, + "Result": { + "$ref": "#/definitions/ResolveCharmResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Resolved" + } + } + }, + "RetryProvisioning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelAgentVersion" + } + } + }, + "SetModelConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "StatusHistory": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryRequests" + }, + "Result": { + "$ref": "#/definitions/StatusHistoryResults" + } + } + }, + "WatchAll": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "AddCharm": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel" + ] + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "AgentVersionResult": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "can-upgrade-to": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "exposed": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "meter-statuses": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MeterStatus" + } + } + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "series": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + }, + "subordinate-to": { + "type": "array", + "items": { + "type": "string" + } + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "charm", + "series", + "exposed", + "life", + "relations", + "can-upgrade-to", + "subordinate-to", + "units", + "meter-statuses", + "status", + "workload-version" + ] + }, + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyMachines": { + "type": "object", + "properties": { + "force": { + "type": "boolean" + }, + "machine-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-names", + "force" + ] + }, + "DetailedStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "info": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "data", + "since", + "kind", + "version", + "life" + ] + }, + "EndpointStatus": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "subordinate": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "application", + "name", + "role", + "subordinate" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FindToolsParams": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "number": { + "$ref": "#/definitions/Number" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "number", + "major", + "minor", + "arch", + "series" + ] + }, + "FindToolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "FullStatus": { + "type": "object", + "properties": { + "applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ApplicationStatus" + } + } + }, + "machines": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "model": { + "$ref": "#/definitions/ModelStatusInfo" + }, + "relations": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationStatus" + } + }, + "remote-applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/RemoteApplicationStatus" + } + } + } + }, + "additionalProperties": false, + "required": [ + "model", + "machines", + "applications", + "remote-applications", + "relations" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "History": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/definitions/DetailedStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "statuses" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MachineStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "constraints": { + "type": "string" + }, + "containers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "dns-name": { + "type": "string" + }, + "hardware": { + "type": "string" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "instance-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "ip-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "network-interfaces": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/NetworkInterface" + } + } + }, + "series": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "instance-status", + "dns-name", + "instance-id", + "series", + "id", + "containers", + "constraints", + "hardware", + "jobs", + "has-vote", + "wants-vote" + ] + }, + "MeterStatus": { + "type": "object", + "properties": { + "color": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "color", + "message" + ] + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "migration": { + "$ref": "#/definitions/ModelMigrationStatus" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "provider-type", + "default-series", + "cloud-tag", + "owner-tag", + "life", + "status", + "users", + "machines" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "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": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelStatusInfo": { + "type": "object", + "properties": { + "available-version": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "model-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "cloud-tag", + "version", + "available-version", + "model-status" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModelUserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "additionalProperties": false + }, + "ModelUserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NetworkInterface": { + "type": "object", + "properties": { + "dns-nameservers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway": { + "type": "string" + }, + "ip-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "is-up": { + "type": "boolean" + }, + "mac-address": { + "type": "string" + }, + "space": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ip-addresses", + "mac-address", + "is-up" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "PrivateAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PrivateAddressResults": { + "type": "object", + "properties": { + "private-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "private-address" + ] + }, + "ProvisioningScriptParams": { + "type": "object", + "properties": { + "data-dir": { + "type": "string" + }, + "disable-package-commands": { + "type": "boolean" + }, + "machine-id": { + "type": "string" + }, + "nonce": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-id", + "nonce", + "data-dir", + "disable-package-commands" + ] + }, + "ProvisioningScriptResult": { + "type": "object", + "properties": { + "script": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "script" + ] + }, + "PublicAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PublicAddressResults": { + "type": "object", + "properties": { + "public-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "public-address" + ] + }, + "RelationStatus": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/EndpointStatus" + } + }, + "id": { + "type": "integer" + }, + "interface": { + "type": "string" + }, + "key": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "key", + "interface", + "scope", + "endpoints" + ] + }, + "RemoteApplicationStatus": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "application-url": { + "type": "string" + }, + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteEndpoint" + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "life": { + "type": "string" + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + } + }, + "additionalProperties": false, + "required": [ + "application-url", + "application-name", + "endpoints", + "life", + "relations", + "status" + ] + }, + "RemoteEndpoint": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "limit", + "scope" + ] + }, + "ResolveCharmResult": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ResolveCharmResults": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolveCharmResult" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ResolveCharms": { + "type": "object", + "properties": { + "references": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "references" + ] + }, + "Resolved": { + "type": "object", + "properties": { + "retry": { + "type": "boolean" + }, + "unit-name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-name", + "retry" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "StatusHistoryFilter": { + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "delta": { + "type": "integer" + }, + "exclude": { + "type": "array", + "items": { + "type": "string" + } + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "size", + "date", + "delta", + "exclude" + ] + }, + "StatusHistoryRequest": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/definitions/StatusHistoryFilter" + }, + "historyKind": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "historyKind", + "size", + "filter", + "tag" + ] + }, + "StatusHistoryRequests": { + "type": "object", + "properties": { + "requests": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryRequest" + } + } + }, + "additionalProperties": false, + "required": [ + "requests" + ] + }, + "StatusHistoryResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "history": { + "$ref": "#/definitions/History" + } + }, + "additionalProperties": false, + "required": [ + "history" + ] + }, + "StatusHistoryResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusParams": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "UnitStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "charm": { + "type": "string" + }, + "leader": { + "type": "boolean" + }, + "machine": { + "type": "string" + }, + "opened-ports": { + "type": "array", + "items": { + "type": "string" + } + }, + "public-address": { + "type": "string" + }, + "subordinates": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "workload-status", + "workload-version", + "machine", + "opened-ports", + "public-address", + "charm", + "subordinates" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "Cloud", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Cloud": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudResults" + } + } + }, + "Clouds": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/CloudsResult" + } + } + }, + "Credential": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudCredentialResults" + } + } + }, + "DefaultCloud": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "InstanceTypes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CloudInstanceTypesConstraints" + }, + "Result": { + "$ref": "#/definitions/InstanceTypesResults" + } + } + }, + "RevokeCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpdateCloudCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserClouds" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Cloud": { + "type": "object", + "properties": { + "auth-types": { + "type": "array", + "items": { + "type": "string" + } + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudRegion" + } + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudCredentialResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudCredential" + } + }, + "additionalProperties": false + }, + "CloudCredentialResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudCredentialResult" + } + } + }, + "additionalProperties": false + }, + "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": { + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name" + ] + }, + "CloudResult": { + "type": "object", + "properties": { + "cloud": { + "$ref": "#/definitions/Cloud" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "CloudResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudResult" + } + } + }, + "additionalProperties": false + }, + "CloudsResult": { + "type": "object", + "properties": { + "clouds": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Cloud" + } + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "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 + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateCloudCredential": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "credential" + ] + }, + "UpdateCloudCredentials": { + "type": "object", + "properties": { + "credentials": { + "type": "array", + "items": { + "$ref": "#/definitions/UpdateCloudCredential" + } + } + }, + "additionalProperties": false + }, + "UserCloud": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "cloud-tag" + ] + }, + "UserClouds": { + "type": "object", + "properties": { + "user-clouds": { + "type": "array", + "items": { + "$ref": "#/definitions/UserCloud" + } + } + }, + "additionalProperties": false + }, + "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": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DestroyController": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyControllerArgs" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/UserAccessResults" + } + } + }, + "HostedModelConfigs": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/HostedModelConfigsResults" + } + } + }, + "InitiateMigration": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/InitiateMigrationArgs" + }, + "Result": { + "$ref": "#/definitions/InitiateMigrationResults" + } + } + }, + "ListBlockedModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelBlockInfoList" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyControllerAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveBlocks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RemoveBlocksArgs" + } + } + }, + "WatchAllModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "DestroyControllerArgs": { + "type": "object", + "properties": { + "destroy-models": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "destroy-models" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostedModelConfig": { + "type": "object", + "properties": { + "cloud-spec": { + "$ref": "#/definitions/CloudSpec" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "owner": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner" + ] + }, + "HostedModelConfigsResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/HostedModelConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "InitiateMigrationArgs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/MigrationSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "InitiateMigrationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "migration-id": { + "type": "string" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "migration-id" + ] + }, + "InitiateMigrationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/InitiateMigrationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MigrationSpec": { + "type": "object", + "properties": { + "external-control": { + "type": "boolean" + }, + "model-tag": { + "type": "string" + }, + "skip-initial-prechecks": { + "type": "boolean" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info", + "external-control", + "skip-initial-prechecks" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelBlockInfo": { + "type": "object", + "properties": { + "blocks": { + "type": "array", + "items": { + "type": "string" + } + }, + "model-uuid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "model-uuid", + "owner-tag", + "blocks" + ] + }, + "ModelBlockInfoList": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelBlockInfo" + } + } + }, + "additionalProperties": false + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelStatus": { + "type": "object", + "properties": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access" + ] + }, + "ModifyControllerAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyControllerAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RemoveBlocksArgs": { + "type": "object", + "properties": { + "all": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "all" + ] + }, + "UserAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "access" + ] + }, + "UserAccessResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserAccess" + } + }, + "additionalProperties": false + }, + "UserAccessResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserAccessResult" + } + } + }, + "additionalProperties": false + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "Deployer", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "ConnectionInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DeployerConnectionValues" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "DeployerConnectionValues": { + "type": "object", + "properties": { + "api-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "state-addresses": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "state-addresses", + "api-addresses" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "DiscoverSpaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DiscoverSpacesResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "DiscoverSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderSpace" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ProviderSpace": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider-id", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "DiskManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineBlockDevices" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineBlockDevices": { + "type": "object", + "properties": { + "block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDevice" + } + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "machine-block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineBlockDevices" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-block-devices" + ] + } + } + } + }, + { + "Name": "EntityWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/EntitiesWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "EntitiesWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "FilesystemAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + }, + { + "Name": "Firewaller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "GetAssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetExposed": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "GetMachineActiveSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "GetMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachinePortsParams" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "WatchOpenedPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePorts": { + "type": "object", + "properties": { + "machine-tag": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "subnet-tag" + ] + }, + "MachinePortsParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePorts" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "HighAvailability", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "EnableHA": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ControllersSpecs" + }, + "Result": { + "$ref": "#/definitions/ControllersChangeResults" + } + } + }, + "ResumeHAReplicationAfterUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResumeReplicationParams" + } + } + }, + "StopHAReplicationForUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpgradeMongoParams" + }, + "Result": { + "$ref": "#/definitions/MongoUpgradeResults" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "Scope": { + "type": "string" + }, + "SpaceName": { + "type": "string" + }, + "SpaceProviderId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Value", + "Type", + "Scope", + "SpaceName", + "SpaceProviderId" + ] + }, + "ControllersChangeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ControllersChanges" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ControllersChangeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersChangeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ControllersChanges": { + "type": "object", + "properties": { + "added": { + "type": "array", + "items": { + "type": "string" + } + }, + "converted": { + "type": "array", + "items": { + "type": "string" + } + }, + "demoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "maintained": { + "type": "array", + "items": { + "type": "string" + } + }, + "promoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "removed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ControllersSpec": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "num-controllers": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "type": "string" + } + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "num-controllers" + ] + }, + "ControllersSpecs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "HAMember": { + "type": "object", + "properties": { + "public-address": { + "$ref": "#/definitions/Address" + }, + "series": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-address", + "series" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Member": { + "type": "object", + "properties": { + "Address": { + "type": "string" + }, + "Arbiter": { + "type": "boolean" + }, + "BuildIndexes": { + "type": "boolean" + }, + "Hidden": { + "type": "boolean" + }, + "Id": { + "type": "integer" + }, + "Priority": { + "type": "number" + }, + "SlaveDelay": { + "type": "integer" + }, + "Tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "Votes": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Id", + "Address", + "Arbiter", + "BuildIndexes", + "Hidden", + "Priority", + "Tags", + "SlaveDelay", + "Votes" + ] + }, + "MongoUpgradeResults": { + "type": "object", + "properties": { + "ha-members": { + "type": "array", + "items": { + "$ref": "#/definitions/HAMember" + } + }, + "master": { + "$ref": "#/definitions/HAMember" + }, + "rs-members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "rs-members", + "master", + "ha-members" + ] + }, + "MongoVersion": { + "type": "object", + "properties": { + "engine": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "patch": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "major", + "minor", + "patch", + "engine" + ] + }, + "ResumeReplicationParams": { + "type": "object", + "properties": { + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "members" + ] + }, + "UpgradeMongoParams": { + "type": "object", + "properties": { + "target": { + "$ref": "#/definitions/MongoVersion" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "HostKeyReporter", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ReportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SSHHostKeySet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHHostKeySet": { + "type": "object", + "properties": { + "entity-keys": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHHostKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "entity-keys" + ] + }, + "SSHHostKeys": { + "type": "object", + "properties": { + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-keys" + ] + } + } + } + }, + { + "Name": "ImageManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "DeleteImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ListImageResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageFilterParams": { + "type": "object", + "properties": { + "images": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "images" + ] + }, + "ImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series", + "url", + "created" + ] + }, + "ImageSpec": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series" + ] + }, + "ListImageResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "ImageMetadata", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Delete": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataImageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageMetadataFilter" + }, + "Result": { + "$ref": "#/definitions/ListCloudImageMetadataResult" + } + } + }, + "Save": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataSaveParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateFromPublishedImages": { + "type": "object" + } + }, + "definitions": { + "CloudImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "image-id": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "region": { + "type": "string" + }, + "root-storage-size": { + "type": "integer" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "string" + }, + "source": { + "type": "string" + }, + "stream": { + "type": "string" + }, + "version": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "image-id", + "region", + "version", + "series", + "arch", + "source", + "priority" + ] + }, + "CloudImageMetadataList": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageMetadataFilter": { + "type": "object", + "properties": { + "arches": { + "type": "array", + "items": { + "type": "string" + } + }, + "region": { + "type": "string" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "stream": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ListCloudImageMetadataResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MetadataImageIds": { + "type": "object", + "properties": { + "image-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "image-ids" + ] + }, + "MetadataSaveParams": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadataList" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "InstancePoller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AreManuallyProvisioned": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineAddressesResults" + } + } + }, + "SetInstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Status": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "MachineAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "MachineAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "KeyManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DeleteKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ImportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListSSHKeys" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSSHKeys": { + "type": "object", + "properties": { + "entities": { + "$ref": "#/definitions/Entities" + }, + "mode": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "mode" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModifyUserSSHKeys": { + "type": "object", + "properties": { + "ssh-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "ssh-keys" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "KeyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "WatchAuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LeadershipService", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "BlockUntilLeadershipReleased": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationTag" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "ClaimLeadership": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ClaimLeadershipBulkParams" + }, + "Result": { + "$ref": "#/definitions/ClaimLeadershipBulkResults" + } + } + } + }, + "definitions": { + "ApplicationTag": { + "type": "object", + "properties": { + "Name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Name" + ] + }, + "ClaimLeadershipBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/ClaimLeadershipParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "ClaimLeadershipBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ClaimLeadershipParams": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "duration": { + "type": "number" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "unit-tag", + "duration" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "LifeFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LogForwarding", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingGetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/LogForwardingGetLastSentResults" + } + } + }, + "SetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingSetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingGetLastSentParams": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingID" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "LogForwardingGetLastSentResult": { + "type": "object", + "properties": { + "err": { + "$ref": "#/definitions/Error" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "record-id", + "record-timestamp", + "err" + ] + }, + "LogForwardingGetLastSentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingGetLastSentResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingID": { + "type": "object", + "properties": { + "model": { + "type": "string" + }, + "sink": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model", + "sink" + ] + }, + "LogForwardingSetLastSentParam": { + "type": "object", + "properties": { + "LogForwardingID": { + "$ref": "#/definitions/LogForwardingID" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "LogForwardingID", + "record-id", + "record-timestamp" + ] + }, + "LogForwardingSetLastSentParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingSetLastSentParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Logger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "LoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "WatchLoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineActions", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RunningActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineManager", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "DestroyMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DestroyMachineResults" + } + } + }, + "ForceDestroyMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DestroyMachineResults" + } + } + }, + "InstanceTypes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelInstanceTypesConstraints" + }, + "Result": { + "$ref": "#/definitions/InstanceTypesResults" + } + } + } + }, + "definitions": { + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyMachineInfo": { + "type": "object", + "properties": { + "destroyed-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "destroyed-units": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "detached-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false + }, + "DestroyMachineResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "$ref": "#/definitions/DestroyMachineInfo" + } + }, + "additionalProperties": false + }, + "DestroyMachineResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/DestroyMachineResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "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 + }, + "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": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MachineUndertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AllMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/EntitiesResults" + } + } + }, + "CompleteMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + } + } + }, + "GetMachineProviderInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProviderInterfaceInfoResults" + } + } + }, + "WatchMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResult": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProviderInterfaceInfo": { + "type": "object", + "properties": { + "interface-name": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "provider-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "interface-name", + "mac-address", + "provider-id" + ] + }, + "ProviderInterfaceInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "interfaces": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfo" + } + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "interfaces" + ] + }, + "ProviderInterfaceInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Machiner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Jobs": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/JobsResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetMachineAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetObservedNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineNetworkConfig" + } + } + }, + "SetProviderNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "JobsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "jobs" + ] + }, + "JobsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/JobsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkRoute" + } + }, + "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" + ] + }, + "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": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetMachineNetworkConfig": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "config" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MeterStatus", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsAdder", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + } + } + } + }, + { + "Name": "MetricsDebug", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "GetMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MetricResults" + } + } + }, + "SetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MeterStatusParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityMetrics": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricResult" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusParam": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "code", + "info" + ] + }, + "MeterStatusParams": { + "type": "object", + "properties": { + "statues": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusParam" + } + } + }, + "additionalProperties": false, + "required": [ + "statues" + ] + }, + "MetricResult": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "unit": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "time", + "key", + "value", + "unit" + ] + }, + "MetricResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityMetrics" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "CleanupOldMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SendMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "MigrationFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Phase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PhaseResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PhaseResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "phase": { + "type": "string" + } + }, + "additionalProperties": false + }, + "PhaseResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PhaseResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MigrationMaster", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Export": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "MigrationStatus": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MasterMigrationStatus" + } + } + }, + "MinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MinionReports" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + }, + "Prechecks": { + "type": "object" + }, + "Reap": { + "type": "object" + }, + "SetPhase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationPhaseArgs" + } + } + }, + "SetStatusMessage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationStatusMessageArgs" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchMinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MasterMigrationStatus": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "phase-changed-time": { + "type": "string", + "format": "date-time" + }, + "spec": { + "$ref": "#/definitions/MigrationSpec" + } + }, + "additionalProperties": false, + "required": [ + "spec", + "migration-id", + "phase", + "phase-changed-time" + ] + }, + "MigrationModelInfo": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "controller-agent-version": { + "$ref": "#/definitions/Number" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version", + "controller-agent-version" + ] + }, + "MigrationSpec": { + "type": "object", + "properties": { + "external-control": { + "type": "boolean" + }, + "model-tag": { + "type": "string" + }, + "skip-initial-prechecks": { + "type": "boolean" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info", + "external-control", + "skip-initial-prechecks" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "MinionReports": { + "type": "object", + "properties": { + "failed": { + "type": "array", + "items": { + "type": "string" + } + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success-count": { + "type": "integer" + }, + "unknown-count": { + "type": "integer" + }, + "unknown-sample": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success-count", + "unknown-count", + "unknown-sample", + "failed" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelResource" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "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": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + }, + "SetMigrationPhaseArgs": { + "type": "object", + "properties": { + "phase": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "phase" + ] + }, + "SetMigrationStatusMessageArgs": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message" + ] + } + } + } + }, + { + "Name": "MigrationMinion", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Report": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MinionReport" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MinionReport": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "MigrationStatusWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationStatus" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "MigrationStatus": { + "type": "object", + "properties": { + "attempt": { + "type": "integer" + }, + "external-control": { + "type": "boolean" + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "source-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "source-ca-cert": { + "type": "string" + }, + "target-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "target-ca-cert": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "attempt", + "phase", + "external-control", + "source-api-addrs", + "source-ca-cert", + "target-api-addrs", + "target-ca-cert" + ] + } + } + } + }, + { + "Name": "MigrationTarget", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Abort": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "Activate": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "AdoptResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AdoptResourcesArgs" + } + } + }, + "Import": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "LatestLogTime": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + }, + "Result": { + "type": "string", + "format": "date-time" + } + } + }, + "Prechecks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + } + }, + "definitions": { + "AdoptResourcesArgs": { + "type": "object", + "properties": { + "model-tag": { + "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, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version", + "controller-agent-version" + ] + }, + "ModelArgs": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelResource" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "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": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + } + } + } + }, + { + "Name": "ModelConfig", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + } + }, + "definitions": { + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelSet": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + } + } + } + }, + { + "Name": "ModelManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CreateModel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelCreateArgs" + }, + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "DestroyModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DumpModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "DumpModelsDB": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "ListModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entity" + }, + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "ModelDefaults": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelDefaultsResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelInfoResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyModelAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnsetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MapResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "MapResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MapResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelCreateArgs": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "credential": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "region": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner-tag" + ] + }, + "ModelDefaultValues": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelDefaults": { + "type": "object", + "properties": { + "controller": { + "type": "object", + "additionalProperties": true + }, + "default": { + "type": "object", + "additionalProperties": true + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/RegionDefaults" + } + } + }, + "additionalProperties": false + }, + "ModelDefaultsResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ModelDefaults" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "migration": { + "$ref": "#/definitions/ModelMigrationStatus" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "provider-type", + "default-series", + "cloud-tag", + "owner-tag", + "life", + "status", + "users", + "machines" + ] + }, + "ModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelInfo" + } + }, + "additionalProperties": false + }, + "ModelInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "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": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelUnsetKeys": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "model-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access", + "model-tag" + ] + }, + "ModifyModelAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyModelAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RegionDefaults": { + "type": "object", + "properties": { + "region-name": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "region-name", + "value" + ] + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelDefaultValues" + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUnsetKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "NotifyWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Payloads", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PayloadListArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadListResults" + } + } + } + }, + "definitions": { + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + }, + "PayloadListArgs": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "PayloadListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "PayloadsHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "LookUp": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LookUpPayloadArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetPayloadStatusArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Track": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/TrackPayloadArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Untrack": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LookUpPayloadArg": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "id" + ] + }, + "LookUpPayloadArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/LookUpPayloadArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + }, + "PayloadResult": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "not-found": { + "type": "boolean" + }, + "payload": { + "$ref": "#/definitions/Payload" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "payload", + "not-found" + ] + }, + "PayloadResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PayloadResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetPayloadStatusArg": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "status" + ] + }, + "SetPayloadStatusArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/SetPayloadStatusArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "TrackPayloadArgs": { + "type": "object", + "properties": { + "payloads": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "payloads" + ] + } + } + } + }, + { + "Name": "Pinger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Ping": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Provisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "Constraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConstraintsResults" + } + } + }, + "ContainerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ContainerConfig" + } + } + }, + "ContainerManagerConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ContainerManagerConfigParams" + }, + "Result": { + "$ref": "#/definitions/ContainerManagerConfig" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DistributionGroup": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DistributionGroupResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "GetContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "HostChangesForContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/HostNetworkChangeResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "MachinesWithTransientErrors": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "MarkMachinesForRemoval": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PrepareContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProvisioningInfoResults" + } + } + }, + "ReleaseContainerAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Series": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "SetHostMachineNetworkConfig": { + "type": "object", + "properties": { + "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" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkRoute" + } + }, + "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" + ] + }, + "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": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "controller-config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "image-metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "placement": { + "type": "string" + }, + "series": { + "type": "string" + }, + "subnets-to-zones": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParams" + } + } + }, + "additionalProperties": false, + "required": [ + "constraints", + "series", + "placement", + "jobs" + ] + }, + "ProvisioningInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ProvisioningInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ProvisioningInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProvisioningInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetMachineNetworkConfig": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "config" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Settings": { + "type": "object", + "properties": { + "Ftp": { + "type": "string" + }, + "Http": { + "type": "string" + }, + "Https": { + "type": "string" + }, + "NoProxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Http", + "Https", + "Ftp", + "NoProxy" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateBehavior": { + "type": "object", + "properties": { + "enable-os-refresh-update": { + "type": "boolean" + }, + "enable-os-upgrade": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "enable-os-refresh-update", + "enable-os-upgrade" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "WatchContainer": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "container-type" + ] + }, + "WatchContainers": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/WatchContainer" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + } + } + } + }, + { + "Name": "ProxyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ProxyConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProxyConfigResults" + } + } + }, + "WatchForProxyConfigAndAPIHostPortChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProxyConfig": { + "type": "object", + "properties": { + "ftp": { + "type": "string" + }, + "http": { + "type": "string" + }, + "https": { + "type": "string" + }, + "no-proxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "http", + "https", + "ftp", + "no-proxy" + ] + }, + "ProxyConfigResult": { + "type": "object", + "properties": { + "apt-proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + } + }, + "additionalProperties": false, + "required": [ + "proxy-settings", + "apt-proxy-settings" + ] + }, + "ProxyConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProxyConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Reboot", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetRebootAction": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RebootActionResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchForRebootEvent": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "RebootActionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false + }, + "RebootActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RebootActionResult" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "RelationUnitsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + } + } + } + }, + { + "Name": "Resources", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddPendingResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddPendingResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/AddPendingResourcesResult" + } + } + }, + "ListResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/ResourcesResults" + } + } + } + }, + "definitions": { + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddPendingResourcesArgs": { + "type": "object", + "properties": { + "AddCharmWithAuthorization": { + "$ref": "#/definitions/AddCharmWithAuthorization" + }, + "Entity": { + "$ref": "#/definitions/Entity" + }, + "Resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "AddCharmWithAuthorization", + "Resources" + ] + }, + "AddPendingResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "pending-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "pending-ids" + ] + }, + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListResourcesArgs": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "ResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "charm-store-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + }, + "unit-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitResources" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources", + "charm-store-resources", + "unit-resources" + ] + }, + "ResourcesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourcesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitResources": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "download-progress": { + "type": "object", + "patternProperties": { + ".*": { + "type": "integer" + } + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "resources", + "download-progress" + ] + } + } + } + }, + { + "Name": "ResourcesHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetResourceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/ResourcesResult" + } + } + } + }, + "definitions": { + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListResourcesArgs": { + "type": "object", + "properties": { + "resource-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "resource-names" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "ResourceResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resource": { + "$ref": "#/definitions/Resource" + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resource" + ] + }, + "ResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources" + ] + } + } + } + }, + { + "Name": "Resumer", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ResumeTransactions": { + "type": "object" + } + } + } + }, + { + "Name": "RetryStrategy", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "RetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RetryStrategyResults" + } + } + }, + "WatchRetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RetryStrategy": { + "type": "object", + "properties": { + "jitter-retry-time": { + "type": "boolean" + }, + "max-retry-time": { + "type": "integer" + }, + "min-retry-time": { + "type": "integer" + }, + "retry-time-factor": { + "type": "integer" + }, + "should-retry": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "should-retry", + "min-retry-time", + "max-retry-time", + "jitter-retry-time", + "retry-time-factor" + ] + }, + "RetryStrategyResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/RetryStrategy" + } + }, + "additionalProperties": false + }, + "RetryStrategyResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RetryStrategyResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "SSHClient", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AllAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressesResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "Proxy": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SSHProxyResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "PublicKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHPublicKeysResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHAddressResult": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "SSHAddressResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "SSHAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHProxyResult": { + "type": "object", + "properties": { + "use-proxy": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "use-proxy" + ] + }, + "SSHPublicKeysResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "SSHPublicKeysResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHPublicKeysResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Singular", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Claim": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SingularClaims" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Wait": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SingularClaim": { + "type": "object", + "properties": { + "controller-tag": { + "type": "string" + }, + "duration": { + "type": "integer" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "controller-tag", + "duration" + ] + }, + "SingularClaims": { + "type": "object", + "properties": { + "claims": { + "type": "array", + "items": { + "$ref": "#/definitions/SingularClaim" + } + } + }, + "additionalProperties": false, + "required": [ + "claims" + ] + } + } + } + }, + { + "Name": "Spaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ListSpacesResults" + } + } + } + }, + "definitions": { + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Space" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Space": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + } + } + } + }, + { + "Name": "StatusHistory", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Prune": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryPruneArgs" + } + } + } + }, + "definitions": { + "StatusHistoryPruneArgs": { + "type": "object", + "properties": { + "max-history-mb": { + "type": "integer" + }, + "max-history-time": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "max-history-time", + "max-history-mb" + ] + } + } + } + }, + { + "Name": "Storage", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddToUnit": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Attach": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreatePool": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Detach": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemFilters" + }, + "Result": { + "$ref": "#/definitions/FilesystemDetailsListResults" + } + } + }, + "ListPools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePoolFilters" + }, + "Result": { + "$ref": "#/definitions/StoragePoolsResults" + } + } + }, + "ListStorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageFilters" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsListResults" + } + } + }, + "ListVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeFilters" + }, + "Result": { + "$ref": "#/definitions/VolumeDetailsListResults" + } + } + }, + "StorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FilesystemAttachmentDetails": { + "type": "object", + "properties": { + "FilesystemAttachmentInfo": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "FilesystemAttachmentInfo" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemDetails": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "life": { + "type": "string" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/FilesystemAttachmentDetails" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info", + "status" + ] + }, + "FilesystemDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetails" + } + } + }, + "additionalProperties": false + }, + "FilesystemDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemFilter" + } + } + }, + "additionalProperties": false + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "pool", + "size" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachmentDetails": { + "type": "object", + "properties": { + "life": { + "type": "string" + }, + "location": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag", + "machine-tag" + ] + }, + "StorageAttachmentId": { + "type": "object", + "properties": { + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag" + ] + }, + "StorageAttachmentIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StorageDetails": { + "type": "object", + "properties": { + "attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageAttachmentDetails" + } + } + }, + "kind": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "kind", + "status", + "persistent" + ] + }, + "StorageDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetails" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageDetails" + } + }, + "additionalProperties": false + }, + "StorageDetailsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsResult" + } + } + }, + "additionalProperties": false + }, + "StorageFilter": { + "type": "object", + "additionalProperties": false + }, + "StorageFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePool": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "name": { + "type": "string" + }, + "provider": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider", + "attrs" + ] + }, + "StoragePoolFilter": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + }, + "providers": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StoragePoolFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "storage-pools": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolsResult" + } + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "VolumeAttachmentDetails": { + "type": "object", + "properties": { + "VolumeAttachmentInfo": { + "$ref": "#/definitions/VolumeAttachmentInfo" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "VolumeAttachmentInfo" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeDetails": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "life": { + "type": "string" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/VolumeAttachmentDetails" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info", + "status" + ] + }, + "VolumeDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetails" + } + } + }, + "additionalProperties": false + }, + "VolumeDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "VolumeFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "VolumeFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeFilter" + } + } + }, + "additionalProperties": false + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + } + } + } + }, + { + "Name": "StorageProvisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentParamsResults" + } + } + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentResults" + } + } + }, + "FilesystemParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemParamsResults" + } + } + }, + "Filesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveAttachment": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Filesystems" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Volumes" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentParamsResults" + } + } + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentResults" + } + } + }, + "VolumeBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/BlockDeviceResults" + } + } + }, + "VolumeParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeParamsResults" + } + } + }, + "Volumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeResults" + } + } + }, + "WatchBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchFilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchVolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "BlockDeviceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/BlockDevice" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockDeviceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDeviceResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Filesystem": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info" + ] + }, + "FilesystemAttachment": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "info" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "filesystem-tag": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "mount-point": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "provider" + ] + }, + "FilesystemAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "filesystem-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystem-attachments" + ] + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "pool", + "size" + ] + }, + "FilesystemParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/FilesystemAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "filesystem-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "size", + "provider" + ] + }, + "FilesystemParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Filesystem" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemResult" + } + } + }, + "additionalProperties": false + }, + "Filesystems": { + "type": "object", + "properties": { + "filesystems": { + "type": "array", + "items": { + "$ref": "#/definitions/Filesystem" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystems" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "MachineStorageIdsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachment": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeAttachmentInfo" + }, + "machine-tag": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "volume-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "volume-attachments" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "VolumeParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Volume" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeResult" + } + } + }, + "additionalProperties": false + }, + "Volumes": { + "type": "object", + "properties": { + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/Volume" + } + } + }, + "additionalProperties": false, + "required": [ + "volumes" + ] + } + } + } + }, + { + "Name": "StringsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Subnets", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SpaceResults" + } + } + }, + "AllZones": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ZoneResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SpaceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "SpaceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SpaceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ZoneResult": { + "type": "object", + "properties": { + "available": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "available" + ] + }, + "ZoneResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ZoneResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Undertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UndertakerModelInfoResult" + } + } + }, + "ProcessDyingModel": { + "type": "object" + }, + "RemoveModel": { + "type": "object" + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchModelResources": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "UndertakerModelInfo": { + "type": "object", + "properties": { + "global-name": { + "type": "string" + }, + "is-system": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "global-name", + "is-system", + "life" + ] + }, + "UndertakerModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UndertakerModelInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + } + } + } + }, + { + "Name": "UnitAssigner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AssignUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchUnitAssignments": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Uniter", + "Version": 4, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AddUnitStorage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationStatusResults" + } + } + }, + "AssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "AvailabilityZone": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "CharmArchiveSha256": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURLs" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "CharmModifiedVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/IntResults" + } + } + }, + "CharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "ClearResolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ClosePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConfigSettingsResults" + } + } + }, + "CurrentModel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelResult" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyAllSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnterScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "GetPrincipal": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "HasSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "JoinedRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "LeaveScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Merge": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "NetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnitsNetworkConfig" + }, + "Result": { + "$ref": "#/definitions/UnitNetworkConfigResults" + } + } + }, + "OpenPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "ProviderType": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Read": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/GetLeadershipSettingsBulkResults" + } + } + }, + "ReadRemoteSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitPairs" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "ReadSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "Relation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RelationById": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationIds" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RemoveStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ResolvedModeResults" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesCharmURL" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetUnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetWorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityWorkloadVersions" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StorageAttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "StorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentResults" + } + } + }, + "UnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "UnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentIdsResults" + } + } + }, + "UpdateSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitsSettings" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchApplicationRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchLeadershipSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchRelationUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResults" + } + } + }, + "WatchStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "ApplicationStatusResult": { + "type": "object", + "properties": { + "application": { + "$ref": "#/definitions/StatusResult" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StatusResult" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "units" + ] + }, + "ApplicationStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmURLs": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ConfigSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "ConfigSettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Endpoint": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "relation": { + "$ref": "#/definitions/CharmRelation" + } + }, + "additionalProperties": false, + "required": [ + "application-name", + "relation" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesCharmURL": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityCharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesPortRanges": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityCharmURL": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "charm-url" + ] + }, + "EntityPortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "protocol", + "from-port", + "to-port" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "EntityWorkloadVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "workload-version" + ] + }, + "EntityWorkloadVersions": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityWorkloadVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/GetLeadershipSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "IntResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "IntResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/IntResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "MergeLeadershipSettingsBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MergeLeadershipSettingsParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MergeLeadershipSettingsParam": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "settings" + ] + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkRoute" + } + }, + "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" + ] + }, + "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": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "RelationIds": { + "type": "object", + "properties": { + "relation-ids": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-ids" + ] + }, + "RelationResult": { + "type": "object", + "properties": { + "endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "integer" + }, + "key": { + "type": "string" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "id", + "key", + "endpoint" + ] + }, + "RelationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RelationUnit": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit" + ] + }, + "RelationUnitPair": { + "type": "object", + "properties": { + "local-unit": { + "type": "string" + }, + "relation": { + "type": "string" + }, + "remote-unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "local-unit", + "remote-unit" + ] + }, + "RelationUnitPairs": { + "type": "object", + "properties": { + "relation-unit-pairs": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitPair" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-unit-pairs" + ] + }, + "RelationUnitSettings": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit", + "settings" + ] + }, + "RelationUnits": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnit" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsSettings": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitSettings" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "RelationUnitsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ResolvedModeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "mode": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "mode" + ] + }, + "ResolvedModeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolvedModeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "SettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "SettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachment": { + "type": "object", + "properties": { + "kind": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "location": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "unit-tag", + "kind", + "location", + "life" + ] + }, + "StorageAttachmentId": { + "type": "object", + "properties": { + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag" + ] + }, + "StorageAttachmentIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "StorageAttachmentIdsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachmentIds" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentIdsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentIdsResult" + } + } + }, + "additionalProperties": false + }, + "StorageAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "StringBoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ok": { + "type": "boolean" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result", + "ok" + ] + }, + "StringBoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringBoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitNetworkConfig": { + "type": "object", + "properties": { + "binding-name": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "binding-name" + ] + }, + "UnitNetworkConfigResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "info" + ] + }, + "UnitNetworkConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitNetworkConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "UnitsNetworkConfig": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitNetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + } + } + } + }, + { + "Name": "Upgrader", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "DesiredVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VersionResults" + } + } + }, + "SetTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesVersion" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Tools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ToolsResults" + } + } + }, + "WatchAPIVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesVersion": { + "type": "object", + "properties": { + "agent-tools": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "agent-tools" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "tools": { + "$ref": "#/definitions/Version" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "tools" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Version": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "VersionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false + }, + "VersionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VersionResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "UserManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddUsers" + }, + "Result": { + "$ref": "#/definitions/AddUserResults" + } + } + }, + "DisableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPassword": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserInfoRequest" + }, + "Result": { + "$ref": "#/definitions/UserInfoResults" + } + } + } + }, + "definitions": { + "AddUser": { + "type": "object", + "properties": { + "display-name": { + "type": "string" + }, + "password": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name" + ] + }, + "AddUserResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "secret-key": { + "type": "array", + "items": { + "type": "integer" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false + }, + "AddUserResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUserResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AddUsers": { + "type": "object", + "properties": { + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUser" + } + } + }, + "additionalProperties": false, + "required": [ + "users" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "UserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "created-by": { + "type": "string" + }, + "date-created": { + "type": "string", + "format": "date-time" + }, + "disabled": { + "type": "boolean" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name", + "access", + "created-by", + "date-created", + "disabled" + ] + }, + "UserInfoRequest": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "include-disabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "include-disabled" + ] + }, + "UserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserInfo" + } + }, + "additionalProperties": false + }, + "UserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "VolumeAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + } +] diff --git a/modules/libjuju/juju/client/schemas-juju-2.2-beta1.json b/modules/libjuju/juju/client/schemas-juju-2.2-beta1.json new file mode 100644 index 0000000..9bd941b --- /dev/null +++ b/modules/libjuju/juju/client/schemas-juju-2.2-beta1.json @@ -0,0 +1,26135 @@ +[ + { + "Name": "Action", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "ApplicationsCharmsActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationsCharmActionsResults" + } + } + }, + "Cancel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "Enqueue": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Actions" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "FindActionTagsByPrefix": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindTags" + }, + "Result": { + "$ref": "#/definitions/FindTagsResults" + } + } + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindActionsByNames" + }, + "Result": { + "$ref": "#/definitions/ActionsByNames" + } + } + }, + "ListAll": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListCompleted": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListPending": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListRunning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "Run": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "RunOnAllMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "Actions": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/Action" + } + } + }, + "additionalProperties": false + }, + "ActionsByName": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByNames": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByName" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "ApplicationCharmActionsResult": { + "type": "object", + "properties": { + "actions": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ActionSpec" + } + } + }, + "application-tag": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ApplicationsCharmActionsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationCharmActionsResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FindTags": { + "type": "object", + "properties": { + "prefixes": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "prefixes" + ] + }, + "FindTagsResults": { + "type": "object", + "properties": { + "matches": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + } + } + }, + "additionalProperties": false, + "required": [ + "matches" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RunParams": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "type": "string" + } + }, + "commands": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "type": "string" + } + }, + "timeout": { + "type": "integer" + }, + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "commands", + "timeout" + ] + } + } + } + }, + { + "Name": "Agent", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetEntities": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AgentGetEntitiesResults" + } + } + }, + "IsMaster": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/IsMasterResult" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateServingInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StateServingInfo" + } + } + }, + "WatchCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "AgentGetEntitiesResult": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "jobs", + "container-type" + ] + }, + "AgentGetEntitiesResults": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/AgentGetEntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "IsMasterResult": { + "type": "object", + "properties": { + "master": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "master" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StateServingInfo": { + "type": "object", + "properties": { + "api-port": { + "type": "integer" + }, + "ca-private-key": { + "type": "string" + }, + "cert": { + "type": "string" + }, + "private-key": { + "type": "string" + }, + "shared-secret": { + "type": "string" + }, + "state-port": { + "type": "integer" + }, + "system-identity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "api-port", + "state-port", + "cert", + "private-key", + "ca-private-key", + "shared-secret", + "system-identity" + ] + } + } + } + }, + { + "Name": "AgentTools", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "UpdateToolsAvailable": { + "type": "object" + } + } + } + }, + { + "Name": "AllModelWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "AllWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "Annotations", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AnnotationsGetResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AnnotationsSet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "AnnotationsGetResult": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/ErrorResult" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "AnnotationsGetResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AnnotationsGetResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AnnotationsSet": { + "type": "object", + "properties": { + "annotations": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityAnnotations" + } + } + }, + "additionalProperties": false, + "required": [ + "annotations" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityAnnotations": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Application", + "Version": 4, + "Schema": { + "type": "object", + "properties": { + "AddRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddRelation" + }, + "Result": { + "$ref": "#/definitions/AddRelationResults" + } + } + }, + "AddUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddApplicationUnits" + }, + "Result": { + "$ref": "#/definitions/AddApplicationUnitsResults" + } + } + }, + "CharmRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationCharmRelations" + }, + "Result": { + "$ref": "#/definitions/ApplicationCharmRelationsResults" + } + } + }, + "Consume": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ConsumeApplicationArgs" + }, + "Result": { + "$ref": "#/definitions/ConsumeApplicationResults" + } + } + }, + "Deploy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationsDeploy" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationDestroy" + } + } + }, + "DestroyApplication": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DestroyApplicationResults" + } + } + }, + "DestroyRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyRelation" + } + } + }, + "DestroyUnit": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DestroyUnitResults" + } + } + }, + "DestroyUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyApplicationUnits" + } + } + }, + "Expose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationExpose" + } + } + }, + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/ApplicationGetResults" + } + } + }, + "GetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "GetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/GetApplicationConstraints" + }, + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "RemoteApplicationInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationURLs" + }, + "Result": { + "$ref": "#/definitions/RemoteApplicationInfoResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSet" + } + } + }, + "SetCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSetCharm" + } + } + }, + "SetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "SetMetricCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationMetricCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Unexpose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnexpose" + } + } + }, + "Unset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnset" + } + } + }, + "Update": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUpdate" + } + } + } + }, + "definitions": { + "AddApplicationUnits": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "num-units", + "placement" + ] + }, + "AddApplicationUnitsResults": { + "type": "object", + "properties": { + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "units" + ] + }, + "AddRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "AddRelationResults": { + "type": "object", + "properties": { + "endpoints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "ApplicationCharmRelations": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationCharmRelationsResults": { + "type": "object", + "properties": { + "charm-relations": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-relations" + ] + }, + "ApplicationDeploy": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-yaml": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "series": { + "type": "string" + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Constraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "series", + "charm-url", + "channel", + "num-units", + "config-yaml", + "constraints" + ] + }, + "ApplicationDestroy": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationExpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGet": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGetResults": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm", + "config", + "constraints", + "series" + ] + }, + "ApplicationMetricCredential": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "metrics-credentials": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "metrics-credentials" + ] + }, + "ApplicationMetricCredentials": { + "type": "object", + "properties": { + "creds": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationMetricCredential" + } + } + }, + "additionalProperties": false, + "required": [ + "creds" + ] + }, + "ApplicationSet": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationSetCharm": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config-settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-settings-yaml": { + "type": "string" + }, + "force-series": { + "type": "boolean" + }, + "force-units": { + "type": "boolean" + }, + "resource-ids": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "storage-constraints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageConstraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "channel", + "force-units", + "force-series" + ] + }, + "ApplicationURLs": { + "type": "object", + "properties": { + "application-urls": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ApplicationUnexpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationUnset": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationUpdate": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "force-charm-url": { + "type": "boolean" + }, + "force-series": { + "type": "boolean" + }, + "min-units": { + "type": "integer" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "settings-yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "force-charm-url", + "force-series", + "settings-yaml" + ] + }, + "ApplicationsDeploy": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationDeploy" + } + } + }, + "additionalProperties": false, + "required": [ + "applications" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "ConsumeApplicationArg": { + "type": "object", + "properties": { + "application-alias": { + "type": "string" + }, + "application-url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application-url" + ] + }, + "ConsumeApplicationArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/ConsumeApplicationArg" + } + } + }, + "additionalProperties": false + }, + "ConsumeApplicationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "local-name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ConsumeApplicationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConsumeApplicationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "DestroyApplicationInfo": { + "type": "object", + "properties": { + "destroyed-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "destroyed-units": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "detached-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false + }, + "DestroyApplicationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "$ref": "#/definitions/DestroyApplicationInfo" + } + }, + "additionalProperties": false + }, + "DestroyApplicationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/DestroyApplicationResult" + } + } + }, + "additionalProperties": false + }, + "DestroyApplicationUnits": { + "type": "object", + "properties": { + "unit-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "unit-names" + ] + }, + "DestroyRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "DestroyUnitInfo": { + "type": "object", + "properties": { + "destroyed-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "detached-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false + }, + "DestroyUnitResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "$ref": "#/definitions/DestroyUnitInfo" + } + }, + "additionalProperties": false + }, + "DestroyUnitResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/DestroyUnitResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetApplicationConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "RemoteApplicationInfo": { + "type": "object", + "properties": { + "application-url": { + "type": "string" + }, + "description": { + "type": "string" + }, + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteEndpoint" + } + }, + "icon-url-path": { + "type": "string" + }, + "model-tag": { + "type": "string" + }, + "name": { + "type": "string" + }, + "source-model-label": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "name", + "description", + "application-url", + "endpoints", + "icon-url-path" + ] + }, + "RemoteApplicationInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/RemoteApplicationInfo" + } + }, + "additionalProperties": false + }, + "RemoteApplicationInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteApplicationInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RemoteEndpoint": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "limit", + "scope" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "ApplicationScaler", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Rescale": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Backups", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Create": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsCreateArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "FinishRestore": { + "type": "object" + }, + "Info": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsInfoArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsListArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsListResult" + } + } + }, + "PrepareRestore": { + "type": "object" + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsRemoveArgs" + } + } + }, + "Restore": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RestoreArgs" + } + } + } + }, + "definitions": { + "BackupsCreateArgs": { + "type": "object", + "properties": { + "notes": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "notes" + ] + }, + "BackupsInfoArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "BackupsListArgs": { + "type": "object", + "additionalProperties": false + }, + "BackupsListResult": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "BackupsMetadataResult": { + "type": "object", + "properties": { + "ca-cert": { + "type": "string" + }, + "ca-private-key": { + "type": "string" + }, + "checksum": { + "type": "string" + }, + "checksum-format": { + "type": "string" + }, + "finished": { + "type": "string", + "format": "date-time" + }, + "hostname": { + "type": "string" + }, + "id": { + "type": "string" + }, + "machine": { + "type": "string" + }, + "model": { + "type": "string" + }, + "notes": { + "type": "string" + }, + "series": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "started": { + "type": "string", + "format": "date-time" + }, + "stored": { + "type": "string", + "format": "date-time" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "id", + "checksum", + "checksum-format", + "size", + "stored", + "started", + "finished", + "notes", + "model", + "machine", + "hostname", + "version", + "series", + "ca-cert", + "ca-private-key" + ] + }, + "BackupsRemoveArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "RestoreArgs": { + "type": "object", + "properties": { + "backup-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "backup-id" + ] + } + } + } + }, + { + "Name": "Block", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BlockResults" + } + } + }, + "SwitchBlockOff": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "SwitchBlockOn": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Block": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "tag", + "type" + ] + }, + "BlockResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Block" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockResult" + } + } + }, + "additionalProperties": false + }, + "BlockSwitchParams": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Bundle", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + } + }, + "definitions": { + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "CharmRevisionUpdater", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "UpdateLatestRevisions": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Charms", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CharmInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/CharmInfo" + } + } + }, + "IsMetered": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/IsMeteredResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmsList" + }, + "Result": { + "$ref": "#/definitions/CharmsListResult" + } + } + } + }, + "definitions": { + "CharmActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "CharmActions": { + "type": "object", + "properties": { + "specs": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmActionSpec" + } + } + } + }, + "additionalProperties": false + }, + "CharmInfo": { + "type": "object", + "properties": { + "actions": { + "$ref": "#/definitions/CharmActions" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmOption" + } + } + }, + "meta": { + "$ref": "#/definitions/CharmMeta" + }, + "metrics": { + "$ref": "#/definitions/CharmMetrics" + }, + "revision": { + "type": "integer" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "revision", + "url", + "config" + ] + }, + "CharmMeta": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "extra-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "min-juju-version": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload-classes": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmPayloadClass" + } + } + }, + "peers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "provides": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "requires": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmResourceMeta" + } + } + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmStorage" + } + } + }, + "subordinate": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "terms": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "summary", + "description", + "subordinate" + ] + }, + "CharmMetric": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "description" + ] + }, + "CharmMetrics": { + "type": "object", + "properties": { + "metrics": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmMetric" + } + } + }, + "plan": { + "$ref": "#/definitions/CharmPlan" + } + }, + "additionalProperties": false, + "required": [ + "metrics", + "plan" + ] + }, + "CharmOption": { + "type": "object", + "properties": { + "default": { + "type": "object", + "additionalProperties": true + }, + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CharmPayloadClass": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type" + ] + }, + "CharmPlan": { + "type": "object", + "properties": { + "required": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "required" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmResourceMeta": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "description" + ] + }, + "CharmStorage": { + "type": "object", + "properties": { + "count-max": { + "type": "integer" + }, + "count-min": { + "type": "integer" + }, + "description": { + "type": "string" + }, + "location": { + "type": "string" + }, + "minimum-size": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + }, + "read-only": { + "type": "boolean" + }, + "shared": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "description", + "type", + "shared", + "read-only", + "count-min", + "count-max", + "minimum-size" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmsList": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "names" + ] + }, + "CharmsListResult": { + "type": "object", + "properties": { + "charm-urls": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-urls" + ] + }, + "IsMeteredResult": { + "type": "object", + "properties": { + "metered": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "metered" + ] + } + } + } + }, + { + "Name": "Cleaner", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Cleanup": { + "type": "object" + }, + "WatchCleanups": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "Client", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "AbortCurrentUpgrade": { + "type": "object" + }, + "AddCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharm" + } + } + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharmWithAuthorization" + } + } + }, + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AddMachinesV2": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AgentVersion": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AgentVersionResult" + } + } + }, + "DestroyMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyMachines" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "FullStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusParams" + }, + "Result": { + "$ref": "#/definitions/FullStatus" + } + } + }, + "GetBundleChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + }, + "GetModelConstraints": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "InjectMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelUserInfoResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PrivateAddress" + }, + "Result": { + "$ref": "#/definitions/PrivateAddressResults" + } + } + }, + "ProvisioningScript": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ProvisioningScriptParams" + }, + "Result": { + "$ref": "#/definitions/ProvisioningScriptResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PublicAddress" + }, + "Result": { + "$ref": "#/definitions/PublicAddressResults" + } + } + }, + "ResolveCharms": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResolveCharms" + }, + "Result": { + "$ref": "#/definitions/ResolveCharmResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Resolved" + } + } + }, + "RetryProvisioning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SLALevel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelAgentVersion" + } + } + }, + "SetModelConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "SetSLALevel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSLA" + } + } + }, + "StatusHistory": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryRequests" + }, + "Result": { + "$ref": "#/definitions/StatusHistoryResults" + } + } + }, + "WatchAll": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "AddCharm": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel" + ] + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "AgentVersionResult": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "can-upgrade-to": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "exposed": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "meter-statuses": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MeterStatus" + } + } + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "series": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + }, + "subordinate-to": { + "type": "array", + "items": { + "type": "string" + } + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "charm", + "series", + "exposed", + "life", + "relations", + "can-upgrade-to", + "subordinate-to", + "units", + "meter-statuses", + "status", + "workload-version" + ] + }, + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyMachines": { + "type": "object", + "properties": { + "force": { + "type": "boolean" + }, + "machine-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-names", + "force" + ] + }, + "DetailedStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "info": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "data", + "since", + "kind", + "version", + "life" + ] + }, + "EndpointStatus": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "subordinate": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "application", + "name", + "role", + "subordinate" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FindToolsParams": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "number": { + "$ref": "#/definitions/Number" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "number", + "major", + "minor", + "arch", + "series" + ] + }, + "FindToolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "FullStatus": { + "type": "object", + "properties": { + "applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ApplicationStatus" + } + } + }, + "machines": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "model": { + "$ref": "#/definitions/ModelStatusInfo" + }, + "relations": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationStatus" + } + }, + "remote-applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/RemoteApplicationStatus" + } + } + } + }, + "additionalProperties": false, + "required": [ + "model", + "machines", + "applications", + "remote-applications", + "relations" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "History": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/definitions/DetailedStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "statuses" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MachineStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "constraints": { + "type": "string" + }, + "containers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "dns-name": { + "type": "string" + }, + "hardware": { + "type": "string" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "instance-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "ip-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "network-interfaces": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/NetworkInterface" + } + } + }, + "series": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "instance-status", + "dns-name", + "instance-id", + "series", + "id", + "containers", + "constraints", + "hardware", + "jobs", + "has-vote", + "wants-vote" + ] + }, + "MeterStatus": { + "type": "object", + "properties": { + "color": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "color", + "message" + ] + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "migration": { + "$ref": "#/definitions/ModelMigrationStatus" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "provider-type", + "default-series", + "cloud-tag", + "owner-tag", + "life", + "status", + "users", + "machines" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelMigrationStatus": { + "type": "object", + "properties": { + "end": { + "type": "string", + "format": "date-time" + }, + "start": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "start" + ] + }, + "ModelSLA": { + "type": "object", + "properties": { + "creds": { + "type": "array", + "items": { + "type": "integer" + } + }, + "level": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "level", + "creds" + ] + }, + "ModelSet": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelStatusInfo": { + "type": "object", + "properties": { + "available-version": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "meter-status": { + "$ref": "#/definitions/MeterStatus" + }, + "model-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "cloud-tag", + "version", + "available-version", + "model-status", + "meter-status" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModelUserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "additionalProperties": false + }, + "ModelUserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NetworkInterface": { + "type": "object", + "properties": { + "dns-nameservers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway": { + "type": "string" + }, + "ip-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "is-up": { + "type": "boolean" + }, + "mac-address": { + "type": "string" + }, + "space": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ip-addresses", + "mac-address", + "is-up" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "PrivateAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PrivateAddressResults": { + "type": "object", + "properties": { + "private-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "private-address" + ] + }, + "ProvisioningScriptParams": { + "type": "object", + "properties": { + "data-dir": { + "type": "string" + }, + "disable-package-commands": { + "type": "boolean" + }, + "machine-id": { + "type": "string" + }, + "nonce": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-id", + "nonce", + "data-dir", + "disable-package-commands" + ] + }, + "ProvisioningScriptResult": { + "type": "object", + "properties": { + "script": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "script" + ] + }, + "PublicAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PublicAddressResults": { + "type": "object", + "properties": { + "public-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "public-address" + ] + }, + "RelationStatus": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/EndpointStatus" + } + }, + "id": { + "type": "integer" + }, + "interface": { + "type": "string" + }, + "key": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "key", + "interface", + "scope", + "endpoints" + ] + }, + "RemoteApplicationStatus": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "application-url": { + "type": "string" + }, + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteEndpoint" + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "life": { + "type": "string" + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + } + }, + "additionalProperties": false, + "required": [ + "application-url", + "application-name", + "endpoints", + "life", + "relations", + "status" + ] + }, + "RemoteEndpoint": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "limit", + "scope" + ] + }, + "ResolveCharmResult": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ResolveCharmResults": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolveCharmResult" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ResolveCharms": { + "type": "object", + "properties": { + "references": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "references" + ] + }, + "Resolved": { + "type": "object", + "properties": { + "retry": { + "type": "boolean" + }, + "unit-name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-name", + "retry" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "StatusHistoryFilter": { + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "delta": { + "type": "integer" + }, + "exclude": { + "type": "array", + "items": { + "type": "string" + } + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "size", + "date", + "delta", + "exclude" + ] + }, + "StatusHistoryRequest": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/definitions/StatusHistoryFilter" + }, + "historyKind": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "historyKind", + "size", + "filter", + "tag" + ] + }, + "StatusHistoryRequests": { + "type": "object", + "properties": { + "requests": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryRequest" + } + } + }, + "additionalProperties": false, + "required": [ + "requests" + ] + }, + "StatusHistoryResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "history": { + "$ref": "#/definitions/History" + } + }, + "additionalProperties": false, + "required": [ + "history" + ] + }, + "StatusHistoryResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusParams": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "UnitStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "charm": { + "type": "string" + }, + "leader": { + "type": "boolean" + }, + "machine": { + "type": "string" + }, + "opened-ports": { + "type": "array", + "items": { + "type": "string" + } + }, + "public-address": { + "type": "string" + }, + "subordinates": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "workload-status", + "workload-version", + "machine", + "opened-ports", + "public-address", + "charm", + "subordinates" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "Cloud", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Cloud": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudResults" + } + } + }, + "Clouds": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/CloudsResult" + } + } + }, + "Credential": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudCredentialResults" + } + } + }, + "DefaultCloud": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "InstanceTypes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CloudInstanceTypesConstraints" + }, + "Result": { + "$ref": "#/definitions/InstanceTypesResults" + } + } + }, + "RevokeCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpdateCloudCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserClouds" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Cloud": { + "type": "object", + "properties": { + "auth-types": { + "type": "array", + "items": { + "type": "string" + } + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudRegion" + } + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudCredentialResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudCredential" + } + }, + "additionalProperties": false + }, + "CloudCredentialResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudCredentialResult" + } + } + }, + "additionalProperties": false + }, + "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": { + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name" + ] + }, + "CloudResult": { + "type": "object", + "properties": { + "cloud": { + "$ref": "#/definitions/Cloud" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "CloudResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudResult" + } + } + }, + "additionalProperties": false + }, + "CloudsResult": { + "type": "object", + "properties": { + "clouds": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Cloud" + } + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "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 + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateCloudCredential": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "credential" + ] + }, + "UpdateCloudCredentials": { + "type": "object", + "properties": { + "credentials": { + "type": "array", + "items": { + "$ref": "#/definitions/UpdateCloudCredential" + } + } + }, + "additionalProperties": false + }, + "UserCloud": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "cloud-tag" + ] + }, + "UserClouds": { + "type": "object", + "properties": { + "user-clouds": { + "type": "array", + "items": { + "$ref": "#/definitions/UserCloud" + } + } + }, + "additionalProperties": false + }, + "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": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DestroyController": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyControllerArgs" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/UserAccessResults" + } + } + }, + "HostedModelConfigs": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/HostedModelConfigsResults" + } + } + }, + "InitiateMigration": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/InitiateMigrationArgs" + }, + "Result": { + "$ref": "#/definitions/InitiateMigrationResults" + } + } + }, + "ListBlockedModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelBlockInfoList" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyControllerAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveBlocks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RemoveBlocksArgs" + } + } + }, + "WatchAllModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "DestroyControllerArgs": { + "type": "object", + "properties": { + "destroy-models": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "destroy-models" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostedModelConfig": { + "type": "object", + "properties": { + "cloud-spec": { + "$ref": "#/definitions/CloudSpec" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "owner": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner" + ] + }, + "HostedModelConfigsResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/HostedModelConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "InitiateMigrationArgs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/MigrationSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "InitiateMigrationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "migration-id": { + "type": "string" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "migration-id" + ] + }, + "InitiateMigrationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/InitiateMigrationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MigrationSpec": { + "type": "object", + "properties": { + "external-control": { + "type": "boolean" + }, + "model-tag": { + "type": "string" + }, + "skip-initial-prechecks": { + "type": "boolean" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info", + "external-control", + "skip-initial-prechecks" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelBlockInfo": { + "type": "object", + "properties": { + "blocks": { + "type": "array", + "items": { + "type": "string" + } + }, + "model-uuid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "model-uuid", + "owner-tag", + "blocks" + ] + }, + "ModelBlockInfoList": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelBlockInfo" + } + } + }, + "additionalProperties": false + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelStatus": { + "type": "object", + "properties": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access" + ] + }, + "ModifyControllerAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyControllerAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RemoveBlocksArgs": { + "type": "object", + "properties": { + "all": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "all" + ] + }, + "UserAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "access" + ] + }, + "UserAccessResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserAccess" + } + }, + "additionalProperties": false + }, + "UserAccessResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserAccessResult" + } + } + }, + "additionalProperties": false + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "Deployer", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "ConnectionInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DeployerConnectionValues" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "DeployerConnectionValues": { + "type": "object", + "properties": { + "api-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "state-addresses": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "state-addresses", + "api-addresses" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "DiscoverSpaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DiscoverSpacesResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "DiscoverSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderSpace" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ProviderSpace": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider-id", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "DiskManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineBlockDevices" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineBlockDevices": { + "type": "object", + "properties": { + "block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDevice" + } + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "machine-block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineBlockDevices" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-block-devices" + ] + } + } + } + }, + { + "Name": "EntityWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/EntitiesWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "EntitiesWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "FilesystemAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + }, + { + "Name": "Firewaller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "GetAssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetExposed": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "GetMachineActiveSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "GetMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachinePortsParams" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "WatchOpenedPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePorts": { + "type": "object", + "properties": { + "machine-tag": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "subnet-tag" + ] + }, + "MachinePortsParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePorts" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "HighAvailability", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "EnableHA": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ControllersSpecs" + }, + "Result": { + "$ref": "#/definitions/ControllersChangeResults" + } + } + }, + "ResumeHAReplicationAfterUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResumeReplicationParams" + } + } + }, + "StopHAReplicationForUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpgradeMongoParams" + }, + "Result": { + "$ref": "#/definitions/MongoUpgradeResults" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "Scope": { + "type": "string" + }, + "SpaceName": { + "type": "string" + }, + "SpaceProviderId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Value", + "Type", + "Scope", + "SpaceName", + "SpaceProviderId" + ] + }, + "ControllersChangeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ControllersChanges" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ControllersChangeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersChangeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ControllersChanges": { + "type": "object", + "properties": { + "added": { + "type": "array", + "items": { + "type": "string" + } + }, + "converted": { + "type": "array", + "items": { + "type": "string" + } + }, + "demoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "maintained": { + "type": "array", + "items": { + "type": "string" + } + }, + "promoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "removed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ControllersSpec": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "num-controllers": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "type": "string" + } + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "num-controllers" + ] + }, + "ControllersSpecs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "HAMember": { + "type": "object", + "properties": { + "public-address": { + "$ref": "#/definitions/Address" + }, + "series": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-address", + "series" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Member": { + "type": "object", + "properties": { + "Address": { + "type": "string" + }, + "Arbiter": { + "type": "boolean" + }, + "BuildIndexes": { + "type": "boolean" + }, + "Hidden": { + "type": "boolean" + }, + "Id": { + "type": "integer" + }, + "Priority": { + "type": "number" + }, + "SlaveDelay": { + "type": "integer" + }, + "Tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "Votes": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Id", + "Address", + "Arbiter", + "BuildIndexes", + "Hidden", + "Priority", + "Tags", + "SlaveDelay", + "Votes" + ] + }, + "MongoUpgradeResults": { + "type": "object", + "properties": { + "ha-members": { + "type": "array", + "items": { + "$ref": "#/definitions/HAMember" + } + }, + "master": { + "$ref": "#/definitions/HAMember" + }, + "rs-members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "rs-members", + "master", + "ha-members" + ] + }, + "MongoVersion": { + "type": "object", + "properties": { + "engine": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "patch": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "major", + "minor", + "patch", + "engine" + ] + }, + "ResumeReplicationParams": { + "type": "object", + "properties": { + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "members" + ] + }, + "UpgradeMongoParams": { + "type": "object", + "properties": { + "target": { + "$ref": "#/definitions/MongoVersion" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "HostKeyReporter", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ReportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SSHHostKeySet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHHostKeySet": { + "type": "object", + "properties": { + "entity-keys": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHHostKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "entity-keys" + ] + }, + "SSHHostKeys": { + "type": "object", + "properties": { + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-keys" + ] + } + } + } + }, + { + "Name": "ImageManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "DeleteImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ListImageResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageFilterParams": { + "type": "object", + "properties": { + "images": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "images" + ] + }, + "ImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series", + "url", + "created" + ] + }, + "ImageSpec": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series" + ] + }, + "ListImageResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "ImageMetadata", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Delete": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataImageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageMetadataFilter" + }, + "Result": { + "$ref": "#/definitions/ListCloudImageMetadataResult" + } + } + }, + "Save": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataSaveParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateFromPublishedImages": { + "type": "object" + } + }, + "definitions": { + "CloudImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "image-id": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "region": { + "type": "string" + }, + "root-storage-size": { + "type": "integer" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "string" + }, + "source": { + "type": "string" + }, + "stream": { + "type": "string" + }, + "version": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "image-id", + "region", + "version", + "series", + "arch", + "source", + "priority" + ] + }, + "CloudImageMetadataList": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageMetadataFilter": { + "type": "object", + "properties": { + "arches": { + "type": "array", + "items": { + "type": "string" + } + }, + "region": { + "type": "string" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "stream": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ListCloudImageMetadataResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MetadataImageIds": { + "type": "object", + "properties": { + "image-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "image-ids" + ] + }, + "MetadataSaveParams": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadataList" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "InstancePoller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AreManuallyProvisioned": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineAddressesResults" + } + } + }, + "SetInstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Status": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "MachineAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "MachineAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "KeyManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DeleteKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ImportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListSSHKeys" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSSHKeys": { + "type": "object", + "properties": { + "entities": { + "$ref": "#/definitions/Entities" + }, + "mode": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "mode" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModifyUserSSHKeys": { + "type": "object", + "properties": { + "ssh-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "ssh-keys" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "KeyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "WatchAuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LeadershipService", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "BlockUntilLeadershipReleased": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationTag" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "ClaimLeadership": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ClaimLeadershipBulkParams" + }, + "Result": { + "$ref": "#/definitions/ClaimLeadershipBulkResults" + } + } + } + }, + "definitions": { + "ApplicationTag": { + "type": "object", + "properties": { + "Name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Name" + ] + }, + "ClaimLeadershipBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/ClaimLeadershipParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "ClaimLeadershipBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ClaimLeadershipParams": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "duration": { + "type": "number" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "unit-tag", + "duration" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "LifeFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LogForwarding", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingGetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/LogForwardingGetLastSentResults" + } + } + }, + "SetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingSetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingGetLastSentParams": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingID" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "LogForwardingGetLastSentResult": { + "type": "object", + "properties": { + "err": { + "$ref": "#/definitions/Error" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "record-id", + "record-timestamp", + "err" + ] + }, + "LogForwardingGetLastSentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingGetLastSentResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingID": { + "type": "object", + "properties": { + "model": { + "type": "string" + }, + "sink": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model", + "sink" + ] + }, + "LogForwardingSetLastSentParam": { + "type": "object", + "properties": { + "LogForwardingID": { + "$ref": "#/definitions/LogForwardingID" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "LogForwardingID", + "record-id", + "record-timestamp" + ] + }, + "LogForwardingSetLastSentParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingSetLastSentParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Logger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "LoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "WatchLoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineActions", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RunningActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineManager", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "DestroyMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DestroyMachineResults" + } + } + }, + "ForceDestroyMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DestroyMachineResults" + } + } + }, + "InstanceTypes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelInstanceTypesConstraints" + }, + "Result": { + "$ref": "#/definitions/InstanceTypesResults" + } + } + } + }, + "definitions": { + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyMachineInfo": { + "type": "object", + "properties": { + "destroyed-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "destroyed-units": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "detached-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false + }, + "DestroyMachineResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "$ref": "#/definitions/DestroyMachineInfo" + } + }, + "additionalProperties": false + }, + "DestroyMachineResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/DestroyMachineResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "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 + }, + "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": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MachineUndertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AllMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/EntitiesResults" + } + } + }, + "CompleteMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + } + } + }, + "GetMachineProviderInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProviderInterfaceInfoResults" + } + } + }, + "WatchMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResult": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProviderInterfaceInfo": { + "type": "object", + "properties": { + "interface-name": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "provider-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "interface-name", + "mac-address", + "provider-id" + ] + }, + "ProviderInterfaceInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "interfaces": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfo" + } + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "interfaces" + ] + }, + "ProviderInterfaceInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Machiner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Jobs": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/JobsResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetMachineAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetObservedNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineNetworkConfig" + } + } + }, + "SetProviderNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "JobsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "jobs" + ] + }, + "JobsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/JobsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkRoute" + } + }, + "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" + ] + }, + "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": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetMachineNetworkConfig": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "config" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MeterStatus", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsAdder", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + } + } + } + }, + { + "Name": "MetricsDebug", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "GetMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MetricResults" + } + } + }, + "SetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MeterStatusParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityMetrics": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricResult" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusParam": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "code", + "info" + ] + }, + "MeterStatusParams": { + "type": "object", + "properties": { + "statues": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusParam" + } + } + }, + "additionalProperties": false, + "required": [ + "statues" + ] + }, + "MetricResult": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "unit": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "time", + "key", + "value", + "unit" + ] + }, + "MetricResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityMetrics" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddJujuMachineMetrics": { + "type": "object" + }, + "CleanupOldMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SendMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "MigrationFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Phase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PhaseResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PhaseResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "phase": { + "type": "string" + } + }, + "additionalProperties": false + }, + "PhaseResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PhaseResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MigrationMaster", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Export": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "MigrationStatus": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MasterMigrationStatus" + } + } + }, + "MinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MinionReports" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + }, + "Prechecks": { + "type": "object" + }, + "Reap": { + "type": "object" + }, + "SetPhase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationPhaseArgs" + } + } + }, + "SetStatusMessage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationStatusMessageArgs" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchMinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MasterMigrationStatus": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "phase-changed-time": { + "type": "string", + "format": "date-time" + }, + "spec": { + "$ref": "#/definitions/MigrationSpec" + } + }, + "additionalProperties": false, + "required": [ + "spec", + "migration-id", + "phase", + "phase-changed-time" + ] + }, + "MigrationModelInfo": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "controller-agent-version": { + "$ref": "#/definitions/Number" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version", + "controller-agent-version" + ] + }, + "MigrationSpec": { + "type": "object", + "properties": { + "external-control": { + "type": "boolean" + }, + "model-tag": { + "type": "string" + }, + "skip-initial-prechecks": { + "type": "boolean" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info", + "external-control", + "skip-initial-prechecks" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "MinionReports": { + "type": "object", + "properties": { + "failed": { + "type": "array", + "items": { + "type": "string" + } + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success-count": { + "type": "integer" + }, + "unknown-count": { + "type": "integer" + }, + "unknown-sample": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success-count", + "unknown-count", + "unknown-sample", + "failed" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelResource" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "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": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + }, + "SetMigrationPhaseArgs": { + "type": "object", + "properties": { + "phase": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "phase" + ] + }, + "SetMigrationStatusMessageArgs": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message" + ] + } + } + } + }, + { + "Name": "MigrationMinion", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Report": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MinionReport" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MinionReport": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "MigrationStatusWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationStatus" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "MigrationStatus": { + "type": "object", + "properties": { + "attempt": { + "type": "integer" + }, + "external-control": { + "type": "boolean" + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "source-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "source-ca-cert": { + "type": "string" + }, + "target-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "target-ca-cert": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "attempt", + "phase", + "external-control", + "source-api-addrs", + "source-ca-cert", + "target-api-addrs", + "target-ca-cert" + ] + } + } + } + }, + { + "Name": "MigrationTarget", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Abort": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "Activate": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "AdoptResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AdoptResourcesArgs" + } + } + }, + "Import": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "LatestLogTime": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + }, + "Result": { + "type": "string", + "format": "date-time" + } + } + }, + "Prechecks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + } + }, + "definitions": { + "AdoptResourcesArgs": { + "type": "object", + "properties": { + "model-tag": { + "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, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version", + "controller-agent-version" + ] + }, + "ModelArgs": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelResource" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "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": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + } + } + } + }, + { + "Name": "ModelConfig", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + }, + "SLALevel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetSLALevel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSLA" + } + } + } + }, + "definitions": { + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelSLA": { + "type": "object", + "properties": { + "creds": { + "type": "array", + "items": { + "type": "integer" + } + }, + "level": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "level", + "creds" + ] + }, + "ModelSet": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + } + } + } + }, + { + "Name": "ModelManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CreateModel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelCreateArgs" + }, + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "DestroyModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DumpModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "DumpModelsDB": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "ListModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entity" + }, + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "ModelDefaults": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelDefaultsResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelInfoResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyModelAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnsetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MapResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "MapResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MapResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelCreateArgs": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "credential": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "region": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner-tag" + ] + }, + "ModelDefaultValues": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelDefaults": { + "type": "object", + "properties": { + "controller": { + "type": "object", + "additionalProperties": true + }, + "default": { + "type": "object", + "additionalProperties": true + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/RegionDefaults" + } + } + }, + "additionalProperties": false + }, + "ModelDefaultsResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ModelDefaults" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "migration": { + "$ref": "#/definitions/ModelMigrationStatus" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "provider-type", + "default-series", + "cloud-tag", + "owner-tag", + "life", + "status", + "users", + "machines" + ] + }, + "ModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelInfo" + } + }, + "additionalProperties": false + }, + "ModelInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "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": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelUnsetKeys": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "model-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access", + "model-tag" + ] + }, + "ModifyModelAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyModelAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RegionDefaults": { + "type": "object", + "properties": { + "region-name": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "region-name", + "value" + ] + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelDefaultValues" + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUnsetKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "NotifyWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Payloads", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PayloadListArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadListResults" + } + } + } + }, + "definitions": { + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + }, + "PayloadListArgs": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "PayloadListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "PayloadsHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "LookUp": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LookUpPayloadArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetPayloadStatusArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Track": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/TrackPayloadArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Untrack": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LookUpPayloadArg": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "id" + ] + }, + "LookUpPayloadArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/LookUpPayloadArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + }, + "PayloadResult": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "not-found": { + "type": "boolean" + }, + "payload": { + "$ref": "#/definitions/Payload" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "payload", + "not-found" + ] + }, + "PayloadResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PayloadResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetPayloadStatusArg": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "status" + ] + }, + "SetPayloadStatusArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/SetPayloadStatusArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "TrackPayloadArgs": { + "type": "object", + "properties": { + "payloads": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "payloads" + ] + } + } + } + }, + { + "Name": "Pinger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Ping": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Provisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "Constraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConstraintsResults" + } + } + }, + "ContainerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ContainerConfig" + } + } + }, + "ContainerManagerConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ContainerManagerConfigParams" + }, + "Result": { + "$ref": "#/definitions/ContainerManagerConfig" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DistributionGroup": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DistributionGroupResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "GetContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "HostChangesForContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/HostNetworkChangeResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "MachinesWithTransientErrors": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "MarkMachinesForRemoval": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PrepareContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProvisioningInfoResults" + } + } + }, + "ReleaseContainerAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Series": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "SetHostMachineNetworkConfig": { + "type": "object", + "properties": { + "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" + } + } + }, + "SetProviderNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "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" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkRoute" + } + }, + "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" + ] + }, + "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": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "controller-config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "image-metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "placement": { + "type": "string" + }, + "series": { + "type": "string" + }, + "subnets-to-zones": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParams" + } + } + }, + "additionalProperties": false, + "required": [ + "constraints", + "series", + "placement", + "jobs" + ] + }, + "ProvisioningInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ProvisioningInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ProvisioningInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProvisioningInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetMachineNetworkConfig": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "config" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Settings": { + "type": "object", + "properties": { + "Ftp": { + "type": "string" + }, + "Http": { + "type": "string" + }, + "Https": { + "type": "string" + }, + "NoProxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Http", + "Https", + "Ftp", + "NoProxy" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateBehavior": { + "type": "object", + "properties": { + "enable-os-refresh-update": { + "type": "boolean" + }, + "enable-os-upgrade": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "enable-os-refresh-update", + "enable-os-upgrade" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "WatchContainer": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "container-type" + ] + }, + "WatchContainers": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/WatchContainer" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + } + } + } + }, + { + "Name": "ProxyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ProxyConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProxyConfigResults" + } + } + }, + "WatchForProxyConfigAndAPIHostPortChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProxyConfig": { + "type": "object", + "properties": { + "ftp": { + "type": "string" + }, + "http": { + "type": "string" + }, + "https": { + "type": "string" + }, + "no-proxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "http", + "https", + "ftp", + "no-proxy" + ] + }, + "ProxyConfigResult": { + "type": "object", + "properties": { + "apt-proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + } + }, + "additionalProperties": false, + "required": [ + "proxy-settings", + "apt-proxy-settings" + ] + }, + "ProxyConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProxyConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Reboot", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetRebootAction": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RebootActionResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchForRebootEvent": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "RebootActionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false + }, + "RebootActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RebootActionResult" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "RelationUnitsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + } + } + } + }, + { + "Name": "Resources", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddPendingResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddPendingResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/AddPendingResourcesResult" + } + } + }, + "ListResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/ResourcesResults" + } + } + } + }, + "definitions": { + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddPendingResourcesArgs": { + "type": "object", + "properties": { + "AddCharmWithAuthorization": { + "$ref": "#/definitions/AddCharmWithAuthorization" + }, + "Entity": { + "$ref": "#/definitions/Entity" + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "AddCharmWithAuthorization", + "resources" + ] + }, + "AddPendingResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "pending-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "pending-ids" + ] + }, + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListResourcesArgs": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "ResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "charm-store-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + }, + "unit-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitResources" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources", + "charm-store-resources", + "unit-resources" + ] + }, + "ResourcesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourcesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitResources": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "download-progress": { + "type": "object", + "patternProperties": { + ".*": { + "type": "integer" + } + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "resources", + "download-progress" + ] + } + } + } + }, + { + "Name": "ResourcesHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetResourceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListUnitResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/UnitResourcesResult" + } + } + } + }, + "definitions": { + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListUnitResourcesArgs": { + "type": "object", + "properties": { + "resource-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "resource-names" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "UnitResourceResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resource": { + "$ref": "#/definitions/Resource" + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resource" + ] + }, + "UnitResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitResourceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources" + ] + } + } + } + }, + { + "Name": "Resumer", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ResumeTransactions": { + "type": "object" + } + } + } + }, + { + "Name": "RetryStrategy", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "RetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RetryStrategyResults" + } + } + }, + "WatchRetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RetryStrategy": { + "type": "object", + "properties": { + "jitter-retry-time": { + "type": "boolean" + }, + "max-retry-time": { + "type": "integer" + }, + "min-retry-time": { + "type": "integer" + }, + "retry-time-factor": { + "type": "integer" + }, + "should-retry": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "should-retry", + "min-retry-time", + "max-retry-time", + "jitter-retry-time", + "retry-time-factor" + ] + }, + "RetryStrategyResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/RetryStrategy" + } + }, + "additionalProperties": false + }, + "RetryStrategyResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RetryStrategyResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "SSHClient", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AllAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressesResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "Proxy": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SSHProxyResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "PublicKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHPublicKeysResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHAddressResult": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "SSHAddressResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "SSHAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHProxyResult": { + "type": "object", + "properties": { + "use-proxy": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "use-proxy" + ] + }, + "SSHPublicKeysResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "SSHPublicKeysResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHPublicKeysResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Singular", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Claim": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SingularClaims" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Wait": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SingularClaim": { + "type": "object", + "properties": { + "controller-tag": { + "type": "string" + }, + "duration": { + "type": "integer" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "controller-tag", + "duration" + ] + }, + "SingularClaims": { + "type": "object", + "properties": { + "claims": { + "type": "array", + "items": { + "$ref": "#/definitions/SingularClaim" + } + } + }, + "additionalProperties": false, + "required": [ + "claims" + ] + } + } + } + }, + { + "Name": "Spaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ListSpacesResults" + } + } + } + }, + "definitions": { + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Space" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Space": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + } + } + } + }, + { + "Name": "StatusHistory", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Prune": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryPruneArgs" + } + } + } + }, + "definitions": { + "StatusHistoryPruneArgs": { + "type": "object", + "properties": { + "max-history-mb": { + "type": "integer" + }, + "max-history-time": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "max-history-time", + "max-history-mb" + ] + } + } + } + }, + { + "Name": "Storage", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddToUnit": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Attach": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreatePool": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Detach": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemFilters" + }, + "Result": { + "$ref": "#/definitions/FilesystemDetailsListResults" + } + } + }, + "ListPools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePoolFilters" + }, + "Result": { + "$ref": "#/definitions/StoragePoolsResults" + } + } + }, + "ListStorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageFilters" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsListResults" + } + } + }, + "ListVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeFilters" + }, + "Result": { + "$ref": "#/definitions/VolumeDetailsListResults" + } + } + }, + "StorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FilesystemAttachmentDetails": { + "type": "object", + "properties": { + "FilesystemAttachmentInfo": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "FilesystemAttachmentInfo" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemDetails": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "life": { + "type": "string" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/FilesystemAttachmentDetails" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info", + "status" + ] + }, + "FilesystemDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetails" + } + } + }, + "additionalProperties": false + }, + "FilesystemDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemFilter" + } + } + }, + "additionalProperties": false + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "pool", + "size" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachmentDetails": { + "type": "object", + "properties": { + "life": { + "type": "string" + }, + "location": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag", + "machine-tag" + ] + }, + "StorageAttachmentId": { + "type": "object", + "properties": { + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag" + ] + }, + "StorageAttachmentIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StorageDetails": { + "type": "object", + "properties": { + "attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageAttachmentDetails" + } + } + }, + "kind": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "kind", + "status", + "persistent" + ] + }, + "StorageDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetails" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageDetails" + } + }, + "additionalProperties": false + }, + "StorageDetailsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsResult" + } + } + }, + "additionalProperties": false + }, + "StorageFilter": { + "type": "object", + "additionalProperties": false + }, + "StorageFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePool": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "name": { + "type": "string" + }, + "provider": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider", + "attrs" + ] + }, + "StoragePoolFilter": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + }, + "providers": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StoragePoolFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "storage-pools": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolsResult" + } + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "VolumeAttachmentDetails": { + "type": "object", + "properties": { + "VolumeAttachmentInfo": { + "$ref": "#/definitions/VolumeAttachmentInfo" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "VolumeAttachmentInfo" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeDetails": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "life": { + "type": "string" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/VolumeAttachmentDetails" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info", + "status" + ] + }, + "VolumeDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetails" + } + } + }, + "additionalProperties": false + }, + "VolumeDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "VolumeFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "VolumeFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeFilter" + } + } + }, + "additionalProperties": false + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + } + } + } + }, + { + "Name": "StorageProvisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentParamsResults" + } + } + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentResults" + } + } + }, + "FilesystemParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemParamsResults" + } + } + }, + "Filesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveAttachment": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Filesystems" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Volumes" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentParamsResults" + } + } + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentResults" + } + } + }, + "VolumeBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/BlockDeviceResults" + } + } + }, + "VolumeParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeParamsResults" + } + } + }, + "Volumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeResults" + } + } + }, + "WatchBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchFilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchVolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "BlockDeviceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/BlockDevice" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockDeviceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDeviceResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Filesystem": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info" + ] + }, + "FilesystemAttachment": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "info" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "filesystem-tag": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "mount-point": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "provider" + ] + }, + "FilesystemAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "filesystem-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystem-attachments" + ] + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "pool", + "size" + ] + }, + "FilesystemParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/FilesystemAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "filesystem-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "size", + "provider" + ] + }, + "FilesystemParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Filesystem" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemResult" + } + } + }, + "additionalProperties": false + }, + "Filesystems": { + "type": "object", + "properties": { + "filesystems": { + "type": "array", + "items": { + "$ref": "#/definitions/Filesystem" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystems" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "MachineStorageIdsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachment": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeAttachmentInfo" + }, + "machine-tag": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "volume-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "volume-attachments" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "VolumeParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Volume" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeResult" + } + } + }, + "additionalProperties": false + }, + "Volumes": { + "type": "object", + "properties": { + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/Volume" + } + } + }, + "additionalProperties": false, + "required": [ + "volumes" + ] + } + } + } + }, + { + "Name": "StringsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Subnets", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SpaceResults" + } + } + }, + "AllZones": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ZoneResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SpaceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "SpaceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SpaceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ZoneResult": { + "type": "object", + "properties": { + "available": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "available" + ] + }, + "ZoneResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ZoneResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Undertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UndertakerModelInfoResult" + } + } + }, + "ProcessDyingModel": { + "type": "object" + }, + "RemoveModel": { + "type": "object" + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchModelResources": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "UndertakerModelInfo": { + "type": "object", + "properties": { + "global-name": { + "type": "string" + }, + "is-system": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "global-name", + "is-system", + "life" + ] + }, + "UndertakerModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UndertakerModelInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + } + } + } + }, + { + "Name": "UnitAssigner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AssignUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchUnitAssignments": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Uniter", + "Version": 5, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AddUnitStorage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationStatusResults" + } + } + }, + "AssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "AvailabilityZone": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "CharmArchiveSha256": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURLs" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "CharmModifiedVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/IntResults" + } + } + }, + "CharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "ClearResolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ClosePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConfigSettingsResults" + } + } + }, + "CurrentModel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelResult" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyAllSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnterScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "GetPrincipal": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "HasSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "JoinedRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "LeaveScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Merge": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "NetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnitsNetworkConfig" + }, + "Result": { + "$ref": "#/definitions/UnitNetworkConfigResults" + } + } + }, + "OpenPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "ProviderType": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Read": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/GetLeadershipSettingsBulkResults" + } + } + }, + "ReadRemoteSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitPairs" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "ReadSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "Relation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RelationById": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationIds" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RemoveStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ResolvedModeResults" + } + } + }, + "SLALevel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesCharmURL" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetUnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetWorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityWorkloadVersions" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StorageAttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "StorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentResults" + } + } + }, + "UnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "UnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentIdsResults" + } + } + }, + "UpdateSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitsSettings" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchApplicationRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchLeadershipSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchRelationUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResults" + } + } + }, + "WatchStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "ApplicationStatusResult": { + "type": "object", + "properties": { + "application": { + "$ref": "#/definitions/StatusResult" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StatusResult" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "units" + ] + }, + "ApplicationStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmURLs": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ConfigSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "ConfigSettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Endpoint": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "relation": { + "$ref": "#/definitions/CharmRelation" + } + }, + "additionalProperties": false, + "required": [ + "application-name", + "relation" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesCharmURL": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityCharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesPortRanges": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityCharmURL": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "charm-url" + ] + }, + "EntityPortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "protocol", + "from-port", + "to-port" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "EntityWorkloadVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "workload-version" + ] + }, + "EntityWorkloadVersions": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityWorkloadVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/GetLeadershipSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "IntResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "IntResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/IntResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "MergeLeadershipSettingsBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MergeLeadershipSettingsParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MergeLeadershipSettingsParam": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "settings" + ] + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkRoute" + } + }, + "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" + ] + }, + "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": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "RelationIds": { + "type": "object", + "properties": { + "relation-ids": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-ids" + ] + }, + "RelationResult": { + "type": "object", + "properties": { + "endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "integer" + }, + "key": { + "type": "string" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "id", + "key", + "endpoint" + ] + }, + "RelationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RelationUnit": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit" + ] + }, + "RelationUnitPair": { + "type": "object", + "properties": { + "local-unit": { + "type": "string" + }, + "relation": { + "type": "string" + }, + "remote-unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "local-unit", + "remote-unit" + ] + }, + "RelationUnitPairs": { + "type": "object", + "properties": { + "relation-unit-pairs": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitPair" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-unit-pairs" + ] + }, + "RelationUnitSettings": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit", + "settings" + ] + }, + "RelationUnits": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnit" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsSettings": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitSettings" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "RelationUnitsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ResolvedModeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "mode": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "mode" + ] + }, + "ResolvedModeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolvedModeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "SettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "SettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachment": { + "type": "object", + "properties": { + "kind": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "location": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "unit-tag", + "kind", + "location", + "life" + ] + }, + "StorageAttachmentId": { + "type": "object", + "properties": { + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag" + ] + }, + "StorageAttachmentIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "StorageAttachmentIdsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachmentIds" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentIdsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentIdsResult" + } + } + }, + "additionalProperties": false + }, + "StorageAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "StringBoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ok": { + "type": "boolean" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result", + "ok" + ] + }, + "StringBoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringBoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitNetworkConfig": { + "type": "object", + "properties": { + "binding-name": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "binding-name" + ] + }, + "UnitNetworkConfigResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "info" + ] + }, + "UnitNetworkConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitNetworkConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "UnitsNetworkConfig": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitNetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + } + } + } + }, + { + "Name": "Upgrader", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "DesiredVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VersionResults" + } + } + }, + "SetTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesVersion" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Tools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ToolsResults" + } + } + }, + "WatchAPIVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesVersion": { + "type": "object", + "properties": { + "agent-tools": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "agent-tools" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "tools": { + "$ref": "#/definitions/Version" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "tools" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Version": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "VersionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false + }, + "VersionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VersionResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "UserManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddUsers" + }, + "Result": { + "$ref": "#/definitions/AddUserResults" + } + } + }, + "DisableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPassword": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserInfoRequest" + }, + "Result": { + "$ref": "#/definitions/UserInfoResults" + } + } + } + }, + "definitions": { + "AddUser": { + "type": "object", + "properties": { + "display-name": { + "type": "string" + }, + "password": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name" + ] + }, + "AddUserResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "secret-key": { + "type": "array", + "items": { + "type": "integer" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false + }, + "AddUserResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUserResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AddUsers": { + "type": "object", + "properties": { + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUser" + } + } + }, + "additionalProperties": false, + "required": [ + "users" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "UserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "created-by": { + "type": "string" + }, + "date-created": { + "type": "string", + "format": "date-time" + }, + "disabled": { + "type": "boolean" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name", + "access", + "created-by", + "date-created", + "disabled" + ] + }, + "UserInfoRequest": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "include-disabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "include-disabled" + ] + }, + "UserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserInfo" + } + }, + "additionalProperties": false + }, + "UserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "VolumeAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + } +] diff --git a/modules/libjuju/juju/client/schemas-juju-2.2-beta2.json b/modules/libjuju/juju/client/schemas-juju-2.2-beta2.json new file mode 100644 index 0000000..4b141fd --- /dev/null +++ b/modules/libjuju/juju/client/schemas-juju-2.2-beta2.json @@ -0,0 +1,26150 @@ +[ + { + "Name": "Action", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "ApplicationsCharmsActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationsCharmActionsResults" + } + } + }, + "Cancel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "Enqueue": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Actions" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "FindActionTagsByPrefix": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindTags" + }, + "Result": { + "$ref": "#/definitions/FindTagsResults" + } + } + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindActionsByNames" + }, + "Result": { + "$ref": "#/definitions/ActionsByNames" + } + } + }, + "ListAll": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListCompleted": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListPending": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListRunning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "Run": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "RunOnAllMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "Actions": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/Action" + } + } + }, + "additionalProperties": false + }, + "ActionsByName": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByNames": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByName" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "ApplicationCharmActionsResult": { + "type": "object", + "properties": { + "actions": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ActionSpec" + } + } + }, + "application-tag": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ApplicationsCharmActionsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationCharmActionsResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FindTags": { + "type": "object", + "properties": { + "prefixes": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "prefixes" + ] + }, + "FindTagsResults": { + "type": "object", + "properties": { + "matches": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + } + } + }, + "additionalProperties": false, + "required": [ + "matches" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RunParams": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "type": "string" + } + }, + "commands": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "type": "string" + } + }, + "timeout": { + "type": "integer" + }, + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "commands", + "timeout" + ] + } + } + } + }, + { + "Name": "Agent", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetEntities": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AgentGetEntitiesResults" + } + } + }, + "IsMaster": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/IsMasterResult" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateServingInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StateServingInfo" + } + } + }, + "WatchCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "AgentGetEntitiesResult": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "jobs", + "container-type" + ] + }, + "AgentGetEntitiesResults": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/AgentGetEntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "IsMasterResult": { + "type": "object", + "properties": { + "master": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "master" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StateServingInfo": { + "type": "object", + "properties": { + "api-port": { + "type": "integer" + }, + "ca-private-key": { + "type": "string" + }, + "cert": { + "type": "string" + }, + "private-key": { + "type": "string" + }, + "shared-secret": { + "type": "string" + }, + "state-port": { + "type": "integer" + }, + "system-identity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "api-port", + "state-port", + "cert", + "private-key", + "ca-private-key", + "shared-secret", + "system-identity" + ] + } + } + } + }, + { + "Name": "AgentTools", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "UpdateToolsAvailable": { + "type": "object" + } + } + } + }, + { + "Name": "AllModelWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "AllWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "Annotations", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AnnotationsGetResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AnnotationsSet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "AnnotationsGetResult": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/ErrorResult" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "AnnotationsGetResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AnnotationsGetResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AnnotationsSet": { + "type": "object", + "properties": { + "annotations": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityAnnotations" + } + } + }, + "additionalProperties": false, + "required": [ + "annotations" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityAnnotations": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Application", + "Version": 4, + "Schema": { + "type": "object", + "properties": { + "AddRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddRelation" + }, + "Result": { + "$ref": "#/definitions/AddRelationResults" + } + } + }, + "AddUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddApplicationUnits" + }, + "Result": { + "$ref": "#/definitions/AddApplicationUnitsResults" + } + } + }, + "CharmRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationCharmRelations" + }, + "Result": { + "$ref": "#/definitions/ApplicationCharmRelationsResults" + } + } + }, + "Consume": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ConsumeApplicationArgs" + }, + "Result": { + "$ref": "#/definitions/ConsumeApplicationResults" + } + } + }, + "Deploy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationsDeploy" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationDestroy" + } + } + }, + "DestroyApplication": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DestroyApplicationResults" + } + } + }, + "DestroyRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyRelation" + } + } + }, + "DestroyUnit": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DestroyUnitResults" + } + } + }, + "DestroyUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyApplicationUnits" + } + } + }, + "Expose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationExpose" + } + } + }, + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/ApplicationGetResults" + } + } + }, + "GetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "GetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/GetApplicationConstraints" + }, + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "RemoteApplicationInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationURLs" + }, + "Result": { + "$ref": "#/definitions/RemoteApplicationInfoResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSet" + } + } + }, + "SetCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSetCharm" + } + } + }, + "SetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "SetMetricCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationMetricCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Unexpose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnexpose" + } + } + }, + "Unset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnset" + } + } + }, + "Update": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUpdate" + } + } + } + }, + "definitions": { + "AddApplicationUnits": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "num-units", + "placement" + ] + }, + "AddApplicationUnitsResults": { + "type": "object", + "properties": { + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "units" + ] + }, + "AddRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "AddRelationResults": { + "type": "object", + "properties": { + "endpoints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "ApplicationCharmRelations": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationCharmRelationsResults": { + "type": "object", + "properties": { + "charm-relations": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-relations" + ] + }, + "ApplicationDeploy": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-yaml": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "series": { + "type": "string" + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Constraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "series", + "charm-url", + "channel", + "num-units", + "config-yaml", + "constraints" + ] + }, + "ApplicationDestroy": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationExpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGet": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGetResults": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm", + "config", + "constraints", + "series" + ] + }, + "ApplicationMetricCredential": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "metrics-credentials": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "metrics-credentials" + ] + }, + "ApplicationMetricCredentials": { + "type": "object", + "properties": { + "creds": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationMetricCredential" + } + } + }, + "additionalProperties": false, + "required": [ + "creds" + ] + }, + "ApplicationSet": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationSetCharm": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config-settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-settings-yaml": { + "type": "string" + }, + "force-series": { + "type": "boolean" + }, + "force-units": { + "type": "boolean" + }, + "resource-ids": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "storage-constraints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageConstraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "channel", + "force-units", + "force-series" + ] + }, + "ApplicationURLs": { + "type": "object", + "properties": { + "application-urls": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ApplicationUnexpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationUnset": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationUpdate": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "force-charm-url": { + "type": "boolean" + }, + "force-series": { + "type": "boolean" + }, + "min-units": { + "type": "integer" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "settings-yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "force-charm-url", + "force-series", + "settings-yaml" + ] + }, + "ApplicationsDeploy": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationDeploy" + } + } + }, + "additionalProperties": false, + "required": [ + "applications" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "ConsumeApplicationArg": { + "type": "object", + "properties": { + "application-alias": { + "type": "string" + }, + "application-url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application-url" + ] + }, + "ConsumeApplicationArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/ConsumeApplicationArg" + } + } + }, + "additionalProperties": false + }, + "ConsumeApplicationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "local-name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ConsumeApplicationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConsumeApplicationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "DestroyApplicationInfo": { + "type": "object", + "properties": { + "destroyed-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "destroyed-units": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "detached-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false + }, + "DestroyApplicationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "$ref": "#/definitions/DestroyApplicationInfo" + } + }, + "additionalProperties": false + }, + "DestroyApplicationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/DestroyApplicationResult" + } + } + }, + "additionalProperties": false + }, + "DestroyApplicationUnits": { + "type": "object", + "properties": { + "unit-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "unit-names" + ] + }, + "DestroyRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "DestroyUnitInfo": { + "type": "object", + "properties": { + "destroyed-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "detached-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false + }, + "DestroyUnitResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "$ref": "#/definitions/DestroyUnitInfo" + } + }, + "additionalProperties": false + }, + "DestroyUnitResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/DestroyUnitResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetApplicationConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "RemoteApplicationInfo": { + "type": "object", + "properties": { + "application-url": { + "type": "string" + }, + "description": { + "type": "string" + }, + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteEndpoint" + } + }, + "icon-url-path": { + "type": "string" + }, + "model-tag": { + "type": "string" + }, + "name": { + "type": "string" + }, + "source-model-label": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "name", + "description", + "application-url", + "endpoints", + "icon-url-path" + ] + }, + "RemoteApplicationInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/RemoteApplicationInfo" + } + }, + "additionalProperties": false + }, + "RemoteApplicationInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteApplicationInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RemoteEndpoint": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "limit", + "scope" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "ApplicationScaler", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Rescale": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Backups", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Create": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsCreateArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "FinishRestore": { + "type": "object" + }, + "Info": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsInfoArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsListArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsListResult" + } + } + }, + "PrepareRestore": { + "type": "object" + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsRemoveArgs" + } + } + }, + "Restore": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RestoreArgs" + } + } + } + }, + "definitions": { + "BackupsCreateArgs": { + "type": "object", + "properties": { + "notes": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "notes" + ] + }, + "BackupsInfoArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "BackupsListArgs": { + "type": "object", + "additionalProperties": false + }, + "BackupsListResult": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "BackupsMetadataResult": { + "type": "object", + "properties": { + "ca-cert": { + "type": "string" + }, + "ca-private-key": { + "type": "string" + }, + "checksum": { + "type": "string" + }, + "checksum-format": { + "type": "string" + }, + "finished": { + "type": "string", + "format": "date-time" + }, + "hostname": { + "type": "string" + }, + "id": { + "type": "string" + }, + "machine": { + "type": "string" + }, + "model": { + "type": "string" + }, + "notes": { + "type": "string" + }, + "series": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "started": { + "type": "string", + "format": "date-time" + }, + "stored": { + "type": "string", + "format": "date-time" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "id", + "checksum", + "checksum-format", + "size", + "stored", + "started", + "finished", + "notes", + "model", + "machine", + "hostname", + "version", + "series", + "ca-cert", + "ca-private-key" + ] + }, + "BackupsRemoveArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "RestoreArgs": { + "type": "object", + "properties": { + "backup-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "backup-id" + ] + } + } + } + }, + { + "Name": "Block", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BlockResults" + } + } + }, + "SwitchBlockOff": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "SwitchBlockOn": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Block": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "tag", + "type" + ] + }, + "BlockResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Block" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockResult" + } + } + }, + "additionalProperties": false + }, + "BlockSwitchParams": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Bundle", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + } + }, + "definitions": { + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "CharmRevisionUpdater", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "UpdateLatestRevisions": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Charms", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CharmInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/CharmInfo" + } + } + }, + "IsMetered": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/IsMeteredResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmsList" + }, + "Result": { + "$ref": "#/definitions/CharmsListResult" + } + } + } + }, + "definitions": { + "CharmActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "CharmActions": { + "type": "object", + "properties": { + "specs": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmActionSpec" + } + } + } + }, + "additionalProperties": false + }, + "CharmInfo": { + "type": "object", + "properties": { + "actions": { + "$ref": "#/definitions/CharmActions" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmOption" + } + } + }, + "meta": { + "$ref": "#/definitions/CharmMeta" + }, + "metrics": { + "$ref": "#/definitions/CharmMetrics" + }, + "revision": { + "type": "integer" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "revision", + "url", + "config" + ] + }, + "CharmMeta": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "extra-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "min-juju-version": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload-classes": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmPayloadClass" + } + } + }, + "peers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "provides": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "requires": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmResourceMeta" + } + } + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmStorage" + } + } + }, + "subordinate": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "terms": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "summary", + "description", + "subordinate" + ] + }, + "CharmMetric": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "description" + ] + }, + "CharmMetrics": { + "type": "object", + "properties": { + "metrics": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmMetric" + } + } + }, + "plan": { + "$ref": "#/definitions/CharmPlan" + } + }, + "additionalProperties": false, + "required": [ + "metrics", + "plan" + ] + }, + "CharmOption": { + "type": "object", + "properties": { + "default": { + "type": "object", + "additionalProperties": true + }, + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CharmPayloadClass": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type" + ] + }, + "CharmPlan": { + "type": "object", + "properties": { + "required": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "required" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmResourceMeta": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "description" + ] + }, + "CharmStorage": { + "type": "object", + "properties": { + "count-max": { + "type": "integer" + }, + "count-min": { + "type": "integer" + }, + "description": { + "type": "string" + }, + "location": { + "type": "string" + }, + "minimum-size": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + }, + "read-only": { + "type": "boolean" + }, + "shared": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "description", + "type", + "shared", + "read-only", + "count-min", + "count-max", + "minimum-size" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmsList": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "names" + ] + }, + "CharmsListResult": { + "type": "object", + "properties": { + "charm-urls": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-urls" + ] + }, + "IsMeteredResult": { + "type": "object", + "properties": { + "metered": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "metered" + ] + } + } + } + }, + { + "Name": "Cleaner", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Cleanup": { + "type": "object" + }, + "WatchCleanups": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "Client", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "AbortCurrentUpgrade": { + "type": "object" + }, + "AddCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharm" + } + } + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharmWithAuthorization" + } + } + }, + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AddMachinesV2": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AgentVersion": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AgentVersionResult" + } + } + }, + "DestroyMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyMachines" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "FullStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusParams" + }, + "Result": { + "$ref": "#/definitions/FullStatus" + } + } + }, + "GetBundleChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + }, + "GetModelConstraints": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "InjectMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelUserInfoResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PrivateAddress" + }, + "Result": { + "$ref": "#/definitions/PrivateAddressResults" + } + } + }, + "ProvisioningScript": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ProvisioningScriptParams" + }, + "Result": { + "$ref": "#/definitions/ProvisioningScriptResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PublicAddress" + }, + "Result": { + "$ref": "#/definitions/PublicAddressResults" + } + } + }, + "ResolveCharms": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResolveCharms" + }, + "Result": { + "$ref": "#/definitions/ResolveCharmResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Resolved" + } + } + }, + "RetryProvisioning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SLALevel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelAgentVersion" + } + } + }, + "SetModelConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "SetSLALevel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSLA" + } + } + }, + "StatusHistory": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryRequests" + }, + "Result": { + "$ref": "#/definitions/StatusHistoryResults" + } + } + }, + "WatchAll": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "AddCharm": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel" + ] + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "AgentVersionResult": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "can-upgrade-to": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "exposed": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "meter-statuses": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MeterStatus" + } + } + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "series": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + }, + "subordinate-to": { + "type": "array", + "items": { + "type": "string" + } + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "charm", + "series", + "exposed", + "life", + "relations", + "can-upgrade-to", + "subordinate-to", + "units", + "meter-statuses", + "status", + "workload-version" + ] + }, + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyMachines": { + "type": "object", + "properties": { + "force": { + "type": "boolean" + }, + "machine-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-names", + "force" + ] + }, + "DetailedStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "info": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "data", + "since", + "kind", + "version", + "life" + ] + }, + "EndpointStatus": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "subordinate": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "application", + "name", + "role", + "subordinate" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FindToolsParams": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "number": { + "$ref": "#/definitions/Number" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "number", + "major", + "minor", + "arch", + "series" + ] + }, + "FindToolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "FullStatus": { + "type": "object", + "properties": { + "applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ApplicationStatus" + } + } + }, + "machines": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "model": { + "$ref": "#/definitions/ModelStatusInfo" + }, + "relations": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationStatus" + } + }, + "remote-applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/RemoteApplicationStatus" + } + } + } + }, + "additionalProperties": false, + "required": [ + "model", + "machines", + "applications", + "remote-applications", + "relations" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "History": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/definitions/DetailedStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "statuses" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MachineStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "constraints": { + "type": "string" + }, + "containers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "dns-name": { + "type": "string" + }, + "hardware": { + "type": "string" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "instance-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "ip-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "network-interfaces": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/NetworkInterface" + } + } + }, + "series": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "instance-status", + "dns-name", + "instance-id", + "series", + "id", + "containers", + "constraints", + "hardware", + "jobs", + "has-vote", + "wants-vote" + ] + }, + "MeterStatus": { + "type": "object", + "properties": { + "color": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "color", + "message" + ] + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "migration": { + "$ref": "#/definitions/ModelMigrationStatus" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "provider-type", + "default-series", + "cloud-tag", + "owner-tag", + "life", + "status", + "users", + "machines" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelMigrationStatus": { + "type": "object", + "properties": { + "end": { + "type": "string", + "format": "date-time" + }, + "start": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "start" + ] + }, + "ModelSLA": { + "type": "object", + "properties": { + "creds": { + "type": "array", + "items": { + "type": "integer" + } + }, + "level": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "level", + "creds" + ] + }, + "ModelSet": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelStatusInfo": { + "type": "object", + "properties": { + "available-version": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "meter-status": { + "$ref": "#/definitions/MeterStatus" + }, + "model-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "cloud-tag", + "version", + "available-version", + "model-status", + "meter-status" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModelUserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "additionalProperties": false + }, + "ModelUserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NetworkInterface": { + "type": "object", + "properties": { + "dns-nameservers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway": { + "type": "string" + }, + "ip-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "is-up": { + "type": "boolean" + }, + "mac-address": { + "type": "string" + }, + "space": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ip-addresses", + "mac-address", + "is-up" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "PrivateAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PrivateAddressResults": { + "type": "object", + "properties": { + "private-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "private-address" + ] + }, + "ProvisioningScriptParams": { + "type": "object", + "properties": { + "data-dir": { + "type": "string" + }, + "disable-package-commands": { + "type": "boolean" + }, + "machine-id": { + "type": "string" + }, + "nonce": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-id", + "nonce", + "data-dir", + "disable-package-commands" + ] + }, + "ProvisioningScriptResult": { + "type": "object", + "properties": { + "script": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "script" + ] + }, + "PublicAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PublicAddressResults": { + "type": "object", + "properties": { + "public-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "public-address" + ] + }, + "RelationStatus": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/EndpointStatus" + } + }, + "id": { + "type": "integer" + }, + "interface": { + "type": "string" + }, + "key": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "key", + "interface", + "scope", + "endpoints" + ] + }, + "RemoteApplicationStatus": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "application-url": { + "type": "string" + }, + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteEndpoint" + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "life": { + "type": "string" + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + } + }, + "additionalProperties": false, + "required": [ + "application-url", + "application-name", + "endpoints", + "life", + "relations", + "status" + ] + }, + "RemoteEndpoint": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "limit", + "scope" + ] + }, + "ResolveCharmResult": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ResolveCharmResults": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolveCharmResult" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ResolveCharms": { + "type": "object", + "properties": { + "references": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "references" + ] + }, + "Resolved": { + "type": "object", + "properties": { + "retry": { + "type": "boolean" + }, + "unit-name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-name", + "retry" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "StatusHistoryFilter": { + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "delta": { + "type": "integer" + }, + "exclude": { + "type": "array", + "items": { + "type": "string" + } + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "size", + "date", + "delta", + "exclude" + ] + }, + "StatusHistoryRequest": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/definitions/StatusHistoryFilter" + }, + "historyKind": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "historyKind", + "size", + "filter", + "tag" + ] + }, + "StatusHistoryRequests": { + "type": "object", + "properties": { + "requests": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryRequest" + } + } + }, + "additionalProperties": false, + "required": [ + "requests" + ] + }, + "StatusHistoryResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "history": { + "$ref": "#/definitions/History" + } + }, + "additionalProperties": false, + "required": [ + "history" + ] + }, + "StatusHistoryResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusParams": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "UnitStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "charm": { + "type": "string" + }, + "leader": { + "type": "boolean" + }, + "machine": { + "type": "string" + }, + "opened-ports": { + "type": "array", + "items": { + "type": "string" + } + }, + "public-address": { + "type": "string" + }, + "subordinates": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "workload-status", + "workload-version", + "machine", + "opened-ports", + "public-address", + "charm", + "subordinates" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "Cloud", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Cloud": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudResults" + } + } + }, + "Clouds": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/CloudsResult" + } + } + }, + "Credential": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudCredentialResults" + } + } + }, + "DefaultCloud": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "InstanceTypes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CloudInstanceTypesConstraints" + }, + "Result": { + "$ref": "#/definitions/InstanceTypesResults" + } + } + }, + "RevokeCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpdateCloudCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserClouds" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Cloud": { + "type": "object", + "properties": { + "auth-types": { + "type": "array", + "items": { + "type": "string" + } + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudRegion" + } + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudCredentialResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudCredential" + } + }, + "additionalProperties": false + }, + "CloudCredentialResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudCredentialResult" + } + } + }, + "additionalProperties": false + }, + "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": { + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name" + ] + }, + "CloudResult": { + "type": "object", + "properties": { + "cloud": { + "$ref": "#/definitions/Cloud" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "CloudResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudResult" + } + } + }, + "additionalProperties": false + }, + "CloudsResult": { + "type": "object", + "properties": { + "clouds": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Cloud" + } + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "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 + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateCloudCredential": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "credential" + ] + }, + "UpdateCloudCredentials": { + "type": "object", + "properties": { + "credentials": { + "type": "array", + "items": { + "$ref": "#/definitions/UpdateCloudCredential" + } + } + }, + "additionalProperties": false + }, + "UserCloud": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "cloud-tag" + ] + }, + "UserClouds": { + "type": "object", + "properties": { + "user-clouds": { + "type": "array", + "items": { + "$ref": "#/definitions/UserCloud" + } + } + }, + "additionalProperties": false + }, + "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": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DestroyController": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyControllerArgs" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/UserAccessResults" + } + } + }, + "HostedModelConfigs": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/HostedModelConfigsResults" + } + } + }, + "InitiateMigration": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/InitiateMigrationArgs" + }, + "Result": { + "$ref": "#/definitions/InitiateMigrationResults" + } + } + }, + "ListBlockedModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelBlockInfoList" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyControllerAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveBlocks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RemoveBlocksArgs" + } + } + }, + "WatchAllModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "DestroyControllerArgs": { + "type": "object", + "properties": { + "destroy-models": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "destroy-models" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostedModelConfig": { + "type": "object", + "properties": { + "cloud-spec": { + "$ref": "#/definitions/CloudSpec" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "owner": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner" + ] + }, + "HostedModelConfigsResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/HostedModelConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "InitiateMigrationArgs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/MigrationSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "InitiateMigrationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "migration-id": { + "type": "string" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "migration-id" + ] + }, + "InitiateMigrationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/InitiateMigrationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MigrationSpec": { + "type": "object", + "properties": { + "external-control": { + "type": "boolean" + }, + "model-tag": { + "type": "string" + }, + "skip-initial-prechecks": { + "type": "boolean" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info", + "external-control", + "skip-initial-prechecks" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelBlockInfo": { + "type": "object", + "properties": { + "blocks": { + "type": "array", + "items": { + "type": "string" + } + }, + "model-uuid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "model-uuid", + "owner-tag", + "blocks" + ] + }, + "ModelBlockInfoList": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelBlockInfo" + } + } + }, + "additionalProperties": false + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelStatus": { + "type": "object", + "properties": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access" + ] + }, + "ModifyControllerAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyControllerAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RemoveBlocksArgs": { + "type": "object", + "properties": { + "all": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "all" + ] + }, + "UserAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "access" + ] + }, + "UserAccessResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserAccess" + } + }, + "additionalProperties": false + }, + "UserAccessResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserAccessResult" + } + } + }, + "additionalProperties": false + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "Deployer", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "ConnectionInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DeployerConnectionValues" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "DeployerConnectionValues": { + "type": "object", + "properties": { + "api-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "state-addresses": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "state-addresses", + "api-addresses" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "DiscoverSpaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DiscoverSpacesResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "provider-network-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "DiscoverSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderSpace" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ProviderSpace": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider-id", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-network-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "DiskManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineBlockDevices" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineBlockDevices": { + "type": "object", + "properties": { + "block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDevice" + } + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "machine-block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineBlockDevices" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-block-devices" + ] + } + } + } + }, + { + "Name": "EntityWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/EntitiesWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "EntitiesWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "FilesystemAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + }, + { + "Name": "Firewaller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "GetAssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetExposed": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "GetMachineActiveSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "GetMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachinePortsParams" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "WatchOpenedPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePorts": { + "type": "object", + "properties": { + "machine-tag": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "subnet-tag" + ] + }, + "MachinePortsParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePorts" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "HighAvailability", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "EnableHA": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ControllersSpecs" + }, + "Result": { + "$ref": "#/definitions/ControllersChangeResults" + } + } + }, + "ResumeHAReplicationAfterUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResumeReplicationParams" + } + } + }, + "StopHAReplicationForUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpgradeMongoParams" + }, + "Result": { + "$ref": "#/definitions/MongoUpgradeResults" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "Scope": { + "type": "string" + }, + "SpaceName": { + "type": "string" + }, + "SpaceProviderId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Value", + "Type", + "Scope", + "SpaceName", + "SpaceProviderId" + ] + }, + "ControllersChangeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ControllersChanges" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ControllersChangeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersChangeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ControllersChanges": { + "type": "object", + "properties": { + "added": { + "type": "array", + "items": { + "type": "string" + } + }, + "converted": { + "type": "array", + "items": { + "type": "string" + } + }, + "demoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "maintained": { + "type": "array", + "items": { + "type": "string" + } + }, + "promoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "removed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ControllersSpec": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "num-controllers": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "type": "string" + } + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "num-controllers" + ] + }, + "ControllersSpecs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "HAMember": { + "type": "object", + "properties": { + "public-address": { + "$ref": "#/definitions/Address" + }, + "series": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-address", + "series" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Member": { + "type": "object", + "properties": { + "Address": { + "type": "string" + }, + "Arbiter": { + "type": "boolean" + }, + "BuildIndexes": { + "type": "boolean" + }, + "Hidden": { + "type": "boolean" + }, + "Id": { + "type": "integer" + }, + "Priority": { + "type": "number" + }, + "SlaveDelay": { + "type": "integer" + }, + "Tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "Votes": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Id", + "Address", + "Arbiter", + "BuildIndexes", + "Hidden", + "Priority", + "Tags", + "SlaveDelay", + "Votes" + ] + }, + "MongoUpgradeResults": { + "type": "object", + "properties": { + "ha-members": { + "type": "array", + "items": { + "$ref": "#/definitions/HAMember" + } + }, + "master": { + "$ref": "#/definitions/HAMember" + }, + "rs-members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "rs-members", + "master", + "ha-members" + ] + }, + "MongoVersion": { + "type": "object", + "properties": { + "engine": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "patch": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "major", + "minor", + "patch", + "engine" + ] + }, + "ResumeReplicationParams": { + "type": "object", + "properties": { + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "members" + ] + }, + "UpgradeMongoParams": { + "type": "object", + "properties": { + "target": { + "$ref": "#/definitions/MongoVersion" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "HostKeyReporter", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ReportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SSHHostKeySet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHHostKeySet": { + "type": "object", + "properties": { + "entity-keys": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHHostKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "entity-keys" + ] + }, + "SSHHostKeys": { + "type": "object", + "properties": { + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-keys" + ] + } + } + } + }, + { + "Name": "ImageManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "DeleteImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ListImageResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageFilterParams": { + "type": "object", + "properties": { + "images": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "images" + ] + }, + "ImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series", + "url", + "created" + ] + }, + "ImageSpec": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series" + ] + }, + "ListImageResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "ImageMetadata", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Delete": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataImageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageMetadataFilter" + }, + "Result": { + "$ref": "#/definitions/ListCloudImageMetadataResult" + } + } + }, + "Save": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataSaveParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateFromPublishedImages": { + "type": "object" + } + }, + "definitions": { + "CloudImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "image-id": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "region": { + "type": "string" + }, + "root-storage-size": { + "type": "integer" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "string" + }, + "source": { + "type": "string" + }, + "stream": { + "type": "string" + }, + "version": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "image-id", + "region", + "version", + "series", + "arch", + "source", + "priority" + ] + }, + "CloudImageMetadataList": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageMetadataFilter": { + "type": "object", + "properties": { + "arches": { + "type": "array", + "items": { + "type": "string" + } + }, + "region": { + "type": "string" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "stream": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ListCloudImageMetadataResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MetadataImageIds": { + "type": "object", + "properties": { + "image-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "image-ids" + ] + }, + "MetadataSaveParams": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadataList" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "InstancePoller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AreManuallyProvisioned": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineAddressesResults" + } + } + }, + "SetInstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Status": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "MachineAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "MachineAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "KeyManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DeleteKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ImportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListSSHKeys" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSSHKeys": { + "type": "object", + "properties": { + "entities": { + "$ref": "#/definitions/Entities" + }, + "mode": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "mode" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModifyUserSSHKeys": { + "type": "object", + "properties": { + "ssh-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "ssh-keys" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "KeyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "WatchAuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LeadershipService", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "BlockUntilLeadershipReleased": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationTag" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "ClaimLeadership": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ClaimLeadershipBulkParams" + }, + "Result": { + "$ref": "#/definitions/ClaimLeadershipBulkResults" + } + } + } + }, + "definitions": { + "ApplicationTag": { + "type": "object", + "properties": { + "Name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Name" + ] + }, + "ClaimLeadershipBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/ClaimLeadershipParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "ClaimLeadershipBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ClaimLeadershipParams": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "duration": { + "type": "number" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "unit-tag", + "duration" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "LifeFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LogForwarding", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingGetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/LogForwardingGetLastSentResults" + } + } + }, + "SetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingSetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingGetLastSentParams": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingID" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "LogForwardingGetLastSentResult": { + "type": "object", + "properties": { + "err": { + "$ref": "#/definitions/Error" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "record-id", + "record-timestamp", + "err" + ] + }, + "LogForwardingGetLastSentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingGetLastSentResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingID": { + "type": "object", + "properties": { + "model": { + "type": "string" + }, + "sink": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model", + "sink" + ] + }, + "LogForwardingSetLastSentParam": { + "type": "object", + "properties": { + "LogForwardingID": { + "$ref": "#/definitions/LogForwardingID" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "LogForwardingID", + "record-id", + "record-timestamp" + ] + }, + "LogForwardingSetLastSentParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingSetLastSentParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Logger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "LoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "WatchLoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineActions", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RunningActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineManager", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "DestroyMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DestroyMachineResults" + } + } + }, + "ForceDestroyMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DestroyMachineResults" + } + } + }, + "InstanceTypes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelInstanceTypesConstraints" + }, + "Result": { + "$ref": "#/definitions/InstanceTypesResults" + } + } + } + }, + "definitions": { + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyMachineInfo": { + "type": "object", + "properties": { + "destroyed-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "destroyed-units": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "detached-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false + }, + "DestroyMachineResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "$ref": "#/definitions/DestroyMachineInfo" + } + }, + "additionalProperties": false + }, + "DestroyMachineResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/DestroyMachineResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "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 + }, + "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": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MachineUndertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AllMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/EntitiesResults" + } + } + }, + "CompleteMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + } + } + }, + "GetMachineProviderInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProviderInterfaceInfoResults" + } + } + }, + "WatchMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResult": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProviderInterfaceInfo": { + "type": "object", + "properties": { + "interface-name": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "provider-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "interface-name", + "mac-address", + "provider-id" + ] + }, + "ProviderInterfaceInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "interfaces": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfo" + } + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "interfaces" + ] + }, + "ProviderInterfaceInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Machiner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Jobs": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/JobsResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetMachineAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetObservedNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineNetworkConfig" + } + } + }, + "SetProviderNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "JobsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "jobs" + ] + }, + "JobsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/JobsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkRoute" + } + }, + "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" + ] + }, + "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": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetMachineNetworkConfig": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "config" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MeterStatus", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsAdder", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + } + } + } + }, + { + "Name": "MetricsDebug", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "GetMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MetricResults" + } + } + }, + "SetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MeterStatusParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityMetrics": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricResult" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusParam": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "code", + "info" + ] + }, + "MeterStatusParams": { + "type": "object", + "properties": { + "statues": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusParam" + } + } + }, + "additionalProperties": false, + "required": [ + "statues" + ] + }, + "MetricResult": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "unit": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "time", + "key", + "value", + "unit" + ] + }, + "MetricResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityMetrics" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddJujuMachineMetrics": { + "type": "object" + }, + "CleanupOldMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SendMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "MigrationFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Phase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PhaseResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PhaseResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "phase": { + "type": "string" + } + }, + "additionalProperties": false + }, + "PhaseResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PhaseResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MigrationMaster", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Export": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "MigrationStatus": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MasterMigrationStatus" + } + } + }, + "MinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MinionReports" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + }, + "Prechecks": { + "type": "object" + }, + "Reap": { + "type": "object" + }, + "SetPhase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationPhaseArgs" + } + } + }, + "SetStatusMessage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationStatusMessageArgs" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchMinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MasterMigrationStatus": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "phase-changed-time": { + "type": "string", + "format": "date-time" + }, + "spec": { + "$ref": "#/definitions/MigrationSpec" + } + }, + "additionalProperties": false, + "required": [ + "spec", + "migration-id", + "phase", + "phase-changed-time" + ] + }, + "MigrationModelInfo": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "controller-agent-version": { + "$ref": "#/definitions/Number" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version", + "controller-agent-version" + ] + }, + "MigrationSpec": { + "type": "object", + "properties": { + "external-control": { + "type": "boolean" + }, + "model-tag": { + "type": "string" + }, + "skip-initial-prechecks": { + "type": "boolean" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info", + "external-control", + "skip-initial-prechecks" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "MinionReports": { + "type": "object", + "properties": { + "failed": { + "type": "array", + "items": { + "type": "string" + } + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success-count": { + "type": "integer" + }, + "unknown-count": { + "type": "integer" + }, + "unknown-sample": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success-count", + "unknown-count", + "unknown-sample", + "failed" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelResource" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "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": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + }, + "SetMigrationPhaseArgs": { + "type": "object", + "properties": { + "phase": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "phase" + ] + }, + "SetMigrationStatusMessageArgs": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message" + ] + } + } + } + }, + { + "Name": "MigrationMinion", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Report": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MinionReport" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MinionReport": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "MigrationStatusWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationStatus" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "MigrationStatus": { + "type": "object", + "properties": { + "attempt": { + "type": "integer" + }, + "external-control": { + "type": "boolean" + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "source-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "source-ca-cert": { + "type": "string" + }, + "target-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "target-ca-cert": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "attempt", + "phase", + "external-control", + "source-api-addrs", + "source-ca-cert", + "target-api-addrs", + "target-ca-cert" + ] + } + } + } + }, + { + "Name": "MigrationTarget", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Abort": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "Activate": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "AdoptResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AdoptResourcesArgs" + } + } + }, + "Import": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "LatestLogTime": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + }, + "Result": { + "type": "string", + "format": "date-time" + } + } + }, + "Prechecks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + } + }, + "definitions": { + "AdoptResourcesArgs": { + "type": "object", + "properties": { + "model-tag": { + "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, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version", + "controller-agent-version" + ] + }, + "ModelArgs": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelResource" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "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": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + } + } + } + }, + { + "Name": "ModelConfig", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + }, + "SLALevel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetSLALevel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSLA" + } + } + } + }, + "definitions": { + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelSLA": { + "type": "object", + "properties": { + "creds": { + "type": "array", + "items": { + "type": "integer" + } + }, + "level": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "level", + "creds" + ] + }, + "ModelSet": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + } + } + } + }, + { + "Name": "ModelManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CreateModel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelCreateArgs" + }, + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "DestroyModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DumpModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "DumpModelsDB": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "ListModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entity" + }, + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "ModelDefaults": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelDefaultsResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelInfoResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyModelAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnsetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MapResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "MapResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MapResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelCreateArgs": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "credential": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "region": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner-tag" + ] + }, + "ModelDefaultValues": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelDefaults": { + "type": "object", + "properties": { + "controller": { + "type": "object", + "additionalProperties": true + }, + "default": { + "type": "object", + "additionalProperties": true + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/RegionDefaults" + } + } + }, + "additionalProperties": false + }, + "ModelDefaultsResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ModelDefaults" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "migration": { + "$ref": "#/definitions/ModelMigrationStatus" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "provider-type", + "default-series", + "cloud-tag", + "owner-tag", + "life", + "status", + "users", + "machines" + ] + }, + "ModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelInfo" + } + }, + "additionalProperties": false + }, + "ModelInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "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": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelUnsetKeys": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "model-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access", + "model-tag" + ] + }, + "ModifyModelAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyModelAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RegionDefaults": { + "type": "object", + "properties": { + "region-name": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "region-name", + "value" + ] + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelDefaultValues" + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUnsetKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "NotifyWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Payloads", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PayloadListArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadListResults" + } + } + } + }, + "definitions": { + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + }, + "PayloadListArgs": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "PayloadListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "PayloadsHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "LookUp": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LookUpPayloadArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetPayloadStatusArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Track": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/TrackPayloadArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Untrack": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LookUpPayloadArg": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "id" + ] + }, + "LookUpPayloadArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/LookUpPayloadArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + }, + "PayloadResult": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "not-found": { + "type": "boolean" + }, + "payload": { + "$ref": "#/definitions/Payload" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "payload", + "not-found" + ] + }, + "PayloadResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PayloadResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetPayloadStatusArg": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "status" + ] + }, + "SetPayloadStatusArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/SetPayloadStatusArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "TrackPayloadArgs": { + "type": "object", + "properties": { + "payloads": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "payloads" + ] + } + } + } + }, + { + "Name": "Pinger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Ping": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Provisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "Constraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConstraintsResults" + } + } + }, + "ContainerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ContainerConfig" + } + } + }, + "ContainerManagerConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ContainerManagerConfigParams" + }, + "Result": { + "$ref": "#/definitions/ContainerManagerConfig" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DistributionGroup": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DistributionGroupResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "GetContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "HostChangesForContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/HostNetworkChangeResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "MachinesWithTransientErrors": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "MarkMachinesForRemoval": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PrepareContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProvisioningInfoResults" + } + } + }, + "ReleaseContainerAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Series": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "SetHostMachineNetworkConfig": { + "type": "object", + "properties": { + "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" + } + } + }, + "SetProviderNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "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" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkRoute" + } + }, + "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" + ] + }, + "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": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "controller-config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "image-metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "placement": { + "type": "string" + }, + "series": { + "type": "string" + }, + "subnets-to-zones": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParams" + } + } + }, + "additionalProperties": false, + "required": [ + "constraints", + "series", + "placement", + "jobs" + ] + }, + "ProvisioningInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ProvisioningInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ProvisioningInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProvisioningInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetMachineNetworkConfig": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "config" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Settings": { + "type": "object", + "properties": { + "Ftp": { + "type": "string" + }, + "Http": { + "type": "string" + }, + "Https": { + "type": "string" + }, + "NoProxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Http", + "Https", + "Ftp", + "NoProxy" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateBehavior": { + "type": "object", + "properties": { + "enable-os-refresh-update": { + "type": "boolean" + }, + "enable-os-upgrade": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "enable-os-refresh-update", + "enable-os-upgrade" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "WatchContainer": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "container-type" + ] + }, + "WatchContainers": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/WatchContainer" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + } + } + } + }, + { + "Name": "ProxyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ProxyConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProxyConfigResults" + } + } + }, + "WatchForProxyConfigAndAPIHostPortChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProxyConfig": { + "type": "object", + "properties": { + "ftp": { + "type": "string" + }, + "http": { + "type": "string" + }, + "https": { + "type": "string" + }, + "no-proxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "http", + "https", + "ftp", + "no-proxy" + ] + }, + "ProxyConfigResult": { + "type": "object", + "properties": { + "apt-proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + } + }, + "additionalProperties": false, + "required": [ + "proxy-settings", + "apt-proxy-settings" + ] + }, + "ProxyConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProxyConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Reboot", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetRebootAction": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RebootActionResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchForRebootEvent": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "RebootActionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false + }, + "RebootActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RebootActionResult" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "RelationUnitsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + } + } + } + }, + { + "Name": "Resources", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddPendingResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddPendingResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/AddPendingResourcesResult" + } + } + }, + "ListResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/ResourcesResults" + } + } + } + }, + "definitions": { + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddPendingResourcesArgs": { + "type": "object", + "properties": { + "AddCharmWithAuthorization": { + "$ref": "#/definitions/AddCharmWithAuthorization" + }, + "Entity": { + "$ref": "#/definitions/Entity" + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "AddCharmWithAuthorization", + "resources" + ] + }, + "AddPendingResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "pending-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "pending-ids" + ] + }, + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListResourcesArgs": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "ResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "charm-store-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + }, + "unit-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitResources" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources", + "charm-store-resources", + "unit-resources" + ] + }, + "ResourcesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourcesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitResources": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "download-progress": { + "type": "object", + "patternProperties": { + ".*": { + "type": "integer" + } + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "resources", + "download-progress" + ] + } + } + } + }, + { + "Name": "ResourcesHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetResourceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListUnitResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/UnitResourcesResult" + } + } + } + }, + "definitions": { + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListUnitResourcesArgs": { + "type": "object", + "properties": { + "resource-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "resource-names" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "UnitResourceResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resource": { + "$ref": "#/definitions/Resource" + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resource" + ] + }, + "UnitResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitResourceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources" + ] + } + } + } + }, + { + "Name": "Resumer", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ResumeTransactions": { + "type": "object" + } + } + } + }, + { + "Name": "RetryStrategy", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "RetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RetryStrategyResults" + } + } + }, + "WatchRetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RetryStrategy": { + "type": "object", + "properties": { + "jitter-retry-time": { + "type": "boolean" + }, + "max-retry-time": { + "type": "integer" + }, + "min-retry-time": { + "type": "integer" + }, + "retry-time-factor": { + "type": "integer" + }, + "should-retry": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "should-retry", + "min-retry-time", + "max-retry-time", + "jitter-retry-time", + "retry-time-factor" + ] + }, + "RetryStrategyResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/RetryStrategy" + } + }, + "additionalProperties": false + }, + "RetryStrategyResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RetryStrategyResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "SSHClient", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AllAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressesResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "Proxy": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SSHProxyResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "PublicKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHPublicKeysResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHAddressResult": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "SSHAddressResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "SSHAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHProxyResult": { + "type": "object", + "properties": { + "use-proxy": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "use-proxy" + ] + }, + "SSHPublicKeysResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "SSHPublicKeysResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHPublicKeysResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Singular", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Claim": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SingularClaims" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Wait": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SingularClaim": { + "type": "object", + "properties": { + "controller-tag": { + "type": "string" + }, + "duration": { + "type": "integer" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "controller-tag", + "duration" + ] + }, + "SingularClaims": { + "type": "object", + "properties": { + "claims": { + "type": "array", + "items": { + "$ref": "#/definitions/SingularClaim" + } + } + }, + "additionalProperties": false, + "required": [ + "claims" + ] + } + } + } + }, + { + "Name": "Spaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ListSpacesResults" + } + } + } + }, + "definitions": { + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Space" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Space": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-network-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + } + } + } + }, + { + "Name": "StatusHistory", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Prune": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryPruneArgs" + } + } + } + }, + "definitions": { + "StatusHistoryPruneArgs": { + "type": "object", + "properties": { + "max-history-mb": { + "type": "integer" + }, + "max-history-time": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "max-history-time", + "max-history-mb" + ] + } + } + } + }, + { + "Name": "Storage", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddToUnit": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Attach": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreatePool": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Detach": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemFilters" + }, + "Result": { + "$ref": "#/definitions/FilesystemDetailsListResults" + } + } + }, + "ListPools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePoolFilters" + }, + "Result": { + "$ref": "#/definitions/StoragePoolsResults" + } + } + }, + "ListStorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageFilters" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsListResults" + } + } + }, + "ListVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeFilters" + }, + "Result": { + "$ref": "#/definitions/VolumeDetailsListResults" + } + } + }, + "StorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FilesystemAttachmentDetails": { + "type": "object", + "properties": { + "FilesystemAttachmentInfo": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "FilesystemAttachmentInfo" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemDetails": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "life": { + "type": "string" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/FilesystemAttachmentDetails" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info", + "status" + ] + }, + "FilesystemDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetails" + } + } + }, + "additionalProperties": false + }, + "FilesystemDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemFilter" + } + } + }, + "additionalProperties": false + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "pool", + "size" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachmentDetails": { + "type": "object", + "properties": { + "life": { + "type": "string" + }, + "location": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag", + "machine-tag" + ] + }, + "StorageAttachmentId": { + "type": "object", + "properties": { + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag" + ] + }, + "StorageAttachmentIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StorageDetails": { + "type": "object", + "properties": { + "attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageAttachmentDetails" + } + } + }, + "kind": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "kind", + "status", + "persistent" + ] + }, + "StorageDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetails" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageDetails" + } + }, + "additionalProperties": false + }, + "StorageDetailsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsResult" + } + } + }, + "additionalProperties": false + }, + "StorageFilter": { + "type": "object", + "additionalProperties": false + }, + "StorageFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePool": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "name": { + "type": "string" + }, + "provider": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider", + "attrs" + ] + }, + "StoragePoolFilter": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + }, + "providers": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StoragePoolFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "storage-pools": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolsResult" + } + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "VolumeAttachmentDetails": { + "type": "object", + "properties": { + "VolumeAttachmentInfo": { + "$ref": "#/definitions/VolumeAttachmentInfo" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "VolumeAttachmentInfo" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeDetails": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "life": { + "type": "string" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/VolumeAttachmentDetails" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info", + "status" + ] + }, + "VolumeDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetails" + } + } + }, + "additionalProperties": false + }, + "VolumeDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "VolumeFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "VolumeFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeFilter" + } + } + }, + "additionalProperties": false + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + } + } + } + }, + { + "Name": "StorageProvisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentParamsResults" + } + } + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentResults" + } + } + }, + "FilesystemParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemParamsResults" + } + } + }, + "Filesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveAttachment": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Filesystems" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Volumes" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentParamsResults" + } + } + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentResults" + } + } + }, + "VolumeBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/BlockDeviceResults" + } + } + }, + "VolumeParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeParamsResults" + } + } + }, + "Volumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeResults" + } + } + }, + "WatchBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchFilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchVolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "BlockDeviceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/BlockDevice" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockDeviceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDeviceResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Filesystem": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info" + ] + }, + "FilesystemAttachment": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "info" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "filesystem-tag": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "mount-point": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "provider" + ] + }, + "FilesystemAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "filesystem-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystem-attachments" + ] + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "pool", + "size" + ] + }, + "FilesystemParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/FilesystemAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "filesystem-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "size", + "provider" + ] + }, + "FilesystemParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Filesystem" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemResult" + } + } + }, + "additionalProperties": false + }, + "Filesystems": { + "type": "object", + "properties": { + "filesystems": { + "type": "array", + "items": { + "$ref": "#/definitions/Filesystem" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystems" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "MachineStorageIdsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachment": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeAttachmentInfo" + }, + "machine-tag": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "volume-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "volume-attachments" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "VolumeParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Volume" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeResult" + } + } + }, + "additionalProperties": false + }, + "Volumes": { + "type": "object", + "properties": { + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/Volume" + } + } + }, + "additionalProperties": false, + "required": [ + "volumes" + ] + } + } + } + }, + { + "Name": "StringsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Subnets", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SpaceResults" + } + } + }, + "AllZones": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ZoneResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "provider-network-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SpaceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "SpaceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SpaceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-network-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ZoneResult": { + "type": "object", + "properties": { + "available": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "available" + ] + }, + "ZoneResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ZoneResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Undertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UndertakerModelInfoResult" + } + } + }, + "ProcessDyingModel": { + "type": "object" + }, + "RemoveModel": { + "type": "object" + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchModelResources": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "UndertakerModelInfo": { + "type": "object", + "properties": { + "global-name": { + "type": "string" + }, + "is-system": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "global-name", + "is-system", + "life" + ] + }, + "UndertakerModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UndertakerModelInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + } + } + } + }, + { + "Name": "UnitAssigner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AssignUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchUnitAssignments": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Uniter", + "Version": 5, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AddUnitStorage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationStatusResults" + } + } + }, + "AssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "AvailabilityZone": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "CharmArchiveSha256": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURLs" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "CharmModifiedVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/IntResults" + } + } + }, + "CharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "ClearResolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ClosePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConfigSettingsResults" + } + } + }, + "CurrentModel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelResult" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyAllSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnterScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "GetPrincipal": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "HasSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "JoinedRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "LeaveScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Merge": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "NetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnitsNetworkConfig" + }, + "Result": { + "$ref": "#/definitions/UnitNetworkConfigResults" + } + } + }, + "OpenPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "ProviderType": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Read": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/GetLeadershipSettingsBulkResults" + } + } + }, + "ReadRemoteSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitPairs" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "ReadSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "Relation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RelationById": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationIds" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RemoveStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ResolvedModeResults" + } + } + }, + "SLALevel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesCharmURL" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetUnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetWorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityWorkloadVersions" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StorageAttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "StorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentResults" + } + } + }, + "UnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "UnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentIdsResults" + } + } + }, + "UpdateSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitsSettings" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchApplicationRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchLeadershipSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchRelationUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResults" + } + } + }, + "WatchStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "ApplicationStatusResult": { + "type": "object", + "properties": { + "application": { + "$ref": "#/definitions/StatusResult" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StatusResult" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "units" + ] + }, + "ApplicationStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmURLs": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ConfigSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "ConfigSettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Endpoint": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "relation": { + "$ref": "#/definitions/CharmRelation" + } + }, + "additionalProperties": false, + "required": [ + "application-name", + "relation" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesCharmURL": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityCharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesPortRanges": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityCharmURL": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "charm-url" + ] + }, + "EntityPortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "protocol", + "from-port", + "to-port" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "EntityWorkloadVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "workload-version" + ] + }, + "EntityWorkloadVersions": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityWorkloadVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/GetLeadershipSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "IntResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "IntResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/IntResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "MergeLeadershipSettingsBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MergeLeadershipSettingsParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MergeLeadershipSettingsParam": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "settings" + ] + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkRoute" + } + }, + "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" + ] + }, + "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": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "RelationIds": { + "type": "object", + "properties": { + "relation-ids": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-ids" + ] + }, + "RelationResult": { + "type": "object", + "properties": { + "endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "integer" + }, + "key": { + "type": "string" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "id", + "key", + "endpoint" + ] + }, + "RelationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RelationUnit": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit" + ] + }, + "RelationUnitPair": { + "type": "object", + "properties": { + "local-unit": { + "type": "string" + }, + "relation": { + "type": "string" + }, + "remote-unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "local-unit", + "remote-unit" + ] + }, + "RelationUnitPairs": { + "type": "object", + "properties": { + "relation-unit-pairs": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitPair" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-unit-pairs" + ] + }, + "RelationUnitSettings": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit", + "settings" + ] + }, + "RelationUnits": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnit" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsSettings": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitSettings" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "RelationUnitsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ResolvedModeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "mode": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "mode" + ] + }, + "ResolvedModeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolvedModeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "SettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "SettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachment": { + "type": "object", + "properties": { + "kind": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "location": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "unit-tag", + "kind", + "location", + "life" + ] + }, + "StorageAttachmentId": { + "type": "object", + "properties": { + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag" + ] + }, + "StorageAttachmentIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "StorageAttachmentIdsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachmentIds" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentIdsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentIdsResult" + } + } + }, + "additionalProperties": false + }, + "StorageAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "StringBoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ok": { + "type": "boolean" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result", + "ok" + ] + }, + "StringBoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringBoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitNetworkConfig": { + "type": "object", + "properties": { + "binding-name": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "binding-name" + ] + }, + "UnitNetworkConfigResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "info" + ] + }, + "UnitNetworkConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitNetworkConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "UnitsNetworkConfig": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitNetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + } + } + } + }, + { + "Name": "Upgrader", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "DesiredVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VersionResults" + } + } + }, + "SetTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesVersion" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Tools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ToolsResults" + } + } + }, + "WatchAPIVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesVersion": { + "type": "object", + "properties": { + "agent-tools": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "agent-tools" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "tools": { + "$ref": "#/definitions/Version" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "tools" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Version": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "VersionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false + }, + "VersionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VersionResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "UserManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddUsers" + }, + "Result": { + "$ref": "#/definitions/AddUserResults" + } + } + }, + "DisableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPassword": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserInfoRequest" + }, + "Result": { + "$ref": "#/definitions/UserInfoResults" + } + } + } + }, + "definitions": { + "AddUser": { + "type": "object", + "properties": { + "display-name": { + "type": "string" + }, + "password": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name" + ] + }, + "AddUserResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "secret-key": { + "type": "array", + "items": { + "type": "integer" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false + }, + "AddUserResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUserResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AddUsers": { + "type": "object", + "properties": { + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUser" + } + } + }, + "additionalProperties": false, + "required": [ + "users" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "UserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "created-by": { + "type": "string" + }, + "date-created": { + "type": "string", + "format": "date-time" + }, + "disabled": { + "type": "boolean" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name", + "access", + "created-by", + "date-created", + "disabled" + ] + }, + "UserInfoRequest": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "include-disabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "include-disabled" + ] + }, + "UserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserInfo" + } + }, + "additionalProperties": false + }, + "UserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "VolumeAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + } +] diff --git a/modules/libjuju/juju/client/schemas-juju-2.2-rc1.json b/modules/libjuju/juju/client/schemas-juju-2.2-rc1.json new file mode 100644 index 0000000..17e841a --- /dev/null +++ b/modules/libjuju/juju/client/schemas-juju-2.2-rc1.json @@ -0,0 +1,26295 @@ +[ + { + "Name": "Action", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "ApplicationsCharmsActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationsCharmActionsResults" + } + } + }, + "Cancel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "Enqueue": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Actions" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "FindActionTagsByPrefix": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindTags" + }, + "Result": { + "$ref": "#/definitions/FindTagsResults" + } + } + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindActionsByNames" + }, + "Result": { + "$ref": "#/definitions/ActionsByNames" + } + } + }, + "ListAll": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListCompleted": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListPending": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListRunning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "Run": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "RunOnAllMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "Actions": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/Action" + } + } + }, + "additionalProperties": false + }, + "ActionsByName": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByNames": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByName" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "ApplicationCharmActionsResult": { + "type": "object", + "properties": { + "actions": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ActionSpec" + } + } + }, + "application-tag": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ApplicationsCharmActionsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationCharmActionsResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FindTags": { + "type": "object", + "properties": { + "prefixes": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "prefixes" + ] + }, + "FindTagsResults": { + "type": "object", + "properties": { + "matches": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + } + } + }, + "additionalProperties": false, + "required": [ + "matches" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RunParams": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "type": "string" + } + }, + "commands": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "type": "string" + } + }, + "timeout": { + "type": "integer" + }, + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "commands", + "timeout" + ] + } + } + } + }, + { + "Name": "Agent", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetEntities": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AgentGetEntitiesResults" + } + } + }, + "IsMaster": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/IsMasterResult" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateServingInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StateServingInfo" + } + } + }, + "WatchCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "AgentGetEntitiesResult": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "jobs", + "container-type" + ] + }, + "AgentGetEntitiesResults": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/AgentGetEntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "IsMasterResult": { + "type": "object", + "properties": { + "master": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "master" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StateServingInfo": { + "type": "object", + "properties": { + "api-port": { + "type": "integer" + }, + "ca-private-key": { + "type": "string" + }, + "cert": { + "type": "string" + }, + "private-key": { + "type": "string" + }, + "shared-secret": { + "type": "string" + }, + "state-port": { + "type": "integer" + }, + "system-identity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "api-port", + "state-port", + "cert", + "private-key", + "ca-private-key", + "shared-secret", + "system-identity" + ] + } + } + } + }, + { + "Name": "AgentTools", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "UpdateToolsAvailable": { + "type": "object" + } + } + } + }, + { + "Name": "AllModelWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "AllWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "Annotations", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AnnotationsGetResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AnnotationsSet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "AnnotationsGetResult": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/ErrorResult" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "AnnotationsGetResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AnnotationsGetResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AnnotationsSet": { + "type": "object", + "properties": { + "annotations": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityAnnotations" + } + } + }, + "additionalProperties": false, + "required": [ + "annotations" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityAnnotations": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Application", + "Version": 4, + "Schema": { + "type": "object", + "properties": { + "AddRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddRelation" + }, + "Result": { + "$ref": "#/definitions/AddRelationResults" + } + } + }, + "AddUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddApplicationUnits" + }, + "Result": { + "$ref": "#/definitions/AddApplicationUnitsResults" + } + } + }, + "CharmRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationCharmRelations" + }, + "Result": { + "$ref": "#/definitions/ApplicationCharmRelationsResults" + } + } + }, + "Consume": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ConsumeApplicationArgs" + }, + "Result": { + "$ref": "#/definitions/ConsumeApplicationResults" + } + } + }, + "Deploy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationsDeploy" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationDestroy" + } + } + }, + "DestroyApplication": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DestroyApplicationResults" + } + } + }, + "DestroyRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyRelation" + } + } + }, + "DestroyUnit": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DestroyUnitResults" + } + } + }, + "DestroyUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyApplicationUnits" + } + } + }, + "Expose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationExpose" + } + } + }, + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/ApplicationGetResults" + } + } + }, + "GetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "GetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/GetApplicationConstraints" + }, + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "RemoteApplicationInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationURLs" + }, + "Result": { + "$ref": "#/definitions/RemoteApplicationInfoResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSet" + } + } + }, + "SetCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSetCharm" + } + } + }, + "SetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "SetMetricCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationMetricCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Unexpose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnexpose" + } + } + }, + "Unset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnset" + } + } + }, + "Update": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUpdate" + } + } + } + }, + "definitions": { + "AddApplicationUnits": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "num-units", + "placement" + ] + }, + "AddApplicationUnitsResults": { + "type": "object", + "properties": { + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "units" + ] + }, + "AddRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "AddRelationResults": { + "type": "object", + "properties": { + "endpoints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "ApplicationCharmRelations": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationCharmRelationsResults": { + "type": "object", + "properties": { + "charm-relations": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-relations" + ] + }, + "ApplicationDeploy": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-yaml": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "series": { + "type": "string" + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Constraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "series", + "charm-url", + "channel", + "num-units", + "config-yaml", + "constraints" + ] + }, + "ApplicationDestroy": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationExpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGet": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGetResults": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm", + "config", + "constraints", + "series" + ] + }, + "ApplicationMetricCredential": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "metrics-credentials": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "metrics-credentials" + ] + }, + "ApplicationMetricCredentials": { + "type": "object", + "properties": { + "creds": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationMetricCredential" + } + } + }, + "additionalProperties": false, + "required": [ + "creds" + ] + }, + "ApplicationSet": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationSetCharm": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config-settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-settings-yaml": { + "type": "string" + }, + "force-series": { + "type": "boolean" + }, + "force-units": { + "type": "boolean" + }, + "resource-ids": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "storage-constraints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageConstraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "channel", + "force-units", + "force-series" + ] + }, + "ApplicationURLs": { + "type": "object", + "properties": { + "application-urls": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ApplicationUnexpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationUnset": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationUpdate": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "force-charm-url": { + "type": "boolean" + }, + "force-series": { + "type": "boolean" + }, + "min-units": { + "type": "integer" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "settings-yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "force-charm-url", + "force-series", + "settings-yaml" + ] + }, + "ApplicationsDeploy": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationDeploy" + } + } + }, + "additionalProperties": false, + "required": [ + "applications" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "ConsumeApplicationArg": { + "type": "object", + "properties": { + "application-alias": { + "type": "string" + }, + "application-url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application-url" + ] + }, + "ConsumeApplicationArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/ConsumeApplicationArg" + } + } + }, + "additionalProperties": false + }, + "ConsumeApplicationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "local-name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ConsumeApplicationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConsumeApplicationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "DestroyApplicationInfo": { + "type": "object", + "properties": { + "destroyed-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "destroyed-units": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "detached-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false + }, + "DestroyApplicationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "$ref": "#/definitions/DestroyApplicationInfo" + } + }, + "additionalProperties": false + }, + "DestroyApplicationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/DestroyApplicationResult" + } + } + }, + "additionalProperties": false + }, + "DestroyApplicationUnits": { + "type": "object", + "properties": { + "unit-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "unit-names" + ] + }, + "DestroyRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "DestroyUnitInfo": { + "type": "object", + "properties": { + "destroyed-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "detached-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false + }, + "DestroyUnitResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "$ref": "#/definitions/DestroyUnitInfo" + } + }, + "additionalProperties": false + }, + "DestroyUnitResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/DestroyUnitResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetApplicationConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "RemoteApplicationInfo": { + "type": "object", + "properties": { + "application-url": { + "type": "string" + }, + "description": { + "type": "string" + }, + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteEndpoint" + } + }, + "icon-url-path": { + "type": "string" + }, + "model-tag": { + "type": "string" + }, + "name": { + "type": "string" + }, + "source-model-label": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "name", + "description", + "application-url", + "endpoints", + "icon-url-path" + ] + }, + "RemoteApplicationInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/RemoteApplicationInfo" + } + }, + "additionalProperties": false + }, + "RemoteApplicationInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteApplicationInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RemoteEndpoint": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "limit", + "scope" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "ApplicationScaler", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Rescale": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Backups", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Create": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsCreateArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "FinishRestore": { + "type": "object" + }, + "Info": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsInfoArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsListArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsListResult" + } + } + }, + "PrepareRestore": { + "type": "object" + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsRemoveArgs" + } + } + }, + "Restore": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RestoreArgs" + } + } + } + }, + "definitions": { + "BackupsCreateArgs": { + "type": "object", + "properties": { + "notes": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "notes" + ] + }, + "BackupsInfoArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "BackupsListArgs": { + "type": "object", + "additionalProperties": false + }, + "BackupsListResult": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "BackupsMetadataResult": { + "type": "object", + "properties": { + "ca-cert": { + "type": "string" + }, + "ca-private-key": { + "type": "string" + }, + "checksum": { + "type": "string" + }, + "checksum-format": { + "type": "string" + }, + "finished": { + "type": "string", + "format": "date-time" + }, + "hostname": { + "type": "string" + }, + "id": { + "type": "string" + }, + "machine": { + "type": "string" + }, + "model": { + "type": "string" + }, + "notes": { + "type": "string" + }, + "series": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "started": { + "type": "string", + "format": "date-time" + }, + "stored": { + "type": "string", + "format": "date-time" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "id", + "checksum", + "checksum-format", + "size", + "stored", + "started", + "finished", + "notes", + "model", + "machine", + "hostname", + "version", + "series", + "ca-cert", + "ca-private-key" + ] + }, + "BackupsRemoveArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "RestoreArgs": { + "type": "object", + "properties": { + "backup-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "backup-id" + ] + } + } + } + }, + { + "Name": "Block", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BlockResults" + } + } + }, + "SwitchBlockOff": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "SwitchBlockOn": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Block": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "tag", + "type" + ] + }, + "BlockResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Block" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockResult" + } + } + }, + "additionalProperties": false + }, + "BlockSwitchParams": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Bundle", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + } + }, + "definitions": { + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "CharmRevisionUpdater", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "UpdateLatestRevisions": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Charms", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CharmInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/CharmInfo" + } + } + }, + "IsMetered": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/IsMeteredResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmsList" + }, + "Result": { + "$ref": "#/definitions/CharmsListResult" + } + } + } + }, + "definitions": { + "CharmActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "CharmActions": { + "type": "object", + "properties": { + "specs": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmActionSpec" + } + } + } + }, + "additionalProperties": false + }, + "CharmInfo": { + "type": "object", + "properties": { + "actions": { + "$ref": "#/definitions/CharmActions" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmOption" + } + } + }, + "meta": { + "$ref": "#/definitions/CharmMeta" + }, + "metrics": { + "$ref": "#/definitions/CharmMetrics" + }, + "revision": { + "type": "integer" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "revision", + "url", + "config" + ] + }, + "CharmMeta": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "extra-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "min-juju-version": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload-classes": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmPayloadClass" + } + } + }, + "peers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "provides": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "requires": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmResourceMeta" + } + } + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmStorage" + } + } + }, + "subordinate": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "terms": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "summary", + "description", + "subordinate" + ] + }, + "CharmMetric": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "description" + ] + }, + "CharmMetrics": { + "type": "object", + "properties": { + "metrics": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmMetric" + } + } + }, + "plan": { + "$ref": "#/definitions/CharmPlan" + } + }, + "additionalProperties": false, + "required": [ + "metrics", + "plan" + ] + }, + "CharmOption": { + "type": "object", + "properties": { + "default": { + "type": "object", + "additionalProperties": true + }, + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CharmPayloadClass": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type" + ] + }, + "CharmPlan": { + "type": "object", + "properties": { + "required": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "required" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmResourceMeta": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "description" + ] + }, + "CharmStorage": { + "type": "object", + "properties": { + "count-max": { + "type": "integer" + }, + "count-min": { + "type": "integer" + }, + "description": { + "type": "string" + }, + "location": { + "type": "string" + }, + "minimum-size": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + }, + "read-only": { + "type": "boolean" + }, + "shared": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "description", + "type", + "shared", + "read-only", + "count-min", + "count-max", + "minimum-size" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmsList": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "names" + ] + }, + "CharmsListResult": { + "type": "object", + "properties": { + "charm-urls": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-urls" + ] + }, + "IsMeteredResult": { + "type": "object", + "properties": { + "metered": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "metered" + ] + } + } + } + }, + { + "Name": "Cleaner", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Cleanup": { + "type": "object" + }, + "WatchCleanups": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "Client", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "AbortCurrentUpgrade": { + "type": "object" + }, + "AddCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharm" + } + } + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharmWithAuthorization" + } + } + }, + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AddMachinesV2": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AgentVersion": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AgentVersionResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "DestroyMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyMachines" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "FullStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusParams" + }, + "Result": { + "$ref": "#/definitions/FullStatus" + } + } + }, + "GetBundleChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + }, + "GetModelConstraints": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "InjectMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelUserInfoResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PrivateAddress" + }, + "Result": { + "$ref": "#/definitions/PrivateAddressResults" + } + } + }, + "ProvisioningScript": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ProvisioningScriptParams" + }, + "Result": { + "$ref": "#/definitions/ProvisioningScriptResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PublicAddress" + }, + "Result": { + "$ref": "#/definitions/PublicAddressResults" + } + } + }, + "ResolveCharms": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResolveCharms" + }, + "Result": { + "$ref": "#/definitions/ResolveCharmResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Resolved" + } + } + }, + "RetryProvisioning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SLALevel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelAgentVersion" + } + } + }, + "SetModelConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "SetSLALevel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSLA" + } + } + }, + "StatusHistory": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryRequests" + }, + "Result": { + "$ref": "#/definitions/StatusHistoryResults" + } + } + }, + "WatchAll": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "AddCharm": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel" + ] + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "AgentVersionResult": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "can-upgrade-to": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "exposed": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "meter-statuses": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MeterStatus" + } + } + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "series": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + }, + "subordinate-to": { + "type": "array", + "items": { + "type": "string" + } + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "charm", + "series", + "exposed", + "life", + "relations", + "can-upgrade-to", + "subordinate-to", + "units", + "meter-statuses", + "status", + "workload-version" + ] + }, + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyMachines": { + "type": "object", + "properties": { + "force": { + "type": "boolean" + }, + "machine-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-names", + "force" + ] + }, + "DetailedStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "info": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "data", + "since", + "kind", + "version", + "life" + ] + }, + "EndpointStatus": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "subordinate": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "application", + "name", + "role", + "subordinate" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FindToolsParams": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "number": { + "$ref": "#/definitions/Number" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "number", + "major", + "minor", + "arch", + "series" + ] + }, + "FindToolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "FullStatus": { + "type": "object", + "properties": { + "applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ApplicationStatus" + } + } + }, + "machines": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "model": { + "$ref": "#/definitions/ModelStatusInfo" + }, + "relations": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationStatus" + } + }, + "remote-applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/RemoteApplicationStatus" + } + } + } + }, + "additionalProperties": false, + "required": [ + "model", + "machines", + "applications", + "remote-applications", + "relations" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "History": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/definitions/DetailedStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "statuses" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MachineStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "constraints": { + "type": "string" + }, + "containers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "dns-name": { + "type": "string" + }, + "hardware": { + "type": "string" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "instance-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "ip-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "network-interfaces": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/NetworkInterface" + } + } + }, + "series": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "instance-status", + "dns-name", + "instance-id", + "series", + "id", + "containers", + "constraints", + "hardware", + "jobs", + "has-vote", + "wants-vote" + ] + }, + "MeterStatus": { + "type": "object", + "properties": { + "color": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "color", + "message" + ] + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "migration": { + "$ref": "#/definitions/ModelMigrationStatus" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "sla": { + "$ref": "#/definitions/ModelSLAInfo" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "cloud-tag", + "owner-tag", + "life", + "users", + "machines", + "sla", + "agent-version" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelMigrationStatus": { + "type": "object", + "properties": { + "end": { + "type": "string", + "format": "date-time" + }, + "start": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "start" + ] + }, + "ModelSLA": { + "type": "object", + "properties": { + "ModelSLAInfo": { + "$ref": "#/definitions/ModelSLAInfo" + }, + "creds": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "ModelSLAInfo", + "creds" + ] + }, + "ModelSLAInfo": { + "type": "object", + "properties": { + "level": { + "type": "string" + }, + "owner": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "level", + "owner" + ] + }, + "ModelSet": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelStatusInfo": { + "type": "object", + "properties": { + "available-version": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "meter-status": { + "$ref": "#/definitions/MeterStatus" + }, + "model-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "sla": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "cloud-tag", + "version", + "available-version", + "model-status", + "meter-status", + "sla" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModelUserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "additionalProperties": false + }, + "ModelUserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NetworkInterface": { + "type": "object", + "properties": { + "dns-nameservers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway": { + "type": "string" + }, + "ip-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "is-up": { + "type": "boolean" + }, + "mac-address": { + "type": "string" + }, + "space": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ip-addresses", + "mac-address", + "is-up" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "PrivateAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PrivateAddressResults": { + "type": "object", + "properties": { + "private-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "private-address" + ] + }, + "ProvisioningScriptParams": { + "type": "object", + "properties": { + "data-dir": { + "type": "string" + }, + "disable-package-commands": { + "type": "boolean" + }, + "machine-id": { + "type": "string" + }, + "nonce": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-id", + "nonce", + "data-dir", + "disable-package-commands" + ] + }, + "ProvisioningScriptResult": { + "type": "object", + "properties": { + "script": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "script" + ] + }, + "PublicAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PublicAddressResults": { + "type": "object", + "properties": { + "public-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "public-address" + ] + }, + "RelationStatus": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/EndpointStatus" + } + }, + "id": { + "type": "integer" + }, + "interface": { + "type": "string" + }, + "key": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "key", + "interface", + "scope", + "endpoints" + ] + }, + "RemoteApplicationStatus": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "application-url": { + "type": "string" + }, + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteEndpoint" + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "life": { + "type": "string" + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + } + }, + "additionalProperties": false, + "required": [ + "application-url", + "application-name", + "endpoints", + "life", + "relations", + "status" + ] + }, + "RemoteEndpoint": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "limit", + "scope" + ] + }, + "ResolveCharmResult": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ResolveCharmResults": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolveCharmResult" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ResolveCharms": { + "type": "object", + "properties": { + "references": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "references" + ] + }, + "Resolved": { + "type": "object", + "properties": { + "retry": { + "type": "boolean" + }, + "unit-name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-name", + "retry" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "StatusHistoryFilter": { + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "delta": { + "type": "integer" + }, + "exclude": { + "type": "array", + "items": { + "type": "string" + } + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "size", + "date", + "delta", + "exclude" + ] + }, + "StatusHistoryRequest": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/definitions/StatusHistoryFilter" + }, + "historyKind": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "historyKind", + "size", + "filter", + "tag" + ] + }, + "StatusHistoryRequests": { + "type": "object", + "properties": { + "requests": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryRequest" + } + } + }, + "additionalProperties": false, + "required": [ + "requests" + ] + }, + "StatusHistoryResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "history": { + "$ref": "#/definitions/History" + } + }, + "additionalProperties": false, + "required": [ + "history" + ] + }, + "StatusHistoryResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusParams": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "UnitStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "charm": { + "type": "string" + }, + "leader": { + "type": "boolean" + }, + "machine": { + "type": "string" + }, + "opened-ports": { + "type": "array", + "items": { + "type": "string" + } + }, + "public-address": { + "type": "string" + }, + "subordinates": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "workload-status", + "workload-version", + "machine", + "opened-ports", + "public-address", + "charm", + "subordinates" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "Cloud", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Cloud": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudResults" + } + } + }, + "Clouds": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/CloudsResult" + } + } + }, + "Credential": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudCredentialResults" + } + } + }, + "DefaultCloud": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "InstanceTypes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CloudInstanceTypesConstraints" + }, + "Result": { + "$ref": "#/definitions/InstanceTypesResults" + } + } + }, + "RevokeCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpdateCloudCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserClouds" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Cloud": { + "type": "object", + "properties": { + "auth-types": { + "type": "array", + "items": { + "type": "string" + } + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudRegion" + } + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudCredentialResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudCredential" + } + }, + "additionalProperties": false + }, + "CloudCredentialResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudCredentialResult" + } + } + }, + "additionalProperties": false + }, + "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": { + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name" + ] + }, + "CloudResult": { + "type": "object", + "properties": { + "cloud": { + "$ref": "#/definitions/Cloud" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "CloudResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudResult" + } + } + }, + "additionalProperties": false + }, + "CloudsResult": { + "type": "object", + "properties": { + "clouds": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Cloud" + } + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "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 + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateCloudCredential": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "credential" + ] + }, + "UpdateCloudCredentials": { + "type": "object", + "properties": { + "credentials": { + "type": "array", + "items": { + "$ref": "#/definitions/UpdateCloudCredential" + } + } + }, + "additionalProperties": false + }, + "UserCloud": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "cloud-tag" + ] + }, + "UserClouds": { + "type": "object", + "properties": { + "user-clouds": { + "type": "array", + "items": { + "$ref": "#/definitions/UserCloud" + } + } + }, + "additionalProperties": false + }, + "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": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DestroyController": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyControllerArgs" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/UserAccessResults" + } + } + }, + "HostedModelConfigs": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/HostedModelConfigsResults" + } + } + }, + "InitiateMigration": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/InitiateMigrationArgs" + }, + "Result": { + "$ref": "#/definitions/InitiateMigrationResults" + } + } + }, + "ListBlockedModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelBlockInfoList" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyControllerAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveBlocks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RemoveBlocksArgs" + } + } + }, + "WatchAllModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "DestroyControllerArgs": { + "type": "object", + "properties": { + "destroy-models": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "destroy-models" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostedModelConfig": { + "type": "object", + "properties": { + "cloud-spec": { + "$ref": "#/definitions/CloudSpec" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "owner": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner" + ] + }, + "HostedModelConfigsResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/HostedModelConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "InitiateMigrationArgs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/MigrationSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "InitiateMigrationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "migration-id": { + "type": "string" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "migration-id" + ] + }, + "InitiateMigrationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/InitiateMigrationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MigrationSpec": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelBlockInfo": { + "type": "object", + "properties": { + "blocks": { + "type": "array", + "items": { + "type": "string" + } + }, + "model-uuid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "model-uuid", + "owner-tag", + "blocks" + ] + }, + "ModelBlockInfoList": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelBlockInfo" + } + } + }, + "additionalProperties": false + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelStatus": { + "type": "object", + "properties": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access" + ] + }, + "ModifyControllerAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyControllerAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RemoveBlocksArgs": { + "type": "object", + "properties": { + "all": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "all" + ] + }, + "UserAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "access" + ] + }, + "UserAccessResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserAccess" + } + }, + "additionalProperties": false + }, + "UserAccessResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserAccessResult" + } + } + }, + "additionalProperties": false + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "Deployer", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "ConnectionInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DeployerConnectionValues" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "DeployerConnectionValues": { + "type": "object", + "properties": { + "api-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "state-addresses": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "state-addresses", + "api-addresses" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "DiscoverSpaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DiscoverSpacesResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "provider-network-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "DiscoverSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderSpace" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ProviderSpace": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider-id", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-network-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "DiskManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineBlockDevices" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + }, + "WWN": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "WWN", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineBlockDevices": { + "type": "object", + "properties": { + "block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDevice" + } + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "machine-block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineBlockDevices" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-block-devices" + ] + } + } + } + }, + { + "Name": "EntityWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/EntitiesWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "EntitiesWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "FilesystemAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + }, + { + "Name": "Firewaller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "GetAssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetExposed": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "GetMachineActiveSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "GetMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachinePortsParams" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "WatchOpenedPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePorts": { + "type": "object", + "properties": { + "machine-tag": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "subnet-tag" + ] + }, + "MachinePortsParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePorts" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "HighAvailability", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "EnableHA": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ControllersSpecs" + }, + "Result": { + "$ref": "#/definitions/ControllersChangeResults" + } + } + }, + "ResumeHAReplicationAfterUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResumeReplicationParams" + } + } + }, + "StopHAReplicationForUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpgradeMongoParams" + }, + "Result": { + "$ref": "#/definitions/MongoUpgradeResults" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "Scope": { + "type": "string" + }, + "SpaceName": { + "type": "string" + }, + "SpaceProviderId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Value", + "Type", + "Scope", + "SpaceName", + "SpaceProviderId" + ] + }, + "ControllersChangeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ControllersChanges" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ControllersChangeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersChangeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ControllersChanges": { + "type": "object", + "properties": { + "added": { + "type": "array", + "items": { + "type": "string" + } + }, + "converted": { + "type": "array", + "items": { + "type": "string" + } + }, + "demoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "maintained": { + "type": "array", + "items": { + "type": "string" + } + }, + "promoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "removed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ControllersSpec": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "num-controllers": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "type": "string" + } + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "num-controllers" + ] + }, + "ControllersSpecs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "HAMember": { + "type": "object", + "properties": { + "public-address": { + "$ref": "#/definitions/Address" + }, + "series": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-address", + "series" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Member": { + "type": "object", + "properties": { + "Address": { + "type": "string" + }, + "Arbiter": { + "type": "boolean" + }, + "BuildIndexes": { + "type": "boolean" + }, + "Hidden": { + "type": "boolean" + }, + "Id": { + "type": "integer" + }, + "Priority": { + "type": "number" + }, + "SlaveDelay": { + "type": "integer" + }, + "Tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "Votes": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Id", + "Address", + "Arbiter", + "BuildIndexes", + "Hidden", + "Priority", + "Tags", + "SlaveDelay", + "Votes" + ] + }, + "MongoUpgradeResults": { + "type": "object", + "properties": { + "ha-members": { + "type": "array", + "items": { + "$ref": "#/definitions/HAMember" + } + }, + "master": { + "$ref": "#/definitions/HAMember" + }, + "rs-members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "rs-members", + "master", + "ha-members" + ] + }, + "MongoVersion": { + "type": "object", + "properties": { + "engine": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "patch": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "major", + "minor", + "patch", + "engine" + ] + }, + "ResumeReplicationParams": { + "type": "object", + "properties": { + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "members" + ] + }, + "UpgradeMongoParams": { + "type": "object", + "properties": { + "target": { + "$ref": "#/definitions/MongoVersion" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "HostKeyReporter", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ReportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SSHHostKeySet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHHostKeySet": { + "type": "object", + "properties": { + "entity-keys": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHHostKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "entity-keys" + ] + }, + "SSHHostKeys": { + "type": "object", + "properties": { + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-keys" + ] + } + } + } + }, + { + "Name": "ImageManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "DeleteImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ListImageResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageFilterParams": { + "type": "object", + "properties": { + "images": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "images" + ] + }, + "ImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series", + "url", + "created" + ] + }, + "ImageSpec": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series" + ] + }, + "ListImageResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "ImageMetadata", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Delete": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataImageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageMetadataFilter" + }, + "Result": { + "$ref": "#/definitions/ListCloudImageMetadataResult" + } + } + }, + "Save": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataSaveParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateFromPublishedImages": { + "type": "object" + } + }, + "definitions": { + "CloudImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "image-id": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "region": { + "type": "string" + }, + "root-storage-size": { + "type": "integer" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "string" + }, + "source": { + "type": "string" + }, + "stream": { + "type": "string" + }, + "version": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "image-id", + "region", + "version", + "series", + "arch", + "source", + "priority" + ] + }, + "CloudImageMetadataList": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageMetadataFilter": { + "type": "object", + "properties": { + "arches": { + "type": "array", + "items": { + "type": "string" + } + }, + "region": { + "type": "string" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "stream": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ListCloudImageMetadataResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MetadataImageIds": { + "type": "object", + "properties": { + "image-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "image-ids" + ] + }, + "MetadataSaveParams": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadataList" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "InstancePoller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AreManuallyProvisioned": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineAddressesResults" + } + } + }, + "SetInstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Status": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "MachineAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "MachineAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "KeyManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DeleteKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ImportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListSSHKeys" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSSHKeys": { + "type": "object", + "properties": { + "entities": { + "$ref": "#/definitions/Entities" + }, + "mode": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "mode" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModifyUserSSHKeys": { + "type": "object", + "properties": { + "ssh-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "ssh-keys" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "KeyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "WatchAuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LeadershipService", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "BlockUntilLeadershipReleased": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationTag" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "ClaimLeadership": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ClaimLeadershipBulkParams" + }, + "Result": { + "$ref": "#/definitions/ClaimLeadershipBulkResults" + } + } + } + }, + "definitions": { + "ApplicationTag": { + "type": "object", + "properties": { + "Name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Name" + ] + }, + "ClaimLeadershipBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/ClaimLeadershipParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "ClaimLeadershipBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ClaimLeadershipParams": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "duration": { + "type": "number" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "unit-tag", + "duration" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "LifeFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LogForwarding", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingGetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/LogForwardingGetLastSentResults" + } + } + }, + "SetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingSetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingGetLastSentParams": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingID" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "LogForwardingGetLastSentResult": { + "type": "object", + "properties": { + "err": { + "$ref": "#/definitions/Error" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "record-id", + "record-timestamp", + "err" + ] + }, + "LogForwardingGetLastSentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingGetLastSentResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingID": { + "type": "object", + "properties": { + "model": { + "type": "string" + }, + "sink": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model", + "sink" + ] + }, + "LogForwardingSetLastSentParam": { + "type": "object", + "properties": { + "LogForwardingID": { + "$ref": "#/definitions/LogForwardingID" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "LogForwardingID", + "record-id", + "record-timestamp" + ] + }, + "LogForwardingSetLastSentParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingSetLastSentParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Logger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "LoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "WatchLoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineActions", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RunningActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineManager", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "DestroyMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DestroyMachineResults" + } + } + }, + "ForceDestroyMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DestroyMachineResults" + } + } + }, + "InstanceTypes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelInstanceTypesConstraints" + }, + "Result": { + "$ref": "#/definitions/InstanceTypesResults" + } + } + } + }, + "definitions": { + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyMachineInfo": { + "type": "object", + "properties": { + "destroyed-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "destroyed-units": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "detached-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false + }, + "DestroyMachineResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "$ref": "#/definitions/DestroyMachineInfo" + } + }, + "additionalProperties": false + }, + "DestroyMachineResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/DestroyMachineResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "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 + }, + "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": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MachineUndertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AllMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/EntitiesResults" + } + } + }, + "CompleteMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + } + } + }, + "GetMachineProviderInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProviderInterfaceInfoResults" + } + } + }, + "WatchMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResult": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProviderInterfaceInfo": { + "type": "object", + "properties": { + "interface-name": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "provider-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "interface-name", + "mac-address", + "provider-id" + ] + }, + "ProviderInterfaceInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "interfaces": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfo" + } + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "interfaces" + ] + }, + "ProviderInterfaceInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Machiner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Jobs": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/JobsResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetMachineAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetObservedNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineNetworkConfig" + } + } + }, + "SetProviderNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "JobsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "jobs" + ] + }, + "JobsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/JobsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkRoute" + } + }, + "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" + ] + }, + "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": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetMachineNetworkConfig": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "config" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MeterStatus", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsAdder", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + } + } + } + }, + { + "Name": "MetricsDebug", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "GetMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MetricResults" + } + } + }, + "SetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MeterStatusParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityMetrics": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricResult" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusParam": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "code", + "info" + ] + }, + "MeterStatusParams": { + "type": "object", + "properties": { + "statues": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusParam" + } + } + }, + "additionalProperties": false, + "required": [ + "statues" + ] + }, + "MetricResult": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "unit": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "time", + "key", + "value", + "unit" + ] + }, + "MetricResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityMetrics" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddJujuMachineMetrics": { + "type": "object" + }, + "CleanupOldMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SendMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "MigrationFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Phase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PhaseResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PhaseResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "phase": { + "type": "string" + } + }, + "additionalProperties": false + }, + "PhaseResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PhaseResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MigrationMaster", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Export": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "MigrationStatus": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MasterMigrationStatus" + } + } + }, + "MinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MinionReports" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + }, + "Prechecks": { + "type": "object" + }, + "Reap": { + "type": "object" + }, + "SetPhase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationPhaseArgs" + } + } + }, + "SetStatusMessage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationStatusMessageArgs" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchMinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MasterMigrationStatus": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "phase-changed-time": { + "type": "string", + "format": "date-time" + }, + "spec": { + "$ref": "#/definitions/MigrationSpec" + } + }, + "additionalProperties": false, + "required": [ + "spec", + "migration-id", + "phase", + "phase-changed-time" + ] + }, + "MigrationModelInfo": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "controller-agent-version": { + "$ref": "#/definitions/Number" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version", + "controller-agent-version" + ] + }, + "MigrationSpec": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "MinionReports": { + "type": "object", + "properties": { + "failed": { + "type": "array", + "items": { + "type": "string" + } + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success-count": { + "type": "integer" + }, + "unknown-count": { + "type": "integer" + }, + "unknown-sample": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success-count", + "unknown-count", + "unknown-sample", + "failed" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelResource" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "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": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + }, + "SetMigrationPhaseArgs": { + "type": "object", + "properties": { + "phase": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "phase" + ] + }, + "SetMigrationStatusMessageArgs": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message" + ] + } + } + } + }, + { + "Name": "MigrationMinion", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Report": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MinionReport" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MinionReport": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "MigrationStatusWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationStatus" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "MigrationStatus": { + "type": "object", + "properties": { + "attempt": { + "type": "integer" + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "source-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "source-ca-cert": { + "type": "string" + }, + "target-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "target-ca-cert": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "attempt", + "phase", + "source-api-addrs", + "source-ca-cert", + "target-api-addrs", + "target-ca-cert" + ] + } + } + } + }, + { + "Name": "MigrationTarget", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Abort": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "Activate": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "AdoptResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AdoptResourcesArgs" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "Import": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "LatestLogTime": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + }, + "Result": { + "type": "string", + "format": "date-time" + } + } + }, + "Prechecks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + } + }, + "definitions": { + "AdoptResourcesArgs": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + }, + "source-controller-version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "source-controller-version" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "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, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version", + "controller-agent-version" + ] + }, + "ModelArgs": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelResource" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "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": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + } + } + } + }, + { + "Name": "ModelConfig", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + }, + "SLALevel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetSLALevel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSLA" + } + } + } + }, + "definitions": { + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelSLA": { + "type": "object", + "properties": { + "ModelSLAInfo": { + "$ref": "#/definitions/ModelSLAInfo" + }, + "creds": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "ModelSLAInfo", + "creds" + ] + }, + "ModelSLAInfo": { + "type": "object", + "properties": { + "level": { + "type": "string" + }, + "owner": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "level", + "owner" + ] + }, + "ModelSet": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + } + } + } + }, + { + "Name": "ModelManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CreateModel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelCreateArgs" + }, + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "DestroyModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DumpModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "DumpModelsDB": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "ListModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entity" + }, + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "ModelDefaults": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelDefaultsResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelInfoResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyModelAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnsetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MapResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "MapResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MapResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelCreateArgs": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "credential": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "region": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner-tag" + ] + }, + "ModelDefaultValues": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelDefaults": { + "type": "object", + "properties": { + "controller": { + "type": "object", + "additionalProperties": true + }, + "default": { + "type": "object", + "additionalProperties": true + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/RegionDefaults" + } + } + }, + "additionalProperties": false + }, + "ModelDefaultsResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ModelDefaults" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "migration": { + "$ref": "#/definitions/ModelMigrationStatus" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "sla": { + "$ref": "#/definitions/ModelSLAInfo" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "cloud-tag", + "owner-tag", + "life", + "users", + "machines", + "sla", + "agent-version" + ] + }, + "ModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelInfo" + } + }, + "additionalProperties": false + }, + "ModelInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelMigrationStatus": { + "type": "object", + "properties": { + "end": { + "type": "string", + "format": "date-time" + }, + "start": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "start" + ] + }, + "ModelSLAInfo": { + "type": "object", + "properties": { + "level": { + "type": "string" + }, + "owner": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "level", + "owner" + ] + }, + "ModelStatus": { + "type": "object", + "properties": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelUnsetKeys": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "model-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access", + "model-tag" + ] + }, + "ModifyModelAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyModelAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "RegionDefaults": { + "type": "object", + "properties": { + "region-name": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "region-name", + "value" + ] + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelDefaultValues" + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUnsetKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "NotifyWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Payloads", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PayloadListArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadListResults" + } + } + } + }, + "definitions": { + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + }, + "PayloadListArgs": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "PayloadListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "PayloadsHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "LookUp": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LookUpPayloadArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetPayloadStatusArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Track": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/TrackPayloadArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Untrack": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LookUpPayloadArg": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "id" + ] + }, + "LookUpPayloadArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/LookUpPayloadArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + }, + "PayloadResult": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "not-found": { + "type": "boolean" + }, + "payload": { + "$ref": "#/definitions/Payload" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "payload", + "not-found" + ] + }, + "PayloadResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PayloadResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetPayloadStatusArg": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "status" + ] + }, + "SetPayloadStatusArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/SetPayloadStatusArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "TrackPayloadArgs": { + "type": "object", + "properties": { + "payloads": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "payloads" + ] + } + } + } + }, + { + "Name": "Pinger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Ping": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Provisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "Constraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConstraintsResults" + } + } + }, + "ContainerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ContainerConfig" + } + } + }, + "ContainerManagerConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ContainerManagerConfigParams" + }, + "Result": { + "$ref": "#/definitions/ContainerManagerConfig" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DistributionGroup": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DistributionGroupResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "GetContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "HostChangesForContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/HostNetworkChangeResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "MachinesWithTransientErrors": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "MarkMachinesForRemoval": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PrepareContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProvisioningInfoResults" + } + } + }, + "ReleaseContainerAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Series": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "SetHostMachineNetworkConfig": { + "type": "object", + "properties": { + "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" + } + } + }, + "SetProviderNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "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" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkRoute" + } + }, + "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" + ] + }, + "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": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "controller-config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "image-metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "placement": { + "type": "string" + }, + "series": { + "type": "string" + }, + "subnets-to-zones": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParams" + } + } + }, + "additionalProperties": false, + "required": [ + "constraints", + "series", + "placement", + "jobs" + ] + }, + "ProvisioningInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ProvisioningInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ProvisioningInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProvisioningInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetMachineNetworkConfig": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "config" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Settings": { + "type": "object", + "properties": { + "AutoNoProxy": { + "type": "string" + }, + "Ftp": { + "type": "string" + }, + "Http": { + "type": "string" + }, + "Https": { + "type": "string" + }, + "NoProxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Http", + "Https", + "Ftp", + "NoProxy", + "AutoNoProxy" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateBehavior": { + "type": "object", + "properties": { + "enable-os-refresh-update": { + "type": "boolean" + }, + "enable-os-upgrade": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "enable-os-refresh-update", + "enable-os-upgrade" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + }, + "wwn": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "WatchContainer": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "container-type" + ] + }, + "WatchContainers": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/WatchContainer" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + } + } + } + }, + { + "Name": "ProxyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ProxyConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProxyConfigResults" + } + } + }, + "WatchForProxyConfigAndAPIHostPortChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProxyConfig": { + "type": "object", + "properties": { + "ftp": { + "type": "string" + }, + "http": { + "type": "string" + }, + "https": { + "type": "string" + }, + "no-proxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "http", + "https", + "ftp", + "no-proxy" + ] + }, + "ProxyConfigResult": { + "type": "object", + "properties": { + "apt-proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + } + }, + "additionalProperties": false, + "required": [ + "proxy-settings", + "apt-proxy-settings" + ] + }, + "ProxyConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProxyConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Reboot", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetRebootAction": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RebootActionResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchForRebootEvent": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "RebootActionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false + }, + "RebootActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RebootActionResult" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "RelationUnitsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + } + } + } + }, + { + "Name": "Resources", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddPendingResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddPendingResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/AddPendingResourcesResult" + } + } + }, + "ListResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/ResourcesResults" + } + } + } + }, + "definitions": { + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddPendingResourcesArgs": { + "type": "object", + "properties": { + "AddCharmWithAuthorization": { + "$ref": "#/definitions/AddCharmWithAuthorization" + }, + "Entity": { + "$ref": "#/definitions/Entity" + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "AddCharmWithAuthorization", + "resources" + ] + }, + "AddPendingResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "pending-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "pending-ids" + ] + }, + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListResourcesArgs": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "ResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "charm-store-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + }, + "unit-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitResources" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources", + "charm-store-resources", + "unit-resources" + ] + }, + "ResourcesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourcesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitResources": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "download-progress": { + "type": "object", + "patternProperties": { + ".*": { + "type": "integer" + } + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "resources", + "download-progress" + ] + } + } + } + }, + { + "Name": "ResourcesHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetResourceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListUnitResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/UnitResourcesResult" + } + } + } + }, + "definitions": { + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListUnitResourcesArgs": { + "type": "object", + "properties": { + "resource-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "resource-names" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "UnitResourceResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resource": { + "$ref": "#/definitions/Resource" + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resource" + ] + }, + "UnitResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitResourceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources" + ] + } + } + } + }, + { + "Name": "Resumer", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ResumeTransactions": { + "type": "object" + } + } + } + }, + { + "Name": "RetryStrategy", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "RetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RetryStrategyResults" + } + } + }, + "WatchRetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RetryStrategy": { + "type": "object", + "properties": { + "jitter-retry-time": { + "type": "boolean" + }, + "max-retry-time": { + "type": "integer" + }, + "min-retry-time": { + "type": "integer" + }, + "retry-time-factor": { + "type": "integer" + }, + "should-retry": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "should-retry", + "min-retry-time", + "max-retry-time", + "jitter-retry-time", + "retry-time-factor" + ] + }, + "RetryStrategyResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/RetryStrategy" + } + }, + "additionalProperties": false + }, + "RetryStrategyResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RetryStrategyResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "SSHClient", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AllAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressesResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "Proxy": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SSHProxyResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "PublicKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHPublicKeysResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHAddressResult": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "SSHAddressResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "SSHAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHProxyResult": { + "type": "object", + "properties": { + "use-proxy": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "use-proxy" + ] + }, + "SSHPublicKeysResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "SSHPublicKeysResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHPublicKeysResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Singular", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Claim": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SingularClaims" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Wait": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SingularClaim": { + "type": "object", + "properties": { + "controller-tag": { + "type": "string" + }, + "duration": { + "type": "integer" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "controller-tag", + "duration" + ] + }, + "SingularClaims": { + "type": "object", + "properties": { + "claims": { + "type": "array", + "items": { + "$ref": "#/definitions/SingularClaim" + } + } + }, + "additionalProperties": false, + "required": [ + "claims" + ] + } + } + } + }, + { + "Name": "Spaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ListSpacesResults" + } + } + } + }, + "definitions": { + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Space" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Space": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-network-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + } + } + } + }, + { + "Name": "StatusHistory", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "Prune": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryPruneArgs" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "StatusHistoryPruneArgs": { + "type": "object", + "properties": { + "max-history-mb": { + "type": "integer" + }, + "max-history-time": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "max-history-time", + "max-history-mb" + ] + } + } + } + }, + { + "Name": "Storage", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddToUnit": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Attach": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreatePool": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Detach": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemFilters" + }, + "Result": { + "$ref": "#/definitions/FilesystemDetailsListResults" + } + } + }, + "ListPools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePoolFilters" + }, + "Result": { + "$ref": "#/definitions/StoragePoolsResults" + } + } + }, + "ListStorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageFilters" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsListResults" + } + } + }, + "ListVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeFilters" + }, + "Result": { + "$ref": "#/definitions/VolumeDetailsListResults" + } + } + }, + "StorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FilesystemAttachmentDetails": { + "type": "object", + "properties": { + "FilesystemAttachmentInfo": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "FilesystemAttachmentInfo" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemDetails": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "life": { + "type": "string" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/FilesystemAttachmentDetails" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info", + "status" + ] + }, + "FilesystemDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetails" + } + } + }, + "additionalProperties": false + }, + "FilesystemDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemFilter" + } + } + }, + "additionalProperties": false + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "pool", + "size" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachmentDetails": { + "type": "object", + "properties": { + "life": { + "type": "string" + }, + "location": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag", + "machine-tag" + ] + }, + "StorageAttachmentId": { + "type": "object", + "properties": { + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag" + ] + }, + "StorageAttachmentIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StorageDetails": { + "type": "object", + "properties": { + "attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageAttachmentDetails" + } + } + }, + "kind": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "kind", + "status", + "persistent" + ] + }, + "StorageDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetails" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageDetails" + } + }, + "additionalProperties": false + }, + "StorageDetailsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsResult" + } + } + }, + "additionalProperties": false + }, + "StorageFilter": { + "type": "object", + "additionalProperties": false + }, + "StorageFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePool": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "name": { + "type": "string" + }, + "provider": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider", + "attrs" + ] + }, + "StoragePoolFilter": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + }, + "providers": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StoragePoolFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "storage-pools": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolsResult" + } + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "VolumeAttachmentDetails": { + "type": "object", + "properties": { + "VolumeAttachmentInfo": { + "$ref": "#/definitions/VolumeAttachmentInfo" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "VolumeAttachmentInfo" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeDetails": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "life": { + "type": "string" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/VolumeAttachmentDetails" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info", + "status" + ] + }, + "VolumeDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetails" + } + } + }, + "additionalProperties": false + }, + "VolumeDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "VolumeFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "VolumeFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeFilter" + } + } + }, + "additionalProperties": false + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + }, + "wwn": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + } + } + } + }, + { + "Name": "StorageProvisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentParamsResults" + } + } + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentResults" + } + } + }, + "FilesystemParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemParamsResults" + } + } + }, + "Filesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveAttachment": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Filesystems" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Volumes" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentParamsResults" + } + } + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentResults" + } + } + }, + "VolumeBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/BlockDeviceResults" + } + } + }, + "VolumeParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeParamsResults" + } + } + }, + "Volumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeResults" + } + } + }, + "WatchBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchFilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchVolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + }, + "WWN": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "WWN", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "BlockDeviceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/BlockDevice" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockDeviceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDeviceResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Filesystem": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info" + ] + }, + "FilesystemAttachment": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "info" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "filesystem-tag": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "mount-point": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "provider" + ] + }, + "FilesystemAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "filesystem-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystem-attachments" + ] + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "pool", + "size" + ] + }, + "FilesystemParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/FilesystemAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "filesystem-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "size", + "provider" + ] + }, + "FilesystemParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Filesystem" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemResult" + } + } + }, + "additionalProperties": false + }, + "Filesystems": { + "type": "object", + "properties": { + "filesystems": { + "type": "array", + "items": { + "$ref": "#/definitions/Filesystem" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystems" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "MachineStorageIdsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachment": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeAttachmentInfo" + }, + "machine-tag": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "volume-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "volume-attachments" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + }, + "wwn": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "VolumeParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Volume" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeResult" + } + } + }, + "additionalProperties": false + }, + "Volumes": { + "type": "object", + "properties": { + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/Volume" + } + } + }, + "additionalProperties": false, + "required": [ + "volumes" + ] + } + } + } + }, + { + "Name": "StringsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Subnets", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SpaceResults" + } + } + }, + "AllZones": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ZoneResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "provider-network-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SpaceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "SpaceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SpaceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-network-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ZoneResult": { + "type": "object", + "properties": { + "available": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "available" + ] + }, + "ZoneResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ZoneResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Undertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UndertakerModelInfoResult" + } + } + }, + "ProcessDyingModel": { + "type": "object" + }, + "RemoveModel": { + "type": "object" + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchModelResources": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "UndertakerModelInfo": { + "type": "object", + "properties": { + "global-name": { + "type": "string" + }, + "is-system": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "global-name", + "is-system", + "life" + ] + }, + "UndertakerModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UndertakerModelInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + } + } + } + }, + { + "Name": "UnitAssigner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AssignUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchUnitAssignments": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Uniter", + "Version": 5, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AddUnitStorage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationStatusResults" + } + } + }, + "AssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "AvailabilityZone": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "CharmArchiveSha256": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURLs" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "CharmModifiedVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/IntResults" + } + } + }, + "CharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "ClearResolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ClosePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConfigSettingsResults" + } + } + }, + "CurrentModel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelResult" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyAllSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnterScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "GetPrincipal": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "HasSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "JoinedRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "LeaveScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Merge": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "NetworkInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/NetworkInfoParams" + }, + "Result": { + "$ref": "#/definitions/NetworkInfoResults" + } + } + }, + "OpenPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "ProviderType": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Read": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/GetLeadershipSettingsBulkResults" + } + } + }, + "ReadRemoteSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitPairs" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "ReadSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "Relation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RelationById": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationIds" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RemoveStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ResolvedModeResults" + } + } + }, + "SLALevel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesCharmURL" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetUnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetWorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityWorkloadVersions" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StorageAttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "StorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentResults" + } + } + }, + "UnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "UnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentIdsResults" + } + } + }, + "UpdateSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitsSettings" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchLeadershipSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchRelationUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResults" + } + } + }, + "WatchStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "ApplicationStatusResult": { + "type": "object", + "properties": { + "application": { + "$ref": "#/definitions/StatusResult" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StatusResult" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "units" + ] + }, + "ApplicationStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmURLs": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ConfigSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "ConfigSettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Endpoint": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "relation": { + "$ref": "#/definitions/CharmRelation" + } + }, + "additionalProperties": false, + "required": [ + "application-name", + "relation" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesCharmURL": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityCharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesPortRanges": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityCharmURL": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "charm-url" + ] + }, + "EntityPortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "protocol", + "from-port", + "to-port" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "EntityWorkloadVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "workload-version" + ] + }, + "EntityWorkloadVersions": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityWorkloadVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/GetLeadershipSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "IntResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "IntResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/IntResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "InterfaceAddress": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "cidr" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "MergeLeadershipSettingsBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MergeLeadershipSettingsParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MergeLeadershipSettingsParam": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "settings" + ] + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid" + ] + }, + "NetworkInfo": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/InterfaceAddress" + } + }, + "interface-name": { + "type": "string" + }, + "mac-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "mac-address", + "interface-name", + "addresses" + ] + }, + "NetworkInfoParams": { + "type": "object", + "properties": { + "bindings": { + "type": "array", + "items": { + "type": "string" + } + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "bindings" + ] + }, + "NetworkInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "network-info": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkInfo" + } + } + }, + "additionalProperties": false, + "required": [ + "network-info" + ] + }, + "NetworkInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/NetworkInfoResult" + } + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "RelationIds": { + "type": "object", + "properties": { + "relation-ids": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-ids" + ] + }, + "RelationResult": { + "type": "object", + "properties": { + "endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "integer" + }, + "key": { + "type": "string" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "id", + "key", + "endpoint" + ] + }, + "RelationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RelationUnit": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit" + ] + }, + "RelationUnitPair": { + "type": "object", + "properties": { + "local-unit": { + "type": "string" + }, + "relation": { + "type": "string" + }, + "remote-unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "local-unit", + "remote-unit" + ] + }, + "RelationUnitPairs": { + "type": "object", + "properties": { + "relation-unit-pairs": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitPair" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-unit-pairs" + ] + }, + "RelationUnitSettings": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit", + "settings" + ] + }, + "RelationUnits": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnit" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsSettings": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitSettings" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "RelationUnitsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ResolvedModeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "mode": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "mode" + ] + }, + "ResolvedModeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolvedModeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "SettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "SettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachment": { + "type": "object", + "properties": { + "kind": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "location": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "unit-tag", + "kind", + "location", + "life" + ] + }, + "StorageAttachmentId": { + "type": "object", + "properties": { + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag" + ] + }, + "StorageAttachmentIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "StorageAttachmentIdsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachmentIds" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentIdsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentIdsResult" + } + } + }, + "additionalProperties": false + }, + "StorageAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "StringBoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ok": { + "type": "boolean" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result", + "ok" + ] + }, + "StringBoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringBoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + } + } + } + }, + { + "Name": "Upgrader", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "DesiredVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VersionResults" + } + } + }, + "SetTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesVersion" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Tools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ToolsResults" + } + } + }, + "WatchAPIVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesVersion": { + "type": "object", + "properties": { + "agent-tools": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "agent-tools" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "tools": { + "$ref": "#/definitions/Version" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "tools" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Version": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "VersionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false + }, + "VersionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VersionResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "UserManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddUsers" + }, + "Result": { + "$ref": "#/definitions/AddUserResults" + } + } + }, + "DisableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPassword": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserInfoRequest" + }, + "Result": { + "$ref": "#/definitions/UserInfoResults" + } + } + } + }, + "definitions": { + "AddUser": { + "type": "object", + "properties": { + "display-name": { + "type": "string" + }, + "password": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name" + ] + }, + "AddUserResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "secret-key": { + "type": "array", + "items": { + "type": "integer" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false + }, + "AddUserResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUserResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AddUsers": { + "type": "object", + "properties": { + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUser" + } + } + }, + "additionalProperties": false, + "required": [ + "users" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "UserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "created-by": { + "type": "string" + }, + "date-created": { + "type": "string", + "format": "date-time" + }, + "disabled": { + "type": "boolean" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name", + "access", + "created-by", + "date-created", + "disabled" + ] + }, + "UserInfoRequest": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "include-disabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "include-disabled" + ] + }, + "UserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserInfo" + } + }, + "additionalProperties": false + }, + "UserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "VolumeAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + } +] diff --git a/modules/libjuju/juju/client/schemas-juju-2.3-alpha1.json b/modules/libjuju/juju/client/schemas-juju-2.3-alpha1.json new file mode 100644 index 0000000..e59c105 --- /dev/null +++ b/modules/libjuju/juju/client/schemas-juju-2.3-alpha1.json @@ -0,0 +1,26050 @@ +[ + { + "Name": "Action", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "ApplicationsCharmsActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationsCharmActionsResults" + } + } + }, + "Cancel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "Enqueue": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Actions" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "FindActionTagsByPrefix": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindTags" + }, + "Result": { + "$ref": "#/definitions/FindTagsResults" + } + } + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindActionsByNames" + }, + "Result": { + "$ref": "#/definitions/ActionsByNames" + } + } + }, + "ListAll": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListCompleted": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListPending": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListRunning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "Run": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "RunOnAllMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "Actions": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/Action" + } + } + }, + "additionalProperties": false + }, + "ActionsByName": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByNames": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByName" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "ApplicationCharmActionsResult": { + "type": "object", + "properties": { + "actions": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ActionSpec" + } + } + }, + "application-tag": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ApplicationsCharmActionsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationCharmActionsResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FindTags": { + "type": "object", + "properties": { + "prefixes": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "prefixes" + ] + }, + "FindTagsResults": { + "type": "object", + "properties": { + "matches": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + } + } + }, + "additionalProperties": false, + "required": [ + "matches" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RunParams": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "type": "string" + } + }, + "commands": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "type": "string" + } + }, + "timeout": { + "type": "integer" + }, + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "commands", + "timeout" + ] + } + } + } + }, + { + "Name": "Agent", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetEntities": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AgentGetEntitiesResults" + } + } + }, + "IsMaster": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/IsMasterResult" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateServingInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StateServingInfo" + } + } + }, + "WatchCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "AgentGetEntitiesResult": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "jobs", + "container-type" + ] + }, + "AgentGetEntitiesResults": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/AgentGetEntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "IsMasterResult": { + "type": "object", + "properties": { + "master": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "master" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StateServingInfo": { + "type": "object", + "properties": { + "api-port": { + "type": "integer" + }, + "ca-private-key": { + "type": "string" + }, + "cert": { + "type": "string" + }, + "private-key": { + "type": "string" + }, + "shared-secret": { + "type": "string" + }, + "state-port": { + "type": "integer" + }, + "system-identity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "api-port", + "state-port", + "cert", + "private-key", + "ca-private-key", + "shared-secret", + "system-identity" + ] + } + } + } + }, + { + "Name": "AgentTools", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "UpdateToolsAvailable": { + "type": "object" + } + } + } + }, + { + "Name": "AllModelWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "AllWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "Annotations", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AnnotationsGetResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AnnotationsSet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "AnnotationsGetResult": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/ErrorResult" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "AnnotationsGetResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AnnotationsGetResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AnnotationsSet": { + "type": "object", + "properties": { + "annotations": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityAnnotations" + } + } + }, + "additionalProperties": false, + "required": [ + "annotations" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityAnnotations": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Application", + "Version": 5, + "Schema": { + "type": "object", + "properties": { + "AddRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddRelation" + }, + "Result": { + "$ref": "#/definitions/AddRelationResults" + } + } + }, + "AddUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddApplicationUnits" + }, + "Result": { + "$ref": "#/definitions/AddApplicationUnitsResults" + } + } + }, + "CharmRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationCharmRelations" + }, + "Result": { + "$ref": "#/definitions/ApplicationCharmRelationsResults" + } + } + }, + "Consume": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ConsumeApplicationArgs" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Deploy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationsDeploy" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationDestroy" + } + } + }, + "DestroyApplication": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DestroyApplicationResults" + } + } + }, + "DestroyRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyRelation" + } + } + }, + "DestroyUnit": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DestroyUnitResults" + } + } + }, + "DestroyUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyApplicationUnits" + } + } + }, + "Expose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationExpose" + } + } + }, + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/ApplicationGetResults" + } + } + }, + "GetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "GetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/GetApplicationConstraints" + }, + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSet" + } + } + }, + "SetCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSetCharm" + } + } + }, + "SetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "SetMetricCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationMetricCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Unexpose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnexpose" + } + } + }, + "Unset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnset" + } + } + }, + "Update": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUpdate" + } + } + } + }, + "definitions": { + "AddApplicationUnits": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "attach-storage": { + "type": "array", + "items": { + "type": "string" + } + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "num-units", + "placement" + ] + }, + "AddApplicationUnitsResults": { + "type": "object", + "properties": { + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "units" + ] + }, + "AddRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "AddRelationResults": { + "type": "object", + "properties": { + "endpoints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "ApplicationCharmRelations": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationCharmRelationsResults": { + "type": "object", + "properties": { + "charm-relations": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-relations" + ] + }, + "ApplicationDeploy": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "attach-storage": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-yaml": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "series": { + "type": "string" + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Constraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "series", + "charm-url", + "channel", + "num-units", + "config-yaml", + "constraints" + ] + }, + "ApplicationDestroy": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationExpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGet": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGetResults": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm", + "config", + "constraints", + "series" + ] + }, + "ApplicationMetricCredential": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "metrics-credentials": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "metrics-credentials" + ] + }, + "ApplicationMetricCredentials": { + "type": "object", + "properties": { + "creds": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationMetricCredential" + } + } + }, + "additionalProperties": false, + "required": [ + "creds" + ] + }, + "ApplicationOffer": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "application-description": { + "type": "string" + }, + "bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteEndpoint" + } + }, + "offer-name": { + "type": "string" + }, + "offer-url": { + "type": "string" + }, + "source-model-tag": { + "type": "string" + }, + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteSpace" + } + } + }, + "additionalProperties": false, + "required": [ + "source-model-tag", + "offer-url", + "offer-name", + "application-description", + "endpoints", + "spaces", + "bindings", + "access" + ] + }, + "ApplicationSet": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationSetCharm": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config-settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-settings-yaml": { + "type": "string" + }, + "force-series": { + "type": "boolean" + }, + "force-units": { + "type": "boolean" + }, + "resource-ids": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "storage-constraints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageConstraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "channel", + "force-units", + "force-series" + ] + }, + "ApplicationUnexpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationUnset": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationUpdate": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "force-charm-url": { + "type": "boolean" + }, + "force-series": { + "type": "boolean" + }, + "min-units": { + "type": "integer" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "settings-yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "force-charm-url", + "force-series", + "settings-yaml" + ] + }, + "ApplicationsDeploy": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationDeploy" + } + } + }, + "additionalProperties": false, + "required": [ + "applications" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "ConsumeApplicationArg": { + "type": "object", + "properties": { + "ApplicationOffer": { + "$ref": "#/definitions/ApplicationOffer" + }, + "application-alias": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + } + }, + "additionalProperties": false, + "required": [ + "ApplicationOffer" + ] + }, + "ConsumeApplicationArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/ConsumeApplicationArg" + } + } + }, + "additionalProperties": false + }, + "DestroyApplicationInfo": { + "type": "object", + "properties": { + "destroyed-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "destroyed-units": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "detached-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false + }, + "DestroyApplicationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "$ref": "#/definitions/DestroyApplicationInfo" + } + }, + "additionalProperties": false + }, + "DestroyApplicationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/DestroyApplicationResult" + } + } + }, + "additionalProperties": false + }, + "DestroyApplicationUnits": { + "type": "object", + "properties": { + "unit-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "unit-names" + ] + }, + "DestroyRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "DestroyUnitInfo": { + "type": "object", + "properties": { + "destroyed-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "detached-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false + }, + "DestroyUnitResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "$ref": "#/definitions/DestroyUnitInfo" + } + }, + "additionalProperties": false + }, + "DestroyUnitResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/DestroyUnitResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetApplicationConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "RemoteEndpoint": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "limit", + "scope" + ] + }, + "RemoteSpace": { + "type": "object", + "properties": { + "cloud-type": { + "type": "string" + }, + "name": { + "type": "string" + }, + "provider-attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider-id": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "cloud-type", + "name", + "provider-id", + "provider-attributes", + "subnets" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-network-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "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": "ApplicationScaler", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Rescale": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Backups", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Create": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsCreateArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "FinishRestore": { + "type": "object" + }, + "Info": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsInfoArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsListArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsListResult" + } + } + }, + "PrepareRestore": { + "type": "object" + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsRemoveArgs" + } + } + }, + "Restore": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RestoreArgs" + } + } + } + }, + "definitions": { + "BackupsCreateArgs": { + "type": "object", + "properties": { + "notes": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "notes" + ] + }, + "BackupsInfoArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "BackupsListArgs": { + "type": "object", + "additionalProperties": false + }, + "BackupsListResult": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "BackupsMetadataResult": { + "type": "object", + "properties": { + "ca-cert": { + "type": "string" + }, + "ca-private-key": { + "type": "string" + }, + "checksum": { + "type": "string" + }, + "checksum-format": { + "type": "string" + }, + "finished": { + "type": "string", + "format": "date-time" + }, + "hostname": { + "type": "string" + }, + "id": { + "type": "string" + }, + "machine": { + "type": "string" + }, + "model": { + "type": "string" + }, + "notes": { + "type": "string" + }, + "series": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "started": { + "type": "string", + "format": "date-time" + }, + "stored": { + "type": "string", + "format": "date-time" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "id", + "checksum", + "checksum-format", + "size", + "stored", + "started", + "finished", + "notes", + "model", + "machine", + "hostname", + "version", + "series", + "ca-cert", + "ca-private-key" + ] + }, + "BackupsRemoveArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "RestoreArgs": { + "type": "object", + "properties": { + "backup-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "backup-id" + ] + } + } + } + }, + { + "Name": "Block", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BlockResults" + } + } + }, + "SwitchBlockOff": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "SwitchBlockOn": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Block": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "tag", + "type" + ] + }, + "BlockResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Block" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockResult" + } + } + }, + "additionalProperties": false + }, + "BlockSwitchParams": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Bundle", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + } + }, + "definitions": { + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "CharmRevisionUpdater", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "UpdateLatestRevisions": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Charms", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CharmInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/CharmInfo" + } + } + }, + "IsMetered": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/IsMeteredResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmsList" + }, + "Result": { + "$ref": "#/definitions/CharmsListResult" + } + } + } + }, + "definitions": { + "CharmActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "CharmActions": { + "type": "object", + "properties": { + "specs": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmActionSpec" + } + } + } + }, + "additionalProperties": false + }, + "CharmInfo": { + "type": "object", + "properties": { + "actions": { + "$ref": "#/definitions/CharmActions" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmOption" + } + } + }, + "meta": { + "$ref": "#/definitions/CharmMeta" + }, + "metrics": { + "$ref": "#/definitions/CharmMetrics" + }, + "revision": { + "type": "integer" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "revision", + "url", + "config" + ] + }, + "CharmMeta": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "extra-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "min-juju-version": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload-classes": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmPayloadClass" + } + } + }, + "peers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "provides": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "requires": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmResourceMeta" + } + } + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmStorage" + } + } + }, + "subordinate": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "terms": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "summary", + "description", + "subordinate" + ] + }, + "CharmMetric": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "description" + ] + }, + "CharmMetrics": { + "type": "object", + "properties": { + "metrics": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmMetric" + } + } + }, + "plan": { + "$ref": "#/definitions/CharmPlan" + } + }, + "additionalProperties": false, + "required": [ + "metrics", + "plan" + ] + }, + "CharmOption": { + "type": "object", + "properties": { + "default": { + "type": "object", + "additionalProperties": true + }, + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CharmPayloadClass": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type" + ] + }, + "CharmPlan": { + "type": "object", + "properties": { + "required": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "required" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmResourceMeta": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "description" + ] + }, + "CharmStorage": { + "type": "object", + "properties": { + "count-max": { + "type": "integer" + }, + "count-min": { + "type": "integer" + }, + "description": { + "type": "string" + }, + "location": { + "type": "string" + }, + "minimum-size": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + }, + "read-only": { + "type": "boolean" + }, + "shared": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "description", + "type", + "shared", + "read-only", + "count-min", + "count-max", + "minimum-size" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmsList": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "names" + ] + }, + "CharmsListResult": { + "type": "object", + "properties": { + "charm-urls": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-urls" + ] + }, + "IsMeteredResult": { + "type": "object", + "properties": { + "metered": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "metered" + ] + } + } + } + }, + { + "Name": "Cleaner", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Cleanup": { + "type": "object" + }, + "WatchCleanups": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "Client", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "AbortCurrentUpgrade": { + "type": "object" + }, + "AddCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharm" + } + } + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharmWithAuthorization" + } + } + }, + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AddMachinesV2": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AgentVersion": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AgentVersionResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "DestroyMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyMachines" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "FullStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusParams" + }, + "Result": { + "$ref": "#/definitions/FullStatus" + } + } + }, + "GetBundleChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + }, + "GetModelConstraints": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "InjectMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelUserInfoResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PrivateAddress" + }, + "Result": { + "$ref": "#/definitions/PrivateAddressResults" + } + } + }, + "ProvisioningScript": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ProvisioningScriptParams" + }, + "Result": { + "$ref": "#/definitions/ProvisioningScriptResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PublicAddress" + }, + "Result": { + "$ref": "#/definitions/PublicAddressResults" + } + } + }, + "ResolveCharms": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResolveCharms" + }, + "Result": { + "$ref": "#/definitions/ResolveCharmResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Resolved" + } + } + }, + "RetryProvisioning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SLALevel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelAgentVersion" + } + } + }, + "SetModelConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "SetSLALevel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSLA" + } + } + }, + "StatusHistory": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryRequests" + }, + "Result": { + "$ref": "#/definitions/StatusHistoryResults" + } + } + }, + "WatchAll": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "AddCharm": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel" + ] + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "AgentVersionResult": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "can-upgrade-to": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "exposed": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "meter-statuses": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MeterStatus" + } + } + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "series": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + }, + "subordinate-to": { + "type": "array", + "items": { + "type": "string" + } + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "charm", + "series", + "exposed", + "life", + "relations", + "can-upgrade-to", + "subordinate-to", + "units", + "meter-statuses", + "status", + "workload-version" + ] + }, + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyMachines": { + "type": "object", + "properties": { + "force": { + "type": "boolean" + }, + "machine-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-names", + "force" + ] + }, + "DetailedStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "info": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "data", + "since", + "kind", + "version", + "life" + ] + }, + "EndpointStatus": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "subordinate": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "application", + "name", + "role", + "subordinate" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FindToolsParams": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "number": { + "$ref": "#/definitions/Number" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "number", + "major", + "minor", + "arch", + "series" + ] + }, + "FindToolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "FullStatus": { + "type": "object", + "properties": { + "applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ApplicationStatus" + } + } + }, + "machines": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "model": { + "$ref": "#/definitions/ModelStatusInfo" + }, + "relations": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationStatus" + } + }, + "remote-applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/RemoteApplicationStatus" + } + } + } + }, + "additionalProperties": false, + "required": [ + "model", + "machines", + "applications", + "remote-applications", + "relations" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "History": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/definitions/DetailedStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "statuses" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MachineStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "constraints": { + "type": "string" + }, + "containers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "dns-name": { + "type": "string" + }, + "hardware": { + "type": "string" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "instance-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "ip-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "network-interfaces": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/NetworkInterface" + } + } + }, + "series": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "instance-status", + "dns-name", + "instance-id", + "series", + "id", + "containers", + "constraints", + "hardware", + "jobs", + "has-vote", + "wants-vote" + ] + }, + "MeterStatus": { + "type": "object", + "properties": { + "color": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "color", + "message" + ] + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "migration": { + "$ref": "#/definitions/ModelMigrationStatus" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "sla": { + "$ref": "#/definitions/ModelSLAInfo" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "cloud-tag", + "owner-tag", + "life", + "users", + "machines", + "sla", + "agent-version" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelMigrationStatus": { + "type": "object", + "properties": { + "end": { + "type": "string", + "format": "date-time" + }, + "start": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "start" + ] + }, + "ModelSLA": { + "type": "object", + "properties": { + "ModelSLAInfo": { + "$ref": "#/definitions/ModelSLAInfo" + }, + "creds": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "ModelSLAInfo", + "creds" + ] + }, + "ModelSLAInfo": { + "type": "object", + "properties": { + "level": { + "type": "string" + }, + "owner": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "level", + "owner" + ] + }, + "ModelSet": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelStatusInfo": { + "type": "object", + "properties": { + "available-version": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "meter-status": { + "$ref": "#/definitions/MeterStatus" + }, + "model-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "sla": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "cloud-tag", + "version", + "available-version", + "model-status", + "meter-status", + "sla" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModelUserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "additionalProperties": false + }, + "ModelUserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NetworkInterface": { + "type": "object", + "properties": { + "dns-nameservers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway": { + "type": "string" + }, + "ip-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "is-up": { + "type": "boolean" + }, + "mac-address": { + "type": "string" + }, + "space": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ip-addresses", + "mac-address", + "is-up" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "PrivateAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PrivateAddressResults": { + "type": "object", + "properties": { + "private-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "private-address" + ] + }, + "ProvisioningScriptParams": { + "type": "object", + "properties": { + "data-dir": { + "type": "string" + }, + "disable-package-commands": { + "type": "boolean" + }, + "machine-id": { + "type": "string" + }, + "nonce": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-id", + "nonce", + "data-dir", + "disable-package-commands" + ] + }, + "ProvisioningScriptResult": { + "type": "object", + "properties": { + "script": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "script" + ] + }, + "PublicAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PublicAddressResults": { + "type": "object", + "properties": { + "public-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "public-address" + ] + }, + "RelationStatus": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/EndpointStatus" + } + }, + "id": { + "type": "integer" + }, + "interface": { + "type": "string" + }, + "key": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "key", + "interface", + "scope", + "endpoints" + ] + }, + "RemoteApplicationStatus": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "application-url": { + "type": "string" + }, + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteEndpoint" + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "life": { + "type": "string" + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + } + }, + "additionalProperties": false, + "required": [ + "application-url", + "application-name", + "endpoints", + "life", + "relations", + "status" + ] + }, + "RemoteEndpoint": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "limit", + "scope" + ] + }, + "ResolveCharmResult": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ResolveCharmResults": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolveCharmResult" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ResolveCharms": { + "type": "object", + "properties": { + "references": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "references" + ] + }, + "Resolved": { + "type": "object", + "properties": { + "retry": { + "type": "boolean" + }, + "unit-name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-name", + "retry" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "StatusHistoryFilter": { + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "delta": { + "type": "integer" + }, + "exclude": { + "type": "array", + "items": { + "type": "string" + } + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "size", + "date", + "delta", + "exclude" + ] + }, + "StatusHistoryRequest": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/definitions/StatusHistoryFilter" + }, + "historyKind": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "historyKind", + "size", + "filter", + "tag" + ] + }, + "StatusHistoryRequests": { + "type": "object", + "properties": { + "requests": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryRequest" + } + } + }, + "additionalProperties": false, + "required": [ + "requests" + ] + }, + "StatusHistoryResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "history": { + "$ref": "#/definitions/History" + } + }, + "additionalProperties": false, + "required": [ + "history" + ] + }, + "StatusHistoryResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusParams": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "UnitStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "charm": { + "type": "string" + }, + "leader": { + "type": "boolean" + }, + "machine": { + "type": "string" + }, + "opened-ports": { + "type": "array", + "items": { + "type": "string" + } + }, + "public-address": { + "type": "string" + }, + "subordinates": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "workload-status", + "workload-version", + "machine", + "opened-ports", + "public-address", + "charm", + "subordinates" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "Cloud", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Cloud": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudResults" + } + } + }, + "Clouds": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/CloudsResult" + } + } + }, + "Credential": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudCredentialResults" + } + } + }, + "DefaultCloud": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "InstanceTypes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CloudInstanceTypesConstraints" + }, + "Result": { + "$ref": "#/definitions/InstanceTypesResults" + } + } + }, + "RevokeCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpdateCloudCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserClouds" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Cloud": { + "type": "object", + "properties": { + "auth-types": { + "type": "array", + "items": { + "type": "string" + } + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudRegion" + } + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudCredentialResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudCredential" + } + }, + "additionalProperties": false + }, + "CloudCredentialResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudCredentialResult" + } + } + }, + "additionalProperties": false + }, + "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": { + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name" + ] + }, + "CloudResult": { + "type": "object", + "properties": { + "cloud": { + "$ref": "#/definitions/Cloud" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "CloudResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudResult" + } + } + }, + "additionalProperties": false + }, + "CloudsResult": { + "type": "object", + "properties": { + "clouds": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Cloud" + } + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "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 + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateCloudCredential": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "credential" + ] + }, + "UpdateCloudCredentials": { + "type": "object", + "properties": { + "credentials": { + "type": "array", + "items": { + "$ref": "#/definitions/UpdateCloudCredential" + } + } + }, + "additionalProperties": false + }, + "UserCloud": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "cloud-tag" + ] + }, + "UserClouds": { + "type": "object", + "properties": { + "user-clouds": { + "type": "array", + "items": { + "$ref": "#/definitions/UserCloud" + } + } + }, + "additionalProperties": false + }, + "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": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DestroyController": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyControllerArgs" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/UserAccessResults" + } + } + }, + "HostedModelConfigs": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/HostedModelConfigsResults" + } + } + }, + "InitiateMigration": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/InitiateMigrationArgs" + }, + "Result": { + "$ref": "#/definitions/InitiateMigrationResults" + } + } + }, + "ListBlockedModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelBlockInfoList" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyControllerAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveBlocks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RemoveBlocksArgs" + } + } + }, + "WatchAllModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "DestroyControllerArgs": { + "type": "object", + "properties": { + "destroy-models": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "destroy-models" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostedModelConfig": { + "type": "object", + "properties": { + "cloud-spec": { + "$ref": "#/definitions/CloudSpec" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "owner": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner" + ] + }, + "HostedModelConfigsResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/HostedModelConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "InitiateMigrationArgs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/MigrationSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "InitiateMigrationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "migration-id": { + "type": "string" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "migration-id" + ] + }, + "InitiateMigrationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/InitiateMigrationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MigrationSpec": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelBlockInfo": { + "type": "object", + "properties": { + "blocks": { + "type": "array", + "items": { + "type": "string" + } + }, + "model-uuid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "model-uuid", + "owner-tag", + "blocks" + ] + }, + "ModelBlockInfoList": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelBlockInfo" + } + } + }, + "additionalProperties": false + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelStatus": { + "type": "object", + "properties": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access" + ] + }, + "ModifyControllerAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyControllerAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RemoveBlocksArgs": { + "type": "object", + "properties": { + "all": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "all" + ] + }, + "UserAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "access" + ] + }, + "UserAccessResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserAccess" + } + }, + "additionalProperties": false + }, + "UserAccessResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserAccessResult" + } + } + }, + "additionalProperties": false + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "Deployer", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "ConnectionInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DeployerConnectionValues" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "DeployerConnectionValues": { + "type": "object", + "properties": { + "api-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "state-addresses": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "state-addresses", + "api-addresses" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "DiskManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineBlockDevices" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + }, + "WWN": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "WWN", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineBlockDevices": { + "type": "object", + "properties": { + "block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDevice" + } + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "machine-block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineBlockDevices" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-block-devices" + ] + } + } + } + }, + { + "Name": "EntityWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/EntitiesWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "EntitiesWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "FilesystemAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + }, + { + "Name": "Firewaller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "GetAssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetExposed": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "GetMachineActiveSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "GetMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachinePortsParams" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "WatchOpenedPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePorts": { + "type": "object", + "properties": { + "machine-tag": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "subnet-tag" + ] + }, + "MachinePortsParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePorts" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "HighAvailability", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "EnableHA": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ControllersSpecs" + }, + "Result": { + "$ref": "#/definitions/ControllersChangeResults" + } + } + }, + "ResumeHAReplicationAfterUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResumeReplicationParams" + } + } + }, + "StopHAReplicationForUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpgradeMongoParams" + }, + "Result": { + "$ref": "#/definitions/MongoUpgradeResults" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "Scope": { + "type": "string" + }, + "SpaceName": { + "type": "string" + }, + "SpaceProviderId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Value", + "Type", + "Scope", + "SpaceName", + "SpaceProviderId" + ] + }, + "ControllersChangeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ControllersChanges" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ControllersChangeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersChangeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ControllersChanges": { + "type": "object", + "properties": { + "added": { + "type": "array", + "items": { + "type": "string" + } + }, + "converted": { + "type": "array", + "items": { + "type": "string" + } + }, + "demoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "maintained": { + "type": "array", + "items": { + "type": "string" + } + }, + "promoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "removed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ControllersSpec": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "num-controllers": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "type": "string" + } + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "num-controllers" + ] + }, + "ControllersSpecs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "HAMember": { + "type": "object", + "properties": { + "public-address": { + "$ref": "#/definitions/Address" + }, + "series": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-address", + "series" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Member": { + "type": "object", + "properties": { + "Address": { + "type": "string" + }, + "Arbiter": { + "type": "boolean" + }, + "BuildIndexes": { + "type": "boolean" + }, + "Hidden": { + "type": "boolean" + }, + "Id": { + "type": "integer" + }, + "Priority": { + "type": "number" + }, + "SlaveDelay": { + "type": "integer" + }, + "Tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "Votes": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Id", + "Address", + "Arbiter", + "BuildIndexes", + "Hidden", + "Priority", + "Tags", + "SlaveDelay", + "Votes" + ] + }, + "MongoUpgradeResults": { + "type": "object", + "properties": { + "ha-members": { + "type": "array", + "items": { + "$ref": "#/definitions/HAMember" + } + }, + "master": { + "$ref": "#/definitions/HAMember" + }, + "rs-members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "rs-members", + "master", + "ha-members" + ] + }, + "MongoVersion": { + "type": "object", + "properties": { + "engine": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "patch": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "major", + "minor", + "patch", + "engine" + ] + }, + "ResumeReplicationParams": { + "type": "object", + "properties": { + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "members" + ] + }, + "UpgradeMongoParams": { + "type": "object", + "properties": { + "target": { + "$ref": "#/definitions/MongoVersion" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "HostKeyReporter", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ReportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SSHHostKeySet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHHostKeySet": { + "type": "object", + "properties": { + "entity-keys": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHHostKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "entity-keys" + ] + }, + "SSHHostKeys": { + "type": "object", + "properties": { + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-keys" + ] + } + } + } + }, + { + "Name": "ImageManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "DeleteImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ListImageResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageFilterParams": { + "type": "object", + "properties": { + "images": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "images" + ] + }, + "ImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series", + "url", + "created" + ] + }, + "ImageSpec": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series" + ] + }, + "ListImageResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "ImageMetadata", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Delete": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataImageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageMetadataFilter" + }, + "Result": { + "$ref": "#/definitions/ListCloudImageMetadataResult" + } + } + }, + "Save": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataSaveParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateFromPublishedImages": { + "type": "object" + } + }, + "definitions": { + "CloudImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "image-id": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "region": { + "type": "string" + }, + "root-storage-size": { + "type": "integer" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "string" + }, + "source": { + "type": "string" + }, + "stream": { + "type": "string" + }, + "version": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "image-id", + "region", + "version", + "series", + "arch", + "source", + "priority" + ] + }, + "CloudImageMetadataList": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageMetadataFilter": { + "type": "object", + "properties": { + "arches": { + "type": "array", + "items": { + "type": "string" + } + }, + "region": { + "type": "string" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "stream": { + "type": "string" + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ListCloudImageMetadataResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MetadataImageIds": { + "type": "object", + "properties": { + "image-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "image-ids" + ] + }, + "MetadataSaveParams": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadataList" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "InstancePoller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AreManuallyProvisioned": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineAddressesResults" + } + } + }, + "SetInstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Status": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "MachineAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "MachineAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "KeyManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DeleteKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ImportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListSSHKeys" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSSHKeys": { + "type": "object", + "properties": { + "entities": { + "$ref": "#/definitions/Entities" + }, + "mode": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "mode" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModifyUserSSHKeys": { + "type": "object", + "properties": { + "ssh-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "ssh-keys" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "KeyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "WatchAuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LeadershipService", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "BlockUntilLeadershipReleased": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationTag" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "ClaimLeadership": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ClaimLeadershipBulkParams" + }, + "Result": { + "$ref": "#/definitions/ClaimLeadershipBulkResults" + } + } + } + }, + "definitions": { + "ApplicationTag": { + "type": "object", + "properties": { + "Name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Name" + ] + }, + "ClaimLeadershipBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/ClaimLeadershipParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "ClaimLeadershipBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ClaimLeadershipParams": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "duration": { + "type": "number" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "unit-tag", + "duration" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "LifeFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LogForwarding", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingGetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/LogForwardingGetLastSentResults" + } + } + }, + "SetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingSetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingGetLastSentParams": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingID" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "LogForwardingGetLastSentResult": { + "type": "object", + "properties": { + "err": { + "$ref": "#/definitions/Error" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "record-id", + "record-timestamp", + "err" + ] + }, + "LogForwardingGetLastSentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingGetLastSentResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingID": { + "type": "object", + "properties": { + "model": { + "type": "string" + }, + "sink": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model", + "sink" + ] + }, + "LogForwardingSetLastSentParam": { + "type": "object", + "properties": { + "LogForwardingID": { + "$ref": "#/definitions/LogForwardingID" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "LogForwardingID", + "record-id", + "record-timestamp" + ] + }, + "LogForwardingSetLastSentParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingSetLastSentParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Logger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "LoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "WatchLoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineActions", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RunningActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineManager", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "DestroyMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DestroyMachineResults" + } + } + }, + "ForceDestroyMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DestroyMachineResults" + } + } + }, + "InstanceTypes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelInstanceTypesConstraints" + }, + "Result": { + "$ref": "#/definitions/InstanceTypesResults" + } + } + } + }, + "definitions": { + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyMachineInfo": { + "type": "object", + "properties": { + "destroyed-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "destroyed-units": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "detached-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false + }, + "DestroyMachineResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "$ref": "#/definitions/DestroyMachineInfo" + } + }, + "additionalProperties": false + }, + "DestroyMachineResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/DestroyMachineResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "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 + }, + "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": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MachineUndertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AllMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/EntitiesResults" + } + } + }, + "CompleteMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + } + } + }, + "GetMachineProviderInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProviderInterfaceInfoResults" + } + } + }, + "WatchMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResult": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProviderInterfaceInfo": { + "type": "object", + "properties": { + "interface-name": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "provider-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "interface-name", + "mac-address", + "provider-id" + ] + }, + "ProviderInterfaceInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "interfaces": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfo" + } + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "interfaces" + ] + }, + "ProviderInterfaceInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Machiner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Jobs": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/JobsResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetMachineAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetObservedNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineNetworkConfig" + } + } + }, + "SetProviderNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "JobsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "jobs" + ] + }, + "JobsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/JobsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkRoute" + } + }, + "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" + ] + }, + "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": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetMachineNetworkConfig": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "config" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MeterStatus", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsAdder", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + } + } + } + }, + { + "Name": "MetricsDebug", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "GetMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MetricResults" + } + } + }, + "SetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MeterStatusParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityMetrics": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricResult" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusParam": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "code", + "info" + ] + }, + "MeterStatusParams": { + "type": "object", + "properties": { + "statues": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusParam" + } + } + }, + "additionalProperties": false, + "required": [ + "statues" + ] + }, + "MetricResult": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "unit": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "time", + "key", + "value", + "unit" + ] + }, + "MetricResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityMetrics" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddJujuMachineMetrics": { + "type": "object" + }, + "CleanupOldMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SendMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "MigrationFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Phase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PhaseResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PhaseResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "phase": { + "type": "string" + } + }, + "additionalProperties": false + }, + "PhaseResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PhaseResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MigrationMaster", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Export": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "MigrationStatus": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MasterMigrationStatus" + } + } + }, + "MinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MinionReports" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + }, + "Prechecks": { + "type": "object" + }, + "Reap": { + "type": "object" + }, + "SetPhase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationPhaseArgs" + } + } + }, + "SetStatusMessage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationStatusMessageArgs" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchMinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MasterMigrationStatus": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "phase-changed-time": { + "type": "string", + "format": "date-time" + }, + "spec": { + "$ref": "#/definitions/MigrationSpec" + } + }, + "additionalProperties": false, + "required": [ + "spec", + "migration-id", + "phase", + "phase-changed-time" + ] + }, + "MigrationModelInfo": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "controller-agent-version": { + "$ref": "#/definitions/Number" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version", + "controller-agent-version" + ] + }, + "MigrationSpec": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "MinionReports": { + "type": "object", + "properties": { + "failed": { + "type": "array", + "items": { + "type": "string" + } + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success-count": { + "type": "integer" + }, + "unknown-count": { + "type": "integer" + }, + "unknown-sample": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success-count", + "unknown-count", + "unknown-sample", + "failed" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelResource" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "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": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + }, + "SetMigrationPhaseArgs": { + "type": "object", + "properties": { + "phase": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "phase" + ] + }, + "SetMigrationStatusMessageArgs": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message" + ] + } + } + } + }, + { + "Name": "MigrationMinion", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Report": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MinionReport" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MinionReport": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "MigrationStatusWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationStatus" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "MigrationStatus": { + "type": "object", + "properties": { + "attempt": { + "type": "integer" + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "source-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "source-ca-cert": { + "type": "string" + }, + "target-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "target-ca-cert": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "attempt", + "phase", + "source-api-addrs", + "source-ca-cert", + "target-api-addrs", + "target-ca-cert" + ] + } + } + } + }, + { + "Name": "MigrationTarget", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Abort": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "Activate": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "AdoptResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AdoptResourcesArgs" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "Import": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "LatestLogTime": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + }, + "Result": { + "type": "string", + "format": "date-time" + } + } + }, + "Prechecks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + } + }, + "definitions": { + "AdoptResourcesArgs": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + }, + "source-controller-version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "source-controller-version" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "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, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version", + "controller-agent-version" + ] + }, + "ModelArgs": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelResource" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "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": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + } + } + } + }, + { + "Name": "ModelConfig", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + }, + "SLALevel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetSLALevel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSLA" + } + } + } + }, + "definitions": { + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelSLA": { + "type": "object", + "properties": { + "ModelSLAInfo": { + "$ref": "#/definitions/ModelSLAInfo" + }, + "creds": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "ModelSLAInfo", + "creds" + ] + }, + "ModelSLAInfo": { + "type": "object", + "properties": { + "level": { + "type": "string" + }, + "owner": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "level", + "owner" + ] + }, + "ModelSet": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + } + } + } + }, + { + "Name": "ModelManager", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "CreateModel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelCreateArgs" + }, + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "DestroyModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DumpModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DumpModelRequest" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "DumpModelsDB": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "ListModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entity" + }, + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "ModelDefaults": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelDefaultsResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelInfoResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyModelAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnsetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "DumpModelRequest": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "simplified": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "simplified" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MapResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "MapResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MapResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "owner-tag" + ] + }, + "ModelCreateArgs": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "credential": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "region": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner-tag" + ] + }, + "ModelDefaultValues": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelDefaults": { + "type": "object", + "properties": { + "controller": { + "type": "object", + "additionalProperties": true + }, + "default": { + "type": "object", + "additionalProperties": true + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/RegionDefaults" + } + } + }, + "additionalProperties": false + }, + "ModelDefaultsResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ModelDefaults" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "migration": { + "$ref": "#/definitions/ModelMigrationStatus" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "sla": { + "$ref": "#/definitions/ModelSLAInfo" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "controller-uuid", + "cloud-tag", + "owner-tag", + "life", + "users", + "machines", + "sla", + "agent-version" + ] + }, + "ModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelInfo" + } + }, + "additionalProperties": false + }, + "ModelInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelMigrationStatus": { + "type": "object", + "properties": { + "end": { + "type": "string", + "format": "date-time" + }, + "start": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "start" + ] + }, + "ModelSLAInfo": { + "type": "object", + "properties": { + "level": { + "type": "string" + }, + "owner": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "level", + "owner" + ] + }, + "ModelStatus": { + "type": "object", + "properties": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelUnsetKeys": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "model-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access", + "model-tag" + ] + }, + "ModifyModelAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyModelAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "RegionDefaults": { + "type": "object", + "properties": { + "region-name": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "region-name", + "value" + ] + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelDefaultValues" + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUnsetKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "NotifyWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Payloads", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PayloadListArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadListResults" + } + } + } + }, + "definitions": { + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + }, + "PayloadListArgs": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "PayloadListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "PayloadsHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "LookUp": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LookUpPayloadArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetPayloadStatusArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Track": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/TrackPayloadArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Untrack": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LookUpPayloadArg": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "id" + ] + }, + "LookUpPayloadArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/LookUpPayloadArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + }, + "PayloadResult": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "not-found": { + "type": "boolean" + }, + "payload": { + "$ref": "#/definitions/Payload" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "payload", + "not-found" + ] + }, + "PayloadResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PayloadResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetPayloadStatusArg": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "status" + ] + }, + "SetPayloadStatusArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/SetPayloadStatusArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "TrackPayloadArgs": { + "type": "object", + "properties": { + "payloads": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "payloads" + ] + } + } + } + }, + { + "Name": "Pinger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Ping": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Provisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "Constraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConstraintsResults" + } + } + }, + "ContainerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ContainerConfig" + } + } + }, + "ContainerManagerConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ContainerManagerConfigParams" + }, + "Result": { + "$ref": "#/definitions/ContainerManagerConfig" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DistributionGroup": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DistributionGroupResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "GetContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "HostChangesForContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/HostNetworkChangeResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "MachinesWithTransientErrors": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "MarkMachinesForRemoval": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PrepareContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProvisioningInfoResults" + } + } + }, + "ReleaseContainerAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Series": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "SetHostMachineNetworkConfig": { + "type": "object", + "properties": { + "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" + } + } + }, + "SetProviderNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "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" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkRoute" + } + }, + "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" + ] + }, + "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": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "controller-config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "image-metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "placement": { + "type": "string" + }, + "series": { + "type": "string" + }, + "subnets-to-zones": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentParams" + } + }, + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParams" + } + } + }, + "additionalProperties": false, + "required": [ + "constraints", + "series", + "placement", + "jobs" + ] + }, + "ProvisioningInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ProvisioningInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ProvisioningInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProvisioningInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetMachineNetworkConfig": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "config" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Settings": { + "type": "object", + "properties": { + "AutoNoProxy": { + "type": "string" + }, + "Ftp": { + "type": "string" + }, + "Http": { + "type": "string" + }, + "Https": { + "type": "string" + }, + "NoProxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Http", + "Https", + "Ftp", + "NoProxy", + "AutoNoProxy" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateBehavior": { + "type": "object", + "properties": { + "enable-os-refresh-update": { + "type": "boolean" + }, + "enable-os-upgrade": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "enable-os-refresh-update", + "enable-os-upgrade" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + }, + "wwn": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "WatchContainer": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "container-type" + ] + }, + "WatchContainers": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/WatchContainer" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + } + } + } + }, + { + "Name": "ProxyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ProxyConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProxyConfigResults" + } + } + }, + "WatchForProxyConfigAndAPIHostPortChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProxyConfig": { + "type": "object", + "properties": { + "ftp": { + "type": "string" + }, + "http": { + "type": "string" + }, + "https": { + "type": "string" + }, + "no-proxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "http", + "https", + "ftp", + "no-proxy" + ] + }, + "ProxyConfigResult": { + "type": "object", + "properties": { + "apt-proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + } + }, + "additionalProperties": false, + "required": [ + "proxy-settings", + "apt-proxy-settings" + ] + }, + "ProxyConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProxyConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Reboot", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetRebootAction": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RebootActionResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchForRebootEvent": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "RebootActionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false + }, + "RebootActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RebootActionResult" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "RelationUnitsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + } + } + } + }, + { + "Name": "Resources", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddPendingResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddPendingResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/AddPendingResourcesResult" + } + } + }, + "ListResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/ResourcesResults" + } + } + } + }, + "definitions": { + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon" + ] + }, + "AddPendingResourcesArgs": { + "type": "object", + "properties": { + "AddCharmWithAuthorization": { + "$ref": "#/definitions/AddCharmWithAuthorization" + }, + "Entity": { + "$ref": "#/definitions/Entity" + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "AddCharmWithAuthorization", + "resources" + ] + }, + "AddPendingResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "pending-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "pending-ids" + ] + }, + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListResourcesArgs": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "ResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "charm-store-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + }, + "unit-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitResources" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources", + "charm-store-resources", + "unit-resources" + ] + }, + "ResourcesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourcesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitResources": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "download-progress": { + "type": "object", + "patternProperties": { + ".*": { + "type": "integer" + } + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "resources", + "download-progress" + ] + } + } + } + }, + { + "Name": "ResourcesHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetResourceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListUnitResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/UnitResourcesResult" + } + } + } + }, + "definitions": { + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListUnitResourcesArgs": { + "type": "object", + "properties": { + "resource-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "resource-names" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "UnitResourceResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resource": { + "$ref": "#/definitions/Resource" + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resource" + ] + }, + "UnitResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitResourceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources" + ] + } + } + } + }, + { + "Name": "Resumer", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ResumeTransactions": { + "type": "object" + } + } + } + }, + { + "Name": "RetryStrategy", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "RetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RetryStrategyResults" + } + } + }, + "WatchRetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RetryStrategy": { + "type": "object", + "properties": { + "jitter-retry-time": { + "type": "boolean" + }, + "max-retry-time": { + "type": "integer" + }, + "min-retry-time": { + "type": "integer" + }, + "retry-time-factor": { + "type": "integer" + }, + "should-retry": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "should-retry", + "min-retry-time", + "max-retry-time", + "jitter-retry-time", + "retry-time-factor" + ] + }, + "RetryStrategyResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/RetryStrategy" + } + }, + "additionalProperties": false + }, + "RetryStrategyResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RetryStrategyResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "SSHClient", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AllAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressesResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "Proxy": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SSHProxyResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "PublicKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHPublicKeysResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHAddressResult": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "SSHAddressResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "SSHAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHProxyResult": { + "type": "object", + "properties": { + "use-proxy": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "use-proxy" + ] + }, + "SSHPublicKeysResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "SSHPublicKeysResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHPublicKeysResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Singular", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Claim": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SingularClaims" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Wait": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SingularClaim": { + "type": "object", + "properties": { + "controller-tag": { + "type": "string" + }, + "duration": { + "type": "integer" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "controller-tag", + "duration" + ] + }, + "SingularClaims": { + "type": "object", + "properties": { + "claims": { + "type": "array", + "items": { + "$ref": "#/definitions/SingularClaim" + } + } + }, + "additionalProperties": false, + "required": [ + "claims" + ] + } + } + } + }, + { + "Name": "Spaces", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ListSpacesResults" + } + } + }, + "ReloadSpaces": { + "type": "object" + } + }, + "definitions": { + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Space" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Space": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-network-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + } + } + } + }, + { + "Name": "StatusHistory", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "Prune": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryPruneArgs" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "StatusHistoryPruneArgs": { + "type": "object", + "properties": { + "max-history-mb": { + "type": "integer" + }, + "max-history-time": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "max-history-time", + "max-history-mb" + ] + } + } + } + }, + { + "Name": "Storage", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddToUnit": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Attach": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreatePool": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Detach": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemFilters" + }, + "Result": { + "$ref": "#/definitions/FilesystemDetailsListResults" + } + } + }, + "ListPools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePoolFilters" + }, + "Result": { + "$ref": "#/definitions/StoragePoolsResults" + } + } + }, + "ListStorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageFilters" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsListResults" + } + } + }, + "ListVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeFilters" + }, + "Result": { + "$ref": "#/definitions/VolumeDetailsListResults" + } + } + }, + "StorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FilesystemAttachmentDetails": { + "type": "object", + "properties": { + "FilesystemAttachmentInfo": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "FilesystemAttachmentInfo" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemDetails": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "life": { + "type": "string" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/FilesystemAttachmentDetails" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info", + "status" + ] + }, + "FilesystemDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetails" + } + } + }, + "additionalProperties": false + }, + "FilesystemDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemFilter" + } + } + }, + "additionalProperties": false + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "pool", + "size" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachmentDetails": { + "type": "object", + "properties": { + "life": { + "type": "string" + }, + "location": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag", + "machine-tag" + ] + }, + "StorageAttachmentId": { + "type": "object", + "properties": { + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag" + ] + }, + "StorageAttachmentIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StorageDetails": { + "type": "object", + "properties": { + "attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageAttachmentDetails" + } + } + }, + "kind": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "kind", + "status", + "persistent" + ] + }, + "StorageDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetails" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageDetails" + } + }, + "additionalProperties": false + }, + "StorageDetailsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsResult" + } + } + }, + "additionalProperties": false + }, + "StorageFilter": { + "type": "object", + "additionalProperties": false + }, + "StorageFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePool": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "name": { + "type": "string" + }, + "provider": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider", + "attrs" + ] + }, + "StoragePoolFilter": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + }, + "providers": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StoragePoolFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "storage-pools": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolsResult" + } + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "VolumeAttachmentDetails": { + "type": "object", + "properties": { + "VolumeAttachmentInfo": { + "$ref": "#/definitions/VolumeAttachmentInfo" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "VolumeAttachmentInfo" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeDetails": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "life": { + "type": "string" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/VolumeAttachmentDetails" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info", + "status" + ] + }, + "VolumeDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetails" + } + } + }, + "additionalProperties": false + }, + "VolumeDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "VolumeFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "VolumeFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeFilter" + } + } + }, + "additionalProperties": false + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + }, + "wwn": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + } + } + } + }, + { + "Name": "StorageProvisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentParamsResults" + } + } + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentResults" + } + } + }, + "FilesystemParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemParamsResults" + } + } + }, + "Filesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveAttachment": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Filesystems" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Volumes" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentParamsResults" + } + } + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentResults" + } + } + }, + "VolumeBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/BlockDeviceResults" + } + } + }, + "VolumeParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeParamsResults" + } + } + }, + "Volumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeResults" + } + } + }, + "WatchBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchFilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchVolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + }, + "WWN": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "WWN", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "BlockDeviceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/BlockDevice" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockDeviceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDeviceResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Filesystem": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info" + ] + }, + "FilesystemAttachment": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "info" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "filesystem-tag": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "mount-point": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "provider" + ] + }, + "FilesystemAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "filesystem-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystem-attachments" + ] + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "pool", + "size" + ] + }, + "FilesystemParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/FilesystemAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "filesystem-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "size", + "provider" + ] + }, + "FilesystemParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Filesystem" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemResult" + } + } + }, + "additionalProperties": false + }, + "Filesystems": { + "type": "object", + "properties": { + "filesystems": { + "type": "array", + "items": { + "$ref": "#/definitions/Filesystem" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystems" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "MachineStorageIdsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachment": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeAttachmentInfo" + }, + "machine-tag": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "volume-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "volume-attachments" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + }, + "wwn": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "VolumeParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Volume" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeResult" + } + } + }, + "additionalProperties": false + }, + "Volumes": { + "type": "object", + "properties": { + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/Volume" + } + } + }, + "additionalProperties": false, + "required": [ + "volumes" + ] + } + } + } + }, + { + "Name": "StringsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Subnets", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SpaceResults" + } + } + }, + "AllZones": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ZoneResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "provider-network-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SpaceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "SpaceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SpaceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-network-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ZoneResult": { + "type": "object", + "properties": { + "available": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "available" + ] + }, + "ZoneResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ZoneResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Undertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UndertakerModelInfoResult" + } + } + }, + "ProcessDyingModel": { + "type": "object" + }, + "RemoveModel": { + "type": "object" + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchModelResources": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "UndertakerModelInfo": { + "type": "object", + "properties": { + "global-name": { + "type": "string" + }, + "is-system": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "global-name", + "is-system", + "life" + ] + }, + "UndertakerModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UndertakerModelInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + } + } + } + }, + { + "Name": "UnitAssigner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AssignUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchUnitAssignments": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Uniter", + "Version": 5, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AddUnitStorage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationStatusResults" + } + } + }, + "AssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "AvailabilityZone": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "CharmArchiveSha256": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURLs" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "CharmModifiedVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/IntResults" + } + } + }, + "CharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "ClearResolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ClosePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConfigSettingsResults" + } + } + }, + "CurrentModel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelResult" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyAllSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnterScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "GetPrincipal": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "HasSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "JoinedRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "LeaveScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Merge": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "NetworkInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/NetworkInfoParams" + }, + "Result": { + "$ref": "#/definitions/NetworkInfoResults" + } + } + }, + "OpenPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "ProviderType": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Read": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/GetLeadershipSettingsBulkResults" + } + } + }, + "ReadRemoteSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitPairs" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "ReadSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "Relation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RelationById": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationIds" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RemoveStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ResolvedModeResults" + } + } + }, + "SLALevel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesCharmURL" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetUnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetWorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityWorkloadVersions" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StorageAttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "StorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentResults" + } + } + }, + "UnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "UnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentIdsResults" + } + } + }, + "UpdateSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitsSettings" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchLeadershipSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchRelationUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResults" + } + } + }, + "WatchStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "ApplicationStatusResult": { + "type": "object", + "properties": { + "application": { + "$ref": "#/definitions/StatusResult" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StatusResult" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "units" + ] + }, + "ApplicationStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmURLs": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ConfigSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "ConfigSettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Endpoint": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "relation": { + "$ref": "#/definitions/CharmRelation" + } + }, + "additionalProperties": false, + "required": [ + "application-name", + "relation" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesCharmURL": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityCharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesPortRanges": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityCharmURL": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "charm-url" + ] + }, + "EntityPortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "protocol", + "from-port", + "to-port" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "EntityWorkloadVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "workload-version" + ] + }, + "EntityWorkloadVersions": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityWorkloadVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/GetLeadershipSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "IntResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "IntResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/IntResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "InterfaceAddress": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "cidr" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "MergeLeadershipSettingsBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MergeLeadershipSettingsParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MergeLeadershipSettingsParam": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "settings" + ] + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid" + ] + }, + "NetworkInfo": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/InterfaceAddress" + } + }, + "interface-name": { + "type": "string" + }, + "mac-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "mac-address", + "interface-name", + "addresses" + ] + }, + "NetworkInfoParams": { + "type": "object", + "properties": { + "bindings": { + "type": "array", + "items": { + "type": "string" + } + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "bindings" + ] + }, + "NetworkInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "network-info": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkInfo" + } + } + }, + "additionalProperties": false, + "required": [ + "network-info" + ] + }, + "NetworkInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/NetworkInfoResult" + } + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "RelationIds": { + "type": "object", + "properties": { + "relation-ids": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-ids" + ] + }, + "RelationResult": { + "type": "object", + "properties": { + "endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "integer" + }, + "key": { + "type": "string" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "id", + "key", + "endpoint" + ] + }, + "RelationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RelationUnit": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit" + ] + }, + "RelationUnitPair": { + "type": "object", + "properties": { + "local-unit": { + "type": "string" + }, + "relation": { + "type": "string" + }, + "remote-unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "local-unit", + "remote-unit" + ] + }, + "RelationUnitPairs": { + "type": "object", + "properties": { + "relation-unit-pairs": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitPair" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-unit-pairs" + ] + }, + "RelationUnitSettings": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit", + "settings" + ] + }, + "RelationUnits": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnit" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsSettings": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitSettings" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "RelationUnitsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ResolvedModeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "mode": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "mode" + ] + }, + "ResolvedModeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolvedModeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "SettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "SettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachment": { + "type": "object", + "properties": { + "kind": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "location": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "unit-tag", + "kind", + "location", + "life" + ] + }, + "StorageAttachmentId": { + "type": "object", + "properties": { + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag" + ] + }, + "StorageAttachmentIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "StorageAttachmentIdsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachmentIds" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentIdsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentIdsResult" + } + } + }, + "additionalProperties": false + }, + "StorageAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "StringBoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ok": { + "type": "boolean" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result", + "ok" + ] + }, + "StringBoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringBoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + } + } + } + }, + { + "Name": "Upgrader", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "DesiredVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VersionResults" + } + } + }, + "SetTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesVersion" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Tools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ToolsResults" + } + } + }, + "WatchAPIVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesVersion": { + "type": "object", + "properties": { + "agent-tools": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "agent-tools" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "tools": { + "$ref": "#/definitions/Version" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "tools" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Version": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "VersionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false + }, + "VersionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VersionResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "UserManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddUsers" + }, + "Result": { + "$ref": "#/definitions/AddUserResults" + } + } + }, + "DisableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPassword": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserInfoRequest" + }, + "Result": { + "$ref": "#/definitions/UserInfoResults" + } + } + } + }, + "definitions": { + "AddUser": { + "type": "object", + "properties": { + "display-name": { + "type": "string" + }, + "password": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name" + ] + }, + "AddUserResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "secret-key": { + "type": "array", + "items": { + "type": "integer" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false + }, + "AddUserResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUserResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AddUsers": { + "type": "object", + "properties": { + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUser" + } + } + }, + "additionalProperties": false, + "required": [ + "users" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "UserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "created-by": { + "type": "string" + }, + "date-created": { + "type": "string", + "format": "date-time" + }, + "disabled": { + "type": "boolean" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name", + "access", + "created-by", + "date-created", + "disabled" + ] + }, + "UserInfoRequest": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "include-disabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "include-disabled" + ] + }, + "UserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserInfo" + } + }, + "additionalProperties": false + }, + "UserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "VolumeAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + } +] diff --git a/modules/libjuju/juju/client/schemas-juju-2.5-rc1.json b/modules/libjuju/juju/client/schemas-juju-2.5-rc1.json new file mode 100644 index 0000000..b53dd0b --- /dev/null +++ b/modules/libjuju/juju/client/schemas-juju-2.5-rc1.json @@ -0,0 +1,37036 @@ +[ + { + "Name": "Action", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "ApplicationsCharmsActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationsCharmActionsResults" + } + } + }, + "Cancel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "Enqueue": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Actions" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "FindActionTagsByPrefix": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindTags" + }, + "Result": { + "$ref": "#/definitions/FindTagsResults" + } + } + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindActionsByNames" + }, + "Result": { + "$ref": "#/definitions/ActionsByNames" + } + } + }, + "ListAll": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListCompleted": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListPending": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListRunning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "Run": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "RunOnAllMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "Actions": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/Action" + } + } + }, + "additionalProperties": false + }, + "ActionsByName": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByNames": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByName" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "ApplicationCharmActionsResult": { + "type": "object", + "properties": { + "actions": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ActionSpec" + } + } + }, + "application-tag": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ApplicationsCharmActionsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationCharmActionsResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FindTags": { + "type": "object", + "properties": { + "prefixes": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "prefixes" + ] + }, + "FindTagsResults": { + "type": "object", + "properties": { + "matches": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + } + } + }, + "additionalProperties": false, + "required": [ + "matches" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RunParams": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "type": "string" + } + }, + "commands": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "type": "string" + } + }, + "timeout": { + "type": "integer" + }, + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "commands", + "timeout" + ] + } + } + } + }, + { + "Name": "ActionPruner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "Prune": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionPruneArgs" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "ActionPruneArgs": { + "type": "object", + "properties": { + "max-history-mb": { + "type": "integer" + }, + "max-history-time": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "max-history-time", + "max-history-mb" + ] + }, + "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 + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "Agent", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerAPIInfoForModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ControllerAPIInfoResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetEntities": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AgentGetEntitiesResults" + } + } + }, + "IsMaster": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/IsMasterResult" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateServingInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StateServingInfo" + } + } + }, + "WatchCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "AgentGetEntitiesResult": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "jobs", + "container-type" + ] + }, + "AgentGetEntitiesResults": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/AgentGetEntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "cacertificates": { + "type": "array", + "items": { + "type": "string" + } + }, + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ControllerAPIInfoResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "cacert": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses", + "cacert" + ] + }, + "ControllerAPIInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllerAPIInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "IsMasterResult": { + "type": "object", + "properties": { + "master": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "master" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StateServingInfo": { + "type": "object", + "properties": { + "api-port": { + "type": "integer" + }, + "ca-private-key": { + "type": "string" + }, + "cert": { + "type": "string" + }, + "controller-api-port": { + "type": "integer" + }, + "private-key": { + "type": "string" + }, + "shared-secret": { + "type": "string" + }, + "state-port": { + "type": "integer" + }, + "system-identity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "api-port", + "state-port", + "cert", + "private-key", + "ca-private-key", + "shared-secret", + "system-identity" + ] + } + } + } + }, + { + "Name": "AgentTools", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "UpdateToolsAvailable": { + "type": "object" + } + } + } + }, + { + "Name": "AllModelWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "AllWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherNextResults" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "AllWatcherNextResults": { + "type": "object", + "properties": { + "deltas": { + "type": "array", + "items": { + "$ref": "#/definitions/Delta" + } + } + }, + "additionalProperties": false, + "required": [ + "deltas" + ] + }, + "Delta": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "additionalProperties": true + }, + "removed": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "removed", + "entity" + ] + } + } + } + }, + { + "Name": "Annotations", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AnnotationsGetResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AnnotationsSet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "AnnotationsGetResult": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/ErrorResult" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "AnnotationsGetResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AnnotationsGetResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AnnotationsSet": { + "type": "object", + "properties": { + "annotations": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityAnnotations" + } + } + }, + "additionalProperties": false, + "required": [ + "annotations" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityAnnotations": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "entity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "annotations" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Application", + "Version": 8, + "Schema": { + "type": "object", + "properties": { + "AddRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddRelation" + }, + "Result": { + "$ref": "#/definitions/AddRelationResults" + } + } + }, + "AddUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddApplicationUnits" + }, + "Result": { + "$ref": "#/definitions/AddApplicationUnitsResults" + } + } + }, + "CharmConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationGetConfigResults" + } + } + }, + "CharmRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationCharmRelations" + }, + "Result": { + "$ref": "#/definitions/ApplicationCharmRelationsResults" + } + } + }, + "Consume": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ConsumeApplicationArgs" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Deploy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationsDeploy" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationDestroy" + } + } + }, + "DestroyApplication": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyApplicationsParams" + }, + "Result": { + "$ref": "#/definitions/DestroyApplicationResults" + } + } + }, + "DestroyConsumedApplications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyConsumedApplicationsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyRelation" + } + } + }, + "DestroyUnit": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyUnitsParams" + }, + "Result": { + "$ref": "#/definitions/DestroyUnitResults" + } + } + }, + "DestroyUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyApplicationUnits" + } + } + }, + "Expose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationExpose" + } + } + }, + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/ApplicationGetResults" + } + } + }, + "GetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "GetConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationGetConfigResults" + } + } + }, + "GetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationGetConstraintsResults" + } + } + }, + "GetLXDProfileUpgradeMessages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LXDProfileUpgradeMessages" + }, + "Result": { + "$ref": "#/definitions/LXDProfileUpgradeMessagesResults" + } + } + }, + "ResolveUnitErrors": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnitsResolved" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ScaleApplications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ScaleApplicationsParams" + }, + "Result": { + "$ref": "#/definitions/ScaleApplicationResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSet" + } + } + }, + "SetApplicationsConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationConfigSetArgs" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSetCharm" + } + } + }, + "SetCharmProfile": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSetCharmProfile" + } + } + }, + "SetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "SetMetricCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationMetricCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetRelationsSuspended": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationSuspendedArgs" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Unexpose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnexpose" + } + } + }, + "Unset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnset" + } + } + }, + "UnsetApplicationsConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationConfigUnsetArgs" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Update": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUpdate" + } + } + }, + "UpdateApplicationSeries": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpdateSeriesArgs" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchLXDProfileUpgradeNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entity" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "AddApplicationUnits": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "attach-storage": { + "type": "array", + "items": { + "type": "string" + } + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + }, + "policy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "num-units", + "placement" + ] + }, + "AddApplicationUnitsResults": { + "type": "object", + "properties": { + "units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "units" + ] + }, + "AddRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + }, + "via-cidrs": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "AddRelationResults": { + "type": "object", + "properties": { + "endpoints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + } + }, + "additionalProperties": false, + "required": [ + "endpoints" + ] + }, + "ApplicationCharmRelations": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationCharmRelationsResults": { + "type": "object", + "properties": { + "charm-relations": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-relations" + ] + }, + "ApplicationConfigSet": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "config" + ] + }, + "ApplicationConfigSetArgs": { + "type": "object", + "properties": { + "Args": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationConfigSet" + } + } + }, + "additionalProperties": false, + "required": [ + "Args" + ] + }, + "ApplicationConfigUnsetArgs": { + "type": "object", + "properties": { + "Args": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationUnset" + } + } + }, + "additionalProperties": false, + "required": [ + "Args" + ] + }, + "ApplicationConstraint": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "ApplicationDeploy": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "attach-storage": { + "type": "array", + "items": { + "type": "string" + } + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-yaml": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "devices": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Constraints" + } + } + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "num-units": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + }, + "policy": { + "type": "string" + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "series": { + "type": "string" + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Constraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "series", + "charm-url", + "channel", + "num-units", + "config-yaml", + "constraints" + ] + }, + "ApplicationDestroy": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationExpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGet": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationGetConfigResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "ApplicationGetConstraintsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationConstraint" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ApplicationGetResults": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "application-config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "charm": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm", + "config", + "constraints", + "series" + ] + }, + "ApplicationMetricCredential": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "metrics-credentials": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "metrics-credentials" + ] + }, + "ApplicationMetricCredentials": { + "type": "object", + "properties": { + "creds": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationMetricCredential" + } + } + }, + "additionalProperties": false, + "required": [ + "creds" + ] + }, + "ApplicationOfferDetails": { + "type": "object", + "properties": { + "application-description": { + "type": "string" + }, + "bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteEndpoint" + } + }, + "offer-name": { + "type": "string" + }, + "offer-url": { + "type": "string" + }, + "offer-uuid": { + "type": "string" + }, + "source-model-tag": { + "type": "string" + }, + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteSpace" + } + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/OfferUserDetails" + } + } + }, + "additionalProperties": false, + "required": [ + "source-model-tag", + "offer-uuid", + "offer-url", + "offer-name", + "application-description" + ] + }, + "ApplicationSet": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationSetCharm": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "channel": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "config-settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "config-settings-yaml": { + "type": "string" + }, + "force": { + "type": "boolean" + }, + "force-series": { + "type": "boolean" + }, + "force-units": { + "type": "boolean" + }, + "resource-ids": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "storage-constraints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageConstraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "channel", + "force", + "force-units", + "force-series" + ] + }, + "ApplicationSetCharmProfile": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm-url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url" + ] + }, + "ApplicationUnexpose": { + "type": "object", + "properties": { + "application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application" + ] + }, + "ApplicationUnset": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "options" + ] + }, + "ApplicationUpdate": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "force": { + "type": "boolean" + }, + "force-charm-url": { + "type": "boolean" + }, + "force-series": { + "type": "boolean" + }, + "min-units": { + "type": "integer" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "settings-yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "charm-url", + "force-charm-url", + "force-series", + "force", + "settings-yaml" + ] + }, + "ApplicationsDeploy": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationDeploy" + } + } + }, + "additionalProperties": false, + "required": [ + "applications" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "ConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "ConsumeApplicationArg": { + "type": "object", + "properties": { + "ApplicationOfferDetails": { + "$ref": "#/definitions/ApplicationOfferDetails" + }, + "application-alias": { + "type": "string" + }, + "external-controller": { + "$ref": "#/definitions/ExternalControllerInfo" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + } + }, + "additionalProperties": false, + "required": [ + "ApplicationOfferDetails" + ] + }, + "ConsumeApplicationArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/ConsumeApplicationArg" + } + } + }, + "additionalProperties": false + }, + "DestroyApplicationInfo": { + "type": "object", + "properties": { + "destroyed-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "destroyed-units": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "detached-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false + }, + "DestroyApplicationParams": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "destroy-storage": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "application-tag" + ] + }, + "DestroyApplicationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "$ref": "#/definitions/DestroyApplicationInfo" + } + }, + "additionalProperties": false + }, + "DestroyApplicationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/DestroyApplicationResult" + } + } + }, + "additionalProperties": false + }, + "DestroyApplicationUnits": { + "type": "object", + "properties": { + "unit-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "unit-names" + ] + }, + "DestroyApplicationsParams": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "$ref": "#/definitions/DestroyApplicationParams" + } + } + }, + "additionalProperties": false, + "required": [ + "applications" + ] + }, + "DestroyConsumedApplicationParams": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application-tag" + ] + }, + "DestroyConsumedApplicationsParams": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "$ref": "#/definitions/DestroyConsumedApplicationParams" + } + } + }, + "additionalProperties": false, + "required": [ + "applications" + ] + }, + "DestroyRelation": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "string" + } + }, + "relation-id": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "relation-id" + ] + }, + "DestroyUnitInfo": { + "type": "object", + "properties": { + "destroyed-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "detached-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false + }, + "DestroyUnitParams": { + "type": "object", + "properties": { + "destroy-storage": { + "type": "boolean" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag" + ] + }, + "DestroyUnitResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "$ref": "#/definitions/DestroyUnitInfo" + } + }, + "additionalProperties": false + }, + "DestroyUnitResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/DestroyUnitResult" + } + } + }, + "additionalProperties": false + }, + "DestroyUnitsParams": { + "type": "object", + "properties": { + "units": { + "type": "array", + "items": { + "$ref": "#/definitions/DestroyUnitParams" + } + } + }, + "additionalProperties": false, + "required": [ + "units" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ExternalControllerInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "ca-cert": { + "type": "string" + }, + "controller-alias": { + "type": "string" + }, + "controller-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "controller-alias", + "addrs", + "ca-cert" + ] + }, + "LXDProfileUpgradeMessages": { + "type": "object", + "properties": { + "application": { + "$ref": "#/definitions/Entity" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application", + "watcher-id" + ] + }, + "LXDProfileUpgradeMessagesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "unit-name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-name", + "message" + ] + }, + "LXDProfileUpgradeMessagesResults": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/LXDProfileUpgradeMessagesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "OfferUserDetails": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "access" + ] + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "RelationSuspendedArg": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "relation-id": { + "type": "integer" + }, + "suspended": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "relation-id", + "message", + "suspended" + ] + }, + "RelationSuspendedArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationSuspendedArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "RemoteEndpoint": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "limit" + ] + }, + "RemoteSpace": { + "type": "object", + "properties": { + "cloud-type": { + "type": "string" + }, + "name": { + "type": "string" + }, + "provider-attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider-id": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "cloud-type", + "name", + "provider-id", + "provider-attributes", + "subnets" + ] + }, + "ScaleApplicationInfo": { + "type": "object", + "properties": { + "num-units": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "num-units" + ] + }, + "ScaleApplicationParams": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "scale": { + "type": "integer" + }, + "scale-change": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "scale" + ] + }, + "ScaleApplicationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "$ref": "#/definitions/ScaleApplicationInfo" + } + }, + "additionalProperties": false + }, + "ScaleApplicationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ScaleApplicationResult" + } + } + }, + "additionalProperties": false + }, + "ScaleApplicationsParams": { + "type": "object", + "properties": { + "applications": { + "type": "array", + "items": { + "$ref": "#/definitions/ScaleApplicationParams" + } + } + }, + "additionalProperties": false, + "required": [ + "applications" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-network-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "UnitsResolved": { + "type": "object", + "properties": { + "all": { + "type": "boolean" + }, + "retry": { + "type": "boolean" + }, + "tags": { + "$ref": "#/definitions/Entities" + } + }, + "additionalProperties": false + }, + "UpdateSeriesArg": { + "type": "object", + "properties": { + "force": { + "type": "boolean" + }, + "series": { + "type": "string" + }, + "tag": { + "$ref": "#/definitions/Entity" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "force", + "series" + ] + }, + "UpdateSeriesArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/UpdateSeriesArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "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" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "ApplicationOffers", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ApplicationOffers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/OfferURLs" + }, + "Result": { + "$ref": "#/definitions/ApplicationOffersResults" + } + } + }, + "DestroyOffers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyApplicationOffers" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FindApplicationOffers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/OfferFilters" + }, + "Result": { + "$ref": "#/definitions/QueryApplicationOffersResults" + } + } + }, + "GetConsumeDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/OfferURLs" + }, + "Result": { + "$ref": "#/definitions/ConsumeOfferDetailsResults" + } + } + }, + "ListApplicationOffers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/OfferFilters" + }, + "Result": { + "$ref": "#/definitions/QueryApplicationOffersResults" + } + } + }, + "ModifyOfferAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyOfferAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Offer": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddApplicationOffers" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoteApplicationInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/OfferURLs" + }, + "Result": { + "$ref": "#/definitions/RemoteApplicationInfoResults" + } + } + } + }, + "definitions": { + "AddApplicationOffer": { + "type": "object", + "properties": { + "application-description": { + "type": "string" + }, + "application-name": { + "type": "string" + }, + "endpoints": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "model-tag": { + "type": "string" + }, + "offer-name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "offer-name", + "application-name", + "application-description", + "endpoints" + ] + }, + "AddApplicationOffers": { + "type": "object", + "properties": { + "Offers": { + "type": "array", + "items": { + "$ref": "#/definitions/AddApplicationOffer" + } + } + }, + "additionalProperties": false, + "required": [ + "Offers" + ] + }, + "ApplicationOfferAdminDetails": { + "type": "object", + "properties": { + "ApplicationOfferDetails": { + "$ref": "#/definitions/ApplicationOfferDetails" + }, + "application-name": { + "type": "string" + }, + "charm-url": { + "type": "string" + }, + "connections": { + "type": "array", + "items": { + "$ref": "#/definitions/OfferConnection" + } + } + }, + "additionalProperties": false, + "required": [ + "ApplicationOfferDetails", + "application-name", + "charm-url" + ] + }, + "ApplicationOfferDetails": { + "type": "object", + "properties": { + "application-description": { + "type": "string" + }, + "bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteEndpoint" + } + }, + "offer-name": { + "type": "string" + }, + "offer-url": { + "type": "string" + }, + "offer-uuid": { + "type": "string" + }, + "source-model-tag": { + "type": "string" + }, + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteSpace" + } + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/OfferUserDetails" + } + } + }, + "additionalProperties": false, + "required": [ + "source-model-tag", + "offer-uuid", + "offer-url", + "offer-name", + "application-description" + ] + }, + "ApplicationOfferResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ApplicationOfferAdminDetails" + } + }, + "additionalProperties": false + }, + "ApplicationOffersResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationOfferResult" + } + } + }, + "additionalProperties": false + }, + "ConsumeOfferDetails": { + "type": "object", + "properties": { + "external-controller": { + "$ref": "#/definitions/ExternalControllerInfo" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "offer": { + "$ref": "#/definitions/ApplicationOfferDetails" + } + }, + "additionalProperties": false + }, + "ConsumeOfferDetailsResult": { + "type": "object", + "properties": { + "ConsumeOfferDetails": { + "$ref": "#/definitions/ConsumeOfferDetails" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "ConsumeOfferDetails" + ] + }, + "ConsumeOfferDetailsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConsumeOfferDetailsResult" + } + } + }, + "additionalProperties": false + }, + "DestroyApplicationOffers": { + "type": "object", + "properties": { + "force": { + "type": "boolean" + }, + "offer-urls": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "offer-urls" + ] + }, + "EndpointFilterAttributes": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "role", + "interface", + "name" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ExternalControllerInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "ca-cert": { + "type": "string" + }, + "controller-alias": { + "type": "string" + }, + "controller-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "controller-alias", + "addrs", + "ca-cert" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModifyOfferAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "offer-url": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access", + "offer-url" + ] + }, + "ModifyOfferAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyOfferAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "OfferConnection": { + "type": "object", + "properties": { + "endpoint": { + "type": "string" + }, + "ingress-subnets": { + "type": "array", + "items": { + "type": "string" + } + }, + "relation-id": { + "type": "integer" + }, + "source-model-tag": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "source-model-tag", + "relation-id", + "username", + "endpoint", + "status", + "ingress-subnets" + ] + }, + "OfferFilter": { + "type": "object", + "properties": { + "allowed-users": { + "type": "array", + "items": { + "type": "string" + } + }, + "application-description": { + "type": "string" + }, + "application-name": { + "type": "string" + }, + "application-user": { + "type": "string" + }, + "connected-users": { + "type": "array", + "items": { + "type": "string" + } + }, + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/EndpointFilterAttributes" + } + }, + "model-name": { + "type": "string" + }, + "offer-name": { + "type": "string" + }, + "owner-name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "owner-name", + "model-name", + "offer-name", + "application-name", + "application-description", + "application-user", + "endpoints", + "connected-users", + "allowed-users" + ] + }, + "OfferFilters": { + "type": "object", + "properties": { + "Filters": { + "type": "array", + "items": { + "$ref": "#/definitions/OfferFilter" + } + } + }, + "additionalProperties": false, + "required": [ + "Filters" + ] + }, + "OfferURLs": { + "type": "object", + "properties": { + "offer-urls": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "OfferUserDetails": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "access" + ] + }, + "QueryApplicationOffersResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationOfferAdminDetails" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RemoteApplicationInfo": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteEndpoint" + } + }, + "icon-url-path": { + "type": "string" + }, + "model-tag": { + "type": "string" + }, + "name": { + "type": "string" + }, + "offer-url": { + "type": "string" + }, + "source-model-label": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "name", + "description", + "offer-url", + "endpoints", + "icon-url-path" + ] + }, + "RemoteApplicationInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/RemoteApplicationInfo" + } + }, + "additionalProperties": false + }, + "RemoteApplicationInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteApplicationInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RemoteEndpoint": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "limit" + ] + }, + "RemoteSpace": { + "type": "object", + "properties": { + "cloud-type": { + "type": "string" + }, + "name": { + "type": "string" + }, + "provider-attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider-id": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "cloud-type", + "name", + "provider-id", + "provider-attributes", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-network-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + } + } + } + }, + { + "Name": "ApplicationScaler", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Rescale": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Backups", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Create": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsCreateArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "FinishRestore": { + "type": "object" + }, + "Info": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsInfoArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsListArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsListResult" + } + } + }, + "PrepareRestore": { + "type": "object" + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsRemoveArgs" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Restore": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RestoreArgs" + } + } + } + }, + "definitions": { + "BackupsCreateArgs": { + "type": "object", + "properties": { + "keep-copy": { + "type": "boolean" + }, + "no-download": { + "type": "boolean" + }, + "notes": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "notes", + "keep-copy", + "no-download" + ] + }, + "BackupsInfoArgs": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "BackupsListArgs": { + "type": "object", + "additionalProperties": false + }, + "BackupsListResult": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "BackupsMetadataResult": { + "type": "object", + "properties": { + "ca-cert": { + "type": "string" + }, + "ca-private-key": { + "type": "string" + }, + "checksum": { + "type": "string" + }, + "checksum-format": { + "type": "string" + }, + "filename": { + "type": "string" + }, + "finished": { + "type": "string", + "format": "date-time" + }, + "hostname": { + "type": "string" + }, + "id": { + "type": "string" + }, + "machine": { + "type": "string" + }, + "model": { + "type": "string" + }, + "notes": { + "type": "string" + }, + "series": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "started": { + "type": "string", + "format": "date-time" + }, + "stored": { + "type": "string", + "format": "date-time" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "id", + "checksum", + "checksum-format", + "size", + "stored", + "started", + "finished", + "notes", + "model", + "machine", + "hostname", + "version", + "series", + "ca-cert", + "ca-private-key", + "filename" + ] + }, + "BackupsRemoveArgs": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "RestoreArgs": { + "type": "object", + "properties": { + "backup-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "backup-id" + ] + } + } + } + }, + { + "Name": "Block", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BlockResults" + } + } + }, + "SwitchBlockOff": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "SwitchBlockOn": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Block": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "tag", + "type" + ] + }, + "BlockResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Block" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockResult" + } + } + }, + "additionalProperties": false + }, + "BlockSwitchParams": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Bundle", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ExportBundle": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "GetChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + } + }, + "definitions": { + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "bundleURL": { + "type": "string" + }, + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml", + "bundleURL" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + } + } + } + }, + { + "Name": "CAASAgent", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "cacertificates": { + "type": "array", + "items": { + "type": "string" + } + }, + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "CAASFirewaller", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ApplicationsConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationGetConfigResults" + } + } + }, + "IsExposed": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchApplications": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "ApplicationGetConfigResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "CAASOperator", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "Charm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationCharmResults" + } + } + }, + "CurrentModel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelResult" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPodSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetPodSpecParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesVersion" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "ApplicationCharm": { + "type": "object", + "properties": { + "charm-modified-version": { + "type": "integer" + }, + "force-upgrade": { + "type": "boolean" + }, + "sha256": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "sha256", + "charm-modified-version" + ] + }, + "ApplicationCharmResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ApplicationCharm" + } + }, + "additionalProperties": false + }, + "ApplicationCharmResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationCharmResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesVersion": { + "type": "object", + "properties": { + "agent-tools": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "agent-tools" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "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" + ] + }, + "EntityString": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "value" + ] + }, + "EntityVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "tools": { + "$ref": "#/definitions/Version" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "tools" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "type" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SetPodSpecParams": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityString" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Version": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + } + } + } + }, + { + "Name": "CAASOperatorProvisioner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "OperatorProvisioningInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/OperatorProvisioningInfo" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchApplications": { + "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" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "KubernetesFilesystemAttachmentParams": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "provider" + ] + }, + "KubernetesFilesystemParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/KubernetesFilesystemAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "storagename": { + "type": "string" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "storagename", + "size", + "provider" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "OperatorProvisioningInfo": { + "type": "object", + "properties": { + "api-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "charm-storage": { + "$ref": "#/definitions/KubernetesFilesystemParams" + }, + "image-path": { + "type": "string" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "image-path", + "version", + "api-addresses", + "charm-storage" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "CAASUnitProvisioner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ApplicationsConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationGetConfigResults" + } + } + }, + "ApplicationsScale": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/IntResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/KubernetesProvisioningInfoResults" + } + } + }, + "SetOperatorStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateApplicationsService": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpdateApplicationServiceArgs" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateApplicationsUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpdateApplicationUnitArgs" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchApplications": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "WatchApplicationsScale": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchPodSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "ApplicationGetConfigResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "ApplicationUnitParams": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "filesystem-info": { + "type": "array", + "items": { + "$ref": "#/definitions/KubernetesFilesystemInfo" + } + }, + "info": { + "type": "string" + }, + "ports": { + "type": "array", + "items": { + "type": "string" + } + }, + "provider-id": { + "type": "string" + }, + "status": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "provider-id", + "unit-tag", + "address", + "ports", + "status", + "info" + ] + }, + "ConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "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" + ] + }, + "IntResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "IntResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/IntResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "KubernetesDeviceParams": { + "type": "object", + "properties": { + "Attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "Count": { + "type": "integer" + }, + "Type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Type", + "Count", + "Attributes" + ] + }, + "KubernetesFilesystemAttachmentParams": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "provider" + ] + }, + "KubernetesFilesystemInfo": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "filesystem-id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "mount-point": { + "type": "string" + }, + "pool": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "storagename": { + "type": "string" + }, + "volume": { + "$ref": "#/definitions/KubernetesVolumeInfo" + } + }, + "additionalProperties": false, + "required": [ + "storagename", + "pool", + "size", + "filesystem-id", + "status", + "info", + "volume" + ] + }, + "KubernetesFilesystemParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/KubernetesFilesystemAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "storagename": { + "type": "string" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "storagename", + "size", + "provider" + ] + }, + "KubernetesProvisioningInfo": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "devices": { + "type": "array", + "items": { + "$ref": "#/definitions/KubernetesDeviceParams" + } + }, + "filesystems": { + "type": "array", + "items": { + "$ref": "#/definitions/KubernetesFilesystemParams" + } + }, + "placement": { + "type": "string" + }, + "pod-spec": { + "type": "string" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/KubernetesVolumeParams" + } + } + }, + "additionalProperties": false, + "required": [ + "pod-spec", + "constraints" + ] + }, + "KubernetesProvisioningInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/KubernetesProvisioningInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "KubernetesProvisioningInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/KubernetesProvisioningInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "KubernetesVolumeAttachmentParams": { + "type": "object", + "properties": { + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "provider" + ] + }, + "KubernetesVolumeInfo": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent", + "status", + "info" + ] + }, + "KubernetesVolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/KubernetesVolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "storagename": { + "type": "string" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "storagename", + "size", + "provider" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "UpdateApplicationServiceArg": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "application-tag": { + "type": "string" + }, + "provider-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "provider-id", + "addresses" + ] + }, + "UpdateApplicationServiceArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/UpdateApplicationServiceArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "UpdateApplicationUnitArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/UpdateApplicationUnits" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "UpdateApplicationUnits": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "units": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationUnitParams" + } + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "units" + ] + }, + "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" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "CharmRevisionUpdater", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "UpdateLatestRevisions": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Charms", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CharmInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/CharmInfo" + } + } + }, + "IsMetered": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURL" + }, + "Result": { + "$ref": "#/definitions/IsMeteredResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmsList" + }, + "Result": { + "$ref": "#/definitions/CharmsListResult" + } + } + } + }, + "definitions": { + "CharmActionSpec": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "description", + "params" + ] + }, + "CharmActions": { + "type": "object", + "properties": { + "specs": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmActionSpec" + } + } + } + }, + "additionalProperties": false + }, + "CharmDevice": { + "type": "object", + "properties": { + "CountMax": { + "type": "integer" + }, + "CountMin": { + "type": "integer" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description", + "Type", + "CountMin", + "CountMax" + ] + }, + "CharmInfo": { + "type": "object", + "properties": { + "actions": { + "$ref": "#/definitions/CharmActions" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmOption" + } + } + }, + "lxd-profile": { + "$ref": "#/definitions/CharmLXDProfile" + }, + "meta": { + "$ref": "#/definitions/CharmMeta" + }, + "metrics": { + "$ref": "#/definitions/CharmMetrics" + }, + "revision": { + "type": "integer" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "revision", + "url", + "config" + ] + }, + "CharmLXDProfile": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "description": { + "type": "string" + }, + "devices": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + } + } + }, + "additionalProperties": false, + "required": [ + "config", + "description", + "devices" + ] + }, + "CharmMeta": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "type": "string" + }, + "devices": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmDevice" + } + } + }, + "extra-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "min-juju-version": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload-classes": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmPayloadClass" + } + } + }, + "peers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "provides": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "requires": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmRelation" + } + } + }, + "resources": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmResourceMeta" + } + } + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmStorage" + } + } + }, + "subordinate": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "terms": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "summary", + "description", + "subordinate" + ] + }, + "CharmMetric": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "description" + ] + }, + "CharmMetrics": { + "type": "object", + "properties": { + "metrics": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/CharmMetric" + } + } + }, + "plan": { + "$ref": "#/definitions/CharmPlan" + } + }, + "additionalProperties": false, + "required": [ + "metrics", + "plan" + ] + }, + "CharmOption": { + "type": "object", + "properties": { + "default": { + "type": "object", + "additionalProperties": true + }, + "description": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CharmPayloadClass": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type" + ] + }, + "CharmPlan": { + "type": "object", + "properties": { + "required": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "required" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmResourceMeta": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "description" + ] + }, + "CharmStorage": { + "type": "object", + "properties": { + "count-max": { + "type": "integer" + }, + "count-min": { + "type": "integer" + }, + "description": { + "type": "string" + }, + "location": { + "type": "string" + }, + "minimum-size": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "properties": { + "type": "array", + "items": { + "type": "string" + } + }, + "read-only": { + "type": "boolean" + }, + "shared": { + "type": "boolean" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "description", + "type", + "shared", + "read-only", + "count-min", + "count-max", + "minimum-size" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmsList": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "names" + ] + }, + "CharmsListResult": { + "type": "object", + "properties": { + "charm-urls": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "charm-urls" + ] + }, + "IsMeteredResult": { + "type": "object", + "properties": { + "metered": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "metered" + ] + } + } + } + }, + { + "Name": "Cleaner", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Cleanup": { + "type": "object" + }, + "WatchCleanups": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "Client", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "AbortCurrentUpgrade": { + "type": "object" + }, + "AddCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharm" + } + } + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharmWithAuthorization" + } + } + }, + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AddMachinesV2": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AgentVersion": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AgentVersionResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "DestroyMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyMachines" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "FullStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusParams" + }, + "Result": { + "$ref": "#/definitions/FullStatus" + } + } + }, + "GetBundleChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/BundleChangesResults" + } + } + }, + "GetModelConstraints": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "InjectMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelUserInfoResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PrivateAddress" + }, + "Result": { + "$ref": "#/definitions/PrivateAddressResults" + } + } + }, + "ProvisioningScript": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ProvisioningScriptParams" + }, + "Result": { + "$ref": "#/definitions/ProvisioningScriptResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PublicAddress" + }, + "Result": { + "$ref": "#/definitions/PublicAddressResults" + } + } + }, + "ResolveCharms": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResolveCharms" + }, + "Result": { + "$ref": "#/definitions/ResolveCharmResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Resolved" + } + } + }, + "RetryProvisioning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SLALevel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelAgentVersion" + } + } + }, + "SetModelConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "SetSLALevel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSLA" + } + } + }, + "StatusHistory": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryRequests" + }, + "Result": { + "$ref": "#/definitions/StatusHistoryResults" + } + } + }, + "WatchAll": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "AddCharm": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "force": { + "type": "boolean" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "force" + ] + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "force": { + "type": "boolean" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon", + "force" + ] + }, + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "AgentVersionResult": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "ApplicationOfferStatus": { + "type": "object", + "properties": { + "active-connected-count": { + "type": "integer" + }, + "application-name": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "endpoints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/RemoteEndpoint" + } + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "offer-name": { + "type": "string" + }, + "total-connected-count": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "offer-name", + "application-name", + "charm", + "endpoints", + "active-connected-count", + "total-connected-count" + ] + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "can-upgrade-to": { + "type": "string" + }, + "charm": { + "type": "string" + }, + "charm-verion": { + "type": "string" + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "exposed": { + "type": "boolean" + }, + "int": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "meter-statuses": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MeterStatus" + } + } + }, + "provider-id": { + "type": "string" + }, + "public-address": { + "type": "string" + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "series": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + }, + "string": { + "type": "string" + }, + "subordinate-to": { + "type": "array", + "items": { + "type": "string" + } + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "charm", + "series", + "exposed", + "life", + "relations", + "can-upgrade-to", + "subordinate-to", + "units", + "meter-statuses", + "status", + "workload-version", + "charm-verion", + "endpoint-bindings", + "public-address" + ] + }, + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "BundleChange": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + } + }, + "id": { + "type": "string" + }, + "method": { + "type": "string" + }, + "requires": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "id", + "method", + "args", + "requires" + ] + }, + "BundleChangesParams": { + "type": "object", + "properties": { + "bundleURL": { + "type": "string" + }, + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml", + "bundleURL" + ] + }, + "BundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyMachines": { + "type": "object", + "properties": { + "force": { + "type": "boolean" + }, + "machine-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-names", + "force" + ] + }, + "DetailedStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "info": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "data", + "since", + "kind", + "version", + "life" + ] + }, + "EndpointStatus": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + }, + "subordinate": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "application", + "name", + "role", + "subordinate" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FindToolsParams": { + "type": "object", + "properties": { + "agentstream": { + "type": "string" + }, + "arch": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "number": { + "$ref": "#/definitions/Number" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "number", + "major", + "minor", + "arch", + "series", + "agentstream" + ] + }, + "FindToolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "list": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "list" + ] + }, + "FullStatus": { + "type": "object", + "properties": { + "applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ApplicationStatus" + } + } + }, + "controller-timestamp": { + "type": "string", + "format": "date-time" + }, + "machines": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "model": { + "$ref": "#/definitions/ModelStatusInfo" + }, + "offers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ApplicationOfferStatus" + } + } + }, + "relations": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationStatus" + } + }, + "remote-applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/RemoteApplicationStatus" + } + } + } + }, + "additionalProperties": false, + "required": [ + "model", + "machines", + "applications", + "remote-applications", + "offers", + "relations", + "controller-timestamp" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "constraints" + ] + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "History": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/definitions/DetailedStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "statuses" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "LXDProfile": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "description": { + "type": "string" + }, + "devices": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + } + } + }, + "additionalProperties": false, + "required": [ + "config", + "description", + "devices" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MachineStatus": { + "type": "object", + "properties": { + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "constraints": { + "type": "string" + }, + "containers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "dns-name": { + "type": "string" + }, + "hardware": { + "type": "string" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "instance-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "ip-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "lxd-profiles": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/LXDProfile" + } + } + }, + "network-interfaces": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/NetworkInterface" + } + } + }, + "series": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "instance-status", + "dns-name", + "instance-id", + "series", + "id", + "containers", + "constraints", + "hardware", + "jobs", + "has-vote", + "wants-vote" + ] + }, + "MeterStatus": { + "type": "object", + "properties": { + "color": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "color", + "message" + ] + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "migration": { + "$ref": "#/definitions/ModelMigrationStatus" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "sla": { + "$ref": "#/definitions/ModelSLAInfo" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "type": { + "type": "string" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "uuid", + "controller-uuid", + "cloud-tag", + "owner-tag", + "life", + "users", + "machines", + "sla", + "agent-version" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "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" + ] + }, + "ModelSLA": { + "type": "object", + "properties": { + "ModelSLAInfo": { + "$ref": "#/definitions/ModelSLAInfo" + }, + "creds": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "ModelSLAInfo", + "creds" + ] + }, + "ModelSLAInfo": { + "type": "object", + "properties": { + "level": { + "type": "string" + }, + "owner": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "level", + "owner" + ] + }, + "ModelSet": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelStatusInfo": { + "type": "object", + "properties": { + "available-version": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "meter-status": { + "$ref": "#/definitions/MeterStatus" + }, + "model-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "sla": { + "type": "string" + }, + "type": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "cloud-tag", + "version", + "available-version", + "model-status", + "meter-status", + "sla" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModelUserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "additionalProperties": false + }, + "ModelUserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NetworkInterface": { + "type": "object", + "properties": { + "dns-nameservers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway": { + "type": "string" + }, + "ip-addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "is-up": { + "type": "boolean" + }, + "mac-address": { + "type": "string" + }, + "space": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ip-addresses", + "mac-address", + "is-up" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "PrivateAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PrivateAddressResults": { + "type": "object", + "properties": { + "private-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "private-address" + ] + }, + "ProvisioningScriptParams": { + "type": "object", + "properties": { + "data-dir": { + "type": "string" + }, + "disable-package-commands": { + "type": "boolean" + }, + "machine-id": { + "type": "string" + }, + "nonce": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-id", + "nonce", + "data-dir", + "disable-package-commands" + ] + }, + "ProvisioningScriptResult": { + "type": "object", + "properties": { + "script": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "script" + ] + }, + "PublicAddress": { + "type": "object", + "properties": { + "target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "PublicAddressResults": { + "type": "object", + "properties": { + "public-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "public-address" + ] + }, + "RelationStatus": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/EndpointStatus" + } + }, + "id": { + "type": "integer" + }, + "interface": { + "type": "string" + }, + "key": { + "type": "string" + }, + "scope": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + } + }, + "additionalProperties": false, + "required": [ + "id", + "key", + "interface", + "scope", + "endpoints", + "status" + ] + }, + "RemoteApplicationStatus": { + "type": "object", + "properties": { + "endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteEndpoint" + } + }, + "err": { + "type": "object", + "additionalProperties": true + }, + "life": { + "type": "string" + }, + "offer-name": { + "type": "string" + }, + "offer-url": { + "type": "string" + }, + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "status": { + "$ref": "#/definitions/DetailedStatus" + } + }, + "additionalProperties": false, + "required": [ + "offer-url", + "offer-name", + "endpoints", + "life", + "relations", + "status" + ] + }, + "RemoteEndpoint": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "limit" + ] + }, + "ResolveCharmResult": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ResolveCharmResults": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolveCharmResult" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "ResolveCharms": { + "type": "object", + "properties": { + "references": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "references" + ] + }, + "Resolved": { + "type": "object", + "properties": { + "retry": { + "type": "boolean" + }, + "unit-name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-name", + "retry" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "application": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "application", + "constraints" + ] + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "force": { + "type": "boolean" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "StatusHistoryFilter": { + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "delta": { + "type": "integer" + }, + "exclude": { + "type": "array", + "items": { + "type": "string" + } + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "size", + "date", + "delta", + "exclude" + ] + }, + "StatusHistoryRequest": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/definitions/StatusHistoryFilter" + }, + "historyKind": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "historyKind", + "size", + "filter", + "tag" + ] + }, + "StatusHistoryRequests": { + "type": "object", + "properties": { + "requests": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryRequest" + } + } + }, + "additionalProperties": false, + "required": [ + "requests" + ] + }, + "StatusHistoryResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "history": { + "$ref": "#/definitions/History" + } + }, + "additionalProperties": false, + "required": [ + "history" + ] + }, + "StatusHistoryResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusParams": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "UnitStatus": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "agent-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "charm": { + "type": "string" + }, + "leader": { + "type": "boolean" + }, + "machine": { + "type": "string" + }, + "opened-ports": { + "type": "array", + "items": { + "type": "string" + } + }, + "provider-id": { + "type": "string" + }, + "public-address": { + "type": "string" + }, + "subordinates": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "workload-status": { + "$ref": "#/definitions/DetailedStatus" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "agent-status", + "workload-status", + "workload-version", + "machine", + "opened-ports", + "public-address", + "charm", + "subordinates" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "Cloud", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddCloud": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCloudArgs" + } + } + }, + "AddCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/TaggedCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CheckCredentialsModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/TaggedCredentials" + }, + "Result": { + "$ref": "#/definitions/UpdateCredentialResults" + } + } + }, + "Cloud": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudResults" + } + } + }, + "CloudInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudInfoResults" + } + } + }, + "Clouds": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/CloudsResult" + } + } + }, + "Credential": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudCredentialResults" + } + } + }, + "CredentialContents": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CloudCredentialArgs" + }, + "Result": { + "$ref": "#/definitions/CredentialContentResults" + } + } + }, + "DefaultCloud": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "InstanceTypes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CloudInstanceTypesConstraints" + }, + "Result": { + "$ref": "#/definitions/InstanceTypesResults" + } + } + }, + "ListCloudInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListCloudsRequest" + }, + "Result": { + "$ref": "#/definitions/ListCloudInfoResults" + } + } + }, + "ModifyCloudAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyCloudAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveClouds": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RevokeCredentialsCheckModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RevokeCredentialArgs" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateCredentialsCheckModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpdateCredentialArgs" + }, + "Result": { + "$ref": "#/definitions/UpdateCredentialResults" + } + } + }, + "UserCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserClouds" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "AddCloudArgs": { + "type": "object", + "properties": { + "cloud": { + "$ref": "#/definitions/Cloud" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud", + "name" + ] + }, + "Cloud": { + "type": "object", + "properties": { + "auth-types": { + "type": "array", + "items": { + "type": "string" + } + }, + "ca-certificates": { + "type": "array", + "items": { + "type": "string" + } + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudRegion" + } + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudCredentialArg": { + "type": "object", + "properties": { + "cloud-name": { + "type": "string" + }, + "credential-name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "cloud-name", + "credential-name" + ] + }, + "CloudCredentialArgs": { + "type": "object", + "properties": { + "credentials": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudCredentialArg" + } + }, + "include-secrets": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "include-secrets" + ] + }, + "CloudCredentialResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudCredential" + } + }, + "additionalProperties": false + }, + "CloudCredentialResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudCredentialResult" + } + } + }, + "additionalProperties": false + }, + "CloudDetails": { + "type": "object", + "properties": { + "auth-types": { + "type": "array", + "items": { + "type": "string" + } + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudRegion" + } + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "CloudInfo": { + "type": "object", + "properties": { + "CloudDetails": { + "$ref": "#/definitions/CloudDetails" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudUserInfo" + } + } + }, + "additionalProperties": false, + "required": [ + "CloudDetails", + "users" + ] + }, + "CloudInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudInfo" + } + }, + "additionalProperties": false + }, + "CloudInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "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": { + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name" + ] + }, + "CloudResult": { + "type": "object", + "properties": { + "cloud": { + "$ref": "#/definitions/Cloud" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "CloudResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudResult" + } + } + }, + "additionalProperties": false + }, + "CloudUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "access" + ] + }, + "CloudsResult": { + "type": "object", + "properties": { + "clouds": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Cloud" + } + } + } + }, + "additionalProperties": false + }, + "ControllerCredentialInfo": { + "type": "object", + "properties": { + "content": { + "$ref": "#/definitions/CredentialContent" + }, + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelAccess" + } + } + }, + "additionalProperties": false + }, + "CredentialContent": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "cloud": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "cloud", + "auth-type" + ] + }, + "CredentialContentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ControllerCredentialInfo" + } + }, + "additionalProperties": false + }, + "CredentialContentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CredentialContentResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "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" + ] + }, + "ListCloudInfo": { + "type": "object", + "properties": { + "CloudDetails": { + "$ref": "#/definitions/CloudDetails" + }, + "user-access": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CloudDetails", + "user-access" + ] + }, + "ListCloudInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ListCloudInfo" + } + }, + "additionalProperties": false + }, + "ListCloudInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ListCloudInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListCloudsRequest": { + "type": "object", + "properties": { + "all": { + "type": "boolean" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "model": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ModifyCloudAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "cloud-tag", + "action", + "access" + ] + }, + "ModifyCloudAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyCloudAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RevokeCredentialArg": { + "type": "object", + "properties": { + "force": { + "type": "boolean" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "force" + ] + }, + "RevokeCredentialArgs": { + "type": "object", + "properties": { + "credentials": { + "type": "array", + "items": { + "$ref": "#/definitions/RevokeCredentialArg" + } + } + }, + "additionalProperties": false, + "required": [ + "credentials" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "TaggedCredential": { + "type": "object", + "properties": { + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "credential" + ] + }, + "TaggedCredentials": { + "type": "object", + "properties": { + "credentials": { + "type": "array", + "items": { + "$ref": "#/definitions/TaggedCredential" + } + } + }, + "additionalProperties": false + }, + "UpdateCredentialArgs": { + "type": "object", + "properties": { + "credentials": { + "type": "array", + "items": { + "$ref": "#/definitions/TaggedCredential" + } + }, + "force": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "credentials", + "force" + ] + }, + "UpdateCredentialModelResult": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name" + ] + }, + "UpdateCredentialResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/UpdateCredentialModelResult" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "UpdateCredentialResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UpdateCredentialResult" + } + } + }, + "additionalProperties": false + }, + "UserCloud": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "cloud-tag" + ] + }, + "UserClouds": { + "type": "object", + "properties": { + "user-clouds": { + "type": "array", + "items": { + "$ref": "#/definitions/UserCloud" + } + } + }, + "additionalProperties": false + }, + "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" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "Controller", + "Version": 5, + "Schema": { + "type": "object", + "properties": { + "AllModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ConfigSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ControllerConfigSet" + } + } + }, + "ControllerAPIInfoForModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ControllerAPIInfoResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DestroyController": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyControllerArgs" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/UserAccessResults" + } + } + }, + "HostedModelConfigs": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/HostedModelConfigsResults" + } + } + }, + "InitiateMigration": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/InitiateMigrationArgs" + }, + "Result": { + "$ref": "#/definitions/InitiateMigrationResults" + } + } + }, + "ListBlockedModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelBlockInfoList" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyControllerAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveBlocks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RemoveBlocksArgs" + } + } + }, + "WatchAllModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "AllWatcherId": { + "type": "object", + "properties": { + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "cacertificates": { + "type": "array", + "items": { + "type": "string" + } + }, + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "ControllerAPIInfoResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "cacert": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses", + "cacert" + ] + }, + "ControllerAPIInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllerAPIInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ControllerConfigSet": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "DestroyControllerArgs": { + "type": "object", + "properties": { + "destroy-models": { + "type": "boolean" + }, + "destroy-storage": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "destroy-models" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostedModelConfig": { + "type": "object", + "properties": { + "cloud-spec": { + "$ref": "#/definitions/CloudSpec" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "owner": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner" + ] + }, + "HostedModelConfigsResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/HostedModelConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "InitiateMigrationArgs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/MigrationSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "InitiateMigrationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "migration-id": { + "type": "string" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "migration-id" + ] + }, + "InitiateMigrationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/InitiateMigrationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MigrationSpec": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "type", + "owner-tag" + ] + }, + "ModelBlockInfo": { + "type": "object", + "properties": { + "blocks": { + "type": "array", + "items": { + "type": "string" + } + }, + "model-uuid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "model-uuid", + "owner-tag", + "blocks" + ] + }, + "ModelBlockInfoList": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelBlockInfo" + } + } + }, + "additionalProperties": false + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelFilesystemInfo": { + "type": "object", + "properties": { + "detachable": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelStatus": { + "type": "object", + "properties": { + "application-count": { + "type": "integer" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "filesystems": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelFilesystemInfo" + } + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelVolumeInfo" + } + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "ModelVolumeInfo": { + "type": "object", + "properties": { + "detachable": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModifyControllerAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access" + ] + }, + "ModifyControllerAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyControllerAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "RemoveBlocksArgs": { + "type": "object", + "properties": { + "all": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "all" + ] + }, + "UserAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "access" + ] + }, + "UserAccessResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserAccess" + } + }, + "additionalProperties": false + }, + "UserAccessResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserAccessResult" + } + } + }, + "additionalProperties": false + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "CredentialManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "InvalidateModelCredential": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/InvalidateCredentialArg" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "InvalidateCredentialArg": { + "type": "object", + "properties": { + "reason": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "CredentialValidator", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "InvalidateModelCredential": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/InvalidateCredentialArg" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "ModelCredential": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelCredential" + } + } + }, + "WatchCredential": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entity" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelCredential": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "InvalidateCredentialArg": { + "type": "object", + "properties": { + "reason": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelCredential": { + "type": "object", + "properties": { + "credential-tag": { + "type": "string" + }, + "exists": { + "type": "boolean" + }, + "model-tag": { + "type": "string" + }, + "valid": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "credential-tag" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "CrossController", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ControllerInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerAPIInfoResults" + } + } + }, + "WatchControllerInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "ControllerAPIInfoResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "cacert": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses", + "cacert" + ] + }, + "ControllerAPIInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllerAPIInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "CrossModelRelations", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "PublishIngressNetworkChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/IngressNetworksChanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "PublishRelationChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RemoteRelationsChanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RegisterRemoteRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RegisterRemoteRelationArgs" + }, + "Result": { + "$ref": "#/definitions/RegisterRemoteRelationResults" + } + } + }, + "RelationUnitSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RemoteRelationUnits" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "WatchEgressAddressesForRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RemoteEntityArgs" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchOfferStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/OfferArgs" + }, + "Result": { + "$ref": "#/definitions/OfferStatusWatchResults" + } + } + }, + "WatchRelationUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RemoteEntityArgs" + }, + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResults" + } + } + }, + "WatchRelationsSuspendedStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RemoteEntityArgs" + }, + "Result": { + "$ref": "#/definitions/RelationStatusWatchResults" + } + } + } + }, + "definitions": { + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "IngressNetworksChangeEvent": { + "type": "object", + "properties": { + "application-token": { + "type": "string" + }, + "ingress-required": { + "type": "boolean" + }, + "macaroons": { + "type": "array", + "items": { + "$ref": "#/definitions/Macaroon" + } + }, + "networks": { + "type": "array", + "items": { + "type": "string" + } + }, + "relation-token": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation-token", + "application-token", + "ingress-required" + ] + }, + "IngressNetworksChanges": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/IngressNetworksChangeEvent" + } + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "OfferArg": { + "type": "object", + "properties": { + "macaroons": { + "type": "array", + "items": { + "$ref": "#/definitions/Macaroon" + } + }, + "offer-uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "offer-uuid" + ] + }, + "OfferArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/OfferArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "OfferStatusChange": { + "type": "object", + "properties": { + "offer-name": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + } + }, + "additionalProperties": false, + "required": [ + "offer-name", + "status" + ] + }, + "OfferStatusWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/OfferStatusChange" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "OfferStatusWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/OfferStatusWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RegisterRemoteRelationArg": { + "type": "object", + "properties": { + "application-token": { + "type": "string" + }, + "local-endpoint-name": { + "type": "string" + }, + "macaroons": { + "type": "array", + "items": { + "$ref": "#/definitions/Macaroon" + } + }, + "offer-uuid": { + "type": "string" + }, + "relation-token": { + "type": "string" + }, + "remote-endpoint": { + "$ref": "#/definitions/RemoteEndpoint" + }, + "remote-space": { + "$ref": "#/definitions/RemoteSpace" + }, + "source-model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application-token", + "source-model-tag", + "relation-token", + "remote-endpoint", + "remote-space", + "offer-uuid", + "local-endpoint-name" + ] + }, + "RegisterRemoteRelationArgs": { + "type": "object", + "properties": { + "relations": { + "type": "array", + "items": { + "$ref": "#/definitions/RegisterRemoteRelationArg" + } + } + }, + "additionalProperties": false, + "required": [ + "relations" + ] + }, + "RegisterRemoteRelationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/RemoteRelationDetails" + } + }, + "additionalProperties": false + }, + "RegisterRemoteRelationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RegisterRemoteRelationResult" + } + } + }, + "additionalProperties": false + }, + "RelationLifeSuspendedStatusChange": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "life": { + "type": "string" + }, + "suspended": { + "type": "boolean" + }, + "suspended-reason": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "life", + "suspended", + "suspended-reason" + ] + }, + "RelationLifeSuspendedStatusWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationLifeSuspendedStatusChange" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "RelationStatusWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationLifeSuspendedStatusWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "RelationUnitsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RemoteEndpoint": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "limit" + ] + }, + "RemoteEntityArg": { + "type": "object", + "properties": { + "macaroons": { + "type": "array", + "items": { + "$ref": "#/definitions/Macaroon" + } + }, + "relation-token": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation-token" + ] + }, + "RemoteEntityArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteEntityArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "RemoteRelationChangeEvent": { + "type": "object", + "properties": { + "application-token": { + "type": "string" + }, + "changed-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteRelationUnitChange" + } + }, + "departed-units": { + "type": "array", + "items": { + "type": "integer" + } + }, + "force-cleanup": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "macaroons": { + "type": "array", + "items": { + "$ref": "#/definitions/Macaroon" + } + }, + "relation-token": { + "type": "string" + }, + "suspended": { + "type": "boolean" + }, + "suspended-reason": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation-token", + "application-token", + "life" + ] + }, + "RemoteRelationDetails": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "relation-token": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation-token" + ] + }, + "RemoteRelationUnit": { + "type": "object", + "properties": { + "macaroons": { + "type": "array", + "items": { + "$ref": "#/definitions/Macaroon" + } + }, + "relation-token": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation-token", + "unit" + ] + }, + "RemoteRelationUnitChange": { + "type": "object", + "properties": { + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "unit-id": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "unit-id" + ] + }, + "RemoteRelationUnits": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteRelationUnit" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RemoteRelationsChanges": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteRelationChangeEvent" + } + } + }, + "additionalProperties": false + }, + "RemoteSpace": { + "type": "object", + "properties": { + "cloud-type": { + "type": "string" + }, + "name": { + "type": "string" + }, + "provider-attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider-id": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "cloud-type", + "name", + "provider-id", + "provider-attributes", + "subnets" + ] + }, + "SettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "SettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-network-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + } + } + } + }, + { + "Name": "Deployer", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "ConnectionInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DeployerConnectionValues" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "DeployerConnectionValues": { + "type": "object", + "properties": { + "api-addresses": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "api-addresses" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "DiskManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineBlockDevices" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + }, + "WWN": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "WWN", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineBlockDevices": { + "type": "object", + "properties": { + "block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDevice" + } + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "machine-block-devices": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineBlockDevices" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-block-devices" + ] + } + } + } + }, + { + "Name": "EntityWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/EntitiesWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "EntitiesWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "ExternalControllerUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ExternalControllerInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ExternalControllerInfoResults" + } + } + }, + "SetExternalControllerInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetExternalControllersInfoParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchExternalControllers": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ExternalControllerInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "ca-cert": { + "type": "string" + }, + "controller-alias": { + "type": "string" + }, + "controller-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "controller-alias", + "addrs", + "ca-cert" + ] + }, + "ExternalControllerInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ExternalControllerInfo" + } + }, + "additionalProperties": false, + "required": [ + "result", + "error" + ] + }, + "ExternalControllerInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ExternalControllerInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SetExternalControllerInfoParams": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/ExternalControllerInfo" + } + }, + "additionalProperties": false, + "required": [ + "info" + ] + }, + "SetExternalControllersInfoParams": { + "type": "object", + "properties": { + "controllers": { + "type": "array", + "items": { + "$ref": "#/definitions/SetExternalControllerInfoParams" + } + } + }, + "additionalProperties": false, + "required": [ + "controllers" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "FanConfigurer", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "FanConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/FanConfigResult" + } + } + }, + "WatchForFanConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "FanConfigEntry": { + "type": "object", + "properties": { + "overlay": { + "type": "string" + }, + "underlay": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "underlay", + "overlay" + ] + }, + "FanConfigResult": { + "type": "object", + "properties": { + "fans": { + "type": "array", + "items": { + "$ref": "#/definitions/FanConfigEntry" + } + } + }, + "additionalProperties": false, + "required": [ + "fans" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "FilesystemAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + }, + { + "Name": "FirewallRules", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ListFirewallRules": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ListFirewallRulesResults" + } + } + }, + "SetFirewallRules": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FirewallRuleArgs" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FirewallRule": { + "type": "object", + "properties": { + "known-service": { + "type": "string" + }, + "whitelist-cidrs": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "known-service" + ] + }, + "FirewallRuleArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/FirewallRule" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "ListFirewallRulesResults": { + "type": "object", + "properties": { + "Rules": { + "type": "array", + "items": { + "$ref": "#/definitions/FirewallRule" + } + } + }, + "additionalProperties": false, + "required": [ + "Rules" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Firewaller", + "Version": 5, + "Schema": { + "type": "object", + "properties": { + "AreManuallyProvisioned": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResults" + } + } + }, + "ControllerAPIInfoForModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ControllerAPIInfoResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "FirewallRules": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/KnownServiceArgs" + }, + "Result": { + "$ref": "#/definitions/ListFirewallRulesResults" + } + } + }, + "GetAssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "GetCloudSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelTag" + }, + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "GetExposed": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "GetMachineActiveSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "GetMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachinePortsParams" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "MacaroonForRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MacaroonResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "SetRelationsStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchEgressAddressesForRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchIngressAddressesForRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "WatchOpenedPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "cacertificates": { + "type": "array", + "items": { + "type": "string" + } + }, + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "CloudSpecResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "additionalProperties": false + }, + "ControllerAPIInfoResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "cacert": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses", + "cacert" + ] + }, + "ControllerAPIInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllerAPIInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "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" + ] + }, + "FirewallRule": { + "type": "object", + "properties": { + "known-service": { + "type": "string" + }, + "whitelist-cidrs": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "known-service" + ] + }, + "KnownServiceArgs": { + "type": "object", + "properties": { + "known-services": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "known-services" + ] + }, + "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" + ] + }, + "ListFirewallRulesResults": { + "type": "object", + "properties": { + "Rules": { + "type": "array", + "items": { + "$ref": "#/definitions/FirewallRule" + } + } + }, + "additionalProperties": false, + "required": [ + "Rules" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MacaroonResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Macaroon" + } + }, + "additionalProperties": false + }, + "MacaroonResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MacaroonResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePorts": { + "type": "object", + "properties": { + "machine-tag": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "subnet-tag" + ] + }, + "MachinePortsParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePorts" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelTag": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "HighAvailability", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "EnableHA": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ControllersSpecs" + }, + "Result": { + "$ref": "#/definitions/ControllersChangeResults" + } + } + }, + "ResumeHAReplicationAfterUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResumeReplicationParams" + } + } + }, + "StopHAReplicationForUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpgradeMongoParams" + }, + "Result": { + "$ref": "#/definitions/MongoUpgradeResults" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "Scope": { + "type": "string" + }, + "SpaceName": { + "type": "string" + }, + "SpaceProviderId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Value", + "Type", + "Scope", + "SpaceName", + "SpaceProviderId" + ] + }, + "ControllersChangeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ControllersChanges" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ControllersChangeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersChangeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ControllersChanges": { + "type": "object", + "properties": { + "added": { + "type": "array", + "items": { + "type": "string" + } + }, + "converted": { + "type": "array", + "items": { + "type": "string" + } + }, + "demoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "maintained": { + "type": "array", + "items": { + "type": "string" + } + }, + "promoted": { + "type": "array", + "items": { + "type": "string" + } + }, + "removed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "ControllersSpec": { + "type": "object", + "properties": { + "constraints": { + "$ref": "#/definitions/Value" + }, + "num-controllers": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "type": "string" + } + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "num-controllers" + ] + }, + "ControllersSpecs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "HAMember": { + "type": "object", + "properties": { + "public-address": { + "$ref": "#/definitions/Address" + }, + "series": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-address", + "series" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Member": { + "type": "object", + "properties": { + "Address": { + "type": "string" + }, + "Id": { + "type": "integer" + }, + "Priority": { + "type": "number" + }, + "Tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "Votes": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Id", + "Address", + "Priority", + "Tags", + "Votes" + ] + }, + "MongoUpgradeResults": { + "type": "object", + "properties": { + "ha-members": { + "type": "array", + "items": { + "$ref": "#/definitions/HAMember" + } + }, + "master": { + "$ref": "#/definitions/HAMember" + }, + "rs-members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "rs-members", + "master", + "ha-members" + ] + }, + "MongoVersion": { + "type": "object", + "properties": { + "engine": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "patch": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "major", + "minor", + "patch", + "engine" + ] + }, + "ResumeReplicationParams": { + "type": "object", + "properties": { + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "members" + ] + }, + "UpgradeMongoParams": { + "type": "object", + "properties": { + "target": { + "$ref": "#/definitions/MongoVersion" + } + }, + "additionalProperties": false, + "required": [ + "target" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "HostKeyReporter", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ReportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SSHHostKeySet" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHHostKeySet": { + "type": "object", + "properties": { + "entity-keys": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHHostKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "entity-keys" + ] + }, + "SSHHostKeys": { + "type": "object", + "properties": { + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "public-keys" + ] + } + } + } + }, + { + "Name": "ImageManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "DeleteImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ListImageResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ImageFilterParams": { + "type": "object", + "properties": { + "images": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "images" + ] + }, + "ImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series", + "url", + "created" + ] + }, + "ImageSpec": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "arch", + "series" + ] + }, + "ListImageResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "ImageMetadata", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "UpdateFromPublishedImages": { + "type": "object" + } + } + } + }, + { + "Name": "InstancePoller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AreManuallyProvisioned": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineAddressesResults" + } + } + }, + "SetInstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Status": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "MachineAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "MachineAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "KeyManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DeleteKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ImportKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyUserSSHKeys" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListSSHKeys" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSSHKeys": { + "type": "object", + "properties": { + "entities": { + "$ref": "#/definitions/Entities" + }, + "mode": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "mode" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModifyUserSSHKeys": { + "type": "object", + "properties": { + "ssh-keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "ssh-keys" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "KeyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "WatchAuthorisedKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LeadershipService", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "BlockUntilLeadershipReleased": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationTag" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "ClaimLeadership": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ClaimLeadershipBulkParams" + }, + "Result": { + "$ref": "#/definitions/ClaimLeadershipBulkResults" + } + } + } + }, + "definitions": { + "ApplicationTag": { + "type": "object", + "properties": { + "Name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Name" + ] + }, + "ClaimLeadershipBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/ClaimLeadershipParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "ClaimLeadershipBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ClaimLeadershipParams": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "duration": { + "type": "number" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "application-tag", + "unit-tag", + "duration" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "LifeFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "LogForwarding", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingGetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/LogForwardingGetLastSentResults" + } + } + }, + "SetLastSent": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LogForwardingSetLastSentParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingGetLastSentParams": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingID" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "LogForwardingGetLastSentResult": { + "type": "object", + "properties": { + "err": { + "$ref": "#/definitions/Error" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "record-id", + "record-timestamp", + "err" + ] + }, + "LogForwardingGetLastSentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingGetLastSentResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LogForwardingID": { + "type": "object", + "properties": { + "model": { + "type": "string" + }, + "sink": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model", + "sink" + ] + }, + "LogForwardingSetLastSentParam": { + "type": "object", + "properties": { + "LogForwardingID": { + "$ref": "#/definitions/LogForwardingID" + }, + "record-id": { + "type": "integer" + }, + "record-timestamp": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "LogForwardingID", + "record-id", + "record-timestamp" + ] + }, + "LogForwardingSetLastSentParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/LogForwardingSetLastSentParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "Logger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "LoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "WatchLoggingConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineActions", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RunningActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionsByReceiver": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MachineManager", + "Version": 5, + "Schema": { + "type": "object", + "properties": { + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "DestroyMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DestroyMachineResults" + } + } + }, + "DestroyMachineWithParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyMachinesParams" + }, + "Result": { + "$ref": "#/definitions/DestroyMachineResults" + } + } + }, + "ForceDestroyMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DestroyMachineResults" + } + } + }, + "GetUpgradeSeriesMessages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpgradeSeriesNotificationParams" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "InstanceTypes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelInstanceTypesConstraints" + }, + "Result": { + "$ref": "#/definitions/InstanceTypesResults" + } + } + }, + "UpgradeSeriesComplete": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpdateSeriesArg" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "UpgradeSeriesPrepare": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpdateSeriesArg" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "UpgradeSeriesValidate": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpdateSeriesArgs" + }, + "Result": { + "$ref": "#/definitions/UpgradeSeriesUnitsResults" + } + } + }, + "WatchUpgradeSeriesNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "AddMachineParams": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "container-type": { + "type": "string" + }, + "disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "hardware-characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "instance-id": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "nonce": { + "type": "string" + }, + "parent-id": { + "type": "string" + }, + "placement": { + "$ref": "#/definitions/Placement" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "series", + "constraints", + "jobs", + "parent-id", + "container-type", + "instance-id", + "nonce", + "hardware-characteristics", + "addresses" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyMachineInfo": { + "type": "object", + "properties": { + "destroyed-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "destroyed-units": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "detached-storage": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false + }, + "DestroyMachineResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "$ref": "#/definitions/DestroyMachineInfo" + } + }, + "additionalProperties": false + }, + "DestroyMachineResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/DestroyMachineResult" + } + } + }, + "additionalProperties": false + }, + "DestroyMachinesParams": { + "type": "object", + "properties": { + "force": { + "type": "boolean" + }, + "keep": { + "type": "boolean" + }, + "machine-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-tags" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "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 + }, + "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" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Placement": { + "type": "object", + "properties": { + "directive": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "scope", + "directive" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateSeriesArg": { + "type": "object", + "properties": { + "force": { + "type": "boolean" + }, + "series": { + "type": "string" + }, + "tag": { + "$ref": "#/definitions/Entity" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "force", + "series" + ] + }, + "UpdateSeriesArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/UpdateSeriesArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "UpgradeSeriesNotificationParam": { + "type": "object", + "properties": { + "entity": { + "$ref": "#/definitions/Entity" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "watcher-id" + ] + }, + "UpgradeSeriesNotificationParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/UpgradeSeriesNotificationParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "UpgradeSeriesUnitsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "unit-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "unit-names" + ] + }, + "UpgradeSeriesUnitsResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/UpgradeSeriesUnitsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "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" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MachineUndertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AllMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/EntitiesResults" + } + } + }, + "CompleteMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + } + } + }, + "GetMachineProviderInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProviderInterfaceInfoResults" + } + } + }, + "WatchMachineRemovals": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResult": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProviderInterfaceInfo": { + "type": "object", + "properties": { + "interface-name": { + "type": "string" + }, + "mac-address": { + "type": "string" + }, + "provider-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "interface-name", + "mac-address", + "provider-id" + ] + }, + "ProviderInterfaceInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "interfaces": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfo" + } + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "interfaces" + ] + }, + "ProviderInterfaceInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderInterfaceInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Machiner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Jobs": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/JobsResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetMachineAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetObservedNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineNetworkConfig" + } + } + }, + "SetProviderNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "JobsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "jobs" + ] + }, + "JobsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/JobsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineAddresses": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "addresses" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "is-default-gateway": { + "type": "boolean" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkRoute" + } + }, + "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" + ] + }, + "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": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetMachineNetworkConfig": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "config" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "machine-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "machine-addresses" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "MeterStatus", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsAdder", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "labels": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + } + } + } + }, + { + "Name": "MetricsDebug", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "GetMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MetricResults" + } + } + }, + "SetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MeterStatusParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityMetrics": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricResult" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MeterStatusParam": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "code" + ] + }, + "MeterStatusParams": { + "type": "object", + "properties": { + "statues": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusParam" + } + } + }, + "additionalProperties": false, + "required": [ + "statues" + ] + }, + "MetricResult": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "labels": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "time": { + "type": "string", + "format": "date-time" + }, + "unit": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "time", + "key", + "value", + "unit", + "labels" + ] + }, + "MetricResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityMetrics" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MetricsManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddJujuMachineMetrics": { + "type": "object" + }, + "CleanupOldMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SendMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + } + } + } + }, + { + "Name": "MigrationFlag", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Phase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PhaseResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PhaseResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "phase": { + "type": "string" + } + }, + "additionalProperties": false + }, + "PhaseResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PhaseResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "MigrationMaster", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Export": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "MigrationStatus": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MasterMigrationStatus" + } + } + }, + "MinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MinionReports" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + }, + "Prechecks": { + "type": "object" + }, + "Reap": { + "type": "object" + }, + "SetPhase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationPhaseArgs" + } + } + }, + "SetStatusMessage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationStatusMessageArgs" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchMinionReports": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MasterMigrationStatus": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "phase-changed-time": { + "type": "string", + "format": "date-time" + }, + "spec": { + "$ref": "#/definitions/MigrationSpec" + } + }, + "additionalProperties": false, + "required": [ + "spec", + "migration-id", + "phase", + "phase-changed-time" + ] + }, + "MigrationModelInfo": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "controller-agent-version": { + "$ref": "#/definitions/Number" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version", + "controller-agent-version" + ] + }, + "MigrationSpec": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + }, + "target-info": { + "$ref": "#/definitions/MigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info" + ] + }, + "MigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "macaroons": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag" + ] + }, + "MinionReports": { + "type": "object", + "properties": { + "failed": { + "type": "array", + "items": { + "type": "string" + } + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success-count": { + "type": "integer" + }, + "unknown-count": { + "type": "integer" + }, + "unknown-sample": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success-count", + "unknown-count", + "unknown-sample", + "failed" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelResource" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "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": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + }, + "SetMigrationPhaseArgs": { + "type": "object", + "properties": { + "phase": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "phase" + ] + }, + "SetMigrationStatusMessageArgs": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message" + ] + } + } + } + }, + { + "Name": "MigrationMinion", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Report": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MinionReport" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MinionReport": { + "type": "object", + "properties": { + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "success": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "phase", + "success" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + } + } + } + }, + { + "Name": "MigrationStatusWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MigrationStatus" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "MigrationStatus": { + "type": "object", + "properties": { + "attempt": { + "type": "integer" + }, + "migration-id": { + "type": "string" + }, + "phase": { + "type": "string" + }, + "source-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "source-ca-cert": { + "type": "string" + }, + "target-api-addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "target-ca-cert": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "migration-id", + "attempt", + "phase", + "source-api-addrs", + "source-ca-cert", + "target-api-addrs", + "target-ca-cert" + ] + } + } + } + }, + { + "Name": "MigrationTarget", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Abort": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "Activate": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + } + } + }, + "AdoptResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AdoptResourcesArgs" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "CheckMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Import": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "LatestLogTime": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelArgs" + }, + "Result": { + "type": "string", + "format": "date-time" + } + } + }, + "Prechecks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MigrationModelInfo" + } + } + } + }, + "definitions": { + "AdoptResourcesArgs": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + }, + "source-controller-version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "source-controller-version" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "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, + "required": [ + "uuid", + "name", + "owner-tag", + "agent-version", + "controller-agent-version" + ] + }, + "ModelArgs": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "charms": { + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelResource" + } + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/SerializedModelTools" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes", + "charms", + "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": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "version", + "uri" + ] + } + } + } + }, + { + "Name": "ModelConfig", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + }, + "SLALevel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "Sequences": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelSequencesResult" + } + } + }, + "SetSLALevel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSLA" + } + } + } + }, + "definitions": { + "ConfigValue": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "value", + "source" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ConfigValue" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelSLA": { + "type": "object", + "properties": { + "ModelSLAInfo": { + "$ref": "#/definitions/ModelSLAInfo" + }, + "creds": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "ModelSLAInfo", + "creds" + ] + }, + "ModelSLAInfo": { + "type": "object", + "properties": { + "level": { + "type": "string" + }, + "owner": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "level", + "owner" + ] + }, + "ModelSequencesResult": { + "type": "object", + "properties": { + "sequences": { + "type": "object", + "patternProperties": { + ".*": { + "type": "integer" + } + } + } + }, + "additionalProperties": false, + "required": [ + "sequences" + ] + }, + "ModelSet": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelUnset": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + } + } + } + }, + { + "Name": "ModelManager", + "Version": 5, + "Schema": { + "type": "object", + "properties": { + "ChangeModelCredential": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ChangeModelCredentialsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreateModel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelCreateArgs" + }, + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "DestroyModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyModelsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DumpModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DumpModelRequest" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "DumpModelsDB": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MapResults" + } + } + }, + "ListModelSummaries": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSummariesRequest" + }, + "Result": { + "$ref": "#/definitions/ModelSummaryResults" + } + } + }, + "ListModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entity" + }, + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "ModelDefaults": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelDefaultsResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelInfoResults" + } + } + }, + "ModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelStatusResults" + } + } + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyModelAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnsetModelDefaults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "ChangeModelCredentialParams": { + "type": "object", + "properties": { + "credential-tag": { + "type": "string" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "credential-tag" + ] + }, + "ChangeModelCredentialsParams": { + "type": "object", + "properties": { + "model-credentials": { + "type": "array", + "items": { + "$ref": "#/definitions/ChangeModelCredentialParams" + } + } + }, + "additionalProperties": false, + "required": [ + "model-credentials" + ] + }, + "DestroyModelParams": { + "type": "object", + "properties": { + "destroy-storage": { + "type": "boolean" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag" + ] + }, + "DestroyModelsParams": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/DestroyModelParams" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "DumpModelRequest": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "simplified": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "simplified" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineHardware": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "availability-zone": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "MapResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "MapResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MapResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Model": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "type": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "type", + "owner-tag" + ] + }, + "ModelCreateArgs": { + "type": "object", + "properties": { + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "credential": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "region": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "owner-tag" + ] + }, + "ModelDefaultValues": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelDefaults": { + "type": "object", + "properties": { + "controller": { + "type": "object", + "additionalProperties": true + }, + "default": { + "type": "object", + "additionalProperties": true + }, + "regions": { + "type": "array", + "items": { + "$ref": "#/definitions/RegionDefaults" + } + } + }, + "additionalProperties": false + }, + "ModelDefaultsResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ModelDefaults" + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelEntityCount": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "entity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "count" + ] + }, + "ModelFilesystemInfo": { + "type": "object", + "properties": { + "detachable": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "default-series": { + "type": "string" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "migration": { + "$ref": "#/definitions/ModelMigrationStatus" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "sla": { + "$ref": "#/definitions/ModelSLAInfo" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "type": { + "type": "string" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "uuid", + "controller-uuid", + "cloud-tag", + "owner-tag", + "life", + "users", + "machines", + "sla", + "agent-version" + ] + }, + "ModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelInfo" + } + }, + "additionalProperties": false + }, + "ModelInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelMachineInfo": { + "type": "object", + "properties": { + "hardware": { + "$ref": "#/definitions/MachineHardware" + }, + "has-vote": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "status": { + "type": "string" + }, + "wants-vote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "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" + ] + }, + "ModelSLAInfo": { + "type": "object", + "properties": { + "level": { + "type": "string" + }, + "owner": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "level", + "owner" + ] + }, + "ModelStatus": { + "type": "object", + "properties": { + "application-count": { + "type": "integer" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "filesystems": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelFilesystemInfo" + } + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMachineInfo" + } + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelVolumeInfo" + } + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "ModelSummariesRequest": { + "type": "object", + "properties": { + "all": { + "type": "boolean" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag" + ] + }, + "ModelSummary": { + "type": "object", + "properties": { + "agent-version": { + "$ref": "#/definitions/Number" + }, + "cloud-credential-tag": { + "type": "string" + }, + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "controller-uuid": { + "type": "string" + }, + "counts": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelEntityCount" + } + }, + "default-series": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "life": { + "type": "string" + }, + "migration": { + "$ref": "#/definitions/ModelMigrationStatus" + }, + "name": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "provider-type": { + "type": "string" + }, + "sla": { + "$ref": "#/definitions/ModelSLAInfo" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "type": { + "type": "string" + }, + "user-access": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "type", + "controller-uuid", + "cloud-tag", + "owner-tag", + "life", + "user-access", + "last-connection", + "counts", + "sla", + "agent-version" + ] + }, + "ModelSummaryResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelSummary" + } + }, + "additionalProperties": false + }, + "ModelSummaryResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelSummaryResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelUnsetKeys": { + "type": "object", + "properties": { + "cloud-region": { + "type": "string" + }, + "cloud-tag": { + "type": "string" + }, + "keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "display-name", + "last-connection", + "access" + ] + }, + "ModelVolumeInfo": { + "type": "object", + "properties": { + "detachable": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "model-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access", + "model-tag" + ] + }, + "ModifyModelAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyModelAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "RegionDefaults": { + "type": "object", + "properties": { + "region-name": { + "type": "string" + }, + "value": { + "type": "object", + "additionalProperties": true + } + }, + "additionalProperties": false, + "required": [ + "region-name", + "value" + ] + }, + "SetModelDefaults": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelDefaultValues" + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnsetModelDefaults": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUnsetKeys" + } + } + }, + "additionalProperties": false, + "required": [ + "keys" + ] + }, + "UserModel": { + "type": "object", + "properties": { + "last-connection": { + "type": "string", + "format": "date-time" + }, + "model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "model", + "last-connection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "user-models": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "user-models" + ] + } + } + } + }, + { + "Name": "ModelUpgrader", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelEnvironVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/IntResults" + } + } + }, + "ModelTargetEnvironVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/IntResults" + } + } + }, + "SetModelEnvironVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelEnvironVersions" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetModelStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchModelEnvironVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "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" + ] + }, + "IntResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "IntResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/IntResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetModelEnvironVersion": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + }, + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "version" + ] + }, + "SetModelEnvironVersions": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/SetModelEnvironVersion" + } + } + }, + "additionalProperties": false + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + } + } + } + }, + { + "Name": "NotifyWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "OfferStatusWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/OfferStatusWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "OfferStatusChange": { + "type": "object", + "properties": { + "offer-name": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + } + }, + "additionalProperties": false, + "required": [ + "offer-name", + "status" + ] + }, + "OfferStatusWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/OfferStatusChange" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + }, + { + "Name": "Payloads", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PayloadListArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadListResults" + } + } + } + }, + "definitions": { + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + }, + "PayloadListArgs": { + "type": "object", + "properties": { + "patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "patterns" + ] + }, + "PayloadListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "PayloadsHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "LookUp": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/LookUpPayloadArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetPayloadStatusArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Track": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/TrackPayloadArgs" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + }, + "Untrack": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/PayloadResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LookUpPayloadArg": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "id" + ] + }, + "LookUpPayloadArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/LookUpPayloadArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Payload": { + "type": "object", + "properties": { + "class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "class", + "type", + "id", + "status", + "labels", + "unit", + "machine" + ] + }, + "PayloadResult": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "not-found": { + "type": "boolean" + }, + "payload": { + "$ref": "#/definitions/Payload" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "payload", + "not-found" + ] + }, + "PayloadResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PayloadResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetPayloadStatusArg": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "status" + ] + }, + "SetPayloadStatusArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/SetPayloadStatusArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "TrackPayloadArgs": { + "type": "object", + "properties": { + "payloads": { + "type": "array", + "items": { + "$ref": "#/definitions/Payload" + } + } + }, + "additionalProperties": false, + "required": [ + "payloads" + ] + } + } + } + }, + { + "Name": "Pinger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Ping": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Provisioner", + "Version": 7, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "AvailabilityZone": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "CharmProfileChangeInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProfileChangeResults" + } + } + }, + "Constraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConstraintsResults" + } + } + }, + "ContainerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ContainerConfig" + } + } + }, + "ContainerManagerConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ContainerManagerConfigParams" + }, + "Result": { + "$ref": "#/definitions/ContainerManagerConfig" + } + } + }, + "ControllerAPIInfoForModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ControllerAPIInfoResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "DistributionGroup": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DistributionGroupResults" + } + } + }, + "DistributionGroupByMachineId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "GetContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "GetContainerProfileInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ContainerProfileResults" + } + } + }, + "HostChangesForContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/HostNetworkChangeResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "KeepInstance": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "MachinesWithTransientErrors": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "MarkMachinesForRemoval": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PrepareContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProvisioningInfoResults" + } + } + }, + "ReleaseContainerAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveUpgradeCharmProfileData": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Series": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "SetCharmProfiles": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetProfileArgs" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetHostMachineNetworkConfig": { + "type": "object", + "properties": { + "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" + } + } + }, + "SetProviderNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "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" + } + } + }, + "SetUpgradeCharmProfileComplete": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetProfileUpgradeCompleteArgs" + }, + "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" + } + } + }, + "WatchContainersCharmProfiles": { + "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" + } + } + }, + "WatchModelMachinesCharmProfiles": { + "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" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "CharmLXDProfile": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "description": { + "type": "string" + }, + "devices": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + } + } + }, + "additionalProperties": false, + "required": [ + "config", + "description", + "devices" + ] + }, + "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" + }, + "cloudinit-userdata": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "container-inherit-properties": { + "type": "string" + }, + "juju-proxy": { + "$ref": "#/definitions/Settings" + }, + "legacy-proxy": { + "$ref": "#/definitions/Settings" + }, + "provider-type": { + "type": "string" + }, + "snap-proxy": { + "$ref": "#/definitions/Settings" + }, + "ssl-hostname-verification": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "provider-type", + "authorized-keys", + "ssl-hostname-verification", + "legacy-proxy", + "juju-proxy", + "apt-proxy", + "snap-proxy", + "apt-mirror", + "UpdateBehavior" + ] + }, + "ContainerLXDProfile": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "profile": { + "$ref": "#/definitions/CharmLXDProfile" + } + }, + "additionalProperties": false, + "required": [ + "profile", + "name" + ] + }, + "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" + ] + }, + "ContainerProfileResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "lxd-profiles": { + "type": "array", + "items": { + "$ref": "#/definitions/ContainerLXDProfile" + } + } + }, + "additionalProperties": false + }, + "ContainerProfileResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ContainerProfileResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ControllerAPIInfoResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "cacert": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses", + "cacert" + ] + }, + "ControllerAPIInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllerAPIInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "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" + }, + "mac-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "host-device-name", + "bridge-name", + "mac-address" + ] + }, + "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": { + "agentstream": { + "type": "string" + }, + "arch": { + "type": "string" + }, + "major": { + "type": "integer" + }, + "minor": { + "type": "integer" + }, + "number": { + "$ref": "#/definitions/Number" + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "number", + "major", + "minor", + "arch", + "series", + "agentstream" + ] + }, + "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" + }, + "charm-profiles": { + "type": "array", + "items": { + "type": "string" + } + }, + "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", + "charm-profiles" + ] + }, + "InstancesInfo": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "$ref": "#/definitions/InstanceInfo" + } + } + }, + "additionalProperties": false, + "required": [ + "machines" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineContainers": { + "type": "object", + "properties": { + "container-types": { + "type": "array", + "items": { + "type": "string" + } + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "container-types" + ] + }, + "MachineContainersParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineContainers" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MachineNetworkConfigResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "info" + ] + }, + "MachineNetworkConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineNetworkConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "cidr": { + "type": "string" + }, + "config-type": { + "type": "string" + }, + "device-index": { + "type": "integer" + }, + "disabled": { + "type": "boolean" + }, + "dns-search-domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "dns-servers": { + "type": "array", + "items": { + "type": "string" + } + }, + "gateway-address": { + "type": "string" + }, + "interface-name": { + "type": "string" + }, + "interface-type": { + "type": "string" + }, + "is-default-gateway": { + "type": "boolean" + }, + "mac-address": { + "type": "string" + }, + "mtu": { + "type": "integer" + }, + "no-auto-start": { + "type": "boolean" + }, + "parent-interface-name": { + "type": "string" + }, + "provider-address-id": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "provider-subnet-id": { + "type": "string" + }, + "provider-vlan-id": { + "type": "string" + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkRoute" + } + }, + "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" + ] + }, + "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": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "ProfileChangeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "new-profile-name": { + "type": "string" + }, + "old-profile-name": { + "type": "string" + }, + "profile": { + "$ref": "#/definitions/CharmLXDProfile" + }, + "subordinate": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "ProfileChangeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProfileChangeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "charm-lxd-profiles": { + "type": "array", + "items": { + "type": "string" + } + }, + "cloudinit-userdata": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "controller-config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "endpoint-bindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "image-metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + }, + "jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "placement": { + "type": "string" + }, + "series": { + "type": "string" + }, + "subnets-to-zones": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentParams" + } + }, + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParams" + } + } + }, + "additionalProperties": false, + "required": [ + "constraints", + "series", + "placement", + "jobs" + ] + }, + "ProvisioningInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ProvisioningInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "ProvisioningInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProvisioningInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetMachineNetworkConfig": { + "type": "object", + "properties": { + "config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "config" + ] + }, + "SetProfileArg": { + "type": "object", + "properties": { + "entity": { + "$ref": "#/definitions/Entity" + }, + "profiles": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "entity", + "profiles" + ] + }, + "SetProfileArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/SetProfileArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "SetProfileUpgradeCompleteArg": { + "type": "object", + "properties": { + "entity": { + "$ref": "#/definitions/Entity" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "message" + ] + }, + "SetProfileUpgradeCompleteArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/SetProfileUpgradeCompleteArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Settings": { + "type": "object", + "properties": { + "AutoNoProxy": { + "type": "string" + }, + "Ftp": { + "type": "string" + }, + "Http": { + "type": "string" + }, + "Https": { + "type": "string" + }, + "NoProxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Http", + "Https", + "Ftp", + "NoProxy", + "AutoNoProxy" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateBehavior": { + "type": "object", + "properties": { + "enable-os-refresh-update": { + "type": "boolean" + }, + "enable-os-upgrade": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "enable-os-refresh-update", + "enable-os-upgrade" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "plan-info": { + "$ref": "#/definitions/VolumeAttachmentPlanInfo" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeAttachmentPlanInfo": { + "type": "object", + "properties": { + "device-attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "device-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + }, + "wwn": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "WatchContainer": { + "type": "object", + "properties": { + "container-type": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "container-type" + ] + }, + "WatchContainers": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/WatchContainer" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + } + } + } + }, + { + "Name": "ProxyUpdater", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ProxyConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProxyConfigResults" + } + } + }, + "WatchForProxyConfigAndAPIHostPortChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ProxyConfig": { + "type": "object", + "properties": { + "ftp": { + "type": "string" + }, + "http": { + "type": "string" + }, + "https": { + "type": "string" + }, + "no-proxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "http", + "https", + "ftp", + "no-proxy" + ] + }, + "ProxyConfigResult": { + "type": "object", + "properties": { + "apt-proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "juju-proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + }, + "legacy-proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + }, + "snap-proxy-settings": { + "$ref": "#/definitions/ProxyConfig" + }, + "snap-store-assertions": { + "type": "string" + }, + "snap-store-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "legacy-proxy-settings", + "juju-proxy-settings" + ] + }, + "ProxyConfigResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProxyConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Reboot", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetRebootAction": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RebootActionResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchForRebootEvent": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "RebootActionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false + }, + "RebootActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RebootActionResult" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "RelationStatusWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/RelationLifeSuspendedStatusWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RelationLifeSuspendedStatusChange": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "life": { + "type": "string" + }, + "suspended": { + "type": "boolean" + }, + "suspended-reason": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "life", + "suspended", + "suspended-reason" + ] + }, + "RelationLifeSuspendedStatusWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationLifeSuspendedStatusChange" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + }, + { + "Name": "RelationUnitsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + } + } + } + }, + { + "Name": "RemoteRelations", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ConsumeRemoteRelationChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RemoteRelationsChanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ControllerAPIInfoForModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ControllerAPIInfoResults" + } + } + }, + "ControllerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ControllerConfigResult" + } + } + }, + "ExportEntities": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/TokenResults" + } + } + }, + "GetTokens": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/GetTokenArgs" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "ImportRemoteEntities": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RemoteEntityTokenArgs" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RelationUnitSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "Relations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RemoteRelationResults" + } + } + }, + "RemoteApplications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RemoteApplicationResults" + } + } + }, + "SaveMacaroons": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityMacaroonArgs" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetRemoteApplicationsStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchLocalRelationUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResults" + } + } + }, + "WatchRemoteApplicationRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchRemoteApplications": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "WatchRemoteRelations": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "ControllerAPIInfoResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "cacert": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses", + "cacert" + ] + }, + "ControllerAPIInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllerAPIInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ControllerConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityMacaroonArg": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "macaroon", + "tag" + ] + }, + "EntityMacaroonArgs": { + "type": "object", + "properties": { + "Args": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityMacaroonArg" + } + } + }, + "additionalProperties": false, + "required": [ + "Args" + ] + }, + "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" + ] + }, + "GetTokenArg": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "GetTokenArgs": { + "type": "object", + "properties": { + "Args": { + "type": "array", + "items": { + "$ref": "#/definitions/GetTokenArg" + } + } + }, + "additionalProperties": false, + "required": [ + "Args" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RelationUnit": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit" + ] + }, + "RelationUnits": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnit" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "RelationUnitsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RemoteApplication": { + "type": "object", + "properties": { + "is-consumer-proxy": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "model-uuid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "offer-uuid": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "offer-uuid", + "model-uuid", + "is-consumer-proxy" + ] + }, + "RemoteApplicationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/RemoteApplication" + } + }, + "additionalProperties": false + }, + "RemoteApplicationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteApplicationResult" + } + } + }, + "additionalProperties": false + }, + "RemoteEndpoint": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "limit" + ] + }, + "RemoteEntityTokenArg": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "token": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "RemoteEntityTokenArgs": { + "type": "object", + "properties": { + "Args": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteEntityTokenArg" + } + } + }, + "additionalProperties": false, + "required": [ + "Args" + ] + }, + "RemoteRelation": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "endpoint": { + "$ref": "#/definitions/RemoteEndpoint" + }, + "id": { + "type": "integer" + }, + "key": { + "type": "string" + }, + "life": { + "type": "string" + }, + "remote-application-name": { + "type": "string" + }, + "remote-endpoint-name": { + "type": "string" + }, + "source-model-uuid": { + "type": "string" + }, + "suspended": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "life", + "suspended", + "id", + "key", + "application-name", + "endpoint", + "remote-application-name", + "remote-endpoint-name", + "source-model-uuid" + ] + }, + "RemoteRelationChangeEvent": { + "type": "object", + "properties": { + "application-token": { + "type": "string" + }, + "changed-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteRelationUnitChange" + } + }, + "departed-units": { + "type": "array", + "items": { + "type": "integer" + } + }, + "force-cleanup": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "macaroons": { + "type": "array", + "items": { + "$ref": "#/definitions/Macaroon" + } + }, + "relation-token": { + "type": "string" + }, + "suspended": { + "type": "boolean" + }, + "suspended-reason": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation-token", + "application-token", + "life" + ] + }, + "RemoteRelationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/RemoteRelation" + } + }, + "additionalProperties": false + }, + "RemoteRelationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteRelationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RemoteRelationUnitChange": { + "type": "object", + "properties": { + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "unit-id": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "unit-id" + ] + }, + "RemoteRelationsChanges": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteRelationChangeEvent" + } + } + }, + "additionalProperties": false + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "SettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "SettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "TokenResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "token": { + "type": "string" + } + }, + "additionalProperties": false + }, + "TokenResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/TokenResult" + } + } + }, + "additionalProperties": false + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + } + } + } + }, + { + "Name": "Resources", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddPendingResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddPendingResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/AddPendingResourcesResult" + } + } + }, + "ListResources": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/ResourcesResults" + } + } + } + }, + "definitions": { + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "channel": { + "type": "string" + }, + "force": { + "type": "boolean" + }, + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url", + "channel", + "macaroon", + "force" + ] + }, + "AddPendingResourcesArgs": { + "type": "object", + "properties": { + "AddCharmWithAuthorization": { + "$ref": "#/definitions/AddCharmWithAuthorization" + }, + "Entity": { + "$ref": "#/definitions/Entity" + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "AddCharmWithAuthorization", + "resources" + ] + }, + "AddPendingResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "pending-ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "pending-ids" + ] + }, + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListResourcesArgs": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "ResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "charm-store-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmResource" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + }, + "unit-resources": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitResources" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources", + "charm-store-resources", + "unit-resources" + ] + }, + "ResourcesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourcesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitResources": { + "type": "object", + "properties": { + "Entity": { + "$ref": "#/definitions/Entity" + }, + "download-progress": { + "type": "object", + "patternProperties": { + ".*": { + "type": "integer" + } + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/Resource" + } + } + }, + "additionalProperties": false, + "required": [ + "Entity", + "resources", + "download-progress" + ] + } + } + } + }, + { + "Name": "ResourcesHookContext", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "GetResourceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListUnitResourcesArgs" + }, + "Result": { + "$ref": "#/definitions/UnitResourcesResult" + } + } + } + }, + "definitions": { + "CharmResource": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "fingerprint": { + "type": "array", + "items": { + "type": "integer" + } + }, + "name": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "path": { + "type": "string" + }, + "revision": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "path", + "origin", + "revision", + "fingerprint", + "size" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ListUnitResourcesArgs": { + "type": "object", + "properties": { + "resource-names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "resource-names" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Resource": { + "type": "object", + "properties": { + "CharmResource": { + "$ref": "#/definitions/CharmResource" + }, + "application": { + "type": "string" + }, + "id": { + "type": "string" + }, + "pending-id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmResource", + "id", + "pending-id", + "application", + "username", + "timestamp" + ] + }, + "UnitResourceResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resource": { + "$ref": "#/definitions/Resource" + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resource" + ] + }, + "UnitResourcesResult": { + "type": "object", + "properties": { + "ErrorResult": { + "$ref": "#/definitions/ErrorResult" + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitResourceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "ErrorResult", + "resources" + ] + } + } + } + }, + { + "Name": "Resumer", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ResumeTransactions": { + "type": "object" + } + } + } + }, + { + "Name": "RetryStrategy", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "RetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RetryStrategyResults" + } + } + }, + "WatchRetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RetryStrategy": { + "type": "object", + "properties": { + "jitter-retry-time": { + "type": "boolean" + }, + "max-retry-time": { + "type": "integer" + }, + "min-retry-time": { + "type": "integer" + }, + "retry-time-factor": { + "type": "integer" + }, + "should-retry": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "should-retry", + "min-retry-time", + "max-retry-time", + "jitter-retry-time", + "retry-time-factor" + ] + }, + "RetryStrategyResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/RetryStrategy" + } + }, + "additionalProperties": false + }, + "RetryStrategyResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RetryStrategyResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "SSHClient", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AllAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressesResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "Proxy": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SSHProxyResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "PublicKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHPublicKeysResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SSHAddressResult": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "SSHAddressResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHAddressesResult": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "addresses" + ] + }, + "SSHAddressesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHProxyResult": { + "type": "object", + "properties": { + "use-proxy": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "use-proxy" + ] + }, + "SSHPublicKeysResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "SSHPublicKeysResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHPublicKeysResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Singular", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Claim": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SingularClaims" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Wait": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SingularClaim": { + "type": "object", + "properties": { + "claimant-tag": { + "type": "string" + }, + "duration": { + "type": "integer" + }, + "entity-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "entity-tag", + "claimant-tag", + "duration" + ] + }, + "SingularClaims": { + "type": "object", + "properties": { + "claims": { + "type": "array", + "items": { + "$ref": "#/definitions/SingularClaim" + } + } + }, + "additionalProperties": false, + "required": [ + "claims" + ] + } + } + } + }, + { + "Name": "Spaces", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ListSpacesResults" + } + } + }, + "ReloadSpaces": { + "type": "object" + } + }, + "definitions": { + "CreateSpaceParams": { + "type": "object", + "properties": { + "provider-id": { + "type": "string" + }, + "public": { + "type": "boolean" + }, + "space-tag": { + "type": "string" + }, + "subnet-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "subnet-tags", + "space-tag", + "public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "spaces" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSpacesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Space" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "Space": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "name", + "subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-network-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + } + } + } + }, + { + "Name": "StatusHistory", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "Prune": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryPruneArgs" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "StatusHistoryPruneArgs": { + "type": "object", + "properties": { + "max-history-mb": { + "type": "integer" + }, + "max-history-time": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "max-history-time", + "max-history-mb" + ] + } + } + } + }, + { + "Name": "Storage", + "Version": 4, + "Schema": { + "type": "object", + "properties": { + "AddToUnit": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/AddStorageResults" + } + } + }, + "Attach": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreatePool": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "Detach": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Import": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BulkImportStorageParams" + }, + "Result": { + "$ref": "#/definitions/ImportStorageResults" + } + } + }, + "ListFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemFilters" + }, + "Result": { + "$ref": "#/definitions/FilesystemDetailsListResults" + } + } + }, + "ListPools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePoolFilters" + }, + "Result": { + "$ref": "#/definitions/StoragePoolsResults" + } + } + }, + "ListStorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageFilters" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsListResults" + } + } + }, + "ListVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeFilters" + }, + "Result": { + "$ref": "#/definitions/VolumeDetailsListResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RemoveStorage" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsResults" + } + } + } + }, + "definitions": { + "AddStorageDetails": { + "type": "object", + "properties": { + "storage-tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "storage-tags" + ] + }, + "AddStorageResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/AddStorageDetails" + } + }, + "additionalProperties": false + }, + "AddStorageResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AddStorageResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BulkImportStorageParams": { + "type": "object", + "properties": { + "storage": { + "type": "array", + "items": { + "$ref": "#/definitions/ImportStorageParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storage" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "info", + "since" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "FilesystemAttachmentDetails": { + "type": "object", + "properties": { + "FilesystemAttachmentInfo": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "FilesystemAttachmentInfo" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemDetails": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "life": { + "type": "string" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/FilesystemAttachmentDetails" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "unit-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/FilesystemAttachmentDetails" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info", + "status" + ] + }, + "FilesystemDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetails" + } + } + }, + "additionalProperties": false + }, + "FilesystemDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "FilesystemFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemFilter" + } + } + }, + "additionalProperties": false + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "pool", + "size" + ] + }, + "ImportStorageDetails": { + "type": "object", + "properties": { + "storage-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag" + ] + }, + "ImportStorageParams": { + "type": "object", + "properties": { + "kind": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "storage-name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "pool", + "provider-id", + "storage-name" + ] + }, + "ImportStorageResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ImportStorageDetails" + } + }, + "additionalProperties": false + }, + "ImportStorageResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ImportStorageResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "RemoveStorage": { + "type": "object", + "properties": { + "storage": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoveStorageInstance" + } + } + }, + "additionalProperties": false, + "required": [ + "storage" + ] + }, + "RemoveStorageInstance": { + "type": "object", + "properties": { + "destroy-attachments": { + "type": "boolean" + }, + "destroy-storage": { + "type": "boolean" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachmentDetails": { + "type": "object", + "properties": { + "life": { + "type": "string" + }, + "location": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag", + "machine-tag" + ] + }, + "StorageAttachmentId": { + "type": "object", + "properties": { + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag" + ] + }, + "StorageAttachmentIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StorageDetails": { + "type": "object", + "properties": { + "attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageAttachmentDetails" + } + } + }, + "kind": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "kind", + "status", + "persistent" + ] + }, + "StorageDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetails" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "StorageDetailsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageDetails" + } + }, + "additionalProperties": false + }, + "StorageDetailsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageDetailsResult" + } + } + }, + "additionalProperties": false + }, + "StorageFilter": { + "type": "object", + "additionalProperties": false + }, + "StorageFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePool": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "name": { + "type": "string" + }, + "provider": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "provider", + "attrs" + ] + }, + "StoragePoolFilter": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" + } + }, + "providers": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StoragePoolFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolFilter" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "storage-pools": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolsResult" + } + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "VolumeAttachmentDetails": { + "type": "object", + "properties": { + "VolumeAttachmentInfo": { + "$ref": "#/definitions/VolumeAttachmentInfo" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "VolumeAttachmentInfo" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "plan-info": { + "$ref": "#/definitions/VolumeAttachmentPlanInfo" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentPlanInfo": { + "type": "object", + "properties": { + "device-attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "device-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "VolumeDetails": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "life": { + "type": "string" + }, + "machine-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/VolumeAttachmentDetails" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "unit-attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/VolumeAttachmentDetails" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info", + "status" + ] + }, + "VolumeDetailsListResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetails" + } + } + }, + "additionalProperties": false + }, + "VolumeDetailsListResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeDetailsListResult" + } + } + }, + "additionalProperties": false + }, + "VolumeFilter": { + "type": "object", + "properties": { + "machines": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "VolumeFilters": { + "type": "object", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeFilter" + } + } + }, + "additionalProperties": false + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + }, + "wwn": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + } + } + } + }, + { + "Name": "StorageProvisioner", + "Version": 4, + "Schema": { + "type": "object", + "properties": { + "AttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "CreateVolumeAttachmentPlans": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeAttachmentPlans" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentParamsResults" + } + } + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentResults" + } + } + }, + "FilesystemParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemParamsResults" + } + } + }, + "Filesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveAttachment": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveFilesystemParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RemoveFilesystemParamsResults" + } + } + }, + "RemoveVolumeAttachmentPlan": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveVolumeParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RemoveVolumeParamsResults" + } + } + }, + "SetFilesystemAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Filesystems" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeAttachmentPlanBlockInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeAttachmentPlans" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Volumes" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentParamsResults" + } + } + }, + "VolumeAttachmentPlans": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentPlanResults" + } + } + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentResults" + } + } + }, + "VolumeBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/BlockDeviceResults" + } + } + }, + "VolumeParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeParamsResults" + } + } + }, + "Volumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeResults" + } + } + }, + "WatchApplications": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "WatchBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchFilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchVolumeAttachmentPlans": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchVolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + }, + "WWN": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "WWN", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "BlockDeviceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/BlockDevice" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockDeviceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDeviceResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Filesystem": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "info" + ] + }, + "FilesystemAttachment": { + "type": "object", + "properties": { + "filesystem-tag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "info" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mount-point": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "filesystem-tag": { + "type": "string" + }, + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "mount-point": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "machine-tag", + "provider" + ] + }, + "FilesystemAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "filesystem-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystem-attachments" + ] + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystem-id": { + "type": "string" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-id", + "pool", + "size" + ] + }, + "FilesystemParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/FilesystemAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "filesystem-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystem-tag", + "size", + "provider" + ] + }, + "FilesystemParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/FilesystemParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemParamsResult" + } + } + }, + "additionalProperties": false + }, + "FilesystemResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Filesystem" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "FilesystemResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemResult" + } + } + }, + "additionalProperties": false + }, + "Filesystems": { + "type": "object", + "properties": { + "filesystems": { + "type": "array", + "items": { + "$ref": "#/definitions/Filesystem" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystems" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "MachineStorageIdsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RemoveFilesystemParams": { + "type": "object", + "properties": { + "destroy": { + "type": "boolean" + }, + "filesystem-id": { + "type": "string" + }, + "provider": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "provider", + "filesystem-id" + ] + }, + "RemoveFilesystemParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/RemoveFilesystemParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "RemoveFilesystemParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoveFilesystemParamsResult" + } + } + }, + "additionalProperties": false + }, + "RemoveVolumeParams": { + "type": "object", + "properties": { + "destroy": { + "type": "boolean" + }, + "provider": { + "type": "string" + }, + "volume-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "provider", + "volume-id" + ] + }, + "RemoveVolumeParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/RemoveVolumeParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "RemoveVolumeParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoveVolumeParamsResult" + } + } + }, + "additionalProperties": false + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "info" + ] + }, + "VolumeAttachment": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeAttachmentInfo" + }, + "machine-tag": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "bus-address": { + "type": "string" + }, + "device-link": { + "type": "string" + }, + "device-name": { + "type": "string" + }, + "plan-info": { + "$ref": "#/definitions/VolumeAttachmentPlanInfo" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instance-id": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volume-id": { + "type": "string" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "provider" + ] + }, + "VolumeAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachmentPlan": { + "type": "object", + "properties": { + "block-device": { + "$ref": "#/definitions/BlockDevice" + }, + "life": { + "type": "string" + }, + "machine-tag": { + "type": "string" + }, + "plan-info": { + "$ref": "#/definitions/VolumeAttachmentPlanInfo" + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "machine-tag", + "plan-info" + ] + }, + "VolumeAttachmentPlanInfo": { + "type": "object", + "properties": { + "device-attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "device-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentPlanResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachmentPlan" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentPlanResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentPlanResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachmentPlans": { + "type": "object", + "properties": { + "volume-plans": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentPlan" + } + } + }, + "additionalProperties": false, + "required": [ + "volume-plans" + ] + }, + "VolumeAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "volume-attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "volume-attachments" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardware-id": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "volume-id": { + "type": "string" + }, + "wwn": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-id", + "size", + "persistent" + ] + }, + "VolumeParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/VolumeAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volume-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volume-tag", + "size", + "provider" + ] + }, + "VolumeParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Volume" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeResult" + } + } + }, + "additionalProperties": false + }, + "Volumes": { + "type": "object", + "properties": { + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/Volume" + } + } + }, + "additionalProperties": false, + "required": [ + "volumes" + ] + } + } + } + }, + { + "Name": "StringsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Subnets", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SpaceResults" + } + } + }, + "AllZones": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ZoneResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "provider-network-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "subnet-provider-id": { + "type": "string" + }, + "subnet-tag": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "space-tag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "subnets" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ListSubnetsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SpaceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "SpaceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SpaceResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "life": { + "type": "string" + }, + "provider-id": { + "type": "string" + }, + "provider-network-id": { + "type": "string" + }, + "provider-space-id": { + "type": "string" + }, + "space-tag": { + "type": "string" + }, + "status": { + "type": "string" + }, + "vlan-tag": { + "type": "integer" + }, + "zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "cidr", + "vlan-tag", + "life", + "space-tag", + "zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "space-tag": { + "type": "string" + }, + "zone": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ZoneResult": { + "type": "object", + "properties": { + "available": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "available" + ] + }, + "ZoneResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ZoneResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "Undertaker", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UndertakerModelInfoResult" + } + } + }, + "ProcessDyingModel": { + "type": "object" + }, + "RemoveModel": { + "type": "object" + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchModelResources": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "UndertakerModelInfo": { + "type": "object", + "properties": { + "global-name": { + "type": "string" + }, + "is-system": { + "type": "boolean" + }, + "life": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "name", + "global-name", + "is-system", + "life" + ] + }, + "UndertakerModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UndertakerModelInfo" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + } + } + } + }, + { + "Name": "UnitAssigner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AssignUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchUnitAssignments": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + } + } + } + }, + { + "Name": "Uniter", + "Version": 9, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AddUnitStorage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationStatusResults" + } + } + }, + "AssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "AvailabilityZone": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CharmArchiveSha256": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURLs" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "CharmModifiedVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/IntResults" + } + } + }, + "CharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "ClearResolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ClosePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CloudSpec": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/CloudSpecResult" + } + } + }, + "ConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConfigSettingsResults" + } + } + }, + "CurrentModel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelResult" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyAllSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnterScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "GetPrincipal": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "GoalStates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/GoalStateResults" + } + } + }, + "HasSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "LeaveScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Merge": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "NetworkInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/NetworkInfoParams" + }, + "Result": { + "$ref": "#/definitions/NetworkInfoResults" + } + } + }, + "OpenPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "ProviderType": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Read": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/GetLeadershipSettingsBulkResults" + } + } + }, + "ReadRemoteSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitPairs" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "ReadSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "Refresh": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/UnitRefreshResults" + } + } + }, + "Relation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RelationById": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationIds" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RelationsStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/RelationUnitStatusResults" + } + } + }, + "RemoveStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ResolvedModeResults" + } + } + }, + "SLALevel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesCharmURL" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPodSpec": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetPodSpecParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetRelationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationStatusArgs" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetUnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetUpgradeSeriesUnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpgradeSeriesStatusParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetWorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityWorkloadVersions" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StorageAttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "StorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentResults" + } + } + }, + "UnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "UnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentIdsResults" + } + } + }, + "UpdateSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitsSettings" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpgradeSeriesUnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/UpgradeSeriesStatusResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchConfigSettingsHash": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchLeadershipSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchRelationUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResults" + } + } + }, + "WatchStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchTrustConfigSettingsHash": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchUnitAddressesHash": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchUnitRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchUpgradeSeriesNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WorkloadVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "servers" + ] + }, + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionExecutionResult": { + "type": "object", + "properties": { + "action-tag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "action-tag", + "status" + ] + }, + "ActionExecutionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } + } + }, + "additionalProperties": false + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "Address": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "space-name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "value", + "type", + "scope" + ] + }, + "ApplicationStatusResult": { + "type": "object", + "properties": { + "application": { + "$ref": "#/definitions/StatusResult" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StatusResult" + } + } + } + }, + "additionalProperties": false, + "required": [ + "application", + "units" + ] + }, + "ApplicationStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "BoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "CharmRelation": { + "type": "object", + "properties": { + "interface": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "role": { + "type": "string" + }, + "scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "role", + "interface", + "optional", + "limit", + "scope" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ] + }, + "CharmURLs": { + "type": "object", + "properties": { + "urls": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "urls" + ] + }, + "CloudCredential": { + "type": "object", + "properties": { + "attrs": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "auth-type": { + "type": "string" + }, + "redacted": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "auth-type" + ] + }, + "CloudSpec": { + "type": "object", + "properties": { + "cacertificates": { + "type": "array", + "items": { + "type": "string" + } + }, + "credential": { + "$ref": "#/definitions/CloudCredential" + }, + "endpoint": { + "type": "string" + }, + "identity-endpoint": { + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + }, + "storage-endpoint": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type", + "name" + ] + }, + "CloudSpecResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/CloudSpec" + } + }, + "additionalProperties": false + }, + "ConfigSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "ConfigSettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Endpoint": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "relation": { + "$ref": "#/definitions/CharmRelation" + } + }, + "additionalProperties": false, + "required": [ + "application-name", + "relation" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesCharmURL": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityCharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesPortRanges": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityCharmURL": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "charm-url" + ] + }, + "EntityPortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "protocol", + "from-port", + "to-port" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "info": { + "type": "string" + }, + "status": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "status", + "info", + "data" + ] + }, + "EntityString": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "value" + ] + }, + "EntityWorkloadVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "workload-version": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "workload-version" + ] + }, + "EntityWorkloadVersions": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityWorkloadVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsBulkResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/GetLeadershipSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GetLeadershipSettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "GoalState": { + "type": "object", + "properties": { + "relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/GoalStateStatus" + } + } + } + } + }, + "units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/GoalStateStatus" + } + } + } + }, + "additionalProperties": false, + "required": [ + "units", + "relations" + ] + }, + "GoalStateResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/GoalState" + } + }, + "additionalProperties": false, + "required": [ + "result", + "error" + ] + }, + "GoalStateResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/GoalStateResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "GoalStateStatus": { + "type": "object", + "properties": { + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "status", + "since" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "port" + ] + }, + "IntResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "IntResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/IntResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "InterfaceAddress": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + }, + "hostname": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "hostname", + "value", + "cidr" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachinePortRange": { + "type": "object", + "properties": { + "port-range": { + "$ref": "#/definitions/PortRange" + }, + "relation-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-tag", + "port-range" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "MergeLeadershipSettingsBulkParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/MergeLeadershipSettingsParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "MergeLeadershipSettingsParam": { + "type": "object", + "properties": { + "application-tag": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "info" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Metric": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "labels": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "key", + "value", + "time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "charm-url": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "uuid", + "charm-url", + "created", + "metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "batch": { + "$ref": "#/definitions/MetricBatch" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "batches" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "config" + ] + }, + "ModelResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "uuid", + "type" + ] + }, + "NetworkInfo": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/InterfaceAddress" + } + }, + "interface-name": { + "type": "string" + }, + "mac-address": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "mac-address", + "interface-name", + "addresses" + ] + }, + "NetworkInfoParams": { + "type": "object", + "properties": { + "bindings": { + "type": "array", + "items": { + "type": "string" + } + }, + "relation-id": { + "type": "integer" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "bindings" + ] + }, + "NetworkInfoResult": { + "type": "object", + "properties": { + "bind-addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkInfo" + } + }, + "egress-subnets": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "ingress-addresses": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "NetworkInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/NetworkInfoResult" + } + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "from-port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "to-port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "from-port", + "to-port", + "protocol" + ] + }, + "RelationIds": { + "type": "object", + "properties": { + "relation-ids": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-ids" + ] + }, + "RelationResult": { + "type": "object", + "properties": { + "bool": { + "type": "boolean" + }, + "endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "integer" + }, + "key": { + "type": "string" + }, + "life": { + "type": "string" + }, + "other-application": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "life", + "id", + "key", + "endpoint" + ] + }, + "RelationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RelationStatusArg": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "relation-id": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit-tag", + "relation-id", + "status", + "message" + ] + }, + "RelationStatusArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationStatusArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "RelationUnit": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit" + ] + }, + "RelationUnitPair": { + "type": "object", + "properties": { + "local-unit": { + "type": "string" + }, + "relation": { + "type": "string" + }, + "remote-unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "local-unit", + "remote-unit" + ] + }, + "RelationUnitPairs": { + "type": "object", + "properties": { + "relation-unit-pairs": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitPair" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-unit-pairs" + ] + }, + "RelationUnitSettings": { + "type": "object", + "properties": { + "relation": { + "type": "string" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "relation", + "unit", + "settings" + ] + }, + "RelationUnitStatus": { + "type": "object", + "properties": { + "in-scope": { + "type": "boolean" + }, + "relation-tag": { + "type": "string" + }, + "suspended": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "relation-tag", + "in-scope", + "suspended" + ] + }, + "RelationUnitStatusResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RelationUnitStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "RelationUnits": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnit" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "changed" + ] + }, + "RelationUnitsSettings": { + "type": "object", + "properties": { + "relation-units": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitSettings" + } + } + }, + "additionalProperties": false, + "required": [ + "relation-units" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + }, + "RelationUnitsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "ResolvedModeResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "mode": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "mode" + ] + }, + "ResolvedModeResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolvedModeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SetPodSpecParams": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityString" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "SettingsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "settings" + ] + }, + "SettingsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "info": { + "type": "string" + }, + "life": { + "type": "string" + }, + "since": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id", + "life", + "status", + "info", + "data", + "since" + ] + }, + "StatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StorageAddParams": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "name", + "storage" + ] + }, + "StorageAttachment": { + "type": "object", + "properties": { + "kind": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "location": { + "type": "string" + }, + "owner-tag": { + "type": "string" + }, + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "owner-tag", + "unit-tag", + "kind", + "location", + "life" + ] + }, + "StorageAttachmentId": { + "type": "object", + "properties": { + "storage-tag": { + "type": "string" + }, + "unit-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storage-tag", + "unit-tag" + ] + }, + "StorageAttachmentIds": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentId" + } + } + }, + "additionalProperties": false, + "required": [ + "ids" + ] + }, + "StorageAttachmentIdsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachmentIds" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentIdsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentIdsResult" + } + } + }, + "additionalProperties": false + }, + "StorageAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/StorageAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StorageAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "StorageConstraints": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "pool": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "StringBoolResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "ok": { + "type": "boolean" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result", + "ok" + ] + }, + "StringBoolResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringBoolResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UnitRefreshResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Life": { + "type": "string" + }, + "Resolved": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Life", + "Resolved", + "Error" + ] + }, + "UnitRefreshResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitRefreshResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "UpgradeSeriesStatusParam": { + "type": "object", + "properties": { + "entity": { + "$ref": "#/definitions/Entity" + }, + "message": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "status", + "message" + ] + }, + "UpgradeSeriesStatusParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/UpgradeSeriesStatusParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "UpgradeSeriesStatusResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "UpgradeSeriesStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UpgradeSeriesStatusResult" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "UpgradeSeries", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "FinishUpgradeSeries": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpdateSeriesArgs" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "MachineStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/UpgradeSeriesStatusResults" + } + } + }, + "PinMachineApplications": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/PinApplicationsResults" + } + } + }, + "PinnedLeadership": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/PinnedLeadershipResult" + } + } + }, + "SetMachineStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpgradeSeriesStatusParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetUpgradeSeriesUnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpgradeSeriesStatusParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StartUnitCompletion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpgradeSeriesStartUnitCompletionParam" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "TargetSeries": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "UnitsCompleted": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/EntitiesResults" + } + } + }, + "UnitsPrepared": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/EntitiesResults" + } + } + }, + "UnpinMachineApplications": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/PinApplicationsResults" + } + } + }, + "UpgradeSeriesUnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/UpgradeSeriesStatusResults" + } + } + }, + "WatchUpgradeSeriesNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResult": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PinApplicationResult": { + "type": "object", + "properties": { + "application-name": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "application-name" + ] + }, + "PinApplicationsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/PinApplicationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "PinnedLeadershipResult": { + "type": "object", + "properties": { + "result": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "additionalProperties": false + }, + "StringResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UpdateSeriesArg": { + "type": "object", + "properties": { + "force": { + "type": "boolean" + }, + "series": { + "type": "string" + }, + "tag": { + "$ref": "#/definitions/Entity" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "force", + "series" + ] + }, + "UpdateSeriesArgs": { + "type": "object", + "properties": { + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/UpdateSeriesArg" + } + } + }, + "additionalProperties": false, + "required": [ + "args" + ] + }, + "UpgradeSeriesStartUnitCompletionParam": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "message" + ] + }, + "UpgradeSeriesStatusParam": { + "type": "object", + "properties": { + "entity": { + "$ref": "#/definitions/Entity" + }, + "message": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "entity", + "status", + "message" + ] + }, + "UpgradeSeriesStatusParams": { + "type": "object", + "properties": { + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/UpgradeSeriesStatusParam" + } + } + }, + "additionalProperties": false, + "required": [ + "params" + ] + }, + "UpgradeSeriesStatusResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "UpgradeSeriesStatusResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UpgradeSeriesStatusResult" + } + } + }, + "additionalProperties": false + } + } + } + }, + { + "Name": "Upgrader", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "DesiredVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VersionResults" + } + } + }, + "SetTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesVersion" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Tools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ToolsResults" + } + } + }, + "WatchAPIVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "EntitiesVersion": { + "type": "object", + "properties": { + "agent-tools": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "agent-tools" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityVersion": { + "type": "object", + "properties": { + "tag": { + "type": "string" + }, + "tools": { + "$ref": "#/definitions/Version" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "tools" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "NotifyWatcherId": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "ToolsResult": { + "type": "object", + "properties": { + "disable-ssl-hostname-verification": { + "type": "boolean" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "tools", + "disable-ssl-hostname-verification" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Version": { + "type": "object", + "properties": { + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version" + ] + }, + "VersionResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false + }, + "VersionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VersionResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "UserManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddUsers" + }, + "Result": { + "$ref": "#/definitions/AddUserResults" + } + } + }, + "DisableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ResetPassword": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AddUserResults" + } + } + }, + "SetPassword": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserInfoRequest" + }, + "Result": { + "$ref": "#/definitions/UserInfoResults" + } + } + } + }, + "definitions": { + "AddUser": { + "type": "object", + "properties": { + "display-name": { + "type": "string" + }, + "password": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name" + ] + }, + "AddUserResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "secret-key": { + "type": "array", + "items": { + "type": "integer" + } + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false + }, + "AddUserResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUserResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "AddUsers": { + "type": "object", + "properties": { + "users": { + "type": "array", + "items": { + "$ref": "#/definitions/AddUser" + } + } + }, + "additionalProperties": false, + "required": [ + "users" + ] + }, + "Entities": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag" + ] + }, + "EntityPassword": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "password" + ] + }, + "EntityPasswords": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "ErrorResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "UserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "created-by": { + "type": "string" + }, + "date-created": { + "type": "string", + "format": "date-time" + }, + "disabled": { + "type": "boolean" + }, + "display-name": { + "type": "string" + }, + "last-connection": { + "type": "string", + "format": "date-time" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name", + "access", + "created-by", + "date-created", + "disabled" + ] + }, + "UserInfoRequest": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + }, + "include-disabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "entities", + "include-disabled" + ] + }, + "UserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/UserInfo" + } + }, + "additionalProperties": false + }, + "UserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/UserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + } + } + } + }, + { + "Name": "VolumeAttachmentPlansWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + }, + { + "Name": "VolumeAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/ErrorInfo" + }, + "message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "message", + "code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "macaroon-path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "additionalProperties": false + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachment-tag": { + "type": "string" + }, + "machine-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine-tag", + "attachment-tag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "error": { + "$ref": "#/definitions/Error" + }, + "watcher-id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "watcher-id", + "changes" + ] + } + } + } + } +] diff --git a/modules/libjuju/juju/cloud.py b/modules/libjuju/juju/cloud.py new file mode 100644 index 0000000..e4793ee --- /dev/null +++ b/modules/libjuju/juju/cloud.py @@ -0,0 +1,81 @@ +class Cloud(object): + """Cloud + + :ivar name: Name of the cloud + + """ + def add_credential(self, credential): + """Add or replaces credentials for this cloud. + + :param `juju.Credential` credential: The Credential to add + + """ + raise NotImplementedError() + + def get_credentials(self): + """Return list of all credentials for this cloud. + + """ + raise NotImplementedError() + + def remove_credential(self, credential_name): + """Remove a credential for this cloud. + + :param str credential_name: Name of the credential to remove + + """ + raise NotImplementedError() + + def bootstrap( + self, controller_name, region=None, agent_version=None, + auto_upgrade=False, bootstrap_constraints=None, + bootstrap_series=None, config=None, constraints=None, + credential=None, default_model=None, keep_broken=False, + metadata_source=None, no_gui=False, to=None, + upload_tools=False): + + """Initialize a cloud environment. + + :param str controller_name: Name of controller to create + :param str region: Cloud region in which to bootstrap + :param str agent_version: Version of tools to use for Juju agents + :param bool auto_upgrade: Upgrade to latest path release tools on first + bootstrap + :param bootstrap_constraints: Constraints for the bootstrap machine + :type bootstrap_constraints: :class:`juju.Constraints` + :param str bootstrap_series: Series of the bootstrap machine + :param dict config: Controller configuration + :param constraints: Default constraints for all future workload + machines + :type constraints: :class:`juju.Constraints` + :param credential: Credential to use when bootstrapping + :type credential: :class:`juju.Credential` + :param str default_model: Name to give the default model + :param bool keep_broken: Don't destroy model if bootstrap fails + :param str metadata_source: Local path to use as tools and/or metadata + source + :param bool no_gui: Don't install the Juju GUI in the controller when + bootstrapping + :param str to: Placement directive for bootstrap node (typically used + with MAAS) + :param bool upload_tools: Upload local version of tools before + bootstrapping + + """ + raise NotImplementedError() + + def set_default_credential(self, credential_name): + """Set the default credentials for this cloud. + + :param str credential_name: Credential to make default + + """ + raise NotImplementedError() + + def set_default_region(self, region): + """Set the default region for this cloud. + + :param str region: Name of region to make default + + """ + raise NotImplementedError() diff --git a/modules/libjuju/juju/constraints.py b/modules/libjuju/juju/constraints.py new file mode 100644 index 0000000..0050673 --- /dev/null +++ b/modules/libjuju/juju/constraints.py @@ -0,0 +1,87 @@ +# +# Module that parses constraints +# +# The current version of juju core expects the client to take +# constraints given in the form "mem=10G foo=bar" and parse them into +# json that looks like {"mem": 10240, "foo": "bar"}. This module helps us +# accomplish that task. +# +# We do not attempt to duplicate the checking done in +# client/_client.py:Value here. That class will verify that the +# constraints keys are valid, and that we can successfully dump the +# constraints dict to json. +# +# Once https://bugs.launchpad.net/juju/+bug/1645402 is addressed, this +# module should be deprecated. +# + +import re + +# Matches on a string specifying memory size +MEM = re.compile('^[1-9][0-9]*[MGTP]$') + +# Multiplication factors to get Megabytes +# https://github.com/juju/juju/blob/master/constraints/constraints.go#L666 +FACTORS = { + "M": 1, + "G": 1024, + "T": 1024 * 1024, + "P": 1024 * 1024 * 1024 +} + +LIST_KEYS = {'tags', 'spaces'} + +SNAKE1 = re.compile(r'(.)([A-Z][a-z]+)') +SNAKE2 = re.compile('([a-z0-9])([A-Z])') + + +def parse(constraints): + """ + Constraints must be expressed as a string containing only spaces + and key value pairs joined by an '='. + + """ + if not constraints: + return None + + if type(constraints) is dict: + # Fowards compatibilty: already parsed + return constraints + + constraints = { + normalize_key(k): ( + normalize_list_value(v) if k in LIST_KEYS else + normalize_value(v) + ) for k, v in [s.split("=") for s in constraints.split(" ")]} + + return constraints + + +def normalize_key(key): + key = key.strip() + + key = key.replace("-", "_") # Our _client lib wants "_" in place of "-" + + # Convert camelCase to snake_case + key = SNAKE1.sub(r'\1_\2', key) + key = SNAKE2.sub(r'\1_\2', key).lower() + + return key + + +def normalize_value(value): + value = value.strip() + + if MEM.match(value): + # Translate aliases to Megabytes. e.g. 1G = 10240 + return int(value[:-1]) * FACTORS[value[-1:]] + + if value.isdigit(): + return int(value) + + return value + + +def normalize_list_value(value): + values = value.strip().split(',') + return [normalize_value(value) for value in values] diff --git a/modules/libjuju/juju/controller.py b/modules/libjuju/juju/controller.py new file mode 100644 index 0000000..ed9b744 --- /dev/null +++ b/modules/libjuju/juju/controller.py @@ -0,0 +1,653 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import asyncio +import json +import logging +from pathlib import Path + +from . import errors, tag, utils +from .client import client, connector +from .user import User + +log = logging.getLogger(__name__) + + +class Controller: + def __init__( + self, + loop=None, + max_frame_size=None, + bakery_client=None, + jujudata=None, + ): + """Instantiate a new Controller. + + One of the connect_* methods will need to be called before this + object can be used for anything interesting. + + If jujudata is None, jujudata.FileJujuData will be used. + + :param loop: an asyncio event loop + :param max_frame_size: See + `juju.client.connection.Connection.MAX_FRAME_SIZE` + :param bakery_client httpbakery.Client: The bakery client to use + for macaroon authorization. + :param jujudata JujuData: The source for current controller + information. + """ + self._connector = connector.Connector( + loop=loop, + max_frame_size=max_frame_size, + bakery_client=bakery_client, + jujudata=jujudata, + ) + + async def __aenter__(self): + await self.connect() + return self + + async def __aexit__(self, exc_type, exc, tb): + await self.disconnect() + + @property + def loop(self): + return self._connector.loop + + async def connect(self, *args, **kwargs): + """Connect to a Juju controller. + + This supports two calling conventions: + + The controller and (optionally) authentication information can be + taken from the data files created by the Juju CLI. This convention + will be used if a ``controller_name`` is specified, or if the + ``endpoint`` is not. + + Otherwise, both the ``endpoint`` and authentication information + (``username`` and ``password``, or ``bakery_client`` and/or + ``macaroons``) are required. + + If a single positional argument is given, it will be assumed to be + the ``controller_name``. Otherwise, the first positional argument, + if any, must be the ``endpoint``. + + Available parameters are: + + :param str controller_name: Name of controller registered with the + Juju CLI. + :param str endpoint: The hostname:port of the controller to connect to. + :param str username: The username for controller-local users (or None + to use macaroon-based login.) + :param str password: The password for controller-local users. + :param str cacert: The CA certificate of the controller + (PEM formatted). + :param httpbakery.Client bakery_client: The macaroon bakery client to + to use when performing macaroon-based login. Macaroon tokens + acquired when logging will be saved to bakery_client.cookies. + If this is None, a default bakery_client will be used. + :param list macaroons: List of macaroons to load into the + ``bakery_client``. + :param asyncio.BaseEventLoop loop: The event loop to use for async + operations. + :param int max_frame_size: The maximum websocket frame size to allow. + """ + await self.disconnect() + if 'endpoint' not in kwargs and len(args) < 2: + if args and 'model_name' in kwargs: + raise TypeError('connect() got multiple values for ' + 'controller_name') + elif args: + controller_name = args[0] + else: + controller_name = kwargs.pop('controller_name', None) + await self._connector.connect_controller(controller_name, **kwargs) + else: + if 'controller_name' in kwargs: + raise TypeError('connect() got values for both ' + 'controller_name and endpoint') + if args and 'endpoint' in kwargs: + raise TypeError('connect() got multiple values for endpoint') + has_userpass = (len(args) >= 3 or + {'username', 'password'}.issubset(kwargs)) + has_macaroons = (len(args) >= 5 or not + {'bakery_client', 'macaroons'}.isdisjoint(kwargs)) + if not (has_userpass or has_macaroons): + raise TypeError('connect() missing auth params') + arg_names = [ + 'endpoint', + 'username', + 'password', + 'cacert', + 'bakery_client', + 'macaroons', + 'loop', + 'max_frame_size', + ] + for i, arg in enumerate(args): + kwargs[arg_names[i]] = arg + if 'endpoint' not in kwargs: + raise ValueError('endpoint is required ' + 'if controller_name not given') + if not ({'username', 'password'}.issubset(kwargs) or + {'bakery_client', 'macaroons'}.intersection(kwargs)): + raise ValueError('Authentication parameters are required ' + 'if controller_name not given') + await self._connector.connect(**kwargs) + + async def connect_current(self): + """ + .. deprecated:: 0.7.3 + Use :meth:`.connect()` instead. + """ + return await self.connect() + + async def connect_controller(self, controller_name): + """ + .. deprecated:: 0.7.3 + Use :meth:`.connect(controller_name)` instead. + """ + return await self.connect(controller_name) + + async def _connect_direct(self, **kwargs): + await self.disconnect() + await self._connector.connect(**kwargs) + + def is_connected(self): + """Reports whether the Controller is currently connected.""" + return self._connector.is_connected() + + def connection(self): + """Return the current Connection object. It raises an exception + if the Controller is disconnected""" + return self._connector.connection() + + @property + def controller_name(self): + return self._connector.controller_name + + async def disconnect(self): + """Shut down the watcher task and close websockets. + + """ + await self._connector.disconnect() + + async def add_credential(self, name=None, credential=None, cloud=None, + owner=None, force=False): + """Add or update a credential to the controller. + + :param str name: Name of new credential. If None, the default + local credential is used. Name must be provided if a credential + is given. + :param CloudCredential credential: Credential to add. If not given, + it will attempt to read from local data, if available. + :param str cloud: Name of cloud to associate the credential with. + Defaults to the same cloud as the controller. + :param str owner: Username that will own the credential. Defaults to + the current user. + :param bool force: Force indicates whether the update should be forced. + It's only supported for facade v3 or later. + Defaults to false. + :returns: Name of credential that was uploaded. + """ + if not cloud: + cloud = await self.get_cloud() + + if not owner: + owner = self.connection().info['user-info']['identity'] + + if credential and not name: + raise errors.JujuError('Name must be provided for credential') + + if not credential: + name, credential = self._connector.jujudata.load_credential(cloud, + name) + if credential is None: + raise errors.JujuError( + 'Unable to find credential: {}'.format(name)) + + if credential.auth_type == 'jsonfile' and 'file' in credential.attrs: + # file creds have to be loaded before being sent to the controller + try: + # it might already be JSON + json.loads(credential.attrs['file']) + except json.JSONDecodeError: + # not valid JSON, so maybe it's a file + cred_path = Path(credential.attrs['file']) + if cred_path.exists(): + # make a copy + cred_json = credential.to_json() + credential = client.CloudCredential.from_json(cred_json) + # inline the cred + credential.attrs['file'] = cred_path.read_text() + + log.debug('Uploading credential %s', name) + cloud_facade = client.CloudFacade.from_connection(self.connection()) + tagged_credentials = [ + client.UpdateCloudCredential( + tag=tag.credential(cloud, tag.untag('user-', owner), name), + credential=credential, + )] + if cloud_facade.version >= 3: + # UpdateCredentials was renamed to UpdateCredentialsCheckModels + # in facade version 3. + await cloud_facade.UpdateCredentialsCheckModels( + credentials=tagged_credentials, force=force, + ) + else: + await cloud_facade.UpdateCredentials(tagged_credentials) + return name + + async def add_model( + self, model_name, cloud_name=None, credential_name=None, + owner=None, config=None, region=None): + """Add a model to this controller. + + :param str model_name: Name to give the new model. + :param str cloud_name: Name of the cloud in which to create the + model, e.g. 'aws'. Defaults to same cloud as controller. + :param str credential_name: Name of the credential to use when + creating the model. If not given, it will attempt to find a + default credential. + :param str owner: Username that will own the model. Defaults to + the current user. + :param dict config: Model configuration. + :param str region: Region in which to create the model. + :return Model: A connection to the newly created model. + """ + model_facade = client.ModelManagerFacade.from_connection( + self.connection()) + + owner = owner or self.connection().info['user-info']['identity'] + cloud_name = cloud_name or await self.get_cloud() + + try: + # attempt to add/update the credential from local data if available + credential_name = await self.add_credential( + name=credential_name, + cloud=cloud_name, + owner=owner) + except errors.JujuError: + # if it's not available locally, assume it's on the controller + pass + + if credential_name: + credential = tag.credential( + cloud_name, + tag.untag('user-', owner), + credential_name + ) + else: + credential = None + + log.debug('Creating model %s', model_name) + + if not config or 'authorized-keys' not in config: + config = config or {} + config['authorized-keys'] = await utils.read_ssh_key( + loop=self._connector.loop) + + model_info = await model_facade.CreateModel( + tag.cloud(cloud_name), + config, + credential, + model_name, + owner, + region + ) + + # This is a temporary workaround for a race condition: + # https://bugs.launchpad.net/juju/+bug/1838774 + # This will be fixed when Juju 2.6.7 is released. + import time + time.sleep(5) + + from juju.model import Model + model = Model(jujudata=self._connector.jujudata) + kwargs = self.connection().connect_params() + kwargs['uuid'] = model_info.uuid + await model._connect_direct(**kwargs) + + return model + + async def destroy_models(self, *models, destroy_storage=False): + """Destroy one or more models. + + :param str *models: Names or UUIDs of models to destroy + :param bool destroy_storage: Whether or not to destroy storage when + destroying the models. Defaults to false. + + """ + uuids = await self.model_uuids() + models = [uuids[model] if model in uuids else model + for model in models] + + model_facade = client.ModelManagerFacade.from_connection( + self.connection()) + + log.debug( + 'Destroying model%s %s', + '' if len(models) == 1 else 's', + ', '.join(models) + ) + + if model_facade.version >= 5: + params = [ + client.DestroyModelParams(model_tag=tag.model(model), + destroy_storage=destroy_storage) + for model in models] + else: + params = [client.Entity(tag.model(model)) for model in models] + + await model_facade.DestroyModels(params) + destroy_model = destroy_models + + async def add_user(self, username, password=None, display_name=None): + """Add a user to this controller. + + :param str username: Username + :param str password: Password + :param str display_name: Display name + :returns: A :class:`~juju.user.User` instance + """ + if not display_name: + display_name = username + user_facade = client.UserManagerFacade.from_connection( + self.connection()) + users = [client.AddUser(display_name=display_name, + username=username, + password=password)] + results = await user_facade.AddUser(users) + secret_key = results.results[0].secret_key + return await self.get_user(username, secret_key=secret_key) + + async def remove_user(self, username): + """Remove a user from this controller. + """ + client_facade = client.UserManagerFacade.from_connection( + self.connection()) + user = tag.user(username) + await client_facade.RemoveUser([client.Entity(user)]) + + async def change_user_password(self, username, password): + """Change the password for a user in this controller. + + :param str username: Username + :param str password: New password + + """ + user_facade = client.UserManagerFacade.from_connection( + self.connection()) + entity = client.EntityPassword(password, tag.user(username)) + return await user_facade.SetPassword([entity]) + + async def reset_user_password(self, username): + """Reset user password. + + :param str username: Username + :returns: A :class:`~juju.user.User` instance + """ + user_facade = client.UserManagerFacade.from_connection( + self.connection()) + entity = client.Entity(tag.user(username)) + results = await user_facade.ResetPassword([entity]) + secret_key = results.results[0].secret_key + return await self.get_user(username, secret_key=secret_key) + + async def destroy(self, destroy_all_models=False): + """Destroy this controller. + + :param bool destroy_all_models: Destroy all hosted models in the + controller. + + """ + controller_facade = client.ControllerFacade.from_connection( + self.connection()) + return await controller_facade.DestroyController(destroy_all_models) + + async def disable_user(self, username): + """Disable a user. + + :param str username: Username + + """ + user_facade = client.UserManagerFacade.from_connection( + self.connection()) + entity = client.Entity(tag.user(username)) + return await user_facade.DisableUser([entity]) + + async def enable_user(self, username): + """Re-enable a previously disabled user. + + """ + user_facade = client.UserManagerFacade.from_connection( + self.connection()) + entity = client.Entity(tag.user(username)) + return await user_facade.EnableUser([entity]) + + def kill(self): + """Forcibly terminate all machines and other associated resources for + this controller. + + """ + raise NotImplementedError() + + async def get_cloud(self): + """ + Get the name of the cloud that this controller lives on. + """ + cloud_facade = client.CloudFacade.from_connection(self.connection()) + + result = await cloud_facade.Clouds() + cloud = list(result.clouds.keys())[0] # only lives on one cloud + return tag.untag('cloud-', cloud) + + async def get_models(self, all_=False, username=None): + """ + .. deprecated:: 0.7.0 + Use :meth:`.list_models` instead. + """ + controller_facade = client.ControllerFacade.from_connection( + self.connection()) + for attempt in (1, 2, 3): + try: + return await controller_facade.AllModels() + except errors.JujuAPIError as e: + # retry concurrency error until resolved in Juju + # see: https://bugs.launchpad.net/juju/+bug/1721786 + if 'has been removed' not in e.message or attempt == 3: + raise + + async def model_uuids(self): + """Return a mapping of model names to UUIDs. + """ + controller_facade = client.ControllerFacade.from_connection( + self.connection()) + for attempt in (1, 2, 3): + try: + response = await controller_facade.AllModels() + return {um.model.name: um.model.uuid + for um in response.user_models} + except errors.JujuAPIError as e: + # retry concurrency error until resolved in Juju + # see: https://bugs.launchpad.net/juju/+bug/1721786 + if 'has been removed' not in e.message or attempt == 3: + raise + await asyncio.sleep(attempt, loop=self._connector.loop) + + async def list_models(self): + """Return list of names of the available models on this controller. + + Equivalent to ``sorted((await self.model_uuids()).keys())`` + """ + uuids = await self.model_uuids() + return sorted(uuids.keys()) + + def get_payloads(self, *patterns): + """Return list of known payloads. + + :param str *patterns: Patterns to match against + + Each pattern will be checked against the following info in Juju:: + + - unit name + - machine id + - payload type + - payload class + - payload id + - payload tag + - payload status + + """ + raise NotImplementedError() + + def login(self): + """Log in to this controller. + + """ + raise NotImplementedError() + + def logout(self, force=False): + """Log out of this controller. + + :param bool force: Don't fail even if user not previously logged in + with a password + + """ + raise NotImplementedError() + + async def get_model(self, model): + """Get a model by name or UUID. + + :param str model: Model name or UUID + :returns Model: Connected Model instance. + """ + uuids = await self.model_uuids() + if model in uuids: + uuid = uuids[model] + else: + uuid = model + + from juju.model import Model + model = Model() + kwargs = self.connection().connect_params() + kwargs['uuid'] = uuid + await model._connect_direct(**kwargs) + return model + + async def get_user(self, username, secret_key=None): + """Get a user by name. + + :param str username: Username + :param str secret_key: Issued by juju when add or reset user + password + :returns: A :class:`~juju.user.User` instance + """ + client_facade = client.UserManagerFacade.from_connection( + self.connection()) + user = tag.user(username) + args = [client.Entity(user)] + try: + response = await client_facade.UserInfo(args, True) + except errors.JujuError as e: + if 'permission denied' in e.errors: + # apparently, trying to get info for a nonexistent user returns + # a "permission denied" error rather than an empty result set + return None + raise + if response.results and response.results[0].result: + return User(self, response.results[0].result, secret_key=secret_key) + return None + + async def get_users(self, include_disabled=False): + """Return list of users that can connect to this controller. + + :param bool include_disabled: Include disabled users + :returns: A list of :class:`~juju.user.User` instances + """ + client_facade = client.UserManagerFacade.from_connection( + self.connection()) + response = await client_facade.UserInfo(None, include_disabled) + return [User(self, r.result) for r in response.results] + + async def grant(self, username, acl='login'): + """Grant access level of the given user on the controller. + Note that if the user already has higher permissions than the + provided ACL, this will do nothing (see revoke for a way to + remove permissions). + :param str username: Username + :param str acl: Access control ('login', 'add-model' or 'superuser') + :returns: True if new access was granted, False if user already had + requested access or greater. Raises JujuError if failed. + """ + controller_facade = client.ControllerFacade.from_connection( + self.connection()) + user = tag.user(username) + changes = client.ModifyControllerAccess(acl, 'grant', user) + try: + await controller_facade.ModifyControllerAccess([changes]) + return True + except errors.JujuError as e: + if 'user already has' in str(e): + return False + else: + raise + + async def revoke(self, username, acl='login'): + """Removes some or all access of a user to from a controller + If 'login' access is revoked, the user will no longer have any + permissions on the controller. Revoking a higher privilege from + a user without that privilege will have no effect. + + :param str username: username + :param str acl: Access to remove ('login', 'add-model' or 'superuser') + """ + controller_facade = client.ControllerFacade.from_connection( + self.connection()) + user = tag.user(username) + changes = client.ModifyControllerAccess('login', 'revoke', user) + return await controller_facade.ModifyControllerAccess([changes]) + + async def grant_model(self, username, model_uuid, acl='read'): + """Grant a user access to a model. Note that if the user + already has higher permissions than the provided ACL, + this will do nothing (see revoke_model for a way to remove + permissions). + + :param str username: Username + :param str model_uuid: The UUID of the model to change. + :param str acl: Access control ('read, 'write' or 'admin') + """ + model_facade = client.ModelManagerFacade.from_connection( + self.connection()) + user = tag.user(username) + model = tag.model(model_uuid) + changes = client.ModifyModelAccess(acl, 'grant', model, user) + return await model_facade.ModifyModelAccess([changes]) + + async def revoke_model(self, username, model_uuid, acl='read'): + """Revoke some or all of a user's access to a model. + If 'read' access is revoked, the user will no longer have any + permissions on the model. Revoking a higher privilege from + a user without that privilege will have no effect. + + :param str username: Username to revoke + :param str model_uuid: The UUID of the model to change. + :param str acl: Access control ('read, 'write' or 'admin') + """ + model_facade = client.ModelManagerFacade.from_connection( + self.connection()) + user = tag.user(username) + model = tag.model(model_uuid) + changes = client.ModifyModelAccess(acl, 'revoke', model, user) + return await model_facade.ModifyModelAccess([changes]) diff --git a/modules/libjuju/juju/credential.py b/modules/libjuju/juju/credential.py new file mode 100644 index 0000000..e69de29 diff --git a/modules/libjuju/juju/delta.py b/modules/libjuju/juju/delta.py new file mode 100644 index 0000000..b1eba23 --- /dev/null +++ b/modules/libjuju/juju/delta.py @@ -0,0 +1,79 @@ +from .client import client + + +def get_entity_delta(d): + return _delta_types[d.entity](d.deltas) + + +def get_entity_class(entity_type): + return _delta_types[entity_type].get_entity_class() + + +class EntityDelta(client.Delta): + def get_id(self): + return self.data['id'] + + @classmethod + def get_entity_class(self): + return None + + +class ActionDelta(EntityDelta): + @classmethod + def get_entity_class(self): + from .action import Action + return Action + + +class ApplicationDelta(EntityDelta): + def get_id(self): + return self.data['name'] + + @classmethod + def get_entity_class(self): + from .application import Application + return Application + + +class AnnotationDelta(EntityDelta): + def get_id(self): + return self.data['tag'] + + @classmethod + def get_entity_class(self): + from .annotation import Annotation + return Annotation + + +class MachineDelta(EntityDelta): + @classmethod + def get_entity_class(self): + from .machine import Machine + return Machine + + +class UnitDelta(EntityDelta): + def get_id(self): + return self.data['name'] + + @classmethod + def get_entity_class(self): + from .unit import Unit + return Unit + + +class RelationDelta(EntityDelta): + @classmethod + def get_entity_class(self): + from .relation import Relation + return Relation + + +_delta_types = { + 'action': ActionDelta, + 'application': ApplicationDelta, + 'annotation': AnnotationDelta, + 'machine': MachineDelta, + 'unit': UnitDelta, + 'relation': RelationDelta, +} diff --git a/modules/libjuju/juju/errors.py b/modules/libjuju/juju/errors.py new file mode 100644 index 0000000..da11cdb --- /dev/null +++ b/modules/libjuju/juju/errors.py @@ -0,0 +1,49 @@ +class JujuError(Exception): + def __init__(self, *args, **kwargs): + self.message = '' + self.errors = [] + if args: + self.message = str(args[0]) + if isinstance(args[0], (list, tuple)): + self.errors = args[0] + elif len(args) > 1: + self.errors = list(args) + else: + self.errors = [self.message] + super().__init__(*args, **kwargs) + + +class JujuAPIError(JujuError): + def __init__(self, result): + self.result = result + self.message = result['error'] + self.error_code = result.get('error-code') + self.response = result['response'] + self.request_id = result['request-id'] + super().__init__(self.message) + + +class JujuConnectionError(ConnectionError, JujuError): + pass + + +class JujuAuthError(JujuConnectionError): + pass + + +class JujuRedirectException(Exception): + """Exception indicating that a redirection was requested""" + def __init__(self, redirect_info): + self.redirect_info = redirect_info + + @property + def ca_cert(self): + return self.redirect_info['ca-cert'] + + @property + def endpoints(self): + return [ + ('{value}:{port}'.format(**s), self.ca_cert) + for servers in self.redirect_info['servers'] + for s in servers if s['scope'] == 'public' + ] diff --git a/modules/libjuju/juju/exceptions.py b/modules/libjuju/juju/exceptions.py new file mode 100644 index 0000000..bcf07b6 --- /dev/null +++ b/modules/libjuju/juju/exceptions.py @@ -0,0 +1,2 @@ +class DeadEntityException(Exception): + pass diff --git a/modules/libjuju/juju/juju.py b/modules/libjuju/juju/juju.py new file mode 100644 index 0000000..444155f --- /dev/null +++ b/modules/libjuju/juju/juju.py @@ -0,0 +1,118 @@ +class Juju(object): + def add_cloud(self, name, definition, replace=False): + """Add a user-defined cloud to Juju from among known cloud types. + + :param str name: Name of cloud + :param dict definition: Cloud definition + + Example cloud definition, as yaml:: + + type: openstack + auth-types: [ userpass ] + regions: + london: + endpoint: https://london.mycloud.com:35574/v3.0/ + + """ + raise NotImplementedError() + + def agree(self, *terms): + """Agree to the terms of a charm. + + :param str *terms: Terms to agree to + + """ + raise NotImplementedError() + + def autoload_credentials(self): + """Finds cloud credentials and caches them for use by Juju when + bootstrapping. + + """ + raise NotImplementedError() + + def create_budget(self): + """Create a new budget. + + """ + raise NotImplementedError() + + def get_agreements(self): + """Return list of terms to which the current user has agreed. + + """ + raise NotImplementedError() + + def get_budgets(self): + """Return list of available budgets. + + """ + raise NotImplementedError() + + def get_clouds(self): + """Return list of all available clouds. + + """ + raise NotImplementedError() + + def get_controllers(self): + """Return list of all available controllers. + + (maybe move this to Cloud?) + """ + raise NotImplementedError() + + def get_plans(self, charm_url): + """Return list of plans available for the specified charm. + + :param str charm_url: Charm url + + """ + raise NotImplementedError() + + def register(self, registration_string): + """Register a user to a controller. + + :param str registration_string: The registration string + + """ + raise NotImplementedError() + + def set_budget(self, name, limit): + """Set a monthly budget limit. + + :param str name: Name of budget + :param int limit: Monthly limit + + """ + raise NotImplementedError() + + def get_cloud(self, name): + """Get a cloud by name. + + :param str name: Name of cloud + + """ + raise NotImplementedError() + + def get_controller(self, name, include_passwords=False): + """Get a controller by name. + + :param str name: Name of controller + :param bool include_passwords: Include passwords for accounts + + (maybe move this to Cloud?) + """ + raise NotImplementedError() + + def update_clouds(self): + """Update public cloud info available to Juju. + + """ + raise NotImplementedError() + + def version(self): + """Return the Juju version. + + """ + raise NotImplementedError() diff --git a/modules/libjuju/juju/loop.py b/modules/libjuju/juju/loop.py new file mode 100644 index 0000000..aca726b --- /dev/null +++ b/modules/libjuju/juju/loop.py @@ -0,0 +1,42 @@ +import asyncio +import signal + + +def run(*steps): + """ + Helper to run one or more async functions synchronously, with graceful + handling of SIGINT / Ctrl-C. + + Returns the return value of the last function. + """ + if not steps: + return + + task = None + run._sigint = False # function attr to allow setting from closure + loop = asyncio.get_event_loop() + + def abort(): + task.cancel() + run._sigint = True + + added = False + try: + loop.add_signal_handler(signal.SIGINT, abort) + added = True + except (ValueError, OSError, RuntimeError) as e: + # add_signal_handler doesn't work in a thread + if 'main thread' not in str(e): + raise + try: + for step in steps: + task = loop.create_task(step) + loop.run_until_complete(asyncio.wait([task], loop=loop)) + if run._sigint: + raise KeyboardInterrupt() + if task.exception(): + raise task.exception() + return task.result() + finally: + if added: + loop.remove_signal_handler(signal.SIGINT) diff --git a/modules/libjuju/juju/machine.py b/modules/libjuju/juju/machine.py new file mode 100644 index 0000000..39bfa11 --- /dev/null +++ b/modules/libjuju/juju/machine.py @@ -0,0 +1,284 @@ +import asyncio +import logging +import os + +import pyrfc3339 + +from . import model, utils +from .client import client +from .errors import JujuError + +log = logging.getLogger(__name__) + + +class Machine(model.ModelEntity): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.model.loop.create_task(self._queue_workarounds()) + + async def _queue_workarounds(self): + model = self.model + if not model.info: + await utils.run_with_interrupt(model.get_info(), + model._watch_stopping, + loop=model.loop) + if model._watch_stopping.is_set(): + return + if model.info.agent_version < client.Number.from_json('2.2.3'): + self.on_change(self._workaround_1695335) + + async def _workaround_1695335(self, delta, old, new, model): + """ + This is a (hacky) temporary work around for a bug in Juju where the + instance status and agent version fields don't get updated properly + by the AllWatcher. + + Deltas never contain a value for `data['agent-status']['version']`, + and once the `instance-status` reaches `pending`, we no longer get + any updates for it (the deltas come in, but the `instance-status` + data is always the same after that). + + To work around this, whenever a delta comes in for this machine, we + query FullStatus and use the data from there if and only if it's newer. + Luckily, the timestamps on the `since` field does seem to be accurate. + + See https://bugs.launchpad.net/juju/+bug/1695335 + """ + if delta.data.get('synthetic', False): + # prevent infinite loops re-processing already processed deltas + return + + full_status = await utils.run_with_interrupt(model.get_status(), + model._watch_stopping, + loop=model.loop) + if model._watch_stopping.is_set(): + return + + if self.id not in full_status.machines: + return + + if not full_status.machines[self.id]['instance-status']['since']: + return + + machine = full_status.machines[self.id] + + change_log = [] + key_map = { + 'status': 'current', + 'info': 'message', + 'since': 'since', + } + + # handle agent version specially, because it's never set in + # deltas, and we don't want even a newer delta to clear it + agent_version = machine['agent-status']['version'] + if agent_version: + delta.data['agent-status']['version'] = agent_version + change_log.append(('agent-version', '', agent_version)) + + # only update (other) delta fields if status data is newer + status_since = pyrfc3339.parse(machine['instance-status']['since']) + delta_since = pyrfc3339.parse(delta.data['instance-status']['since']) + if status_since > delta_since: + for status_key in ('status', 'info', 'since'): + delta_key = key_map[status_key] + status_value = machine['instance-status'][status_key] + delta_value = delta.data['instance-status'][delta_key] + change_log.append((delta_key, delta_value, status_value)) + delta.data['instance-status'][delta_key] = status_value + + if change_log: + log.debug('Overriding machine delta with FullStatus data') + for log_item in change_log: + log.debug(' {}: {} -> {}'.format(*log_item)) + delta.data['synthetic'] = True + old_obj, new_obj = self.model.state.apply_delta(delta) + await model._notify_observers(delta, old_obj, new_obj) + + async def destroy(self, force=False): + """Remove this machine from the model. + + Blocks until the machine is actually removed. + + """ + facade = client.ClientFacade.from_connection(self.connection) + + log.debug( + 'Destroying machine %s', self.id) + + await facade.DestroyMachines(force, [self.id]) + return await self.model._wait( + 'machine', self.id, 'remove') + remove = destroy + + def run(self, command, timeout=None): + """Run command on this machine. + + :param str command: The command to run + :param int timeout: Time to wait before command is considered failed + + """ + raise NotImplementedError() + + async def set_annotations(self, annotations): + """Set annotations on this machine. + + :param annotations map[string]string: the annotations as key/value + pairs. + + """ + log.debug('Updating annotations on machine %s', self.id) + + self.ann_facade = client.AnnotationsFacade.from_connection( + self.connection) + + ann = client.EntityAnnotations( + entity=self.id, + annotations=annotations, + ) + return await self.ann_facade.Set([ann]) + + async def scp_to(self, source, destination, user='ubuntu', proxy=False, + scp_opts=''): + """Transfer files to this machine. + + :param str source: Local path of file(s) to transfer + :param str destination: Remote destination of transferred files + :param str user: Remote username + :param bool proxy: Proxy through the Juju API server + :param scp_opts: Additional options to the `scp` command + :type scp_opts: str or list + """ + if proxy: + raise NotImplementedError('proxy option is not implemented') + + address = self.dns_name + destination = '%s@%s:%s' % (user, address, destination) + await self._scp(source, destination, scp_opts) + + async def scp_from(self, source, destination, user='ubuntu', proxy=False, + scp_opts=''): + """Transfer files from this machine. + + :param str source: Remote path of file(s) to transfer + :param str destination: Local destination of transferred files + :param str user: Remote username + :param bool proxy: Proxy through the Juju API server + :param scp_opts: Additional options to the `scp` command + :type scp_opts: str or list + """ + if proxy: + raise NotImplementedError('proxy option is not implemented') + + address = self.dns_name + source = '%s@%s:%s' % (user, address, source) + await self._scp(source, destination, scp_opts) + + async def _scp(self, source, destination, scp_opts): + """ Execute an scp command. Requires a fully qualified source and + destination. + """ + cmd = [ + 'scp', + '-i', os.path.expanduser('~/.local/share/juju/ssh/juju_id_rsa'), + '-o', 'StrictHostKeyChecking=no', + '-q', + '-B' + ] + cmd.extend(scp_opts.split() if isinstance(scp_opts, str) else scp_opts) + cmd.extend([source, destination]) + loop = self.model.loop + process = await asyncio.create_subprocess_exec(*cmd, loop=loop) + await process.wait() + if process.returncode != 0: + raise JujuError("command failed: %s" % cmd) + + def ssh( + self, command, user=None, proxy=False, ssh_opts=None): + """Execute a command over SSH on this machine. + + :param str command: Command to execute + :param str user: Remote username + :param bool proxy: Proxy through the Juju API server + :param str ssh_opts: Additional options to the `ssh` command + + """ + raise NotImplementedError() + + def status_history(self, num=20, utc=False): + """Get status history for this machine. + + :param int num: Size of history backlog + :param bool utc: Display time as UTC in RFC3339 format + + """ + raise NotImplementedError() + + @property + def agent_status(self): + """Returns the current Juju agent status string. + + """ + return self.safe_data['agent-status']['current'] + + @property + def agent_status_since(self): + """Get the time when the `agent_status` was last updated. + + """ + return pyrfc3339.parse(self.safe_data['agent-status']['since']) + + @property + def agent_version(self): + """Get the version of the Juju machine agent. + + May return None if the agent is not yet available. + """ + version = self.safe_data['agent-status']['version'] + if version: + return client.Number.from_json(version) + else: + return None + + @property + def status(self): + """Returns the current machine provisioning status string. + + """ + return self.safe_data['instance-status']['current'] + + @property + def status_message(self): + """Returns the current machine provisioning status message. + + """ + return self.safe_data['instance-status']['message'] + + @property + def status_since(self): + """Get the time when the `status` was last updated. + + """ + return pyrfc3339.parse(self.safe_data['instance-status']['since']) + + @property + def dns_name(self): + """Get the DNS name for this machine. This is a best guess based on the + addresses available in current data. + + May return None if no suitable address is found. + """ + for scope in ['public', 'local-cloud']: + addresses = self.safe_data['addresses'] or [] + addresses = [address for address in addresses + if address['scope'] == scope] + if addresses: + return addresses[0]['value'] + return None + + @property + def series(self): + """Returns the series of the current machine + + """ + return self.safe_data['series'] diff --git a/modules/libjuju/juju/model.py b/modules/libjuju/juju/model.py new file mode 100644 index 0000000..9a14add --- /dev/null +++ b/modules/libjuju/juju/model.py @@ -0,0 +1,2328 @@ +import asyncio +import base64 +import collections +import hashlib +import json +import logging +import os +import re +import stat +import tempfile +import weakref +import zipfile +from concurrent.futures import CancelledError +from functools import partial +from pathlib import Path + +import theblues.charmstore +import theblues.errors +import websockets +import yaml + +from . import tag, utils +from .client import client, connector +from .client.client import ConfigValue +from .client.client import Value +from .constraints import parse as parse_constraints +from .constraints import normalize_key +from .delta import get_entity_class, get_entity_delta +from .errors import JujuAPIError, JujuError +from .exceptions import DeadEntityException +from .placement import parse as parse_placement +from . import provisioner + + +log = logging.getLogger(__name__) + + +class _Observer: + """Wrapper around an observer callable. + + This wrapper allows filter criteria to be associated with the + callable so that it's only called for changes that meet the criteria. + + """ + def __init__(self, callable_, entity_type, action, entity_id, predicate): + self.callable_ = callable_ + self.entity_type = entity_type + self.action = action + self.entity_id = entity_id + self.predicate = predicate + if self.entity_id: + self.entity_id = str(self.entity_id) + if not self.entity_id.startswith('^'): + self.entity_id = '^' + self.entity_id + if not self.entity_id.endswith('$'): + self.entity_id += '$' + + async def __call__(self, delta, old, new, model): + await self.callable_(delta, old, new, model) + + def cares_about(self, delta): + """Return True if this observer "cares about" (i.e. wants to be + called) for a this delta. + + """ + if (self.entity_id and delta.get_id() and + not re.match(self.entity_id, str(delta.get_id()))): + return False + + if self.entity_type and self.entity_type != delta.entity: + return False + + if self.action and self.action != delta.type: + return False + + if self.predicate and not self.predicate(delta): + return False + + return True + + +class ModelObserver: + """ + Base class for creating observers that react to changes in a model. + """ + async def __call__(self, delta, old, new, model): + handler_name = 'on_{}_{}'.format(delta.entity, delta.type) + method = getattr(self, handler_name, self.on_change) + await method(delta, old, new, model) + + async def on_change(self, delta, old, new, model): + """Generic model-change handler. + + This should be overridden in a subclass. + + :param delta: :class:`juju.client.overrides.Delta` + :param old: :class:`juju.model.ModelEntity` + :param new: :class:`juju.model.ModelEntity` + :param model: :class:`juju.model.Model` + + """ + pass + + +class ModelState: + """Holds the state of the model, including the delta history of all + entities in the model. + + """ + def __init__(self, model): + self.model = model + self.state = dict() + + def _live_entity_map(self, entity_type): + """Return an id:Entity map of all the living entities of + type ``entity_type``. + + """ + return { + entity_id: self.get_entity(entity_type, entity_id) + for entity_id, history in self.state.get(entity_type, {}).items() + if history[-1] is not None + } + + @property + def applications(self): + """Return a map of application-name:Application for all applications + currently in the model. + + """ + return self._live_entity_map('application') + + @property + def machines(self): + """Return a map of machine-id:Machine for all machines currently in + the model. + + """ + return self._live_entity_map('machine') + + @property + def units(self): + """Return a map of unit-id:Unit for all units currently in + the model. + + """ + return self._live_entity_map('unit') + + @property + def relations(self): + """Return a map of relation-id:Relation for all relations currently in + the model. + + """ + return self._live_entity_map('relation') + + def entity_history(self, entity_type, entity_id): + """Return the history deque for an entity. + + """ + return self.state[entity_type][entity_id] + + def entity_data(self, entity_type, entity_id, history_index): + """Return the data dict for an entity at a specific index of its + history. + + """ + return self.entity_history(entity_type, entity_id)[history_index] + + def apply_delta(self, delta): + """Apply delta to our state and return a copy of the + affected object as it was before and after the update, e.g.: + + old_obj, new_obj = self.apply_delta(delta) + + old_obj may be None if the delta is for the creation of a new object, + e.g. a new application or unit is deployed. + + new_obj will never be None, but may be dead (new_obj.dead == True) + if the object was deleted as a result of the delta being applied. + + """ + history = ( + self.state + .setdefault(delta.entity, {}) + .setdefault(delta.get_id(), collections.deque()) + ) + + history.append(delta.data) + if delta.type == 'remove': + history.append(None) + + entity = self.get_entity(delta.entity, delta.get_id()) + return entity.previous(), entity + + def get_entity( + self, entity_type, entity_id, history_index=-1, connected=True): + """Return an object instance for the given entity_type and id. + + By default the object state matches the most recent state from + Juju. To get an instance of the object in an older state, pass + history_index, an index into the history deque for the entity. + + """ + + if history_index < 0 and history_index != -1: + history_index += len(self.entity_history(entity_type, entity_id)) + if history_index < 0: + return None + + try: + self.entity_data(entity_type, entity_id, history_index) + except IndexError: + return None + + entity_class = get_entity_class(entity_type) + return entity_class( + entity_id, self.model, history_index=history_index, + connected=connected) + + +class ModelEntity: + """An object in the Model tree""" + + def __init__(self, entity_id, model, history_index=-1, connected=True): + """Initialize a new entity + + :param entity_id str: The unique id of the object in the model + :param model: The model instance in whose object tree this + entity resides + :history_index int: The index of this object's state in the model's + history deque for this entity + :connected bool: Flag indicating whether this object gets live updates + from the model. + + """ + self.entity_id = entity_id + self.model = model + self._history_index = history_index + self.connected = connected + self.connection = model.connection() + + def __repr__(self): + return '<{} entity_id="{}">'.format(type(self).__name__, + self.entity_id) + + def __getattr__(self, name): + """Fetch object attributes from the underlying data dict held in the + model. + + """ + try: + return self.safe_data[name] + except KeyError: + name = name.replace('_', '-') + if name in self.safe_data: + return self.safe_data[name] + else: + raise + + def __bool__(self): + return bool(self.data) + + def on_change(self, callable_): + """Add a change observer to this entity. + + """ + self.model.add_observer( + callable_, self.entity_type, 'change', self.entity_id) + + def on_remove(self, callable_): + """Add a remove observer to this entity. + + """ + self.model.add_observer( + callable_, self.entity_type, 'remove', self.entity_id) + + @property + def entity_type(self): + """A string identifying the entity type of this object, e.g. + 'application' or 'unit', etc. + + """ + return self.__class__.__name__.lower() + + @property + def current(self): + """Return True if this object represents the current state of the + entity in the underlying model. + + This will be True except when the object represents an entity at a + non-latest state in history, e.g. if the object was obtained by calling + .previous() on another object. + + """ + return self._history_index == -1 + + @property + def dead(self): + """Returns True if this entity no longer exists in the underlying + model. + + """ + return ( + self.data is None or + self.model.state.entity_data( + self.entity_type, self.entity_id, -1) is None + ) + + @property + def alive(self): + """Returns True if this entity still exists in the underlying + model. + + """ + return not self.dead + + @property + def data(self): + """The data dictionary for this entity. + + """ + return self.model.state.entity_data( + self.entity_type, self.entity_id, self._history_index) + + @property + def safe_data(self): + """The data dictionary for this entity. + + If this `ModelEntity` points to the dead state, it will + raise `DeadEntityException`. + + """ + if self.data is None: + raise DeadEntityException( + "Entity {}:{} is dead - its attributes can no longer be " + "accessed. Use the .previous() method on this object to get " + "a copy of the object at its previous state.".format( + self.entity_type, self.entity_id)) + return self.data + + def previous(self): + """Return a copy of this object as was at its previous state in + history. + + Returns None if this object is new (and therefore has no history). + + The returned object is always "disconnected", i.e. does not receive + live updates. + + """ + return self.model.state.get_entity( + self.entity_type, self.entity_id, self._history_index - 1, + connected=False) + + def next(self): + """Return a copy of this object at its next state in + history. + + Returns None if this object is already the latest. + + The returned object is "disconnected", i.e. does not receive + live updates, unless it is current (latest). + + """ + if self._history_index == -1: + return None + + new_index = self._history_index + 1 + connected = ( + new_index == len(self.model.state.entity_history( + self.entity_type, self.entity_id)) - 1 + ) + return self.model.state.get_entity( + self.entity_type, self.entity_id, self._history_index - 1, + connected=connected) + + def latest(self): + """Return a copy of this object at its current state in the model. + + Returns self if this object is already the latest. + + The returned object is always "connected", i.e. receives + live updates from the model. + + """ + if self._history_index == -1: + return self + + return self.model.state.get_entity(self.entity_type, self.entity_id) + + +class Model: + """ + The main API for interacting with a Juju model. + """ + def __init__( + self, + loop=None, + max_frame_size=None, + bakery_client=None, + jujudata=None, + ): + """Instantiate a new Model. + + The connect method will need to be called before this + object can be used for anything interesting. + + If jujudata is None, jujudata.FileJujuData will be used. + + :param loop: an asyncio event loop + :param max_frame_size: See + `juju.client.connection.Connection.MAX_FRAME_SIZE` + :param bakery_client httpbakery.Client: The bakery client to use + for macaroon authorization. + :param jujudata JujuData: The source for current controller information + """ + self._connector = connector.Connector( + loop=loop, + max_frame_size=max_frame_size, + bakery_client=bakery_client, + jujudata=jujudata, + ) + self._observers = weakref.WeakValueDictionary() + self.state = ModelState(self) + self._info = None + self._watch_stopping = asyncio.Event(loop=self._connector.loop) + self._watch_stopped = asyncio.Event(loop=self._connector.loop) + self._watch_received = asyncio.Event(loop=self._connector.loop) + self._watch_stopped.set() + self._charmstore = CharmStore(self._connector.loop) + + def is_connected(self): + """Reports whether the Model is currently connected.""" + return self._connector.is_connected() + + @property + def loop(self): + return self._connector.loop + + def connection(self): + """Return the current Connection object. It raises an exception + if the Model is disconnected""" + return self._connector.connection() + + async def get_controller(self): + """Return a Controller instance for the currently connected model. + :return Controller: + """ + from juju.controller import Controller + controller = Controller(jujudata=self._connector.jujudata) + kwargs = self.connection().connect_params() + kwargs.pop('uuid') + await controller._connect_direct(**kwargs) + return controller + + async def __aenter__(self): + await self.connect() + return self + + async def __aexit__(self, exc_type, exc, tb): + await self.disconnect() + + async def connect(self, *args, **kwargs): + """Connect to a juju model. + + This supports two calling conventions: + + The model and (optionally) authentication information can be taken + from the data files created by the Juju CLI. This convention will + be used if a ``model_name`` is specified, or if the ``endpoint`` + and ``uuid`` are not. + + Otherwise, all of the ``endpoint``, ``uuid``, and authentication + information (``username`` and ``password``, or ``bakery_client`` and/or + ``macaroons``) are required. + + If a single positional argument is given, it will be assumed to be + the ``model_name``. Otherwise, the first positional argument, if any, + must be the ``endpoint``. + + Available parameters are: + + :param model_name: Format [controller:][user/]model + :param str endpoint: The hostname:port of the controller to connect to. + :param str uuid: The model UUID to connect to. + :param str username: The username for controller-local users (or None + to use macaroon-based login.) + :param str password: The password for controller-local users. + :param str cacert: The CA certificate of the controller + (PEM formatted). + :param httpbakery.Client bakery_client: The macaroon bakery client to + to use when performing macaroon-based login. Macaroon tokens + acquired when logging will be saved to bakery_client.cookies. + If this is None, a default bakery_client will be used. + :param list macaroons: List of macaroons to load into the + ``bakery_client``. + :param asyncio.BaseEventLoop loop: The event loop to use for async + operations. + :param int max_frame_size: The maximum websocket frame size to allow. + """ + await self.disconnect() + if 'endpoint' not in kwargs and len(args) < 2: + if args and 'model_name' in kwargs: + raise TypeError('connect() got multiple values for model_name') + elif args: + model_name = args[0] + else: + model_name = kwargs.pop('model_name', None) + await self._connector.connect_model(model_name, **kwargs) + else: + if 'model_name' in kwargs: + raise TypeError('connect() got values for both ' + 'model_name and endpoint') + if args and 'endpoint' in kwargs: + raise TypeError('connect() got multiple values for endpoint') + if len(args) < 2 and 'uuid' not in kwargs: + raise TypeError('connect() missing value for uuid') + has_userpass = (len(args) >= 4 or + {'username', 'password'}.issubset(kwargs)) + has_macaroons = (len(args) >= 6 or not + {'bakery_client', 'macaroons'}.isdisjoint(kwargs)) + if not (has_userpass or has_macaroons): + raise TypeError('connect() missing auth params') + arg_names = [ + 'endpoint', + 'uuid', + 'username', + 'password', + 'cacert', + 'bakery_client', + 'macaroons', + 'loop', + 'max_frame_size', + ] + for i, arg in enumerate(args): + kwargs[arg_names[i]] = arg + if not {'endpoint', 'uuid'}.issubset(kwargs): + raise ValueError('endpoint and uuid are required ' + 'if model_name not given') + if not ({'username', 'password'}.issubset(kwargs) or + {'bakery_client', 'macaroons'}.intersection(kwargs)): + raise ValueError('Authentication parameters are required ' + 'if model_name not given') + await self._connector.connect(**kwargs) + await self._after_connect() + + async def connect_model(self, model_name): + """ + .. deprecated:: 0.6.2 + Use ``connect(model_name=model_name)`` instead. + """ + return await self.connect(model_name=model_name) + + async def connect_current(self): + """ + .. deprecated:: 0.6.2 + Use ``connect()`` instead. + """ + return await self.connect() + + async def _connect_direct(self, **kwargs): + await self.disconnect() + await self._connector.connect(**kwargs) + await self._after_connect() + + async def _after_connect(self): + self._watch() + + # Wait for the first packet of data from the AllWatcher, + # which contains all information on the model. + # TODO this means that we can't do anything until + # we've received all the model data, which might be + # a whole load of unneeded data if all the client wants + # to do is make one RPC call. + await self._watch_received.wait() + + await self.get_info() + + async def disconnect(self): + """Shut down the watcher task and close websockets. + + """ + if not self._watch_stopped.is_set(): + log.debug('Stopping watcher task') + self._watch_stopping.set() + await self._watch_stopped.wait() + self._watch_stopping.clear() + + if self.is_connected(): + log.debug('Closing model connection') + await self._connector.disconnect() + self._info = None + + async def add_local_charm_dir(self, charm_dir, series): + """Upload a local charm to the model. + + This will automatically generate an archive from + the charm dir. + + :param charm_dir: Path to the charm directory + :param series: Charm series + + """ + fh = tempfile.NamedTemporaryFile() + CharmArchiveGenerator(charm_dir).make_archive(fh.name) + with fh: + func = partial( + self.add_local_charm, fh, series, os.stat(fh.name).st_size) + charm_url = await self._connector.loop.run_in_executor(None, func) + + log.debug('Uploaded local charm: %s -> %s', charm_dir, charm_url) + return charm_url + + def add_local_charm(self, charm_file, series, size=None): + """Upload a local charm archive to the model. + + Returns the 'local:...' url that should be used to deploy the charm. + + :param charm_file: Path to charm zip archive + :param series: Charm series + :param size: Size of the archive, in bytes + :return str: 'local:...' url for deploying the charm + :raises: :class:`JujuError` if the upload fails + + Uses an https endpoint at the same host:port as the wss. + Supports large file uploads. + + .. warning:: + + This method will block. Consider using :meth:`add_local_charm_dir` + instead. + + """ + conn, headers, path_prefix = self.connection().https_connection() + path = "%s/charms?series=%s" % (path_prefix, series) + headers['Content-Type'] = 'application/zip' + if size: + headers['Content-Length'] = size + conn.request("POST", path, charm_file, headers) + response = conn.getresponse() + result = response.read().decode() + if not response.status == 200: + raise JujuError(result) + result = json.loads(result) + return result['charm-url'] + + def all_units_idle(self): + """Return True if all units are idle. + + """ + for unit in self.units.values(): + unit_status = unit.data['agent-status']['current'] + if unit_status != 'idle': + return False + return True + + async def reset(self, force=False): + """Reset the model to a clean state. + + :param bool force: Force-terminate machines. + + This returns only after the model has reached a clean state. "Clean" + means no applications or machines exist in the model. + + """ + log.debug('Resetting model') + for app in self.applications.values(): + await app.destroy() + for machine in self.machines.values(): + await machine.destroy(force=force) + await self.block_until( + lambda: len(self.machines) == 0 + ) + + async def block_until(self, *conditions, timeout=None, wait_period=0.5): + """Return only after all conditions are true. + + Raises `websockets.ConnectionClosed` if disconnected. + """ + def _disconnected(): + return not (self.is_connected() and self.connection().is_open) + + def done(): + return _disconnected() or all(c() for c in conditions) + + await utils.block_until(done, + timeout=timeout, + wait_period=wait_period, + loop=self.loop) + if _disconnected(): + raise websockets.ConnectionClosed(1006, 'no reason') + + @property + def applications(self): + """Return a map of application-name:Application for all applications + currently in the model. + + """ + return self.state.applications + + @property + def machines(self): + """Return a map of machine-id:Machine for all machines currently in + the model. + + """ + return self.state.machines + + @property + def units(self): + """Return a map of unit-id:Unit for all units currently in + the model. + + """ + return self.state.units + + @property + def relations(self): + """Return a list of all Relations currently in the model. + + """ + return list(self.state.relations.values()) + + async def get_info(self): + """Return a client.ModelInfo object for this Model. + + Retrieves latest info for this Model from the api server. The + return value is cached on the Model.info attribute so that the + valued may be accessed again without another api call, if + desired. + + This method is called automatically when the Model is connected, + resulting in Model.info being initialized without requiring an + explicit call to this method. + + """ + facade = client.ClientFacade.from_connection(self.connection()) + + self._info = await facade.ModelInfo() + log.debug('Got ModelInfo: %s', vars(self.info)) + + return self.info + + @property + def info(self): + """Return the cached client.ModelInfo object for this Model. + + If Model.get_info() has not been called, this will return None. + """ + return self._info + + def add_observer( + self, callable_, entity_type=None, action=None, entity_id=None, + predicate=None): + """Register an "on-model-change" callback + + Once the model is connected, ``callable_`` + will be called each time the model changes. ``callable_`` should + be Awaitable and accept the following positional arguments: + + delta - An instance of :class:`juju.delta.EntityDelta` + containing the raw delta data recv'd from the Juju + websocket. + + old_obj - If the delta modifies an existing object in the model, + old_obj will be a copy of that object, as it was before the + delta was applied. Will be None if the delta creates a new + entity in the model. + + new_obj - A copy of the new or updated object, after the delta + is applied. Will be None if the delta removes an entity + from the model. + + model - The :class:`Model` itself. + + Events for which ``callable_`` is called can be specified by passing + entity_type, action, and/or entitiy_id filter criteria, e.g.:: + + add_observer( + myfunc, + entity_type='application', action='add', entity_id='ubuntu') + + For more complex filtering conditions, pass a predicate function. It + will be called with a delta as its only argument. If the predicate + function returns True, the ``callable_`` will be called. + + """ + observer = _Observer( + callable_, entity_type, action, entity_id, predicate) + self._observers[observer] = callable_ + + def _watch(self): + """Start an asynchronous watch against this model. + + See :meth:`add_observer` to register an onchange callback. + + """ + async def _all_watcher(): + try: + allwatcher = client.AllWatcherFacade.from_connection( + self.connection()) + while not self._watch_stopping.is_set(): + try: + results = await utils.run_with_interrupt( + allwatcher.Next(), + self._watch_stopping, + loop=self._connector.loop) + except JujuAPIError as e: + if 'watcher was stopped' not in str(e): + raise + if self._watch_stopping.is_set(): + # this shouldn't ever actually happen, because + # the event should trigger before the controller + # has a chance to tell us the watcher is stopped + # but handle it gracefully, just in case + break + # controller stopped our watcher for some reason + # but we're not actually stopping, so just restart it + log.warning( + 'Watcher: watcher stopped, restarting') + del allwatcher.Id + continue + except websockets.ConnectionClosed: + monitor = self.connection().monitor + if monitor.status == monitor.ERROR: + # closed unexpectedly, try to reopen + log.warning( + 'Watcher: connection closed, reopening') + await self.connection().reconnect() + if monitor.status != monitor.CONNECTED: + # reconnect failed; abort and shutdown + log.error('Watcher: automatic reconnect ' + 'failed; stopping watcher') + break + del allwatcher.Id + continue + else: + # closed on request, go ahead and shutdown + break + if self._watch_stopping.is_set(): + try: + await allwatcher.Stop() + except websockets.ConnectionClosed: + pass # can't stop on a closed conn + break + for delta in results.deltas: + try: + delta = get_entity_delta(delta) + old_obj, new_obj = self.state.apply_delta(delta) + await self._notify_observers(delta, old_obj, new_obj) + except KeyError as e: + log.debug("unknown delta type: %s", e.args[0]) + self._watch_received.set() + except CancelledError: + pass + except Exception: + log.exception('Error in watcher') + raise + finally: + self._watch_stopped.set() + + log.debug('Starting watcher task') + self._watch_received.clear() + self._watch_stopping.clear() + self._watch_stopped.clear() + self._connector.loop.create_task(_all_watcher()) + + async def _notify_observers(self, delta, old_obj, new_obj): + """Call observing callbacks, notifying them of a change in model state + + :param delta: The raw change from the watcher + (:class:`juju.client.overrides.Delta`) + :param old_obj: The object in the model that this delta updates. + May be None. + :param new_obj: The object in the model that is created or updated + by applying this delta. + + """ + if new_obj and not old_obj: + delta.type = 'add' + + log.debug( + 'Model changed: %s %s %s', + delta.entity, delta.type, delta.get_id()) + + for o in self._observers: + if o.cares_about(delta): + asyncio.ensure_future(o(delta, old_obj, new_obj, self), + loop=self._connector.loop) + + async def _wait(self, entity_type, entity_id, action, predicate=None): + """ + Block the calling routine until a given action has happened to the + given entity + + :param entity_type: The entity's type. + :param entity_id: The entity's id. + :param action: the type of action (e.g., 'add', 'change', or 'remove') + :param predicate: optional callable that must take as an + argument a delta, and must return a boolean, indicating + whether the delta contains the specific action we're looking + for. For example, you might check to see whether a 'change' + has a 'completed' status. See the _Observer class for details. + + """ + q = asyncio.Queue(loop=self._connector.loop) + + async def callback(delta, old, new, model): + await q.put(delta.get_id()) + + self.add_observer(callback, entity_type, action, entity_id, predicate) + entity_id = await q.get() + # object might not be in the entity_map if we were waiting for a + # 'remove' action + return self.state._live_entity_map(entity_type).get(entity_id) + + async def _wait_for_new(self, entity_type, entity_id): + """Wait for a new object to appear in the Model and return it. + + Waits for an object of type ``entity_type`` with id ``entity_id`` + to appear in the model. This is similar to watching for the + object using ``block_until``, but uses the watcher rather than + polling. + + """ + # if the entity is already in the model, just return it + if entity_id in self.state._live_entity_map(entity_type): + return self.state._live_entity_map(entity_type)[entity_id] + return await self._wait(entity_type, entity_id, None) + + async def wait_for_action(self, action_id): + """Given an action, wait for it to complete.""" + + if action_id.startswith("action-"): + # if we've been passed action.tag, transform it into the + # id that the api deltas will use. + action_id = action_id[7:] + + def predicate(delta): + return delta.data['status'] in ('completed', 'failed') + + return await self._wait('action', action_id, None, predicate) + + async def add_machine( + self, spec=None, constraints=None, disks=None, series=None): + """Start a new, empty machine and optionally a container, or add a + container to a machine. + + :param str spec: Machine specification + Examples:: + + (None) - starts a new machine + 'lxd' - starts a new machine with one lxd container + 'lxd:4' - starts a new lxd container on machine 4 + 'ssh:user@10.10.0.3:/path/to/private/key' - manually provision + a machine with ssh and the private key used for authentication + 'zone=us-east-1a' - starts a machine in zone us-east-1s on AWS + 'maas2.name' - acquire machine maas2.name on MAAS + + :param dict constraints: Machine constraints, which can contain the + the following keys:: + + arch : str + container : str + cores : int + cpu_power : int + instance_type : str + mem : int + root_disk : int + spaces : list(str) + tags : list(str) + virt_type : str + + Example:: + + constraints={ + 'mem': 256 * MB, + 'tags': ['virtual'], + } + + :param list disks: List of disk constraint dictionaries, which can + contain the following keys:: + + count : int + pool : str + size : int + + Example:: + + disks=[{ + 'pool': 'rootfs', + 'size': 10 * GB, + 'count': 1, + }] + + :param str series: Series, e.g. 'xenial' + + Supported container types are: lxd, kvm + + When deploying a container to an existing machine, constraints cannot + be used. + + """ + params = client.AddMachineParams() + + if spec: + if spec.startswith("ssh:"): + placement, target, private_key_path = spec.split(":") + user, host = target.split("@") + + sshProvisioner = provisioner.SSHProvisioner( + host=host, + user=user, + private_key_path=private_key_path, + ) + + params = sshProvisioner.provision_machine() + else: + placement = parse_placement(spec) + if placement: + params.placement = placement[0] + + params.jobs = ['JobHostUnits'] + + if constraints: + params.constraints = client.Value.from_json(constraints) + + if disks: + params.disks = [ + client.Constraints.from_json(o) for o in disks] + + if series: + params.series = series + + # Submit the request. + client_facade = client.ClientFacade.from_connection(self.connection()) + results = await client_facade.AddMachines([params]) + error = results.machines[0].error + if error: + raise ValueError("Error adding machine: %s" % error.message) + machine_id = results.machines[0].machine + + if spec: + if spec.startswith("ssh:"): + # Need to run this after AddMachines has been called, + # as we need the machine_id + await sshProvisioner.install_agent( + self.connection(), + params.nonce, + machine_id, + ) + + log.debug('Added new machine %s', machine_id) + return await self._wait_for_new('machine', machine_id) + + async def add_relation(self, relation1, relation2): + """Add a relation between two applications. + + :param str relation1: '[:]' + :param str relation2: '[:]' + + """ + connection = self.connection() + app_facade = client.ApplicationFacade.from_connection(connection) + + log.debug( + 'Adding relation %s <-> %s', relation1, relation2) + + def _find_relation(*specs): + for rel in self.relations: + if rel.matches(*specs): + return rel + return None + + try: + result = await app_facade.AddRelation([relation1, relation2]) + except JujuAPIError as e: + if 'relation already exists' not in e.message: + raise + rel = _find_relation(relation1, relation2) + if rel: + return rel + raise JujuError('Relation {} {} exists but not in model'.format( + relation1, relation2)) + + specs = ['{}:{}'.format(app, data['name']) + for app, data in result.endpoints.items()] + + await self.block_until(lambda: _find_relation(*specs) is not None) + return _find_relation(*specs) + + def add_space(self, name, *cidrs): + """Add a new network space. + + Adds a new space with the given name and associates the given + (optional) list of existing subnet CIDRs with it. + + :param str name: Name of the space + :param *cidrs: Optional list of existing subnet CIDRs + + """ + raise NotImplementedError() + + async def add_ssh_key(self, user, key): + """Add a public SSH key to this model. + + :param str user: The username of the user + :param str key: The public ssh key + + """ + key_facade = client.KeyManagerFacade.from_connection(self.connection()) + return await key_facade.AddKeys([key], user) + add_ssh_keys = add_ssh_key + + def add_subnet(self, cidr_or_id, space, *zones): + """Add an existing subnet to this model. + + :param str cidr_or_id: CIDR or provider ID of the existing subnet + :param str space: Network space with which to associate + :param str *zones: Zone(s) in which the subnet resides + + """ + raise NotImplementedError() + + def get_backups(self): + """Retrieve metadata for backups in this model. + + """ + raise NotImplementedError() + + def block(self, *commands): + """Add a new block to this model. + + :param str *commands: The commands to block. Valid values are + 'all-changes', 'destroy-model', 'remove-object' + + """ + raise NotImplementedError() + + def get_blocks(self): + """List blocks for this model. + + """ + raise NotImplementedError() + + def get_cached_images(self, arch=None, kind=None, series=None): + """Return a list of cached OS images. + + :param str arch: Filter by image architecture + :param str kind: Filter by image kind, e.g. 'lxd' + :param str series: Filter by image series, e.g. 'xenial' + + """ + raise NotImplementedError() + + def create_backup(self, note=None, no_download=False): + """Create a backup of this model. + + :param str note: A note to store with the backup + :param bool no_download: Do not download the backup archive + :return str: Path to downloaded archive + + """ + raise NotImplementedError() + + def create_storage_pool(self, name, provider_type, **pool_config): + """Create or define a storage pool. + + :param str name: Name to give the storage pool + :param str provider_type: Pool provider type + :param **pool_config: key/value pool configuration pairs + + """ + raise NotImplementedError() + + def debug_log( + self, no_tail=False, exclude_module=None, include_module=None, + include=None, level=None, limit=0, lines=10, replay=False, + exclude=None): + """Get log messages for this model. + + :param bool no_tail: Stop after returning existing log messages + :param list exclude_module: Do not show log messages for these logging + modules + :param list include_module: Only show log messages for these logging + modules + :param list include: Only show log messages for these entities + :param str level: Log level to show, valid options are 'TRACE', + 'DEBUG', 'INFO', 'WARNING', 'ERROR, + :param int limit: Return this many of the most recent (possibly + filtered) lines are shown + :param int lines: Yield this many of the most recent lines, and keep + yielding + :param bool replay: Yield the entire log, and keep yielding + :param list exclude: Do not show log messages for these entities + + """ + raise NotImplementedError() + + def _get_series(self, entity_url, entity): + # try to get the series from the provided charm URL + if entity_url.startswith('cs:'): + parts = entity_url[3:].split('/') + else: + parts = entity_url.split('/') + if parts[0].startswith('~'): + parts.pop(0) + if len(parts) > 1: + # series was specified in the URL + return parts[0] + # series was not supplied at all, so use the newest + # supported series according to the charm store + ss = entity['Meta']['supported-series'] + return ss['SupportedSeries'][0] + + async def deploy( + self, entity_url, application_name=None, bind=None, budget=None, + channel=None, config=None, constraints=None, force=False, + num_units=1, plan=None, resources=None, series=None, storage=None, + to=None, devices=None): + """Deploy a new service or bundle. + + :param str entity_url: Charm or bundle url + :param str application_name: Name to give the service + :param dict bind: : pairs + :param dict budget: : pairs + :param str channel: Charm store channel from which to retrieve + the charm or bundle, e.g. 'edge' + :param dict config: Charm configuration dictionary + :param constraints: Service constraints + :type constraints: :class:`juju.Constraints` + :param bool force: Allow charm to be deployed to a machine running + an unsupported series + :param int num_units: Number of units to deploy + :param str plan: Plan under which to deploy charm + :param dict resources: : pairs + :param str series: Series on which to deploy + :param dict storage: Storage constraints TODO how do these look? + :param to: Placement directive as a string. For example: + + '23' - place on machine 23 + 'lxd:7' - place in new lxd container on machine 7 + '24/lxd/3' - place in container 3 on machine 24 + + If None, a new machine is provisioned. + + + TODO:: + + - support local resources + + """ + if storage: + storage = { + k: client.Constraints(**v) + for k, v in storage.items() + } + + entity_path = Path(entity_url.replace('local:', '')) + bundle_path = entity_path / 'bundle.yaml' + metadata_path = entity_path / 'metadata.yaml' + + is_local = ( + entity_url.startswith('local:') or + entity_path.is_dir() or + entity_path.is_file() + ) + if is_local: + entity_id = entity_url.replace('local:', '') + else: + entity = await self.charmstore.entity(entity_url, channel=channel, + include_stats=False) + entity_id = entity['Id'] + + client_facade = client.ClientFacade.from_connection(self.connection()) + + is_bundle = ((is_local and + (entity_id.endswith('.yaml') and entity_path.exists()) or + bundle_path.exists()) or + (not is_local and 'bundle/' in entity_id)) + + if is_bundle: + handler = BundleHandler(self) + await handler.fetch_plan(entity_id) + await handler.execute_plan() + extant_apps = {app for app in self.applications} + pending_apps = set(handler.applications) - extant_apps + if pending_apps: + # new apps will usually be in the model by now, but if some + # haven't made it yet we'll need to wait on them to be added + await asyncio.gather(*[ + asyncio.ensure_future( + self._wait_for_new('application', app_name), + loop=self._connector.loop) + for app_name in pending_apps + ], loop=self._connector.loop) + return [app for name, app in self.applications.items() + if name in handler.applications] + else: + if not is_local: + if not application_name: + application_name = entity['Meta']['charm-metadata']['Name'] + if not series: + series = self._get_series(entity_url, entity) + await client_facade.AddCharm(channel, entity_id) + # XXX: we're dropping local resources here, but we don't + # actually support them yet anyway + resources = await self._add_store_resources(application_name, + entity_id, + entity=entity) + else: + if not application_name: + metadata = yaml.load(metadata_path.read_text()) + application_name = metadata['name'] + # We have a local charm dir that needs to be uploaded + charm_dir = os.path.abspath( + os.path.expanduser(entity_id)) + series = series or get_charm_series(charm_dir) + if not series: + raise JujuError( + "Couldn't determine series for charm at {}. " + "Pass a 'series' kwarg to Model.deploy().".format( + charm_dir)) + entity_id = await self.add_local_charm_dir(charm_dir, series) + return await self._deploy( + charm_url=entity_id, + application=application_name, + series=series, + config=config or {}, + constraints=constraints, + endpoint_bindings=bind, + resources=resources, + storage=storage, + channel=channel, + num_units=num_units, + placement=parse_placement(to), + devices=devices, + ) + + async def _add_store_resources(self, application, entity_url, + overrides=None, entity=None): + if not entity: + # avoid extra charm store call if one was already made + entity = await self.charmstore.entity(entity_url, + include_stats=False) + resources = [ + { + 'description': resource['Description'], + 'fingerprint': resource['Fingerprint'], + 'name': resource['Name'], + 'path': resource['Path'], + 'revision': resource['Revision'], + 'size': resource['Size'], + 'type_': resource['Type'], + 'origin': 'store', + } for resource in entity['Meta']['resources'] + ] + + if overrides: + names = {r['name'] for r in resources} + unknown = overrides.keys() - names + if unknown: + raise JujuError('Unrecognized resource{}: {}'.format( + 's' if len(unknown) > 1 else '', + ', '.join(unknown))) + for resource in resources: + if resource['name'] in overrides: + resource['revision'] = overrides[resource['name']] + + if not resources: + return None + + resources_facade = client.ResourcesFacade.from_connection( + self.connection()) + response = await resources_facade.AddPendingResources( + tag.application(application), + entity_url, + [client.CharmResource(**resource) for resource in resources]) + resource_map = {resource['name']: pid + for resource, pid + in zip(resources, response.pending_ids)} + return resource_map + + async def _deploy(self, charm_url, application, series, config, + constraints, endpoint_bindings, resources, storage, + channel=None, num_units=None, placement=None, + devices=None): + """Logic shared between `Model.deploy` and `BundleHandler.deploy`. + """ + log.info('Deploying %s', charm_url) + + # stringify all config values for API, and convert to YAML + config = {k: str(v) for k, v in config.items()} + config = yaml.dump({application: config}, + default_flow_style=False) + + app_facade = client.ApplicationFacade.from_connection( + self.connection()) + + app = client.ApplicationDeploy( + charm_url=charm_url, + application=application, + series=series, + channel=channel, + config_yaml=config, + constraints=parse_constraints(constraints), + endpoint_bindings=endpoint_bindings, + num_units=num_units, + resources=resources, + storage=storage, + placement=placement, + devices=devices, + ) + result = await app_facade.Deploy([app]) + errors = [r.error.message for r in result.results if r.error] + if errors: + raise JujuError('\n'.join(errors)) + return await self._wait_for_new('application', application) + + async def destroy(self): + """Terminate all machines and resources for this model. + Is already implemented in controller.py. + """ + raise NotImplementedError() + + async def destroy_unit(self, *unit_names): + """Destroy units by name. + + """ + connection = self.connection() + app_facade = client.ApplicationFacade.from_connection(connection) + + log.debug( + 'Destroying unit%s %s', + 's' if len(unit_names) == 1 else '', + ' '.join(unit_names)) + + return await app_facade.DestroyUnits(list(unit_names)) + destroy_units = destroy_unit + + def get_backup(self, archive_id): + """Download a backup archive file. + + :param str archive_id: The id of the archive to download + :return str: Path to the archive file + + """ + raise NotImplementedError() + + def enable_ha( + self, num_controllers=0, constraints=None, series=None, to=None): + """Ensure sufficient controllers exist to provide redundancy. + + :param int num_controllers: Number of controllers to make available + :param constraints: Constraints to apply to the controller machines + :type constraints: :class:`juju.Constraints` + :param str series: Series of the controller machines + :param list to: Placement directives for controller machines, e.g.:: + + '23' - machine 23 + 'lxc:7' - new lxc container on machine 7 + '24/lxc/3' - lxc container 3 or machine 24 + + If None, a new machine is provisioned. + + """ + raise NotImplementedError() + + async def get_config(self): + """Return the configuration settings for this model. + + :returns: A ``dict`` mapping keys to `ConfigValue` instances, + which have `source` and `value` attributes. + """ + config_facade = client.ModelConfigFacade.from_connection( + self.connection() + ) + result = await config_facade.ModelGet() + config = result.config + for key, value in config.items(): + config[key] = ConfigValue.from_json(value) + return config + + async def get_constraints(self): + """Return the machine constraints for this model. + + :returns: A ``dict`` of constraints. + """ + constraints = {} + client_facade = client.ClientFacade.from_connection(self.connection()) + result = await client_facade.GetModelConstraints() + + # GetModelConstraints returns GetConstraintsResults which has a + # 'constraints' attribute. If no constraints have been set + # GetConstraintsResults.constraints is None. Otherwise + # GetConstraintsResults.constraints has an attribute for each possible + # constraint, each of these in turn will be None if they have not been + # set. + if result.constraints: + constraint_types = [a for a in dir(result.constraints) + if a in Value._toSchema.keys()] + for constraint in constraint_types: + value = getattr(result.constraints, constraint) + if value is not None: + constraints[constraint] = getattr(result.constraints, + constraint) + return constraints + + def import_ssh_key(self, identity): + """Add a public SSH key from a trusted indentity source to this model. + + :param str identity: User identity in the form : + + """ + raise NotImplementedError() + import_ssh_keys = import_ssh_key + + async def get_machines(self): + """Return list of machines in this model. + + """ + return list(self.state.machines.keys()) + + def get_shares(self): + """Return list of all users with access to this model. + + """ + raise NotImplementedError() + + def get_spaces(self): + """Return list of all known spaces, including associated subnets. + + """ + raise NotImplementedError() + + async def get_ssh_key(self, raw_ssh=False): + """Return known SSH keys for this model. + :param bool raw_ssh: if True, returns the raw ssh key, + else it's fingerprint + + """ + key_facade = client.KeyManagerFacade.from_connection(self.connection()) + entity = {'tag': tag.model(self.info.uuid)} + entities = client.Entities([entity]) + return await key_facade.ListKeys(entities, raw_ssh) + get_ssh_keys = get_ssh_key + + def get_storage(self, filesystem=False, volume=False): + """Return details of storage instances. + + :param bool filesystem: Include filesystem storage + :param bool volume: Include volume storage + + """ + raise NotImplementedError() + + def get_storage_pools(self, names=None, providers=None): + """Return list of storage pools. + + :param list names: Only include pools with these names + :param list providers: Only include pools for these providers + + """ + raise NotImplementedError() + + def get_subnets(self, space=None, zone=None): + """Return list of known subnets. + + :param str space: Only include subnets in this space + :param str zone: Only include subnets in this zone + + """ + raise NotImplementedError() + + def remove_blocks(self): + """Remove all blocks from this model. + + """ + raise NotImplementedError() + + def remove_backup(self, backup_id): + """Delete a backup. + + :param str backup_id: The id of the backup to remove + + """ + raise NotImplementedError() + + def remove_cached_images(self, arch=None, kind=None, series=None): + """Remove cached OS images. + + :param str arch: Architecture of the images to remove + :param str kind: Image kind to remove, e.g. 'lxd' + :param str series: Image series to remove, e.g. 'xenial' + + """ + raise NotImplementedError() + + def remove_machine(self, *machine_ids): + """Remove a machine from this model. + + :param str *machine_ids: Ids of the machines to remove + + """ + raise NotImplementedError() + remove_machines = remove_machine + + async def remove_ssh_key(self, user, key): + """Remove a public SSH key(s) from this model. + + :param str key: Full ssh key + :param str user: Juju user to which the key is registered + + """ + key_facade = client.KeyManagerFacade.from_connection(self.connection()) + key = base64.b64decode(bytes(key.strip().split()[1].encode('ascii'))) + key = hashlib.md5(key).hexdigest() + key = ':'.join(a + b for a, b in zip(key[::2], key[1::2])) + await key_facade.DeleteKeys([key], user) + remove_ssh_keys = remove_ssh_key + + def restore_backup( + self, bootstrap=False, constraints=None, archive=None, + backup_id=None, upload_tools=False): + """Restore a backup archive to a new controller. + + :param bool bootstrap: Bootstrap a new state machine + :param constraints: Model constraints + :type constraints: :class:`juju.Constraints` + :param str archive: Path to backup archive to restore + :param str backup_id: Id of backup to restore + :param bool upload_tools: Upload tools if bootstrapping a new machine + + """ + raise NotImplementedError() + + def retry_provisioning(self): + """Retry provisioning for failed machines. + + """ + raise NotImplementedError() + + def run(self, command, timeout=None): + """Run command on all machines in this model. + + :param str command: The command to run + :param int timeout: Time to wait before command is considered failed + + """ + raise NotImplementedError() + + async def set_config(self, config): + """Set configuration keys on this model. + + :param dict config: Mapping of config keys to either string values or + `ConfigValue` instances, as returned by `get_config`. + """ + config_facade = client.ModelConfigFacade.from_connection( + self.connection() + ) + for key, value in config.items(): + if isinstance(value, ConfigValue): + config[key] = value.value + await config_facade.ModelSet(config) + + async def set_constraints(self, constraints): + """Set machine constraints on this model. + + :param dict config: Mapping of model constraints + """ + client_facade = client.ClientFacade.from_connection(self.connection()) + await client_facade.SetModelConstraints( + application='', + constraints=constraints) + + async def get_action_output(self, action_uuid, wait=None): + """Get the results of an action by ID. + + :param str action_uuid: Id of the action + :param int wait: Time in seconds to wait for action to complete. + :return dict: Output from action + :raises: :class:`JujuError` if invalid action_uuid + """ + action_facade = client.ActionFacade.from_connection( + self.connection() + ) + entity = [{'tag': tag.action(action_uuid)}] + # Cannot use self.wait_for_action as the action event has probably + # already happened and self.wait_for_action works by processing + # model deltas and checking if they match our type. If the action + # has already occured then the delta has gone. + + async def _wait_for_action_status(): + while True: + action_output = await action_facade.Actions(entity) + if action_output.results[0].status in ('completed', 'failed'): + return + else: + await asyncio.sleep(1) + await asyncio.wait_for( + _wait_for_action_status(), + timeout=wait) + action_output = await action_facade.Actions(entity) + # ActionResult.output is None if the action produced no output + if action_output.results[0].output is None: + output = {} + else: + output = action_output.results[0].output + return output + + async def get_action_status(self, uuid_or_prefix=None, name=None): + """Get the status of all actions, filtered by ID, ID prefix, or name. + + :param str uuid_or_prefix: Filter by action uuid or prefix + :param str name: Filter by action name + + """ + results = {} + action_results = [] + action_facade = client.ActionFacade.from_connection( + self.connection() + ) + if name: + name_results = await action_facade.FindActionsByNames([name]) + action_results.extend(name_results.actions[0].actions) + if uuid_or_prefix: + # Collect list of actions matching uuid or prefix + matching_actions = await action_facade.FindActionTagsByPrefix( + [uuid_or_prefix]) + entities = [] + for actions in matching_actions.matches.values(): + entities = [{'tag': a.tag} for a in actions] + # Get action results matching action tags + uuid_results = await action_facade.Actions(entities) + action_results.extend(uuid_results.results) + for a in action_results: + results[tag.untag('action-', a.action.tag)] = a.status + return results + + def get_budget(self, budget_name): + """Get budget usage info. + + :param str budget_name: Name of budget + + """ + raise NotImplementedError() + + async def get_status(self, filters=None, utc=False): + """Return the status of the model. + + :param str filters: Optional list of applications, units, or machines + to include, which can use wildcards ('*'). + :param bool utc: Display time as UTC in RFC3339 format + + """ + client_facade = client.ClientFacade.from_connection(self.connection()) + return await client_facade.FullStatus(filters) + + def sync_tools( + self, all_=False, destination=None, dry_run=False, public=False, + source=None, stream=None, version=None): + """Copy Juju tools into this model. + + :param bool all_: Copy all versions, not just the latest + :param str destination: Path to local destination directory + :param bool dry_run: Don't do the actual copy + :param bool public: Tools are for a public cloud, so generate mirrors + information + :param str source: Path to local source directory + :param str stream: Simplestreams stream for which to sync metadata + :param str version: Copy a specific major.minor version + + """ + raise NotImplementedError() + + def unblock(self, *commands): + """Unblock an operation that would alter this model. + + :param str *commands: The commands to unblock. Valid values are + 'all-changes', 'destroy-model', 'remove-object' + + """ + raise NotImplementedError() + + def unset_config(self, *keys): + """Unset configuration on this model. + + :param str *keys: The keys to unset + + """ + raise NotImplementedError() + + def upgrade_gui(self): + """Upgrade the Juju GUI for this model. + + """ + raise NotImplementedError() + + def upgrade_juju( + self, dry_run=False, reset_previous_upgrade=False, + upload_tools=False, version=None): + """Upgrade Juju on all machines in a model. + + :param bool dry_run: Don't do the actual upgrade + :param bool reset_previous_upgrade: Clear the previous (incomplete) + upgrade status + :param bool upload_tools: Upload local version of tools + :param str version: Upgrade to a specific version + + """ + raise NotImplementedError() + + def upload_backup(self, archive_path): + """Store a backup archive remotely in Juju. + + :param str archive_path: Path to local archive + + """ + raise NotImplementedError() + + @property + def charmstore(self): + return self._charmstore + + async def get_metrics(self, *tags): + """Retrieve metrics. + + :param str *tags: Tags of entities from which to retrieve metrics. + No tags retrieves the metrics of all units in the model. + :return: Dictionary of unit_name:metrics + + """ + log.debug("Retrieving metrics for %s", + ', '.join(tags) if tags else "all units") + + metrics_facade = client.MetricsDebugFacade.from_connection( + self.connection()) + + entities = [client.Entity(tag) for tag in tags] + metrics_result = await metrics_facade.GetMetrics(entities) + + metrics = collections.defaultdict(list) + + for entity_metrics in metrics_result.results: + error = entity_metrics.error + if error: + if "is not a valid tag" in error: + raise ValueError(error.message) + else: + raise Exception(error.message) + + for metric in entity_metrics.metrics: + metrics[metric.unit].append(vars(metric)) + + return metrics + + +def get_charm_series(path): + """Inspects the charm directory at ``path`` and returns a default + series from its metadata.yaml (the first item in the 'series' list). + + Returns None if no series can be determined. + + """ + md = Path(path) / "metadata.yaml" + if not md.exists(): + return None + data = yaml.load(md.open()) + series = data.get('series') + return series[0] if series else None + + +class BundleHandler: + """ + Handle bundles by using the API to translate bundle YAML into a plan of + steps and then dispatching each of those using the API. + """ + def __init__(self, model): + self.model = model + self.charmstore = model.charmstore + self.plan = [] + self.references = {} + self._units_by_app = {} + for unit_name, unit in model.units.items(): + app_units = self._units_by_app.setdefault(unit.application, []) + app_units.append(unit_name) + self.bundle_facade = client.BundleFacade.from_connection( + model.connection()) + self.client_facade = client.ClientFacade.from_connection( + model.connection()) + self.app_facade = client.ApplicationFacade.from_connection( + model.connection()) + self.ann_facade = client.AnnotationsFacade.from_connection( + model.connection()) + + async def _handle_local_charms(self, bundle): + """Search for references to local charms (i.e. filesystem paths) + in the bundle. Upload the local charms to the model, and replace + the filesystem paths with appropriate 'local:' paths in the bundle. + + Return the modified bundle. + + :param dict bundle: Bundle dictionary + :return: Modified bundle dictionary + + """ + apps, args = [], [] + + default_series = bundle.get('series') + apps_dict = bundle.get('applications', bundle.get('services', {})) + for app_name in self.applications: + app_dict = apps_dict[app_name] + charm_dir = os.path.abspath(os.path.expanduser(app_dict['charm'])) + if not os.path.isdir(charm_dir): + continue + series = ( + app_dict.get('series') or + default_series or + get_charm_series(charm_dir) + ) + if not series: + raise JujuError( + "Couldn't determine series for charm at {}. " + "Add a 'series' key to the bundle.".format(charm_dir)) + + # Keep track of what we need to update. We keep a list of apps + # that need to be updated, and a corresponding list of args + # needed to update those apps. + apps.append(app_name) + args.append((charm_dir, series)) + + if apps: + # If we have apps to update, spawn all the coroutines concurrently + # and wait for them to finish. + charm_urls = await asyncio.gather(*[ + self.model.add_local_charm_dir(*params) + for params in args + ], loop=self.model.loop) + # Update the 'charm:' entry for each app with the new 'local:' url. + for app_name, charm_url in zip(apps, charm_urls): + apps_dict[app_name]['charm'] = charm_url + + return bundle + + async def fetch_plan(self, entity_id): + is_store_url = entity_id.startswith('cs:') + + if not is_store_url and os.path.isfile(entity_id): + bundle_yaml = Path(entity_id).read_text() + elif not is_store_url and os.path.isdir(entity_id): + bundle_yaml = (Path(entity_id) / "bundle.yaml").read_text() + else: + bundle_yaml = await self.charmstore.files(entity_id, + filename='bundle.yaml', + read_file=True) + self.bundle = yaml.safe_load(bundle_yaml) + self.bundle = await self._handle_local_charms(self.bundle) + + self.plan = await self.bundle_facade.GetChanges( + yaml.dump(self.bundle)) + + if self.plan.errors: + raise JujuError(self.plan.errors) + + async def execute_plan(self): + for step in self.plan.changes: + method = getattr(self, step.method) + result = await method(*step.args) + self.references[step.id_] = result + + @property + def applications(self): + apps_dict = self.bundle.get('applications', + self.bundle.get('services', {})) + return list(apps_dict.keys()) + + def resolve(self, reference): + if reference and reference.startswith('$'): + reference = self.references[reference[1:]] + return reference + + async def addCharm(self, charm, series): + """ + :param charm string: + Charm holds the URL of the charm to be added. + + :param series string: + Series holds the series of the charm to be added + if the charm default is not sufficient. + """ + # We don't add local charms because they've already been added + # by self._handle_local_charms + if charm.startswith('local:'): + return charm + + entity_id = await self.charmstore.entityId(charm) + log.debug('Adding %s', entity_id) + await self.client_facade.AddCharm(None, entity_id) + return entity_id + + async def addMachines(self, params=None): + """ + :param params dict: + Dictionary specifying the machine to add. All keys are optional. + Keys include: + + series: string specifying the machine OS series. + + constraints: string holding machine constraints, if any. We'll + parse this into the json friendly dict that the juju api + expects. + + container_type: string holding the type of the container (for + instance ""lxd" or kvm"). It is not specified for top level + machines. + + parent_id: string holding a placeholder pointing to another + machine change or to a unit change. This value is only + specified in the case this machine is a container, in + which case also ContainerType is set. + + """ + params = params or {} + + # Normalize keys + params = {normalize_key(k): params[k] for k in params.keys()} + + # Fix up values, as necessary. + if 'parent_id' in params: + if params['parent_id'].startswith('$addUnit'): + unit = self.resolve(params['parent_id'])[0] + params['parent_id'] = unit.machine.entity_id + else: + params['parent_id'] = self.resolve(params['parent_id']) + + params['constraints'] = parse_constraints( + params.get('constraints')) + params['jobs'] = params.get('jobs', ['JobHostUnits']) + + if params.get('container_type') == 'lxc': + log.warning('Juju 2.0 does not support lxc containers. ' + 'Converting containers to lxd.') + params['container_type'] = 'lxd' + + # Submit the request. + params = client.AddMachineParams(**params) + results = await self.client_facade.AddMachines([params]) + error = results.machines[0].error + if error: + raise ValueError("Error adding machine: %s" % error.message) + machine = results.machines[0].machine + log.debug('Added new machine %s', machine) + return machine + + async def addRelation(self, endpoint1, endpoint2): + """ + :param endpoint1 string: + :param endpoint2 string: + Endpoint1 and Endpoint2 hold relation endpoints in the + "application:interface" form, where the application is always a + placeholder pointing to an application change, and the interface is + optional. Examples are "$deploy-42:web" or just "$deploy-42". + """ + endpoints = [endpoint1, endpoint2] + # resolve indirect references + for i in range(len(endpoints)): + parts = endpoints[i].split(':') + parts[0] = self.resolve(parts[0]) + endpoints[i] = ':'.join(parts) + + log.info('Relating %s <-> %s', *endpoints) + return await self.model.add_relation(*endpoints) + + async def deploy(self, charm, series, application, options, constraints, + storage, endpoint_bindings, *args): + """ + :param charm string: + Charm holds the URL of the charm to be used to deploy this + application. + + :param series string: + Series holds the series of the application to be deployed + if the charm default is not sufficient. + + :param application string: + Application holds the application name. + + :param options map[string]interface{}: + Options holds application options. + + :param constraints string: + Constraints holds the optional application constraints. + + :param storage map[string]string: + Storage holds the optional storage constraints. + + :param endpoint_bindings map[string]string: + EndpointBindings holds the optional endpoint bindings + + :param devices map[string]string: + Devices holds the optional devices constraints. + (Only given on Juju 2.5+) + + :param resources map[string]int: + Resources identifies the revision to use for each resource + of the application's charm. + + :param num_units int: + NumUnits holds the number of units required. For IAAS models, this + will be 0 and separate AddUnitChanges will be used. For Kubernetes + models, this will be used to scale the application. + (Only given on Juju 2.5+) + """ + # resolve indirect references + charm = self.resolve(charm) + + if len(args) == 1: + # Juju 2.4 and below only sends the resources + resources = args[0] + devices, num_units = None, None + else: + # Juju 2.5+ sends devices before resources, as well as num_units + # There might be placement but we need to ignore that. + devices, resources, num_units = args[:3] + + if not charm.startswith('local:'): + resources = await self.model._add_store_resources( + application, charm, overrides=resources) + await self.model._deploy( + charm_url=charm, + application=application, + series=series, + config=options, + constraints=constraints, + endpoint_bindings=endpoint_bindings, + resources=resources, + storage=storage, + devices=devices, + num_units=num_units, + ) + return application + + async def addUnit(self, application, to): + """ + :param application string: + Application holds the application placeholder name for which a unit + is added. + + :param to string: + To holds the optional location where to add the unit, as a + placeholder pointing to another unit change or to a machine change. + """ + application = self.resolve(application) + placement = self.resolve(to) + if self._units_by_app.get(application): + # enough units for this application already exist; + # claim one, and carry on + # NB: this should probably honor placement, but the juju client + # doesn't, so we're not bothering, either + unit_name = self._units_by_app[application].pop() + log.debug('Reusing unit %s for %s', unit_name, application) + return self.model.units[unit_name] + + log.debug('Adding new unit for %s%s', application, + ' to %s' % placement if placement else '') + return await self.model.applications[application].add_unit( + count=1, + to=placement, + ) + + async def scale(self, application, scale): + """ + Handle a change of scale to a k8s application. + + :param string application: + Application holds the application placeholder name for which a unit + is added. + + :param int scale: + New scale value to use. + """ + application = self.resolve(application) + return await self.model.applications[application].scale(scale=scale) + + async def expose(self, application): + """ + :param application string: + Application holds the placeholder name of the application that must + be exposed. + """ + application = self.resolve(application) + log.info('Exposing %s', application) + return await self.model.applications[application].expose() + + async def setAnnotations(self, id_, entity_type, annotations): + """ + :param id_ string: + Id is the placeholder for the application or machine change + corresponding to the entity to be annotated. + + :param entity_type EntityType: + EntityType holds the type of the entity, "application" or + "machine". + + :param annotations map[string]string: + Annotations holds the annotations as key/value pairs. + """ + entity_id = self.resolve(id_) + try: + entity = self.model.state.get_entity(entity_type, entity_id) + except KeyError: + entity = await self.model._wait_for_new(entity_type, entity_id) + return await entity.set_annotations(annotations) + + +class CharmStore: + """ + Async wrapper around theblues.charmstore.CharmStore + """ + def __init__(self, loop, cs_timeout=20): + self.loop = loop + self._cs = theblues.charmstore.CharmStore(timeout=cs_timeout) + + def __getattr__(self, name): + """ + Wrap method calls in coroutines that use run_in_executor to make them + async. + """ + attr = getattr(self._cs, name) + if not callable(attr): + wrapper = partial(getattr, self._cs, name) + setattr(self, name, wrapper) + else: + async def coro(*args, **kwargs): + method = partial(attr, *args, **kwargs) + for attempt in range(1, 4): + try: + return await self.loop.run_in_executor(None, method) + except theblues.errors.ServerError: + if attempt == 3: + raise + await asyncio.sleep(1, loop=self.loop) + setattr(self, name, coro) + wrapper = coro + return wrapper + + +class CharmArchiveGenerator: + """ + Create a Zip archive of a local charm directory for upload to a controller. + + This is used automatically by + `Model.add_local_charm_dir <#juju.model.Model.add_local_charm_dir>`_. + """ + def __init__(self, path): + self.path = os.path.abspath(os.path.expanduser(path)) + + def make_archive(self, path): + """Create archive of directory and write to ``path``. + + :param path: Path to archive + + Ignored:: + + * build/* - This is used for packing the charm itself and any + similar tasks. + * */.* - Hidden files are all ignored for now. This will most + likely be changed into a specific ignore list + (.bzr, etc) + + """ + zf = zipfile.ZipFile(path, 'w', zipfile.ZIP_DEFLATED) + for dirpath, dirnames, filenames in os.walk(self.path): + relative_path = dirpath[len(self.path) + 1:] + if relative_path and not self._ignore(relative_path): + zf.write(dirpath, relative_path) + for name in filenames: + archive_name = os.path.join(relative_path, name) + if not self._ignore(archive_name): + real_path = os.path.join(dirpath, name) + self._check_type(real_path) + if os.path.islink(real_path): + self._check_link(real_path) + self._write_symlink( + zf, os.readlink(real_path), archive_name) + else: + zf.write(real_path, archive_name) + zf.close() + return path + + def _check_type(self, path): + """Check the path + """ + s = os.stat(path) + if stat.S_ISDIR(s.st_mode) or stat.S_ISREG(s.st_mode): + return path + raise ValueError("Invalid Charm at % %s" % ( + path, "Invalid file type for a charm")) + + def _check_link(self, path): + link_path = os.readlink(path) + if link_path[0] == "/": + raise ValueError( + "Invalid Charm at %s: %s" % ( + path, "Absolute links are invalid")) + path_dir = os.path.dirname(path) + link_path = os.path.join(path_dir, link_path) + if not link_path.startswith(os.path.abspath(self.path)): + raise ValueError( + "Invalid charm at %s %s" % ( + path, "Only internal symlinks are allowed")) + + def _write_symlink(self, zf, link_target, link_path): + """Package symlinks with appropriate zipfile metadata.""" + info = zipfile.ZipInfo() + info.filename = link_path + info.create_system = 3 + # Magic code for symlinks / py2/3 compat + # 27166663808 = (stat.S_IFLNK | 0755) << 16 + info.external_attr = 2716663808 + zf.writestr(info, link_target) + + def _ignore(self, path): + if path == "build" or path.startswith("build/"): + return True + if path.startswith('.'): + return True diff --git a/modules/libjuju/juju/placement.py b/modules/libjuju/juju/placement.py new file mode 100644 index 0000000..d0d42f7 --- /dev/null +++ b/modules/libjuju/juju/placement.py @@ -0,0 +1,58 @@ +# +# This module allows us to parse a machine placement directive into a +# Placement object suitable for passing through the websocket API. +# +# Once https://bugs.launchpad.net/juju/+bug/1645480 is addressed, this +# module should be deprecated. +# + +from .client import client + +MACHINE_SCOPE = "#" + + +def parse(directive): + """ + Given a string in the format `scope:directive`, or simply `scope` + or `directive`, return a Placement object suitable for passing + back over the websocket API. + + """ + if not directive: + # Handle null case + return None + + if isinstance(directive, (list, tuple)): + results = [] + for d in directive: + results.extend(parse(d)) + return results + + if isinstance(directive, (dict, client.Placement)): + # We've been handed something that we can simply hand back to + # the api. (Forwards compatibility) + return [directive] + + # Juju 2.0 can't handle lxc containers. + directive = directive.replace('lxc', 'lxd') + + if ":" in directive: + # Planner has given us a scope and directive in string form + scope, directive = directive.split(":") + return [client.Placement(scope=scope, directive=directive)] + + if directive.isdigit(): + # Planner has given us a machine id (we rely on juju core to + # verify its validity.) + return [client.Placement(scope=MACHINE_SCOPE, directive=directive)] + + if "/" in directive: + # e.g. "0/lxd/0" + # https://github.com/juju/juju/blob/master/instance/placement_test.go#L29 + return [ + client.Placement(scope=MACHINE_SCOPE, directive=directive), + ] + + # Planner has probably given us a container type. Leave it up to + # juju core to verify that it is valid. + return [client.Placement(scope=directive)] diff --git a/modules/libjuju/juju/provisioner.py b/modules/libjuju/juju/provisioner.py new file mode 100644 index 0000000..d937cad --- /dev/null +++ b/modules/libjuju/juju/provisioner.py @@ -0,0 +1,369 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import os +import re +import shlex +import tempfile +import uuid +from subprocess import CalledProcessError + +import paramiko + +from .client import client + +arches = [ + [re.compile(r"amd64|x86_64"), "amd64"], + [re.compile(r"i?[3-9]86"), "i386"], + [re.compile(r"(arm$)|(armv.*)"), "armhf"], + [re.compile(r"aarch64"), "arm64"], + [re.compile(r"ppc64|ppc64el|ppc64le"), "ppc64el"], + [re.compile(r"s390x?"), "s390x"], + +] + + +def normalize_arch(rawArch): + """Normalize the architecture string.""" + for arch in arches: + if arch[0].match(rawArch): + return arch[1] + + +DETECTION_SCRIPT = """#!/bin/bash +set -e +os_id=$(grep '^ID=' /etc/os-release | tr -d '"' | cut -d= -f2) +if [ "$os_id" = 'centos' ]; then + os_version=$(grep '^VERSION_ID=' /etc/os-release | tr -d '"' | cut -d= -f2) + echo "centos$os_version" +else + lsb_release -cs +fi +uname -m +grep MemTotal /proc/meminfo +cat /proc/cpuinfo +""" + +INITIALIZE_UBUNTU_SCRIPT = """set -e +(id ubuntu &> /dev/null) || useradd -m ubuntu -s /bin/bash +umask 0077 +temp=$(mktemp) +echo 'ubuntu ALL=(ALL) NOPASSWD:ALL' > $temp +install -m 0440 $temp /etc/sudoers.d/90-juju-ubuntu +rm $temp +su ubuntu -c 'install -D -m 0600 /dev/null ~/.ssh/authorized_keys' +export authorized_keys="{}" +if [ ! -z "$authorized_keys" ]; then + su ubuntu -c 'echo $authorized_keys >> ~/.ssh/authorized_keys' +fi +""" + + +class SSHProvisioner: + """Provision a manually created machine via SSH.""" + user = "" + host = "" + private_key_path = "" + + def __init__(self, user, host, private_key_path): + self.host = host + self.user = user + self.private_key_path = private_key_path + + def _get_ssh_client(self, host, user, key): + """Return a connected Paramiko ssh object. + + :param str host: The host to connect to. + :param str user: The user to connect as. + :param str key: The private key to authenticate with. + + :return: object: A paramiko.SSHClient + :raises: :class:`paramiko.ssh_exception.SSHException` if the + connection failed + """ + + ssh = paramiko.SSHClient() + ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) + + pkey = None + + # Read the private key into a paramiko.RSAKey + if os.path.exists(key): + with open(key, 'r') as f: + pkey = paramiko.RSAKey.from_private_key(f) + + ####################################################################### + # There is a bug in some versions of OpenSSH 4.3 (CentOS/RHEL5) where # + # the server may not send the SSH_MSG_USERAUTH_BANNER message except # + # when responding to an auth_none request. For example, paramiko will # + # attempt to use password authentication when a password is set, but # + # the server could deny that, instead requesting keyboard-interactive.# + # The hack to workaround this is to attempt a reconnect, which will # + # receive the right banner, and authentication can proceed. See the # + # following for more info: # + # https://github.com/paramiko/paramiko/issues/432 # + # https://github.com/paramiko/paramiko/pull/438 # + ####################################################################### + + try: + ssh.connect(host, port=22, username=user, pkey=pkey) + except paramiko.ssh_exception.SSHException as e: + if 'Error reading SSH protocol banner' == str(e): + # Once more, with feeling + ssh.connect(host, port=22, username=user, pkey=pkey) + else: + # Reraise the original exception + raise e + + return ssh + + def _run_command(self, ssh, cmd, pty=True): + """Run a command remotely via SSH. + + :param object ssh: The SSHClient + :param str cmd: The command to execute + :param list cmd: The `shlex.split` command to execute + :param bool pty: Whether to allocate a pty + + :return: tuple: The stdout and stderr of the command execution + :raises: :class:`CalledProcessError` if the command fails + """ + + if isinstance(cmd, str): + cmd = shlex.split(cmd) + + if type(cmd) is not list: + cmd = [cmd] + + cmds = ' '.join(cmd) + stdin, stdout, stderr = ssh.exec_command(cmds, get_pty=pty) + retcode = stdout.channel.recv_exit_status() + + if retcode > 0: + output = stderr.read().strip() + raise CalledProcessError(returncode=retcode, cmd=cmd, + output=output) + return ( + stdout.read().decode('utf-8').strip(), + stderr.read().decode('utf-8').strip() + ) + + def _init_ubuntu_user(self): + """Initialize the ubuntu user. + + :return: bool: If the initialization was successful + :raises: :class:`paramiko.ssh_exception.AuthenticationException` + if the authentication fails + """ + + ssh = None + try: + # Run w/o allocating a pty, so we fail if sudo prompts for a passwd + ssh = self._get_ssh_client( + self.host, + self.user, + self.private_key_path, + ) + stdout, stderr = self._run_command(ssh, "sudo -n true", pty=False) + except paramiko.ssh_exception.AuthenticationException as e: + raise e + finally: + if ssh: + ssh.close() + + # Infer the public key + public_key = None + public_key_path = "{}.pub".format(self.private_key_path) + + if not os.path.exists(public_key_path): + raise FileNotFoundError( + "Public key '{}' doesn't exist.".format(public_key_path) + ) + + with open(public_key_path, "r") as f: + public_key = f.readline() + + script = INITIALIZE_UBUNTU_SCRIPT.format(public_key) + + try: + ssh = self._get_ssh_client( + self.host, + self.user, + self.private_key_path, + ) + + self._run_command( + ssh, + ["sudo", "/bin/bash -c " + shlex.quote(script)], + pty=True + ) + except paramiko.ssh_exception.AuthenticationException as e: + raise e + finally: + ssh.close() + + return True + + def _detect_hardware_and_os(self, ssh): + """Detect the target hardware capabilities and OS series. + + :param object ssh: The SSHClient + :return: str: A raw string containing OS and hardware information. + """ + + info = { + 'series': '', + 'arch': '', + 'cpu-cores': '', + 'mem': '', + } + + stdout, stderr = self._run_command( + ssh, + ["sudo", "/bin/bash -c " + shlex.quote(DETECTION_SCRIPT)], + pty=True, + ) + + lines = stdout.split("\n") + info['series'] = lines[0].strip() + info['arch'] = normalize_arch(lines[1].strip()) + + memKb = re.split(r'\s+', lines[2])[1] + + # Convert megabytes -> kilobytes + info['mem'] = round(int(memKb) / 1024) + + # Detect available CPUs + recorded = {} + for line in lines[3:]: + physical_id = "" + print(line) + + if line.find("physical id") == 0: + physical_id = line.split(":")[1].strip() + elif line.find("cpu cores") == 0: + cores = line.split(":")[1].strip() + + if physical_id not in recorded.keys(): + info['cpu-cores'] += cores + recorded[physical_id] = True + + return info + + def provision_machine(self): + """Perform the initial provisioning of the target machine. + + :return: bool: The client.AddMachineParams + :raises: :class:`paramiko.ssh_exception.AuthenticationException` + if the upload fails + """ + params = client.AddMachineParams() + + if self._init_ubuntu_user(): + try: + + ssh = self._get_ssh_client( + self.host, + self.user, + self.private_key_path + ) + + hw = self._detect_hardware_and_os(ssh) + params.series = hw['series'] + params.instance_id = "manual:{}".format(self.host) + params.nonce = "manual:{}:{}".format( + self.host, + str(uuid.uuid4()), # a nop for Juju w/manual machines + ) + params.hardware_characteristics = { + 'arch': hw['arch'], + 'mem': int(hw['mem']), + 'cpu-cores': int(hw['cpu-cores']), + } + params.addresses = [{ + 'value': self.host, + 'type': 'ipv4', + 'scope': 'public', + }] + + except paramiko.ssh_exception.AuthenticationException as e: + raise e + finally: + ssh.close() + + return params + + async def install_agent(self, connection, nonce, machine_id): + """ + :param object connection: Connection to Juju API + :param str nonce: The nonce machine specification + :param str machine_id: The id assigned to the machine + + :return: bool: If the initialization was successful + """ + + # The path where the Juju agent should be installed. + data_dir = "/var/lib/juju" + + # Disabling this prevents `apt-get update` from running initially, so + # charms will fail to deploy + disable_package_commands = False + + client_facade = client.ClientFacade.from_connection(connection) + results = await client_facade.ProvisioningScript( + data_dir=data_dir, + disable_package_commands=disable_package_commands, + machine_id=machine_id, + nonce=nonce, + ) + + self._run_configure_script(results.script) + + def _run_configure_script(self, script): + """Run the script to install the Juju agent on the target machine. + + :param str script: The script returned by the ProvisioningScript API + :raises: :class:`paramiko.ssh_exception.AuthenticationException` + if the upload fails + """ + + _, tmpFile = tempfile.mkstemp() + with open(tmpFile, 'w') as f: + f.write(script) + + try: + # get ssh client + ssh = self._get_ssh_client( + self.host, + "ubuntu", + self.private_key_path, + ) + + # copy the local copy of the script to the remote machine + sftp = paramiko.SFTPClient.from_transport(ssh.get_transport()) + sftp.put( + tmpFile, + tmpFile, + ) + + # run the provisioning script + stdout, stderr = self._run_command( + ssh, + "sudo /bin/bash {}".format(tmpFile), + ) + + except paramiko.ssh_exception.AuthenticationException as e: + raise e + finally: + os.remove(tmpFile) + ssh.close() diff --git a/modules/libjuju/juju/relation.py b/modules/libjuju/juju/relation.py new file mode 100644 index 0000000..d2f2053 --- /dev/null +++ b/modules/libjuju/juju/relation.py @@ -0,0 +1,123 @@ +import logging + +from . import model + +log = logging.getLogger(__name__) + + +class Endpoint: + def __init__(self, model, data): + self.model = model + self.data = data + + def __repr__(self): + return ''.format(self.application.name, self.name) + + @property + def application(self): + return self.model.applications[self.data['application-name']] + + @property + def name(self): + return self.data['relation']['name'] + + @property + def interface(self): + return self.data['relation']['interface'] + + @property + def role(self): + return self.data['relation']['role'] + + @property + def scope(self): + return self.data['relation']['scope'] + + +class Relation(model.ModelEntity): + def __repr__(self): + return ''.format(self.entity_id, self.key) + + @property + def endpoints(self): + return [Endpoint(self.model, data) + for data in self.safe_data['endpoints']] + + @property + def provides(self): + """ + The endpoint on the provides side of this relation, or None. + """ + for endpoint in self.endpoints: + if endpoint.role == 'provider': + return endpoint + return None + + @property + def requires(self): + """ + The endpoint on the requires side of this relation, or None. + """ + for endpoint in self.endpoints: + if endpoint.role == 'requirer': + return endpoint + return None + + @property + def peers(self): + """ + The peers endpoint of this relation, or None. + """ + for endpoint in self.endpoints: + if endpoint.role == 'peer': + return endpoint + return None + + @property + def is_subordinate(self): + return any(ep.scope == 'container' for ep in self.endpoints) + + @property + def is_peer(self): + return any(ep.role == 'peer' for ep in self.endpoints) + + def matches(self, *specs): + """ + Check if this relation matches relationship specs. + + Relation specs are strings that would be given to Juju to establish a + relation, and should be in the form ``[:]`` + where the ``:`` suffix is optional. If the suffix is + omitted, this relation will match on any endpoint as long as the given + application is involved. + + In other words, this relation will match a spec if that spec could have + created this relation. + + :return: True if all specs match. + """ + for spec in specs: + if ':' in spec: + app_name, endpoint_name = spec.split(':') + else: + app_name, endpoint_name = spec, None + for endpoint in self.endpoints: + if app_name == endpoint.application.name and \ + endpoint_name in (endpoint.name, None): + # found a match for this spec, so move to next one + break + else: + # no match for this spec + return False + return True + + @property + def applications(self): + """ + All applications involved in this relation. + """ + return [ep.application for ep in self.endpoints] + + async def destroy(self): + raise NotImplementedError() + # TODO: destroy a relation diff --git a/modules/libjuju/juju/tag.py b/modules/libjuju/juju/tag.py new file mode 100644 index 0000000..282e0a6 --- /dev/null +++ b/modules/libjuju/juju/tag.py @@ -0,0 +1,40 @@ +# TODO: Tags should be a proper class, so that we can distinguish whether +# something is already a tag or not. For example, 'user-foo' is a valid +# username, but is ambiguous with the already-tagged username 'foo'. + + +def _prefix(prefix, s): + if s and not s.startswith(prefix): + return '{}{}'.format(prefix, s) + return s + + +def untag(prefix, s): + if s and s.startswith(prefix): + return s[len(prefix):] + return s + + +def cloud(cloud_name): + return _prefix('cloud-', cloud_name) + + +def credential(cloud, user, credential_name): + credential_string = '{}_{}_{}'.format(cloud, user, credential_name) + return _prefix('cloudcred-', credential_string) + + +def model(cloud_name): + return _prefix('model-', cloud_name) + + +def user(username): + return _prefix('user-', username) + + +def application(app_name): + return _prefix('application-', app_name) + + +def action(action_uuid): + return _prefix('action-', action_uuid) diff --git a/modules/libjuju/juju/unit.py b/modules/libjuju/juju/unit.py new file mode 100644 index 0000000..e8ecd96 --- /dev/null +++ b/modules/libjuju/juju/unit.py @@ -0,0 +1,281 @@ +import logging + +import pyrfc3339 + +from . import model +from .client import client + +log = logging.getLogger(__name__) + + +class Unit(model.ModelEntity): + @property + def agent_status(self): + """Returns the current agent status string. + + """ + return self.safe_data['agent-status']['current'] + + @property + def agent_status_since(self): + """Get the time when the `agent_status` was last updated. + + """ + return pyrfc3339.parse(self.safe_data['agent-status']['since']) + + @property + def agent_status_message(self): + """Get the agent status message. + + """ + return self.safe_data['agent-status']['message'] + + @property + def workload_status(self): + """Returns the current workload status string. + + """ + return self.safe_data['workload-status']['current'] + + @property + def workload_status_since(self): + """Get the time when the `workload_status` was last updated. + + """ + return pyrfc3339.parse(self.safe_data['workload-status']['since']) + + @property + def workload_status_message(self): + """Get the workload status message. + + """ + return self.safe_data['workload-status']['message'] + + @property + def machine(self): + """Get the machine object for this unit. + + """ + machine_id = self.safe_data['machine-id'] + if machine_id: + return self.model.machines.get(machine_id, None) + else: + return None + + @property + def public_address(self): + """ Get the public address. + + """ + return self.safe_data['public-address'] or None + + @property + def tag(self): + return 'unit-%s' % self.name.replace('/', '-') + + def add_storage(self, name, constraints=None): + """Add unit storage dynamically. + + :param str name: Storage name, as specified by the charm + :param str constraints: Comma-separated list of constraints in the + form 'POOL,COUNT,SIZE' + + """ + raise NotImplementedError() + + def collect_metrics(self): + """Collect metrics on this unit. + + """ + raise NotImplementedError() + + async def destroy(self): + """Destroy this unit. + + """ + app_facade = client.ApplicationFacade.from_connection(self.connection) + + log.debug( + 'Destroying %s', self.name) + + return await app_facade.DestroyUnits([self.name]) + remove = destroy + + def get_resources(self, details=False): + """Return resources for this unit. + + :param bool details: Include detailed info about resources used by each + unit + + """ + raise NotImplementedError() + + def resolved(self, retry=False): + """Mark unit errors resolved. + + :param bool retry: Re-execute failed hooks + + """ + raise NotImplementedError() + + async def run(self, command, timeout=None): + """Run command on this unit. + + :param str command: The command to run + :param int timeout: Time, in seconds, to wait before command is + considered failed + :returns: A :class:`juju.action.Action` instance. + + """ + action = client.ActionFacade.from_connection(self.connection) + + log.debug( + 'Running `%s` on %s', command, self.name) + + if timeout: + # Convert seconds to nanoseconds + timeout = int(timeout * 1000000000) + + res = await action.Run( + [], + command, + [], + timeout, + [self.name], + ) + return await self.model.wait_for_action(res.results[0].action.tag) + + async def run_action(self, action_name, **params): + """Run an action on this unit. + + :param str action_name: Name of action to run + :param **params: Action parameters + :returns: A :class:`juju.action.Action` instance. + + Note that this only enqueues the action. You will need to call + ``action.wait()`` on the resulting `Action` instance if you wish + to block until the action is complete. + + """ + action_facade = client.ActionFacade.from_connection(self.connection) + + log.debug('Starting action `%s` on %s', action_name, self.name) + + res = await action_facade.Enqueue([client.Action( + name=action_name, + parameters=params, + receiver=self.tag, + )]) + action = res.results[0].action + error = res.results[0].error + if error and error.code == 'not found': + raise ValueError('Action `%s` not found on %s' % (action_name, + self.name)) + elif error: + raise Exception('Unknown action error: %s' % error.serialize()) + action_id = action.tag[len('action-'):] + log.debug('Action started as %s', action_id) + # we mustn't use wait_for_action because that blocks until the + # action is complete, rather than just being in the model + return await self.model._wait_for_new('action', action_id) + + async def scp_to(self, source, destination, user='ubuntu', proxy=False, + scp_opts=''): + """Transfer files to this unit. + + :param str source: Local path of file(s) to transfer + :param str destination: Remote destination of transferred files + :param str user: Remote username + :param bool proxy: Proxy through the Juju API server + :param scp_opts: Additional options to the `scp` command + :type scp_opts: str or list + """ + await self.machine.scp_to(source, destination, user=user, proxy=proxy, + scp_opts=scp_opts) + + async def scp_from(self, source, destination, user='ubuntu', proxy=False, + scp_opts=''): + """Transfer files from this unit. + + :param str source: Remote path of file(s) to transfer + :param str destination: Local destination of transferred files + :param str user: Remote username + :param bool proxy: Proxy through the Juju API server + :param scp_opts: Additional options to the `scp` command + :type scp_opts: str or list + """ + await self.machine.scp_from(source, destination, user=user, + proxy=proxy, scp_opts=scp_opts) + + def set_meter_status(self): + """Set the meter status on this unit. + + """ + raise NotImplementedError() + + def ssh( + self, command, user=None, proxy=False, ssh_opts=None): + """Execute a command over SSH on this unit. + + :param str command: Command to execute + :param str user: Remote username + :param bool proxy: Proxy through the Juju API server + :param str ssh_opts: Additional options to the `ssh` command + + """ + raise NotImplementedError() + + def status_history(self, num=20, utc=False): + """Get status history for this unit. + + :param int num: Size of history backlog + :param bool utc: Display time as UTC in RFC3339 format + + """ + raise NotImplementedError() + + async def is_leader_from_status(self): + """ + Check to see if this unit is the leader. Returns True if so, and + False if it is not, or if leadership does not make sense + (e.g., there is no leader in this application.) + + This method is a kluge that calls FullStatus in the + ClientFacade to get its information. Once + https://bugs.launchpad.net/juju/+bug/1643691 is resolved, we + should add a simple .is_leader property, and deprecate this + method. + + """ + app = self.name.split("/")[0] + + c = client.ClientFacade.from_connection(self.connection) + + status = await c.FullStatus(None) + + # FullStatus may be more up to date than our model, and the + # unit may have gone away, or we may be doing something silly, + # like trying to fetch leadership for a subordinate, which + # will not be filed where we expect in the model. In those + # cases, we may simply return False, as a nonexistent or + # subordinate unit is not a leader. + if not status.applications.get(app): + return False + + if not status.applications[app].get('units'): + return False + + if not status.applications[app]['units'].get(self.name): + return False + + return status.applications[app]['units'][self.name].get('leader', + False) + + async def get_metrics(self): + """Get metrics for the unit. + + :return: Dictionary of metrics for this unit. + + """ + metrics = await self.model.get_metrics(self.tag) + return metrics[self.name] diff --git a/modules/libjuju/juju/user.py b/modules/libjuju/juju/user.py new file mode 100644 index 0000000..389d210 --- /dev/null +++ b/modules/libjuju/juju/user.py @@ -0,0 +1,86 @@ +import logging + +import pyrfc3339 + +from . import tag + +log = logging.getLogger(__name__) + + +class User(object): + def __init__(self, controller, user_info, secret_key=None): + self.controller = controller + self._user_info = user_info + self._secret_key = secret_key + + @property + def tag(self): + return tag.user(self.username) + + @property + def username(self): + return self._user_info.username + + @property + def display_name(self): + return self._user_info.display_name + + @property + def last_connection(self): + return pyrfc3339.parse(self._user_info.last_connection) + + @property + def access(self): + return self._user_info.access + + @property + def date_created(self): + return self._user_info.date_created + + @property + def enabled(self): + return not self._user_info.disabled + + @property + def disabled(self): + return self._user_info.disabled + + @property + def created_by(self): + return self._user_info.created_by + + @property + def secret_key(self): + return self._secret_key + + async def set_password(self, password): + """Update this user's password. + """ + await self.controller.change_user_password(self.username, password) + self._user_info.password = password + + async def grant(self, acl='login'): + """Set access level of this user on the controller. + + :param str acl: Access control ('login', 'add-model', or 'superuser') + """ + if await self.controller.grant(self.username, acl): + self._user_info.access = acl + + async def revoke(self): + """Removes all access rights for this user from the controller. + """ + await self.controller.revoke(self.username) + self._user_info.access = '' + + async def disable(self): + """Disable this user. + """ + await self.controller.disable_user(self.username) + self._user_info.disabled = True + + async def enable(self): + """Re-enable this user. + """ + await self.controller.enable_user(self.username) + self._user_info.disabled = False diff --git a/modules/libjuju/juju/utils.py b/modules/libjuju/juju/utils.py new file mode 100644 index 0000000..1038ed1 --- /dev/null +++ b/modules/libjuju/juju/utils.py @@ -0,0 +1,165 @@ +import asyncio +import os +from collections import defaultdict +from functools import partial +from pathlib import Path +import base64 +from pyasn1.type import univ, char +from pyasn1.codec.der.encoder import encode + + +async def execute_process(*cmd, log=None, loop=None): + ''' + Wrapper around asyncio.create_subprocess_exec. + + ''' + p = await asyncio.create_subprocess_exec( + *cmd, + stdin=asyncio.subprocess.PIPE, + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE, + loop=loop) + stdout, stderr = await p.communicate() + if log: + log.debug("Exec %s -> %d", cmd, p.returncode) + if stdout: + log.debug(stdout.decode('utf-8')) + if stderr: + log.debug(stderr.decode('utf-8')) + return p.returncode == 0 + + +def _read_ssh_key(): + ''' + Inner function for read_ssh_key, suitable for passing to our + Executor. + + ''' + default_data_dir = Path(Path.home(), ".local", "share", "juju") + juju_data = os.environ.get("JUJU_DATA", default_data_dir) + ssh_key_path = Path(juju_data, 'ssh', 'juju_id_rsa.pub') + with ssh_key_path.open('r') as ssh_key_file: + ssh_key = ssh_key_file.readlines()[0].strip() + return ssh_key + + +async def read_ssh_key(loop): + ''' + Attempt to read the local juju admin's public ssh key, so that it + can be passed on to a model. + + ''' + loop = loop or asyncio.get_event_loop() + return await loop.run_in_executor(None, _read_ssh_key) + + +class IdQueue: + """ + Wrapper around asyncio.Queue that maintains a separate queue for each ID. + """ + def __init__(self, maxsize=0, *, loop=None): + self._queues = defaultdict(partial(asyncio.Queue, maxsize, loop=loop)) + + async def get(self, id): + value = await self._queues[id].get() + del self._queues[id] + if isinstance(value, Exception): + raise value + return value + + async def put(self, id, value): + await self._queues[id].put(value) + + async def put_all(self, value): + for queue in self._queues.values(): + await queue.put(value) + + +async def block_until(*conditions, timeout=None, wait_period=0.5, loop=None): + """Return only after all conditions are true. + + """ + async def _block(): + while not all(c() for c in conditions): + await asyncio.sleep(wait_period, loop=loop) + await asyncio.wait_for(_block(), timeout, loop=loop) + + +async def run_with_interrupt(task, *events, loop=None): + """ + Awaits a task while allowing it to be interrupted by one or more + `asyncio.Event`s. + + If the task finishes without the events becoming set, the results of the + task will be returned. If the event become set, the task will be cancelled + ``None`` will be returned. + + :param task: Task to run + :param events: One or more `asyncio.Event`s which, if set, will interrupt + `task` and cause it to be cancelled. + :param loop: Optional event loop to use other than the default. + """ + loop = loop or asyncio.get_event_loop() + task = asyncio.ensure_future(task, loop=loop) + event_tasks = [loop.create_task(event.wait()) for event in events] + done, pending = await asyncio.wait([task] + event_tasks, + loop=loop, + return_when=asyncio.FIRST_COMPLETED) + for f in pending: + f.cancel() # cancel unfinished tasks + for f in done: + f.exception() # prevent "exception was not retrieved" errors + if task in done: + return task.result() # may raise exception + else: + return None + + +class Addrs(univ.SequenceOf): + componentType = char.PrintableString() + + +class RegistrationInfo(univ.Sequence): + """ + ASN.1 representation of: + + type RegistrationInfo struct { + User string + + Addrs []string + + SecretKey []byte + + ControllerName string + } + """ + pass + + +def generate_user_controller_access_token(username, controller_endpoints, secret_key, controller_name): + """" Implement in python what is currently done in GO + https://github.com/juju/juju/blob/a5ab92ec9b7f5da3678d9ac603fe52d45af24412/cmd/juju/user/utils.go#L16 + + :param username: name of the user to register + :param controller_endpoints: juju controller endpoints list in the format : + :param secret_key: base64 encoded string of the secret-key generated by juju + :param controller_name: name of the controller to register to. + """ + + # Secret key is returned as base64 encoded string in: + # https://websockets.readthedocs.io/en/stable/_modules/websockets/protocol.html#WebSocketCommonProtocol.recv + # Deconding it before marshalling into the ASN.1 message + secret_key = base64.b64decode(secret_key) + addr = Addrs() + for endpoint in controller_endpoints: + addr.append(endpoint) + + registration_string = RegistrationInfo() + registration_string.setComponentByPosition(0, char.PrintableString(username)) + registration_string.setComponentByPosition(1, addr) + registration_string.setComponentByPosition(2, univ.OctetString(secret_key)) + registration_string.setComponentByPosition(3, char.PrintableString(controller_name)) + registration_string = encode(registration_string) + remainder = len(registration_string) % 3 + registration_string += b"\0" * (3 - remainder) + return base64.urlsafe_b64encode(registration_string) diff --git a/modules/libjuju/scripts/gendoc b/modules/libjuju/scripts/gendoc new file mode 100755 index 0000000..3ef628e --- /dev/null +++ b/modules/libjuju/scripts/gendoc @@ -0,0 +1,39 @@ +#!/bin/bash +packages=( + juju.action + juju.annotation + juju.application + juju.cloud + juju.constraints + juju.controller + juju.delta + juju.errors + juju.exceptions + juju.juju + juju.loop + juju.machine + juju.model + juju.placement + juju.relation + juju.tag + juju.unit + juju.utils +) + +for pkg in ${packages[@]}; do + cat < docs/api/$pkg.rst +$pkg +$(echo $pkg | sed -e 's/./=/g') + +.. rubric:: Summary + +.. automembersummary:: $pkg + +.. rubric:: Reference + +.. automodule:: $pkg + :members: + :undoc-members: + :show-inheritance: +EOD +done diff --git a/modules/libjuju/setup.py b/modules/libjuju/setup.py new file mode 100644 index 0000000..7134677 --- /dev/null +++ b/modules/libjuju/setup.py @@ -0,0 +1,61 @@ +# Copyright 2016 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from pathlib import Path +from setuptools import setup, find_packages + +here = Path(__file__).absolute().parent +readme = here / 'docs' / 'readme.rst' +changelog = here / 'docs' / 'changelog.rst' +long_description = '{}\n\n{}'.format( + readme.read_text(), + changelog.read_text() + ) +version = here / 'VERSION' + +setup( + name='juju', + version=version.read_text().strip(), + packages=find_packages( + exclude=["*.tests", "*.tests.*", "tests.*", "tests"]), + install_requires=[ + 'macaroonbakery>=1.1,<2.0', + 'pyRFC3339>=1.0,<2.0', + 'pyyaml>=3.0,<=4.2', + 'theblues>=0.3.8,<1.0', + 'websockets>=7.0,<8.0', + 'paramiko>=2.4.0,<3.0.0', + 'pyasn1>=0.4.4', + ], + include_package_data=True, + maintainer='Juju Ecosystem Engineering', + maintainer_email='juju@lists.ubuntu.com', + description=('Python library for Juju'), + long_description=long_description, + url='https://github.com/juju/python-libjuju', + license='Apache 2', + classifiers=[ + "Development Status :: 3 - Alpha", + "Intended Audience :: Developers", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + ], + entry_points={ + 'console_scripts': [ + ], + }, +) diff --git a/modules/libjuju/tests/__init__.py b/modules/libjuju/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/modules/libjuju/tests/base.py b/modules/libjuju/tests/base.py new file mode 100644 index 0000000..600372c --- /dev/null +++ b/modules/libjuju/tests/base.py @@ -0,0 +1,148 @@ +import inspect +import subprocess +import uuid +from contextlib import contextmanager +from pathlib import Path + +import mock +from juju.client.jujudata import FileJujuData +from juju.controller import Controller + +import pytest + + +def is_bootstrapped(): + try: + result = subprocess.run(['juju', 'switch'], stdout=subprocess.PIPE) + return ( + result.returncode == 0 and + len(result.stdout.decode().strip()) > 0) + except FileNotFoundError: + return False + + +bootstrapped = pytest.mark.skipif( + not is_bootstrapped(), + reason='bootstrapped Juju environment required') + +test_run_nonce = uuid.uuid4().hex[-4:] + + +class CleanController(): + """ + Context manager that automatically connects and disconnects from + the currently active controller. + + Note: Unlike CleanModel, this will not create a new controller for you, + and an active controller must already be available. + """ + def __init__(self): + self._controller = None + + async def __aenter__(self): + self._controller = Controller() + await self._controller.connect() + return self._controller + + async def __aexit__(self, exc_type, exc, tb): + await self._controller.disconnect() + + +class CleanModel(): + """ + Context manager that automatically connects to the currently active + controller, adds a fresh model, returns the connection to that model, + and automatically disconnects and cleans up the model. + + The new model is also set as the current default for the controller + connection. + """ + def __init__(self, bakery_client=None): + self._controller = None + self._model = None + self._model_uuid = None + self._bakery_client = bakery_client + + async def __aenter__(self): + model_nonce = uuid.uuid4().hex[-4:] + frame = inspect.stack()[1] + test_name = frame.function.replace('_', '-') + jujudata = TestJujuData() + self._controller = Controller( + jujudata=jujudata, + bakery_client=self._bakery_client, + ) + controller_name = jujudata.current_controller() + user_name = jujudata.accounts()[controller_name]['user'] + await self._controller.connect(controller_name) + + model_name = 'test-{}-{}-{}'.format( + test_run_nonce, + test_name, + model_nonce, + ) + self._model = await self._controller.add_model(model_name) + + # Change the JujuData instance so that it will return the new + # model as the current model name, so that we'll connect + # to it by default. + jujudata.set_model( + controller_name, + user_name + "/" + model_name, + self._model.info.uuid, + ) + + # save the model UUID in case test closes model + self._model_uuid = self._model.info.uuid + + return self._model + + async def __aexit__(self, exc_type, exc, tb): + await self._model.disconnect() + await self._controller.destroy_model(self._model_uuid) + await self._controller.disconnect() + + +class TestJujuData(FileJujuData): + def __init__(self): + self.__controller_name = None + self.__model_name = None + self.__model_uuid = None + super().__init__() + + def set_model(self, controller_name, model_name, model_uuid): + self.__controller_name = controller_name + self.__model_name = model_name + self.__model_uuid = model_uuid + + def current_model(self, *args, **kwargs): + return self.__model_name or super().current_model(*args, **kwargs) + + def models(self): + all_models = super().models() + if self.__model_name is None: + return all_models + all_models.setdefault(self.__controller_name, {}) + all_models[self.__controller_name].setdefault('models', {}) + cmodels = all_models[self.__controller_name]['models'] + cmodels[self.__model_name] = {'uuid': self.__model_uuid} + return all_models + + +class AsyncMock(mock.MagicMock): + async def __call__(self, *args, **kwargs): + return super().__call__(*args, **kwargs) + + +@contextmanager +def patch_file(filename): + """ + "Patch" a file so that its current contents are automatically restored + when the context is exited. + """ + filepath = Path(filename).expanduser() + data = filepath.read_bytes() + try: + yield + finally: + filepath.write_bytes(data) diff --git a/modules/libjuju/tests/bundle/bundle.yaml b/modules/libjuju/tests/bundle/bundle.yaml new file mode 100644 index 0000000..19a45ec --- /dev/null +++ b/modules/libjuju/tests/bundle/bundle.yaml @@ -0,0 +1,28 @@ +series: xenial +services: + wordpress: + charm: "cs:trusty/wordpress-2" + num_units: 1 + annotations: + "gui-x": "339.5" + "gui-y": "-171" + to: + - "0" + mysql: + charm: "cs:trusty/mysql-26" + num_units: 1 + annotations: + "gui-x": "79.5" + "gui-y": "-142" + to: + - "1" +relations: + - - "wordpress:db" + - "mysql:db" +machines: + "0": + series: trusty + constraints: "arch=amd64 cores=1 cpu-power=100 mem=1740 root-disk=8192" + "1": + series: trusty + constraints: "arch=amd64 cores=1 cpu-power=100 mem=1740 root-disk=8192" diff --git a/modules/libjuju/tests/bundle/invalid.yaml b/modules/libjuju/tests/bundle/invalid.yaml new file mode 100644 index 0000000..2e51c1e --- /dev/null +++ b/modules/libjuju/tests/bundle/invalid.yaml @@ -0,0 +1,7 @@ +applications: + myapp: + charm: cs:xenial/ubuntu-0 + num_units: 1 + to: + - 0 + - 0 diff --git a/modules/libjuju/tests/bundle/mini-bundle.yaml b/modules/libjuju/tests/bundle/mini-bundle.yaml new file mode 100644 index 0000000..84d9a61 --- /dev/null +++ b/modules/libjuju/tests/bundle/mini-bundle.yaml @@ -0,0 +1,9 @@ +series: xenial +applications: + dummy-sink: + charm: cs:~juju-qa/dummy-sink + num_units: 1 + dummy-subordinate: + charm: cs:~juju-qa/dummy-subordinate +relations: + - ['dummy-sink', 'dummy-subordinate'] diff --git a/modules/libjuju/tests/charm/metadata.yaml b/modules/libjuju/tests/charm/metadata.yaml new file mode 100644 index 0000000..74eab3d --- /dev/null +++ b/modules/libjuju/tests/charm/metadata.yaml @@ -0,0 +1,5 @@ +name: charm +series: ["xenial"] +summary: "test" +description: "test" +maintainers: ["test"] diff --git a/modules/libjuju/tests/integration/__init__.py b/modules/libjuju/tests/integration/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/modules/libjuju/tests/integration/bundle/bundle-resource-rev.yaml b/modules/libjuju/tests/integration/bundle/bundle-resource-rev.yaml new file mode 100644 index 0000000..c8feb83 --- /dev/null +++ b/modules/libjuju/tests/integration/bundle/bundle-resource-rev.yaml @@ -0,0 +1,7 @@ +series: xenial +services: + ghost: + charm: "cs:ghost-19" + num_units: 1 + resources: + ghost-stable: 11 diff --git a/modules/libjuju/tests/integration/bundle/bundle.yaml b/modules/libjuju/tests/integration/bundle/bundle.yaml new file mode 100644 index 0000000..d0245c5 --- /dev/null +++ b/modules/libjuju/tests/integration/bundle/bundle.yaml @@ -0,0 +1,12 @@ +series: xenial +services: + ghost: + charm: "cs:ghost-19" + num_units: 1 + mysql: + charm: "cs:trusty/mysql-57" + num_units: 1 + test: + charm: "./tests/integration/charm" +relations: + - ["ghost", "mysql"] diff --git a/modules/libjuju/tests/integration/cert.pem b/modules/libjuju/tests/integration/cert.pem new file mode 100644 index 0000000..684029e --- /dev/null +++ b/modules/libjuju/tests/integration/cert.pem @@ -0,0 +1,33 @@ +-----BEGIN CERTIFICATE----- +MIIFxDCCA6ygAwIBAgIJAPBHQW1VVLhYMA0GCSqGSIb3DQEBCwUAMHcxCzAJBgNV +BAYTAlVTMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTEQMA4GA1UEBwwHUmFsZWln +aDESMBAGA1UECgwJQ2Fub25pY2FsMSkwJwYDVQQDDCBweXRob24tbGlianVqdS5p +bnRlZ3JhdGlvbi50ZXN0czAeFw0xODEyMTEyMDQyMThaFw0xOTEyMTEyMDQyMTha +MHcxCzAJBgNVBAYTAlVTMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTEQMA4GA1UE +BwwHUmFsZWlnaDESMBAGA1UECgwJQ2Fub25pY2FsMSkwJwYDVQQDDCBweXRob24t +bGlianVqdS5pbnRlZ3JhdGlvbi50ZXN0czCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBANkkfNI4Q3eIIrXZF3xxnD9Bbp06jPeoEokUSrC98L5XwCtxs9Ma +fWPqiSukPq3A0pPcRobFOu5o+pu6+1pFjcmtKICsp+CwHV52+IfozvNlhRMUFPb2 +IxU86tgpMcBAM5wLz85DoNSu4EjOku0rB8Z0GMfvvuc7aYtDQoKJSScHGWWFTaJT +mtXmmKKSPtyPZ5PCQOv2Qmg5ujs4RS3R8dq4WRAd5F8YzRBgmtPYRrjwgEjD7GTq +Xlt+COqn5+RgWFIH0pQ1xHkslBzBByzsyjLJPdV/ugNIZk6GNOzLAw3ynl/9xGGh +RAOrBsKVQPs3liZoGXVqKxHyNgWh8V58TgiFDuRZiZwQDV6cRkxOkGQIXohkS7uC +5OXrAsyyVPrRoWfQMggxM1jH3H+93PoRqEsLypLxw53h9Seep4tOggw/hgOolLFg +diAT/IU3yhESXnXpAA8G2rDKO32hw+vWuaGCbH6bShb+9ZfkAmLUiSVm9ClbkZRQ +IaXmtBwsLS2IBxW51jrjSuXvqlBZc01pIUC2CT7aTrbftpA+w6i1bZpqjCukUSAx +t4dRjzL/h/drp5xxlqXOZL9yjYl8vFul4LFKkpkJGIKESEksxULZR/3b+WA7oyiA +Ph9UgnKU730dKVSfWbi/0tsCA/4HKIJ9qucCrfxyL8hizJ+1w9NZJ3ZbAgMBAAGj +UzBRMB0GA1UdDgQWBBSv/7Fraw7XviWwlnPGc+CTJA0rKjAfBgNVHSMEGDAWgBSv +/7Fraw7XviWwlnPGc+CTJA0rKjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB +CwUAA4ICAQCluQ7qFgNoGPkAkdoDXN26OhQcfrCmjvPufurs8Fc4Yxumupz01Df+ +zu3J2pG+tfThi37sRZsxN/jhtZOVgaXPSgpgB8Tz16YCK3KTEHXil/i6wp4JGmnQ +VsOo8cGLEvcmFg98/l2Tu31IXaSm7Fc/VxVB0fhzvIa0xG+osU3Dy4GWhDQrkkJ8 +MErTvEAb8QnY1y20ThPAZ5StBZ/ZLwPksuzkvJwGN8FI00k1RCznDNArzKouuZZt +JdfjnFtT+nrP0XSAlphfI0o7Gbm6jqVLPIekp8iPJuAmk55biZ9rAJBu8DsHtBpQ +cbpH+84y/xaC9svPgD9Un6dDDYXQ4QZL393oZW1RM4apR9gOz/8NxW2bJyPVxA3M +nmHphZjyGrOLN/QjrZV93Dv65SIivzT2zYEztvK4rjui31J3VDeNEe7uMFGq5Pmq +7HRrcPY2sMSOHkzOTFmd5qwaPD9EzkM5UT5YJDEE7YUjkR8LlxP5Xvo82HXxKl8D +8Tk09HuBMWg69QjuVThBNJSWpIxTbQEfm/2j+fm1L1kE9N7+97y69eDTNdOxJK5D +zaKoAjgoneZZzZN6fblfbQuAsDdJ2xLR0DTBlxA9Gv7OYbUpXm3eAyfYL4AmqvHI +HtfgPeSH2+wQVteiVa7q0BIto75XE3m8+xIOQsAUEb04fcacEpKZlw== +-----END CERTIFICATE----- diff --git a/modules/libjuju/tests/integration/charm/metadata.yaml b/modules/libjuju/tests/integration/charm/metadata.yaml new file mode 100644 index 0000000..74eab3d --- /dev/null +++ b/modules/libjuju/tests/integration/charm/metadata.yaml @@ -0,0 +1,5 @@ +name: charm +series: ["xenial"] +summary: "test" +description: "test" +maintainers: ["test"] diff --git a/modules/libjuju/tests/integration/key.pem b/modules/libjuju/tests/integration/key.pem new file mode 100644 index 0000000..664123e --- /dev/null +++ b/modules/libjuju/tests/integration/key.pem @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQDZJHzSOEN3iCK1 +2Rd8cZw/QW6dOoz3qBKJFEqwvfC+V8ArcbPTGn1j6okrpD6twNKT3EaGxTruaPqb +uvtaRY3JrSiArKfgsB1edviH6M7zZYUTFBT29iMVPOrYKTHAQDOcC8/OQ6DUruBI +zpLtKwfGdBjH777nO2mLQ0KCiUknBxllhU2iU5rV5piikj7cj2eTwkDr9kJoObo7 +OEUt0fHauFkQHeRfGM0QYJrT2Ea48IBIw+xk6l5bfgjqp+fkYFhSB9KUNcR5LJQc +wQcs7MoyyT3Vf7oDSGZOhjTsywMN8p5f/cRhoUQDqwbClUD7N5YmaBl1aisR8jYF +ofFefE4IhQ7kWYmcEA1enEZMTpBkCF6IZEu7guTl6wLMslT60aFn0DIIMTNYx9x/ +vdz6EahLC8qS8cOd4fUnnqeLToIMP4YDqJSxYHYgE/yFN8oREl516QAPBtqwyjt9 +ocPr1rmhgmx+m0oW/vWX5AJi1IklZvQpW5GUUCGl5rQcLC0tiAcVudY640rl76pQ +WXNNaSFAtgk+2k6237aQPsOotW2aaowrpFEgMbeHUY8y/4f3a6eccZalzmS/co2J +fLxbpeCxSpKZCRiChEhJLMVC2Uf92/lgO6MogD4fVIJylO99HSlUn1m4v9LbAgP+ +ByiCfarnAq38ci/IYsyftcPTWSd2WwIDAQABAoICAFbe9Rz5K2ynxxMvbej4XsUj +vUgjw3/U+s1ik9sPsj/ERXpb+9BJ+b4+d3BBPl4vFU/YQVLrlv8IerJQ5PwhdW8o +2lpYOLV4X9eKCzX8WscfZ1TRpO2EXVbCz0V5fZDnXn5gb1uazL4p1ErscfV2UJ8B +lWRvstU5fKkdWH92wxBdE7j80qlNf1Vx8sCfd4yvxoVjoquEEt81sR6+DVcedf7F +38PF4bZ16pxRub9k+C5G8VurHmjlJqi9zH1sfSZtsQfoX0OyGw9LWVoDk4ZSmTYm +Mpm2hsmHbn6dzJCrS2aKGPhYQve4F8jL5GF2as/WVji5Tu4dcmu0lg480p61ZlXf +Q58qw4uXMU2KfiuLKyTV8MlmktMhDiHAmzAbIXskdmV2BNlIwyudsVXT1QD0BKH5 +I+8edW1OPLK72/kt9VT1paRbTiCL0NWk99QCL1VxPB4FupQQm1Hk2KnMrUfjFUOm +9cuOP1S0HcHCMHN4+y0UCmn3phrWmfI/KlDZCxmSd8gvNwKkPSW5ONuYmZlpE5Wm +s7FwRoAGGvSsjXOC3N6m48b0dQNLnMvSXQIRiDbnTzChNJ3q7y9u0o/dqATCtelx +S7ouVKxHqSdy9G8WK0XQAFqny2dcoHZiiuxWboF9p1zEia43pdFVy/7g08KjSBQ1 +vzVGhUDYtquqq0MociWBAoIBAQD6C8ZDBU8VWwOIPL+zX8/4MNp0PfcJrOwk1vF0 +J0aPRRvqx0g6yhzjrCtWNrQnHV6Oc9FBg/NPAthAAQWYEwQr77RJWRtle/n7cH2A +qFkAL0nYokti7TdFMe82a8hlnuo9GQl340t95j03/HDAtrqQ0xFi32Rpp54MgHLU +FW2AYTv7CLV18p7yHIMdn0ESORPxlc/hYuuyL6ZPm/7DF/bbieY1+ZVAzn1ls17m +dQctagpInRC2EDL17lQK86Mh7PGdVTIaJMFvzdyuIn8qswe1n3FA0OCL7VBfMjE8 +caUZ3kfGfeNKtkUvGALoXploZhDTmfDs5XQFIoMvwi87lClBAoIBAQDeUCQMyPUC +TcfDKmeKAiGjm4Amtb+rvA3SbPSJvteOaohyqKFswUf9fNCrJim1QVpQ+PtArlAx +WK9X8g44+OOWx2moLxlptzjzsYEXJYzUtIjuFE10xiGJEvthmWAZ+EB7Gexu7696 +M4LcWkAivCAwcM5e2Gr3DtMMS4E9fxNZfEn7RNFtTs6Cit/R2VITlbYnECSU13FY +DI37g8umCR01pTZ/7VVUwVMeq/irFKwTfkHoF2Fyxbp8CT91ydRsYCBs395xcEH1 +2rblBXUlGj01eVZtTX2HVSS78o/ak+Q3WJQvh1Hds8yS7QdirkOpmGGzvwpIhjzB +ztHsgjbFt3ybAoIBAA1HAsgcSA7CPnXFhAhqVgi/z1nM0Ila/U8XesrIKx8AdHML +EfLNOKt+QO7bCMXq8VJvI/VupETVydXcOAfTOq16lQAwExxYcPXBC2kBh3hTCoDO +XWJrZjvuYt1o68M5pQaJhc8v6ppM14NZjEMvcMiv7IRriFFz7RiM2YwZdy8R+rVh +yQDyWS5SBURVaIcnML/rTJaTQiC8FwCzL9v8MceGkwrareo7DL2RwMBMBo2Ky/D/ +JhwE0C/u79eFCGyMwGeyVm689OiS7dzxR/9kckxaoxDmBoZnm5TyfVrQTgwJmZYY +qTEWbKYLiFv+afb5NHuH+RsbNAXxxzWKAigPvgECggEAYD8H7HUQBchQxMDWBJy5 +nZBT4e5rpdkLjt9W20/BGMosep9hC6l+FlN0L7Sc9/jsNgQlGrKcy1Be0U9dMvMl +7QA2UPbbJLaLNI3TmobKOshSQ+iMRBMHL8YFCRMS1QtyNxlZEAo6yUgFzopQG/mg +YfhkkBFX9c/4NOl3cX1TjjlN+jeoB4/HviKLldllPE9jhfPqMno3euwsiAheIWru +t2vodWf1unTcHHpNdRvFB8dwlx+QM9VA0DRcwgz4J1dSknA1aJ02IU9oQSyks8Rx +XXZDoZybzPxio+/2saW3dvKlbRJDsh0GY1G1EdbqOkFbgyshM5bSNQHqRl91gRHY +IwKCAQEApF790G7J1IgNrLBxLlzEkVcv2Az8QDHviC8MxdVerGj62E5fGUb44Z+p +SM2vjjtL7yeTPuH0K7bbVtDMZoj3l81BHY6OnmFTLPSlMnUYXs7aVjbIK3EMQtHa +EyNOiwNtIOAUMqQ3C/KXWxdO0J8/kY6b7cvZwj5zDLYt+4j8BN8w8EL0Kgxw9Bd/ +DL++Nz3IqoOoPF0aK7hVTklVzONIdaGL2OjlyESKZOWJR1pypLC9+nUAAFbtPN5Q +8xyG3Rqoo7j697M50LP4ZMCE8WK/uZth4LPU9KWJAJ3FHrKki0qB1zbYXS4OMFbj +hg+Fb1z8af0WL9PCAwsWQMTaSx88tQ== +-----END PRIVATE KEY----- diff --git a/modules/libjuju/tests/integration/test_application.py b/modules/libjuju/tests/integration/test_application.py new file mode 100644 index 0000000..b705832 --- /dev/null +++ b/modules/libjuju/tests/integration/test_application.py @@ -0,0 +1,134 @@ +import asyncio + +import pytest + +from .. import base + +MB = 1 + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_action(event_loop): + async with base.CleanModel() as model: + ubuntu_app = await model.deploy( + 'percona-cluster', + application_name='mysql', + series='xenial', + channel='stable', + config={ + 'tuning-level': 'safest', + }, + constraints={ + 'mem': 256 * MB, + }, + ) + + # update and check app config + await ubuntu_app.set_config({'tuning-level': 'fast'}) + config = await ubuntu_app.get_config() + assert config['tuning-level']['value'] == 'fast' + + # Restore config back to default + await ubuntu_app.reset_config(['tuning-level']) + config = await ubuntu_app.get_config() + assert config['tuning-level']['value'] == 'safest' + + # update and check app constraints + await ubuntu_app.set_constraints({'mem': 512 * MB}) + constraints = await ubuntu_app.get_constraints() + assert constraints['mem'] == 512 * MB + + # check action definitions + actions = await ubuntu_app.get_actions() + assert 'backup' in actions.keys() + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_add_units(event_loop): + from juju.unit import Unit + + async with base.CleanModel() as model: + app = await model.deploy( + 'ubuntu-0', + application_name='ubuntu', + series='trusty', + channel='stable', + ) + units = await app.add_units(count=2) + + assert len(units) == 2 + for unit in units: + assert isinstance(unit, Unit) + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_upgrade_charm(event_loop): + async with base.CleanModel() as model: + app = await model.deploy('ubuntu-0') + assert app.data['charm-url'] == 'cs:ubuntu-0' + await app.upgrade_charm() + assert app.data['charm-url'].startswith('cs:ubuntu-') + assert app.data['charm-url'] != 'cs:ubuntu-0' + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_upgrade_charm_channel(event_loop): + async with base.CleanModel() as model: + app = await model.deploy('ubuntu-0') + assert app.data['charm-url'] == 'cs:ubuntu-0' + await app.upgrade_charm(channel='stable') + assert app.data['charm-url'].startswith('cs:ubuntu-') + assert app.data['charm-url'] != 'cs:ubuntu-0' + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_upgrade_charm_revision(event_loop): + async with base.CleanModel() as model: + app = await model.deploy('ubuntu-0') + assert app.data['charm-url'] == 'cs:ubuntu-0' + await app.upgrade_charm(revision=8) + assert app.data['charm-url'] == 'cs:ubuntu-8' + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_upgrade_charm_switch(event_loop): + async with base.CleanModel() as model: + app = await model.deploy('ubuntu-0') + assert app.data['charm-url'] == 'cs:ubuntu-0' + await app.upgrade_charm(switch='ubuntu-8') + assert app.data['charm-url'] == 'cs:ubuntu-8' + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_upgrade_charm_resource(event_loop): + async with base.CleanModel() as model: + app = await model.deploy('cs:~cynerva/upgrade-charm-resource-test-1') + + def units_ready(): + if not app.units: + return False + unit = app.units[0] + return unit.workload_status == 'active' and \ + unit.agent_status == 'idle' + + await asyncio.wait_for(model.block_until(units_ready), timeout=480) + unit = app.units[0] + expected_message = 'I have no resource.' + assert unit.workload_status_message == expected_message + + await app.upgrade_charm(revision=2) + await asyncio.wait_for( + model.block_until( + lambda: unit.workload_status_message != 'I have no resource.' + ), + timeout=60 + ) + expected_message = 'My resource: I am the resource.' + assert app.units[0].workload_status_message == expected_message diff --git a/modules/libjuju/tests/integration/test_client.py b/modules/libjuju/tests/integration/test_client.py new file mode 100644 index 0000000..240c471 --- /dev/null +++ b/modules/libjuju/tests/integration/test_client.py @@ -0,0 +1,21 @@ +from juju.client import client + +import pytest + +from .. import base + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_user_info(event_loop): + async with base.CleanModel() as model: + controller_conn = await model.connection().controller() + + um = client.UserManagerFacade.from_connection(controller_conn) + result = await um.UserInfo( + [client.Entity('user-admin')], True) + await controller_conn.close() + + assert isinstance(result, client.UserInfoResults) + for r in result.results: + assert isinstance(r, client.UserInfoResult) diff --git a/modules/libjuju/tests/integration/test_connection.py b/modules/libjuju/tests/integration/test_connection.py new file mode 100644 index 0000000..6647a03 --- /dev/null +++ b/modules/libjuju/tests/integration/test_connection.py @@ -0,0 +1,236 @@ +import asyncio +import http +import logging +import socket +import ssl +from contextlib import closing +from pathlib import Path + +from juju.client import client +from juju.client.connection import Connection +from juju.controller import Controller +from juju.utils import run_with_interrupt + +import pytest +import websockets + +from .. import base + + +logger = logging.getLogger(__name__) + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_monitor(event_loop): + async with base.CleanModel() as model: + conn = model.connection() + assert conn.monitor.status == 'connected' + await conn.close() + + assert conn.monitor.status == 'disconnected' + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_monitor_catches_error(event_loop): + + async with base.CleanModel() as model: + conn = model.connection() + + assert conn.monitor.status == 'connected' + try: + async with conn.monitor.reconnecting: + await conn.ws.close() + await asyncio.sleep(1) + assert conn.monitor.status == 'error' + finally: + await conn.close() + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_full_status(event_loop): + async with base.CleanModel() as model: + await model.deploy( + 'ubuntu-0', + application_name='ubuntu', + series='trusty', + channel='stable', + ) + + c = client.ClientFacade.from_connection(model.connection()) + + await c.FullStatus(None) + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_reconnect(event_loop): + async with base.CleanModel() as model: + kwargs = model.connection().connect_params() + conn = await Connection.connect(**kwargs) + try: + await asyncio.sleep(0.1) + assert conn.is_open + await conn.ws.close() + assert not conn.is_open + await model.block_until(lambda: conn.is_open, timeout=3) + finally: + await conn.close() + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_redirect(event_loop): + controller = Controller() + await controller.connect() + kwargs = controller.connection().connect_params() + await controller.disconnect() + + # websockets.server.logger.setLevel(logging.DEBUG) + # websockets.client.logger.setLevel(logging.DEBUG) + # # websockets.protocol.logger.setLevel(logging.DEBUG) + # logger.setLevel(logging.DEBUG) + + destination = 'wss://{}/api'.format(kwargs['endpoint']) + redirect_statuses = [ + http.HTTPStatus.MOVED_PERMANENTLY, + http.HTTPStatus.FOUND, + http.HTTPStatus.SEE_OTHER, + http.HTTPStatus.TEMPORARY_REDIRECT, + http.HTTPStatus.PERMANENT_REDIRECT, + ] + test_server_cert = Path(__file__).with_name('cert.pem') + kwargs['cacert'] += '\n' + test_server_cert.read_text() + server = RedirectServer(destination, event_loop) + try: + for status in redirect_statuses: + logger.debug('test: starting {}'.format(status)) + server.start(status) + await run_with_interrupt(server.running.wait(), + server.terminated) + if server.exception: + raise server.exception + assert not server.terminated.is_set() + logger.debug('test: started') + kwargs_copy = dict(kwargs, + endpoint='localhost:{}'.format(server.port)) + logger.debug('test: connecting') + conn = await Connection.connect(**kwargs_copy) + logger.debug('test: connected') + await conn.close() + logger.debug('test: stopping') + server.stop() + await server.stopped.wait() + logger.debug('test: stopped') + finally: + server.terminate() + await server.terminated.wait() + + +class RedirectServer: + def __init__(self, destination, loop): + self.destination = destination + self.loop = loop + self._start = asyncio.Event() + self._stop = asyncio.Event() + self._terminate = asyncio.Event() + self.running = asyncio.Event() + self.stopped = asyncio.Event() + self.terminated = asyncio.Event() + if hasattr(ssl, 'PROTOCOL_TLS_SERVER'): + # python 3.6+ + protocol = ssl.PROTOCOL_TLS_SERVER + elif hasattr(ssl, 'PROTOCOL_TLS'): + # python 3.5.3+ + protocol = ssl.PROTOCOL_TLS + else: + # python 3.5.2 + protocol = ssl.PROTOCOL_TLSv1_2 + self.ssl_context = ssl.SSLContext(protocol) + crt_file = Path(__file__).with_name('cert.pem') + key_file = Path(__file__).with_name('key.pem') + self.ssl_context.load_cert_chain(str(crt_file), str(key_file)) + self.status = None + self.port = None + self._task = self.loop.create_task(self.run()) + + def start(self, status): + self.status = status + self.port = self._find_free_port() + self._start.set() + + def stop(self): + self._stop.set() + + def terminate(self): + self._terminate.set() + self.stop() + + @property + def exception(self): + try: + return self._task.exception() + except (asyncio.CancelledError, asyncio.InvalidStateError): + return None + + async def run(self): + logger.debug('server: active') + + async def hello(websocket, path): + await websocket.send('hello') + + async def redirect(path, request_headers): + return self.status, {'Location': self.destination}, b"" + + try: + while not self._terminate.is_set(): + await run_with_interrupt(self._start.wait(), + self._terminate, + loop=self.loop) + if self._terminate.is_set(): + break + self._start.clear() + logger.debug('server: starting {}'.format(self.status)) + try: + async with websockets.serve(ws_handler=hello, + process_request=redirect, + host='localhost', + port=self.port, + ssl=self.ssl_context, + loop=self.loop): + self.stopped.clear() + self.running.set() + logger.debug('server: started') + while not self._stop.is_set(): + await run_with_interrupt( + asyncio.sleep(1, loop=self.loop), + self._stop, + loop=self.loop) + logger.debug('server: tick') + logger.debug('server: stopping') + except asyncio.CancelledError: + break + finally: + self.stopped.set() + self._stop.clear() + self.running.clear() + logger.debug('server: stopped') + logger.debug('server: terminating') + except asyncio.CancelledError: + pass + finally: + self._start.clear() + self._stop.clear() + self._terminate.clear() + self.stopped.set() + self.running.clear() + self.terminated.set() + logger.debug('server: terminated') + + def _find_free_port(self): + with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as s: + s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + s.bind(('', 0)) + return s.getsockname()[1] diff --git a/modules/libjuju/tests/integration/test_controller.py b/modules/libjuju/tests/integration/test_controller.py new file mode 100644 index 0000000..6423a98 --- /dev/null +++ b/modules/libjuju/tests/integration/test_controller.py @@ -0,0 +1,228 @@ +import asyncio +import subprocess +import uuid + +from juju.client.connection import Connection +from juju.client.jujudata import FileJujuData +from juju.controller import Controller +from juju.errors import JujuAPIError + +import pytest + +from .. import base + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_add_remove_user(event_loop): + async with base.CleanController() as controller: + username = 'test{}'.format(uuid.uuid4()) + user = await controller.get_user(username) + assert user is None + user = await controller.add_user(username) + assert user is not None + assert user.secret_key is not None + assert user.username == username + users = await controller.get_users() + assert any(u.username == username for u in users) + await controller.remove_user(username) + user = await controller.get_user(username) + assert user is None + users = await controller.get_users() + assert not any(u.username == username for u in users) + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_disable_enable_user(event_loop): + async with base.CleanController() as controller: + username = 'test-disable{}'.format(uuid.uuid4()) + user = await controller.add_user(username) + + await user.disable() + assert not user.enabled + assert user.disabled + + fresh = await controller.get_user(username) # fetch fresh copy + assert not fresh.enabled + assert fresh.disabled + + await user.enable() + assert user.enabled + assert not user.disabled + + fresh = await controller.get_user(username) # fetch fresh copy + assert fresh.enabled + assert not fresh.disabled + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_change_user_password(event_loop): + async with base.CleanController() as controller: + username = 'test-password{}'.format(uuid.uuid4()) + user = await controller.add_user(username) + await user.set_password('password') + # Check that we can connect with the new password. + new_connection = None + try: + kwargs = controller.connection().connect_params() + kwargs['username'] = username + kwargs['password'] = 'password' + new_connection = await Connection.connect(**kwargs) + except JujuAPIError: + raise AssertionError('Unable to connect with new password') + finally: + if new_connection: + await new_connection.close() + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_reset_user_password(event_loop): + async with base.CleanController() as controller: + username = 'test{}'.format(uuid.uuid4()) + user = await controller.add_user(username) + origin_secret_key = user.secret_key + await user.set_password('password') + await controller.reset_user_password(username) + user = await controller.get_user(username) + new_secret_key = user.secret_key + # Check secret key is different after the reset. + assert origin_secret_key != new_secret_key + # Check that we can't connect with the old password. + new_connection = None + try: + kwargs = controller.connection().connect_params() + kwargs['username'] = username + kwargs['password'] = 'password' + new_connection = await Connection.connect(**kwargs) + except JujuAPIError: + pass + finally: + # No connection with old password + assert new_connection is None + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_grant_revoke(event_loop): + async with base.CleanController() as controller: + username = 'test-grant{}'.format(uuid.uuid4()) + user = await controller.add_user(username) + await user.grant('superuser') + assert user.access == 'superuser' + fresh = await controller.get_user(username) # fetch fresh copy + assert fresh.access == 'superuser' + await user.grant('login') # already has 'superuser', so no-op + assert user.access == 'superuser' + fresh = await controller.get_user(username) # fetch fresh copy + assert fresh.access == 'superuser' + await user.revoke() + assert user.access == '' + fresh = await controller.get_user(username) # fetch fresh copy + assert fresh.access == '' + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_list_models(event_loop): + async with base.CleanController() as controller: + async with base.CleanModel() as model: + result = await controller.list_models() + assert model.info.name in result + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_get_model(event_loop): + async with base.CleanController() as controller: + by_name, by_uuid = None, None + model_name = 'test-{}'.format(uuid.uuid4()) + model = await controller.add_model(model_name) + model_uuid = model.info.uuid + await model.disconnect() + try: + by_name = await controller.get_model(model_name) + by_uuid = await controller.get_model(model_uuid) + assert by_name.info.name == model_name + assert by_name.info.uuid == model_uuid + assert by_uuid.info.name == model_name + assert by_uuid.info.uuid == model_uuid + finally: + if by_name: + await by_name.disconnect() + if by_uuid: + await by_uuid.disconnect() + await controller.destroy_model(model_name) + + +async def _wait_for_model(controller, model_name): + while model_name not in await controller.list_models(): + await asyncio.sleep(0.5, loop=controller.loop) + + +async def _wait_for_model_gone(controller, model_name): + while model_name in await controller.list_models(): + await asyncio.sleep(0.5, loop=controller.loop) + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_destroy_model_by_name(event_loop): + async with base.CleanController() as controller: + model_name = 'test-{}'.format(uuid.uuid4()) + model = await controller.add_model(model_name) + await model.disconnect() + await asyncio.wait_for(_wait_for_model(controller, + model_name), + timeout=60) + await controller.destroy_model(model_name) + await asyncio.wait_for(_wait_for_model_gone(controller, + model_name), + timeout=60) + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_add_destroy_model_by_uuid(event_loop): + async with base.CleanController() as controller: + model_name = 'test-{}'.format(uuid.uuid4()) + model = await controller.add_model(model_name) + model_uuid = model.info.uuid + await model.disconnect() + await asyncio.wait_for(_wait_for_model(controller, + model_name), + timeout=60) + await controller.destroy_model(model_uuid) + await asyncio.wait_for(_wait_for_model_gone(controller, + model_name), + timeout=60) + + +# this test must be run serially because it modifies the login password +@pytest.mark.serial +@base.bootstrapped +@pytest.mark.asyncio +async def test_macaroon_auth(event_loop): + jujudata = FileJujuData() + account = jujudata.accounts()[jujudata.current_controller()] + with base.patch_file('~/.local/share/juju/accounts.yaml'): + if 'password' in account: + # force macaroon auth by "changing" password to current password + result = subprocess.run( + ['juju', 'change-user-password'], + input='{0}\n{0}\n'.format(account['password']), + universal_newlines=True, + stderr=subprocess.PIPE) + assert result.returncode == 0, ('Failed to change password: ' + '{}'.format(result.stderr)) + controller = Controller() + try: + await controller.connect() + assert controller.is_connected() + finally: + if controller.is_connected(): + await controller.disconnect() + async with base.CleanModel(): + pass # create and login to model works diff --git a/modules/libjuju/tests/integration/test_errors.py b/modules/libjuju/tests/integration/test_errors.py new file mode 100644 index 0000000..b10dd06 --- /dev/null +++ b/modules/libjuju/tests/integration/test_errors.py @@ -0,0 +1,68 @@ +import pytest + +from .. import base + +MB = 1 +GB = 1024 + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_juju_api_error(event_loop): + ''' + Verify that we raise a JujuAPIError for responses with an error in + a top level key (for completely invalid requests). + + ''' + from juju.errors import JujuAPIError + + async with base.CleanModel() as model: + with pytest.raises(JujuAPIError): + await model.add_machine(constraints={'mem': 'foo'}) + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_juju_error_in_results_list(event_loop): + ''' + Replicate the code that caused + https://github.com/juju/python-libjuju/issues/67, and verify that + we get a JujuError instead of passing silently by the failure. + + (We don't raise a JujuAPIError, because the request isn't + completely invalid -- it's just passing a tag that doesn't exist.) + + This also verifies that we will raise a JujuError any time there + is an error in one of a list of results. + + ''' + from juju.errors import JujuError + from juju.client import client + + async with base.CleanModel() as model: + ann_facade = client.AnnotationsFacade.from_connection(model.connection()) + + ann = client.EntityAnnotations( + entity='badtag', + annotations={'gui-x': '1', 'gui-y': '1'}, + ) + with pytest.raises(JujuError): + return await ann_facade.Set([ann]) + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_juju_error_in_result(event_loop): + ''' + Verify that we raise a JujuError when appropraite when we are + looking at a single result coming back. + + ''' + from juju.errors import JujuError + from juju.client import client + + async with base.CleanModel() as model: + app_facade = client.ApplicationFacade.from_connection(model.connection()) + + with pytest.raises(JujuError): + return await app_facade.GetCharmURL('foo') diff --git a/modules/libjuju/tests/integration/test_macaroon_auth.py b/modules/libjuju/tests/integration/test_macaroon_auth.py new file mode 100644 index 0000000..9911c41 --- /dev/null +++ b/modules/libjuju/tests/integration/test_macaroon_auth.py @@ -0,0 +1,108 @@ +import logging +import os + +import macaroonbakery.bakery as bakery +import macaroonbakery.httpbakery as httpbakery +import macaroonbakery.httpbakery.agent as agent +from juju.errors import JujuAPIError +from juju.model import Model + +import pytest + +from .. import base + +log = logging.getLogger(__name__) + + +@base.bootstrapped +@pytest.mark.asyncio +@pytest.mark.xfail +async def test_macaroon_auth(event_loop): + auth_info, username = agent_auth_info() + # Create a bakery client that can do agent authentication. + client = httpbakery.Client( + key=auth_info.key, + interaction_methods=[agent.AgentInteractor(auth_info)], + ) + + async with base.CleanModel(bakery_client=client) as m: + async with await m.get_controller() as c: + await c.grant_model(username, m.info.uuid, 'admin') + async with Model( + jujudata=NoAccountsJujuData(m._connector.jujudata), + bakery_client=client, + ): + pass + + +@base.bootstrapped +@pytest.mark.asyncio +@pytest.mark.xfail +async def test_macaroon_auth_with_bad_key(event_loop): + auth_info, username = agent_auth_info() + # Use a random key rather than the correct key. + auth_info = auth_info._replace(key=bakery.generate_key()) + # Create a bakery client can do agent authentication. + client = httpbakery.Client( + key=auth_info.key, + interaction_methods=[agent.AgentInteractor(auth_info)], + ) + + async with base.CleanModel(bakery_client=client) as m: + async with await m.get_controller() as c: + await c.grant_model(username, m.info.uuid, 'admin') + try: + async with Model( + jujudata=NoAccountsJujuData(m._connector.jujudata), + bakery_client=client, + ): + pytest.fail('Should not be able to connect with invalid key') + except httpbakery.BakeryException: + # We're expecting this because we're using the + # wrong key. + pass + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_macaroon_auth_with_unauthorized_user(event_loop): + auth_info, username = agent_auth_info() + # Create a bakery client can do agent authentication. + client = httpbakery.Client( + key=auth_info.key, + interaction_methods=[agent.AgentInteractor(auth_info)], + ) + async with base.CleanModel(bakery_client=client) as m: + # Note: no grant of rights to the agent user. + try: + async with Model( + jujudata=NoAccountsJujuData(m._connector.jujudata), + bakery_client=client, + ): + pytest.fail('Should not be able to connect without grant') + except (JujuAPIError, httpbakery.DischargeError): + # We're expecting this because we're using the + # wrong user name. + pass + + +def agent_auth_info(): + agent_data = os.environ.get('TEST_AGENTS') + if agent_data is None: + pytest.skip('skipping macaroon_auth because no TEST_AGENTS ' + 'environment variable is set') + auth_info = agent.read_auth_info(agent_data) + if len(auth_info.agents) != 1: + raise Exception('TEST_AGENTS agent data requires exactly one agent') + return auth_info, auth_info.agents[0].username + + +class NoAccountsJujuData: + def __init__(self, jujudata): + self.__jujudata = jujudata + + def __getattr__(self, name): + return getattr(self.__jujudata, name) + + def accounts(self): + return {} diff --git a/modules/libjuju/tests/integration/test_machine.py b/modules/libjuju/tests/integration/test_machine.py new file mode 100644 index 0000000..070208a --- /dev/null +++ b/modules/libjuju/tests/integration/test_machine.py @@ -0,0 +1,65 @@ +import asyncio +from tempfile import NamedTemporaryFile + +import pytest + +from .. import base + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_status(event_loop): + async with base.CleanModel() as model: + await model.deploy( + 'ubuntu-0', + application_name='ubuntu', + series='trusty', + channel='stable', + ) + + await asyncio.wait_for( + model.block_until(lambda: len(model.machines)), + timeout=240) + machine = model.machines['0'] + + assert machine.status in ('allocating', 'pending') + assert machine.agent_status == 'pending' + assert not machine.agent_version + + # there is some inconsistency in the capitalization of status_message + # between different providers + await asyncio.wait_for( + model.block_until( + lambda: (machine.status == 'running' and + machine.status_message.lower() == 'running' and + machine.agent_status == 'started')), + timeout=480) + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_scp(event_loop): + # ensure that asyncio.subprocess will work; + try: + asyncio.get_child_watcher().attach_loop(event_loop) + except RuntimeError: + pytest.skip('test_scp will always fail outside of MainThread') + async with base.CleanModel() as model: + await model.add_machine() + await asyncio.wait_for( + model.block_until(lambda: model.machines), + timeout=240) + machine = model.machines['0'] + await asyncio.wait_for( + model.block_until(lambda: (machine.status == 'running' and + machine.agent_status == 'started')), + timeout=480) + + with NamedTemporaryFile() as f: + f.write(b'testcontents') + f.flush() + await machine.scp_to(f.name, 'testfile', scp_opts='-p') + + with NamedTemporaryFile() as f: + await machine.scp_from('testfile', f.name, scp_opts='-p') + assert f.read() == b'testcontents' diff --git a/modules/libjuju/tests/integration/test_model.py b/modules/libjuju/tests/integration/test_model.py new file mode 100644 index 0000000..58766b4 --- /dev/null +++ b/modules/libjuju/tests/integration/test_model.py @@ -0,0 +1,485 @@ +import asyncio +import mock +from concurrent.futures import ThreadPoolExecutor +from pathlib import Path +import paramiko + +from juju.client.client import ConfigValue, ApplicationFacade +from juju.model import Model, ModelObserver +from juju.utils import block_until, run_with_interrupt +from juju.errors import JujuError + +import os +import pylxd +import time +import uuid + +import pytest + +from .. import base + + +MB = 1 +GB = 1024 +SSH_KEY = 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsYMJGNGG74HAJha3n2CFmWYsOOaORnJK6VqNy86pj0MIpvRXBzFzVy09uPQ66GOQhTEoJHEqE77VMui7+62AcMXT+GG7cFHcnU8XVQsGM6UirCcNyWNysfiEMoAdZScJf/GvoY87tMEszhZIUV37z8PUBx6twIqMdr31W1J0IaPa+sV6FEDadeLaNTvancDcHK1zuKsL39jzAg7+LYjKJfEfrsQP+lj/EQcjtKqlhVS5kzsJVfx8ZEd0xhW5G7N6bCdKNalS8mKCMaBXJpijNQ82AiyqCIDCRrre2To0/i7pTjRiL0U9f9mV3S4NJaQaokR050w/ZLySFf6F7joJT mathijs@Qrama-Mathijs' # noqa + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_deploy_local_bundle_dir(event_loop): + tests_dir = Path(__file__).absolute().parent.parent + bundle_path = tests_dir / 'bundle' + mini_bundle_file_path = bundle_path / 'mini-bundle.yaml' + + async with base.CleanModel() as model: + await model.deploy(str(bundle_path)) + await model.deploy(str(mini_bundle_file_path)) + + wordpress = model.applications.get('wordpress') + mysql = model.applications.get('mysql') + assert wordpress and mysql + await block_until(lambda: (len(wordpress.units) == 1 and + len(mysql.units) == 1), + timeout=60 * 4) + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_deploy_local_bundle_file(event_loop): + tests_dir = Path(__file__).absolute().parent.parent + bundle_path = tests_dir / 'bundle' + mini_bundle_file_path = bundle_path / 'mini-bundle.yaml' + + async with base.CleanModel() as model: + await model.deploy(str(mini_bundle_file_path)) + + dummy_sink = model.applications.get('dummy-sink') + dummy_subordinate = model.applications.get('dummy-subordinate') + assert dummy_sink and dummy_subordinate + await block_until(lambda: (len(dummy_sink.units) == 1 and + len(dummy_subordinate.units) == 1), + timeout=60 * 4) + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_deploy_invalid_bundle(event_loop): + tests_dir = Path(__file__).absolute().parent.parent + bundle_path = tests_dir / 'bundle' / 'invalid.yaml' + async with base.CleanModel() as model: + with pytest.raises(JujuError): + await model.deploy(str(bundle_path)) + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_deploy_local_charm(event_loop): + from pathlib import Path + tests_dir = Path(__file__).absolute().parent.parent + charm_path = tests_dir / 'charm' + + async with base.CleanModel() as model: + await model.deploy(str(charm_path)) + assert 'charm' in model.applications + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_deploy_invalid_bundle(event_loop): + tests_dir = Path(__file__).absolute().parent.parent + bundle_path = tests_dir / 'bundle' / 'invalid.yaml' + async with base.CleanModel() as model: + with pytest.raises(JujuError): + await model.deploy(str(bundle_path)) + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_deploy_local_charm(event_loop): + from pathlib import Path + tests_dir = Path(__file__).absolute().parent.parent + charm_path = tests_dir / 'charm' + + async with base.CleanModel() as model: + await model.deploy(str(charm_path)) + assert 'charm' in model.applications + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_deploy_bundle(event_loop): + async with base.CleanModel() as model: + await model.deploy('bundle/wiki-simple') + + for app in ('wiki', 'mysql'): + assert app in model.applications + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_deploy_channels_revs(event_loop): + async with base.CleanModel() as model: + charm = 'cs:~johnsca/libjuju-test' + stable = await model.deploy(charm, 'a1') + edge = await model.deploy(charm, 'a2', channel='edge') + rev = await model.deploy(charm + '-2', 'a3') + + assert [a.charm_url for a in (stable, edge, rev)] == [ + 'cs:~johnsca/libjuju-test-1', + 'cs:~johnsca/libjuju-test-2', + 'cs:~johnsca/libjuju-test-2', + ] + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_add_machine(event_loop): + from juju.machine import Machine + + async with base.CleanModel() as model: + # add a new default machine + machine1 = await model.add_machine() + + # add a machine with constraints, disks, and series + machine2 = await model.add_machine( + constraints={ + 'mem': 256 * MB, + }, + disks=[{ + 'pool': 'rootfs', + 'size': 10 * GB, + 'count': 1, + }], + series='xenial', + ) + + # add a lxd container to machine2 + machine3 = await model.add_machine( + 'lxd:{}'.format(machine2.id)) + + for m in (machine1, machine2, machine3): + assert isinstance(m, Machine) + + assert len(model.machines) == 3 + + await machine3.destroy(force=True) + await machine2.destroy(force=True) + res = await machine1.destroy(force=True) + + assert res is None + assert len(model.machines) == 0 + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_add_manual_machine_ssh(event_loop): + + # Verify controller is localhost + async with base.CleanController() as controller: + cloud = await controller.get_cloud() + if cloud != "localhost": + pytest.skip('Skipping because test requires lxd.') + + async with base.CleanModel() as model: + private_key_path = os.path.expanduser( + "~/.local/share/juju/ssh/juju_id_rsa" + ) + public_key_path = os.path.expanduser( + "~/.local/share/juju/ssh/juju_id_rsa.pub" + ) + + # connect using the local unix socket + client = pylxd.Client() + + test_name = "test-{}-add-manual-machine-ssh".format( + uuid.uuid4().hex[-4:] + ) + + # create profile w/cloud-init and juju ssh key + public_key = "" + with open(public_key_path, "r") as f: + public_key = f.readline() + + profile = client.profiles.create( + test_name, + config={'user.user-data': '#cloud-config\n' + 'ssh_authorized_keys:\n' + '- {}'.format(public_key)}, + devices={ + 'root': {'path': '/', 'pool': 'default', 'type': 'disk'}, + 'eth0': { + 'nictype': 'bridged', + 'parent': 'lxdbr0', + 'type': 'nic' + } + } + ) + + # create lxc machine + config = { + 'name': test_name, + 'source': { + 'type': 'image', + 'alias': 'xenial', + 'mode': 'pull', + 'protocol': 'simplestreams', + 'server': 'https://cloud-images.ubuntu.com/releases', + }, + 'profiles': [test_name], + } + container = client.containers.create(config, wait=True) + container.start(wait=True) + + def wait_for_network(container, timeout=30): + """Wait for eth0 to have an ipv4 address.""" + starttime = time.time() + while(time.time() < starttime + timeout): + time.sleep(1) + if 'eth0' in container.state().network: + addresses = container.state().network['eth0']['addresses'] + if len(addresses) > 0: + if addresses[0]['family'] == 'inet': + return addresses[0] + return None + + host = wait_for_network(container) + assert host, 'Failed to get address for machine' + + # HACK: We need to give sshd a chance to bind to the interface, + # and pylxd's container.execute seems to be broken and fails and/or + # hangs trying to properly check if the service is up. + time.sleep(5) + + for attempt in range(1, 4): + try: + # add a new manual machine + machine1 = await model.add_machine(spec='ssh:{}@{}:{}'.format( + "ubuntu", + host['address'], + private_key_path, + )) + except paramiko.ssh_exception.NoValidConnectionsError: + if attempt == 3: + raise + # retry the ssh connection a few times if it fails + time.sleep(attempt * 5) + else: + break + + assert len(model.machines) == 1 + + res = await machine1.destroy(force=True) + + assert res is None + assert len(model.machines) == 0 + + container.stop(wait=True) + container.delete(wait=True) + + profile.delete() + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_relate(event_loop): + from juju.relation import Relation + + async with base.CleanModel() as model: + await model.deploy( + 'ubuntu', + application_name='ubuntu', + series='trusty', + channel='stable', + ) + await model.deploy( + 'nrpe', + application_name='nrpe', + series='trusty', + channel='stable', + # subordinates must be deployed without units + num_units=0, + ) + + relation_added = asyncio.Event() + timeout = asyncio.Event() + + class TestObserver(ModelObserver): + async def on_relation_add(self, delta, old, new, model): + if set(new.key.split()) == {'nrpe:general-info', + 'ubuntu:juju-info'}: + relation_added.set() + event_loop.call_later(2, timeout.set) + + model.add_observer(TestObserver()) + + real_app_facade = ApplicationFacade.from_connection(model.connection()) + mock_app_facade = mock.MagicMock() + + async def mock_AddRelation(*args): + # force response delay from AddRelation to test race condition + # (see https://github.com/juju/python-libjuju/issues/191) + result = await real_app_facade.AddRelation(*args) + await relation_added.wait() + return result + + mock_app_facade.AddRelation = mock_AddRelation + + with mock.patch.object(ApplicationFacade, 'from_connection', + return_value=mock_app_facade): + my_relation = await run_with_interrupt(model.add_relation( + 'ubuntu', + 'nrpe', + ), timeout, loop=event_loop) + + assert isinstance(my_relation, Relation) + + +async def _deploy_in_loop(new_loop, model_name, jujudata): + new_model = Model(new_loop, jujudata=jujudata) + await new_model.connect(model_name) + try: + await new_model.deploy('cs:xenial/ubuntu') + assert 'ubuntu' in new_model.applications + finally: + await new_model.disconnect() + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_explicit_loop_threaded(event_loop): + async with base.CleanModel() as model: + model_name = model.info.name + new_loop = asyncio.new_event_loop() + with ThreadPoolExecutor(1) as executor: + f = executor.submit( + new_loop.run_until_complete, + _deploy_in_loop(new_loop, + model_name, + model._connector.jujudata)) + f.result() + await model._wait_for_new('application', 'ubuntu') + assert 'ubuntu' in model.applications + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_store_resources_charm(event_loop): + async with base.CleanModel() as model: + ghost = await model.deploy('cs:ghost-19') + assert 'ghost' in model.applications + terminal_statuses = ('active', 'error', 'blocked') + await model.block_until( + lambda: ( + len(ghost.units) > 0 and + ghost.units[0].workload_status in terminal_statuses) + ) + # ghost will go in to blocked (or error, for older + # charm revs) if the resource is missing + assert ghost.units[0].workload_status == 'active' + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_store_resources_bundle(event_loop): + async with base.CleanModel() as model: + bundle = str(Path(__file__).parent / 'bundle') + await model.deploy(bundle) + assert 'ghost' in model.applications + ghost = model.applications['ghost'] + terminal_statuses = ('active', 'error', 'blocked') + await model.block_until( + lambda: ( + len(ghost.units) > 0 and + ghost.units[0].workload_status in terminal_statuses) + ) + # ghost will go in to blocked (or error, for older + # charm revs) if the resource is missing + assert ghost.units[0].workload_status == 'active' + resources = await ghost.get_resources() + assert resources['ghost-stable'].revision >= 12 + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_store_resources_bundle_revs(event_loop): + async with base.CleanModel() as model: + bundle = str(Path(__file__).parent / 'bundle/bundle-resource-rev.yaml') + await model.deploy(bundle) + assert 'ghost' in model.applications + ghost = model.applications['ghost'] + terminal_statuses = ('active', 'error', 'blocked') + await model.block_until( + lambda: ( + len(ghost.units) > 0 and + ghost.units[0].workload_status in terminal_statuses) + ) + # ghost will go in to blocked (or error, for older + # charm revs) if the resource is missing + assert ghost.units[0].workload_status == 'active' + resources = await ghost.get_resources() + assert resources['ghost-stable'].revision == 11 + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_ssh_key(event_loop): + async with base.CleanModel() as model: + await model.add_ssh_key('admin', SSH_KEY) + result = await model.get_ssh_key(True) + result = result.serialize()['results'][0].serialize()['result'] + assert SSH_KEY in result + await model.remove_ssh_key('admin', SSH_KEY) + result = await model.get_ssh_key(True) + result = result.serialize()['results'][0].serialize()['result'] + assert result is None + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_get_machines(event_loop): + async with base.CleanModel() as model: + result = await model.get_machines() + assert isinstance(result, list) + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_watcher_reconnect(event_loop): + async with base.CleanModel() as model: + await model.connection().ws.close() + await block_until(model.is_connected, timeout=3) + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_config(event_loop): + async with base.CleanModel() as model: + await model.set_config({ + 'extra-info': 'booyah', + 'test-mode': ConfigValue(value=True), + }) + result = await model.get_config() + assert 'extra-info' in result + assert result['extra-info'].source == 'model' + assert result['extra-info'].value == 'booyah' + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_set_constraints(event_loop): + async with base.CleanModel() as model: + await model.set_constraints({'cpu-power': 1}) + cons = await model.get_constraints() + assert cons['cpu_power'] == 1 + +# @base.bootstrapped +# @pytest.mark.asyncio +# async def test_grant(event_loop) +# async with base.CleanController() as controller: +# await controller.add_user('test-model-grant') +# await controller.grant('test-model-grant', 'superuser') +# async with base.CleanModel() as model: +# await model.grant('test-model-grant', 'admin') +# assert model.get_user('test-model-grant')['access'] == 'admin' +# await model.grant('test-model-grant', 'login') +# assert model.get_user('test-model-grant')['access'] == 'login' diff --git a/modules/libjuju/tests/integration/test_unit.py b/modules/libjuju/tests/integration/test_unit.py new file mode 100644 index 0000000..bb34969 --- /dev/null +++ b/modules/libjuju/tests/integration/test_unit.py @@ -0,0 +1,99 @@ +import asyncio +from tempfile import NamedTemporaryFile + +import pytest + +from .. import base + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_run(event_loop): + from juju.action import Action + + async with base.CleanModel() as model: + app = await model.deploy( + 'ubuntu-0', + application_name='ubuntu', + series='trusty', + channel='stable', + ) + + for unit in app.units: + action = await unit.run('unit-get public-address') + assert isinstance(action, Action) + assert 'Stdout' in action.results + break + + for unit in app.units: + action = await unit.run('sleep 1', timeout=0.5) + assert isinstance(action, Action) + assert action.status == 'failed' + break + + for unit in app.units: + action = await unit.run('sleep 0.5', timeout=2) + assert isinstance(action, Action) + assert action.status == 'completed' + break + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_run_action(event_loop): + async def run_action(unit): + # unit.run() returns a juju.action.Action instance + action = await unit.run_action('add-repo', repo='myrepo') + # wait for the action to complete + return await action.wait() + + async with base.CleanModel() as model: + app = await model.deploy( + 'git', + application_name='git', + series='trusty', + channel='stable', + ) + + for unit in app.units: + action = await run_action(unit) + assert action.results == {'dir': '/var/git/myrepo.git'} + out = await model.get_action_output(action.entity_id, wait=5) + assert out == {'dir': '/var/git/myrepo.git'} + status = await model.get_action_status(uuid_or_prefix=action.entity_id) + assert status[action.entity_id] == 'completed' + break + + +@base.bootstrapped +@pytest.mark.asyncio +async def test_scp(event_loop): + # ensure that asyncio.subprocess will work; + try: + asyncio.get_child_watcher().attach_loop(event_loop) + except RuntimeError: + pytest.skip('test_scp will always fail outside of MainThread') + async with base.CleanModel() as model: + app = await model.deploy('ubuntu') + + await asyncio.wait_for( + model.block_until(lambda: app.units), + timeout=60) + unit = app.units[0] + await asyncio.wait_for( + model.block_until(lambda: unit.machine), + timeout=60) + machine = unit.machine + await asyncio.wait_for( + model.block_until(lambda: (machine.status == 'running' and + machine.agent_status == 'started')), + timeout=480) + + with NamedTemporaryFile() as f: + f.write(b'testcontents') + f.flush() + await unit.scp_to(f.name, 'testfile') + + with NamedTemporaryFile() as f: + await unit.scp_from('testfile', f.name) + assert f.read() == b'testcontents' diff --git a/modules/libjuju/tests/unit/__init__.py b/modules/libjuju/tests/unit/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/modules/libjuju/tests/unit/test_client.py b/modules/libjuju/tests/unit/test_client.py new file mode 100644 index 0000000..1d18bf9 --- /dev/null +++ b/modules/libjuju/tests/unit/test_client.py @@ -0,0 +1,26 @@ +""" +Tests for generated client code + +""" + +import mock +from juju.client import client + + +def test_basics(): + assert client.CLIENTS + for i in range(1, 5): # Assert versions 1-4 in client dict + assert str(i) in client.CLIENTS + + +def test_from_connection(): + connection = mock.Mock() + connection.facades = {"Action": 2} + action_facade = client.ActionFacade.from_connection(connection) + assert action_facade + + +def test_to_json(): + uml = client.UserModelList([client.UserModel()]) + assert uml.to_json() == ('{"user-models": [{"last-connection": null, ' + '"model": null}]}') diff --git a/modules/libjuju/tests/unit/test_connection.py b/modules/libjuju/tests/unit/test_connection.py new file mode 100644 index 0000000..0925d84 --- /dev/null +++ b/modules/libjuju/tests/unit/test_connection.py @@ -0,0 +1,65 @@ +import asyncio +import json +from collections import deque + +import mock +from juju.client.connection import Connection +from websockets.exceptions import ConnectionClosed + +import pytest + +from .. import base + + +class WebsocketMock: + def __init__(self, responses): + super().__init__() + self.responses = deque(responses) + self.open = True + + async def send(self, message): + pass + + async def recv(self): + if not self.responses: + await asyncio.sleep(1) # delay to give test time to finish + raise ConnectionClosed(0, 'ran out of responses') + return json.dumps(self.responses.popleft()) + + async def close(self): + self.open = False + + +@pytest.mark.asyncio +async def test_out_of_order(event_loop): + ws = WebsocketMock([ + {'request-id': 1}, + {'request-id': 3}, + {'request-id': 2}, + ]) + expected_responses = [ + {'request-id': 1}, + {'request-id': 2}, + {'request-id': 3}, + ] + minimal_facades = [{'name': 'Pinger', 'versions': [1]}] + con = None + try: + with \ + mock.patch('websockets.connect', base.AsyncMock(return_value=ws)), \ + mock.patch( + 'juju.client.connection.Connection.login', + base.AsyncMock(return_value={'response': { + 'facades': minimal_facades, + }}), + ), \ + mock.patch('juju.client.connection.Connection._get_ssl'), \ + mock.patch('juju.client.connection.Connection._pinger', base.AsyncMock()): + con = await Connection.connect('0.1.2.3:999') + actual_responses = [] + for i in range(3): + actual_responses.append(await con.rpc({'version': 1})) + assert actual_responses == expected_responses + finally: + if con: + await con.close() diff --git a/modules/libjuju/tests/unit/test_constraints.py b/modules/libjuju/tests/unit/test_constraints.py new file mode 100644 index 0000000..3c52090 --- /dev/null +++ b/modules/libjuju/tests/unit/test_constraints.py @@ -0,0 +1,57 @@ +# +# Test our constraints parser +# + +import unittest + +from juju import constraints + + +class TestConstraints(unittest.TestCase): + + def test_mem_regex(self): + m = constraints.MEM + self.assertTrue(m.match("10G")) + self.assertTrue(m.match("1G")) + self.assertFalse(m.match("1Gb")) + self.assertFalse(m.match("a1G")) + self.assertFalse(m.match("1000")) + + def test_normalize_key(self): + _ = constraints.normalize_key + + self.assertEqual(_("test-key"), "test_key") + self.assertEqual(_("test-key "), "test_key") + self.assertEqual(_(" test-key"), "test_key") + self.assertEqual(_("TestKey"), "test_key") + self.assertEqual(_("testKey"), "test_key") + + def test_normalize_val(self): + _ = constraints.normalize_value + + self.assertEqual(_("10G"), 10 * 1024) + self.assertEqual(_("10M"), 10) + self.assertEqual(_("10"), 10) + self.assertEqual(_("foo,bar"), "foo,bar") + + def test_normalize_list_val(self): + _ = constraints.normalize_list_value + + self.assertEqual(_("foo"), ["foo"]) + self.assertEqual(_("foo,bar"), ["foo", "bar"]) + + def test_parse_constraints(self): + _ = constraints.parse + + self.assertEqual( + _("mem=10G"), + {"mem": 10 * 1024} + ) + + self.assertEqual( + _("mem=10G foo=bar,baz tags=tag1 spaces=space1,space2"), + {"mem": 10 * 1024, + "foo": "bar,baz", + "tags": ["tag1"], + "spaces": ["space1", "space2"]} + ) diff --git a/modules/libjuju/tests/unit/test_controller.py b/modules/libjuju/tests/unit/test_controller.py new file mode 100644 index 0000000..b95b5ee --- /dev/null +++ b/modules/libjuju/tests/unit/test_controller.py @@ -0,0 +1,140 @@ +import asynctest +import mock +from pathlib import Path +from tempfile import NamedTemporaryFile + +from juju.controller import Controller +from juju.client import client + +from .. import base + + +class TestControllerConnect(asynctest.TestCase): + @asynctest.patch('juju.client.connector.Connector.connect_controller') + async def test_no_args(self, mock_connect_controller): + c = Controller() + await c.connect() + mock_connect_controller.assert_called_once_with(None) + + @asynctest.patch('juju.client.connector.Connector.connect_controller') + async def test_with_controller_name(self, mock_connect_controller): + c = Controller() + await c.connect(controller_name='foo') + mock_connect_controller.assert_called_once_with('foo') + + @asynctest.patch('juju.client.connector.Connector.connect') + async def test_with_endpoint_and_no_auth(self, mock_connect): + c = Controller() + with self.assertRaises(TypeError): + await c.connect(endpoint='0.1.2.3:4566') + self.assertEqual(mock_connect.call_count, 0) + + @asynctest.patch('juju.client.connector.Connector.connect') + async def test_with_endpoint_and_userpass(self, mock_connect): + c = Controller() + with self.assertRaises(TypeError): + await c.connect(endpoint='0.1.2.3:4566', username='dummy') + await c.connect(endpoint='0.1.2.3:4566', + username='user', + password='pass') + mock_connect.assert_called_once_with(endpoint='0.1.2.3:4566', + username='user', + password='pass') + + @asynctest.patch('juju.client.connector.Connector.connect') + async def test_with_endpoint_and_bakery_client(self, mock_connect): + c = Controller() + await c.connect(endpoint='0.1.2.3:4566', bakery_client='bakery') + mock_connect.assert_called_once_with(endpoint='0.1.2.3:4566', + bakery_client='bakery') + + @asynctest.patch('juju.client.connector.Connector.connect') + async def test_with_endpoint_and_macaroons(self, mock_connect): + c = Controller() + await c.connect(endpoint='0.1.2.3:4566', + macaroons=['macaroon']) + mock_connect.assert_called_with(endpoint='0.1.2.3:4566', + macaroons=['macaroon']) + await c.connect(endpoint='0.1.2.3:4566', + bakery_client='bakery', + macaroons=['macaroon']) + mock_connect.assert_called_with(endpoint='0.1.2.3:4566', + bakery_client='bakery', + macaroons=['macaroon']) + + @asynctest.patch('juju.client.connector.Connector.connect_controller') + @asynctest.patch('juju.client.connector.Connector.connect') + async def test_with_posargs(self, mock_connect, mock_connect_controller): + c = Controller() + await c.connect('foo') + mock_connect_controller.assert_called_once_with('foo') + with self.assertRaises(TypeError): + await c.connect('endpoint', 'user') + await c.connect('endpoint', 'user', 'pass') + mock_connect.assert_called_once_with(endpoint='endpoint', + username='user', + password='pass') + await c.connect('endpoint', 'user', 'pass', 'cacert', 'bakery', + 'macaroons', 'loop', 'max_frame_size') + mock_connect.assert_called_with(endpoint='endpoint', + username='user', + password='pass', + cacert='cacert', + bakery_client='bakery', + macaroons='macaroons', + loop='loop', + max_frame_size='max_frame_size') + + @asynctest.patch('juju.client.client.CloudFacade') + async def test_file_cred_v2(self, mock_cf): + with NamedTemporaryFile() as tempfile: + tempfile.close() + temppath = Path(tempfile.name) + temppath.write_text('cred-test') + cred = client.CloudCredential(auth_type='jsonfile', + attrs={'file': tempfile.name}) + jujudata = mock.MagicMock() + c = Controller(jujudata=jujudata) + c._connector = base.AsyncMock() + up_creds = base.AsyncMock() + cloud_facade = mock_cf.from_connection() + cloud_facade.version = 2 + cloud_facade.UpdateCredentials = up_creds + await c.add_credential( + name='name', + credential=cred, + cloud='cloud', + owner='owner', + ) + assert up_creds.called + new_cred = up_creds.call_args[0][0][0].credential + assert cred.attrs['file'] == tempfile.name + assert new_cred.attrs['file'] == 'cred-test' + + @asynctest.patch('juju.client.client.CloudFacade') + async def test_file_cred_v3(self, mock_cf): + with NamedTemporaryFile() as tempfile: + tempfile.close() + temppath = Path(tempfile.name) + temppath.write_text('cred-test') + cred = client.CloudCredential(auth_type='jsonfile', + attrs={'file': tempfile.name}) + jujudata = mock.MagicMock() + c = Controller(jujudata=jujudata) + c._connector = base.AsyncMock() + up_creds = base.AsyncMock() + cloud_facade = mock_cf.from_connection() + cloud_facade.version = 3 + cloud_facade.UpdateCredentialsCheckModels = up_creds + await c.add_credential( + name='name', + credential=cred, + cloud='cloud', + owner='owner', + force=True, + ) + assert up_creds.called + assert up_creds.call_args[1]['force'] + new_cred = up_creds.call_args[1]['credentials'][0].credential + assert cred.attrs['file'] == tempfile.name + assert new_cred.attrs['file'] == 'cred-test' diff --git a/modules/libjuju/tests/unit/test_gocookies.py b/modules/libjuju/tests/unit/test_gocookies.py new file mode 100644 index 0000000..033a0e9 --- /dev/null +++ b/modules/libjuju/tests/unit/test_gocookies.py @@ -0,0 +1,244 @@ +""" +Tests for the gocookies code. +""" +import os +import shutil +import tempfile +import unittest +import urllib.request + +import pyrfc3339 +from juju.client.gocookies import GoCookieJar + +# cookie_content holds the JSON contents of a Go-produced +# cookie file (reformatted so it's not all on one line but +# otherwise unchanged). +cookie_content = """ +[ + { + "CanonicalHost": "bar.com", + "Creation": "2017-11-17T08:53:55.088820092Z", + "Domain": "bar.com", + "Expires": "2345-11-15T18:16:08Z", + "HostOnly": true, + "HttpOnly": false, + "LastAccess": "2017-11-17T08:53:55.088822562Z", + "Name": "bar", + "Path": "/", + "Persistent": true, + "Secure": false, + "Updated": "2017-11-17T08:53:55.088822562Z", + "Value": "bar-value" + }, + { + "CanonicalHost": "x.foo.com", + "Creation": "2017-11-17T08:53:55.088814857Z", + "Domain": "x.foo.com", + "Expires": "2345-11-15T18:16:05Z", + "HostOnly": true, + "HttpOnly": false, + "LastAccess": "2017-11-17T08:53:55.088884015Z", + "Name": "foo", + "Path": "/path", + "Persistent": true, + "Secure": false, + "Updated": "2017-11-17T08:53:55.088814857Z", + "Value": "foo-path-value" + }, + { + "CanonicalHost": "x.foo.com", + "Creation": "2017-11-17T08:53:55.088814857Z", + "Domain": "foo.com", + "Expires": "2345-11-15T18:16:06Z", + "HostOnly": false, + "HttpOnly": false, + "LastAccess": "2017-11-17T08:53:55.088919437Z", + "Name": "foo4", + "Path": "/path", + "Persistent": true, + "Secure": false, + "Updated": "2017-11-17T08:53:55.088814857Z", + "Value": "foo4-value" + }, + { + "CanonicalHost": "x.foo.com", + "Creation": "2017-11-17T08:53:55.088790709Z", + "Domain": "x.foo.com", + "Expires": "2345-11-15T18:16:01Z", + "HostOnly": true, + "HttpOnly": false, + "LastAccess": "2017-11-17T08:53:55.088884015Z", + "Name": "foo", + "Path": "/", + "Persistent": true, + "Secure": false, + "Updated": "2017-11-17T08:53:55.088790709Z", + "Value": "foo-value" + }, + { + "CanonicalHost": "x.foo.com", + "Creation": "2017-11-17T08:53:55.088790709Z", + "Domain": "foo.com", + "Expires": "2345-11-15T18:16:02Z", + "HostOnly": false, + "HttpOnly": false, + "LastAccess": "2017-11-17T08:53:55.088919437Z", + "Name": "foo1", + "Path": "/", + "Persistent": true, + "Secure": false, + "Updated": "2017-11-17T08:53:55.088790709Z", + "Value": "foo1-value" + }, + { + "CanonicalHost": "x.foo.com", + "Creation": "2017-11-17T08:53:55.088790709Z", + "Domain": "x.foo.com", + "Expires": "2345-11-15T18:16:03Z", + "HostOnly": true, + "HttpOnly": false, + "LastAccess": "2017-11-17T08:53:55.088850252Z", + "Name": "foo2", + "Path": "/", + "Persistent": true, + "Secure": true, + "Updated": "2017-11-17T08:53:55.088790709Z", + "Value": "foo2-value" + }, + { + "CanonicalHost": "x.foo.com", + "Creation": "2017-11-17T08:53:55.088790709Z", + "Domain": "foo.com", + "Expires": "2345-11-15T18:16:04Z", + "HostOnly": false, + "HttpOnly": false, + "LastAccess": "2017-11-17T08:53:55.088919437Z", + "Name": "foo3", + "Path": "/", + "Persistent": true, + "Secure": false, + "Updated": "2017-11-17T08:53:55.088790709Z", + "Value": "foo3-value" + } +] +""" + +# cookie_content_queries holds a set of queries +# that were automatically generated by running +# the queries on the above cookie_content data +# and printing the results. +cookie_content_queries = [ + ('http://x.foo.com', [ + ('foo', 'foo-value'), + ('foo1', 'foo1-value'), + ('foo3', 'foo3-value'), + ]), + ('https://x.foo.com', [ + ('foo', 'foo-value'), + ('foo1', 'foo1-value'), + ('foo2', 'foo2-value'), + ('foo3', 'foo3-value'), + ]), + ('http://arble.foo.com', [ + ('foo1', 'foo1-value'), + ('foo3', 'foo3-value'), + ]), + ('http://arble.com', [ + ]), + ('http://x.foo.com/path/x', [ + ('foo', 'foo-path-value'), + ('foo4', 'foo4-value'), + ('foo', 'foo-value'), + ('foo1', 'foo1-value'), + ('foo3', 'foo3-value'), + ]), + ('http://arble.foo.com/path/x', [ + ('foo4', 'foo4-value'), + ('foo1', 'foo1-value'), + ('foo3', 'foo3-value'), + ]), + ('http://foo.com/path/x', [ + ('foo4', 'foo4-value'), + ('foo1', 'foo1-value'), + ('foo3', 'foo3-value'), + ]), +] + + +class TestGoCookieJar(unittest.TestCase): + def setUp(self): + self.dir = tempfile.mkdtemp() + + def tearDown(self): + shutil.rmtree(self.dir) + + def test_readcookies(self): + jar = self.load_jar(cookie_content) + self.assert_jar_queries(jar, cookie_content_queries) + + def test_roundtrip(self): + jar = self.load_jar(cookie_content) + filename2 = os.path.join(self.dir, 'cookies2') + jar.save(filename=filename2) + jar = GoCookieJar() + jar.load(filename=filename2) + self.assert_jar_queries(jar, cookie_content_queries) + + def test_expiry_time(self): + content = '''[ + { + "CanonicalHost": "bar.com", + "Creation": "2017-11-17T08:53:55.088820092Z", + "Domain": "bar.com", + "Expires": "2345-11-15T18:16:08Z", + "HostOnly": true, + "HttpOnly": false, + "LastAccess": "2017-11-17T08:53:55.088822562Z", + "Name": "bar", + "Path": "/", + "Persistent": true, + "Secure": false, + "Updated": "2017-11-17T08:53:55.088822562Z", + "Value": "bar-value" + } + ]''' + jar = self.load_jar(content) + got_expires = tuple(jar)[0].expires + want_expires = int(pyrfc3339.parse('2345-11-15T18:16:08Z').timestamp()) + self.assertEqual(got_expires, want_expires) + + def load_jar(self, content): + filename = os.path.join(self.dir, 'cookies') + with open(filename, 'x') as f: + f.write(content) + jar = GoCookieJar() + jar.load(filename=filename) + return jar + + def assert_jar_queries(self, jar, queries): + '''Assert that all the given queries (see cookie_content_queries) + are satisfied when run on the given cookie jar. + :param jar CookieJar: the cookie jar to query + :param queries: the queries to run. + ''' + for url, want_cookies in queries: + req = urllib.request.Request(url) + jar.add_cookie_header(req) + # We can't use SimpleCookie to find out what cookies + # have been presented, because SimpleCookie + # only allows one cookie with a given name, + # so we naively parse the cookies ourselves, which + # is OK because we know we don't have to deal + # with any complex cases. + + cookie_header = req.get_header('Cookie') + got_cookies = [] + if cookie_header is not None: + got_cookies = [ + tuple(part.split('=')) + for part in cookie_header.split('; ') + ] + got_cookies.sort() + want_cookies = list(want_cookies) + want_cookies.sort() + self.assertEqual(got_cookies, want_cookies, msg='query {}; got {}; want {}'.format(url, got_cookies, want_cookies)) diff --git a/modules/libjuju/tests/unit/test_loop.py b/modules/libjuju/tests/unit/test_loop.py new file mode 100644 index 0000000..9043df6 --- /dev/null +++ b/modules/libjuju/tests/unit/test_loop.py @@ -0,0 +1,32 @@ +import asyncio +import unittest + +import juju.loop + + +class TestLoop(unittest.TestCase): + def setUp(self): + # new event loop for each test + policy = asyncio.get_event_loop_policy() + self.loop = policy.new_event_loop() + policy.set_event_loop(self.loop) + + def tearDown(self): + self.loop.close() + + def test_run(self): + assert asyncio.get_event_loop() == self.loop + + async def _test(): + return 'success' + self.assertEqual(juju.loop.run(_test()), 'success') + + def test_run_interrupt(self): + async def _test(): + juju.loop.run._sigint = True + self.assertRaises(KeyboardInterrupt, juju.loop.run, _test()) + + def test_run_exception(self): + async def _test(): + raise ValueError() + self.assertRaises(ValueError, juju.loop.run, _test()) diff --git a/modules/libjuju/tests/unit/test_model.py b/modules/libjuju/tests/unit/test_model.py new file mode 100644 index 0000000..2753d85 --- /dev/null +++ b/modules/libjuju/tests/unit/test_model.py @@ -0,0 +1,264 @@ +import unittest + +import mock + +import asynctest + +from juju.client.jujudata import FileJujuData +from juju.model import Model + + +def _make_delta(entity, type_, data=None): + from juju.client.client import Delta + from juju.delta import get_entity_delta + + delta = Delta([entity, type_, data]) + return get_entity_delta(delta) + + +class TestObserver(unittest.TestCase): + def _make_observer(self, *args): + from juju.model import _Observer + return _Observer(*args) + + def test_cares_about_id(self): + id_ = 'foo' + + o = self._make_observer( + None, None, None, id_, None) + + delta = _make_delta( + 'application', 'change', dict(name=id_)) + + self.assertTrue(o.cares_about(delta)) + + def test_cares_about_type(self): + type_ = 'application' + + o = self._make_observer( + None, type_, None, None, None) + + delta = _make_delta( + type_, 'change', dict(name='foo')) + + self.assertTrue(o.cares_about(delta)) + + def test_cares_about_action(self): + action = 'change' + + o = self._make_observer( + None, None, action, None, None) + + delta = _make_delta( + 'application', action, dict(name='foo')) + + self.assertTrue(o.cares_about(delta)) + + def test_cares_about_predicate(self): + def predicate(delta): + return delta.data.get('fizz') == 'bang' + + o = self._make_observer( + None, None, None, None, predicate) + + delta = _make_delta( + 'application', 'change', dict(fizz='bang')) + + self.assertTrue(o.cares_about(delta)) + + +class TestModelState(unittest.TestCase): + def test_apply_delta(self): + from juju.model import Model + from juju.application import Application + + model = Model() + model._connector = mock.MagicMock() + delta = _make_delta('application', 'add', dict(name='foo')) + + # test add + prev, new = model.state.apply_delta(delta) + self.assertEqual( + len(model.state.state[delta.entity][delta.get_id()]), 1) + self.assertIsNone(prev) + self.assertIsInstance(new, Application) + + # test remove + delta.type = 'remove' + prev, new = model.state.apply_delta(delta) + # length of the entity history deque is now 3: + # - 1 for the first delta + # - 1 for the second delta + # - 1 for the None sentinel appended after the 'remove' + self.assertEqual( + len(model.state.state[delta.entity][delta.get_id()]), 3) + self.assertIsInstance(new, Application) + # new object is falsy because its data is None + self.assertFalse(new) + self.assertIsInstance(prev, Application) + self.assertTrue(prev) + + +def test_get_series(): + from juju.model import Model + model = Model() + entity = { + 'Meta': { + 'supported-series': { + 'SupportedSeries': [ + 'xenial', + 'trusty', + ], + }, + }, + } + assert model._get_series('cs:trusty/ubuntu', entity) == 'trusty' + assert model._get_series('xenial/ubuntu', entity) == 'xenial' + assert model._get_series('~foo/xenial/ubuntu', entity) == 'xenial' + assert model._get_series('~foo/ubuntu', entity) == 'xenial' + assert model._get_series('ubuntu', entity) == 'xenial' + assert model._get_series('cs:ubuntu', entity) == 'xenial' + + +class TestContextManager(asynctest.TestCase): + @asynctest.patch('juju.model.Model.disconnect') + @asynctest.patch('juju.model.Model.connect') + async def test_normal_use(self, mock_connect, mock_disconnect): + from juju.model import Model + + async with Model() as model: + self.assertTrue(isinstance(model, Model)) + + self.assertTrue(mock_connect.called) + self.assertTrue(mock_disconnect.called) + + @asynctest.patch('juju.model.Model.disconnect') + @asynctest.patch('juju.model.Model.connect') + async def test_exception(self, mock_connect, mock_disconnect): + from juju.model import Model + + class SomeException(Exception): + pass + + with self.assertRaises(SomeException): + async with Model(): + raise SomeException() + + self.assertTrue(mock_connect.called) + self.assertTrue(mock_disconnect.called) + + async def test_no_current_connection(self): + from juju.model import Model + from juju.errors import JujuConnectionError + + class NoControllerJujuData(FileJujuData): + def current_controller(self): + return "" + + with self.assertRaises(JujuConnectionError): + async with Model(jujudata=NoControllerJujuData()): + pass + + +@asynctest.patch('juju.model.Model._after_connect') +class TestModelConnect(asynctest.TestCase): + @asynctest.patch('juju.client.connector.Connector.connect_model') + async def test_no_args(self, mock_connect_model, _): + m = Model() + await m.connect() + mock_connect_model.assert_called_once_with(None) + + @asynctest.patch('juju.client.connector.Connector.connect_model') + async def test_with_model_name(self, mock_connect_model, _): + m = Model() + await m.connect(model_name='foo') + mock_connect_model.assert_called_once_with('foo') + + @asynctest.patch('juju.client.connector.Connector.connect_model') + async def test_with_endpoint_but_no_uuid(self, mock_connect_model, _): + m = Model() + with self.assertRaises(TypeError): + await m.connect(endpoint='0.1.2.3:4566') + self.assertEqual(mock_connect_model.call_count, 0) + + @asynctest.patch('juju.client.connector.Connector.connect') + async def test_with_endpoint_and_uuid_no_auth(self, mock_connect, _): + m = Model() + with self.assertRaises(TypeError): + await m.connect(endpoint='0.1.2.3:4566', uuid='some-uuid') + self.assertEqual(mock_connect.call_count, 0) + + @asynctest.patch('juju.client.connector.Connector.connect') + async def test_with_endpoint_and_uuid_with_userpass(self, mock_connect, _): + m = Model() + with self.assertRaises(TypeError): + await m.connect(endpoint='0.1.2.3:4566', + uuid='some-uuid', + username='user') + await m.connect(endpoint='0.1.2.3:4566', + uuid='some-uuid', + username='user', + password='pass') + mock_connect.assert_called_once_with(endpoint='0.1.2.3:4566', + uuid='some-uuid', + username='user', + password='pass') + + @asynctest.patch('juju.client.connector.Connector.connect') + async def test_with_endpoint_and_uuid_with_bakery(self, mock_connect, _): + m = Model() + await m.connect(endpoint='0.1.2.3:4566', + uuid='some-uuid', + bakery_client='bakery') + mock_connect.assert_called_once_with(endpoint='0.1.2.3:4566', + uuid='some-uuid', + bakery_client='bakery') + + @asynctest.patch('juju.client.connector.Connector.connect') + async def test_with_endpoint_and_uuid_with_macaroon(self, mock_connect, _): + m = Model() + with self.assertRaises(TypeError): + await m.connect(endpoint='0.1.2.3:4566', + uuid='some-uuid', + username='user') + await m.connect(endpoint='0.1.2.3:4566', + uuid='some-uuid', + macaroons=['macaroon']) + mock_connect.assert_called_with(endpoint='0.1.2.3:4566', + uuid='some-uuid', + macaroons=['macaroon']) + await m.connect(endpoint='0.1.2.3:4566', + uuid='some-uuid', + bakery_client='bakery', + macaroons=['macaroon']) + mock_connect.assert_called_with(endpoint='0.1.2.3:4566', + uuid='some-uuid', + bakery_client='bakery', + macaroons=['macaroon']) + + @asynctest.patch('juju.client.connector.Connector.connect_model') + @asynctest.patch('juju.client.connector.Connector.connect') + async def test_with_posargs(self, mock_connect, mock_connect_model, _): + m = Model() + await m.connect('foo') + mock_connect_model.assert_called_once_with('foo') + with self.assertRaises(TypeError): + await m.connect('endpoint', 'uuid') + with self.assertRaises(TypeError): + await m.connect('endpoint', 'uuid', 'user') + await m.connect('endpoint', 'uuid', 'user', 'pass') + mock_connect.assert_called_once_with(endpoint='endpoint', + uuid='uuid', + username='user', + password='pass') + await m.connect('endpoint', 'uuid', 'user', 'pass', 'cacert', 'bakery', + 'macaroons', 'loop', 'max_frame_size') + mock_connect.assert_called_with(endpoint='endpoint', + uuid='uuid', + username='user', + password='pass', + cacert='cacert', + bakery_client='bakery', + macaroons='macaroons', + loop='loop', + max_frame_size='max_frame_size') diff --git a/modules/libjuju/tests/unit/test_overrides.py b/modules/libjuju/tests/unit/test_overrides.py new file mode 100644 index 0000000..a5835ff --- /dev/null +++ b/modules/libjuju/tests/unit/test_overrides.py @@ -0,0 +1,76 @@ +from juju.client.overrides import Binary, Number # noqa + +import pytest + + +# test cases ported from: +# https://github.com/juju/version/blob/master/version_test.go +@pytest.mark.parametrize("input,expected", ( + (None, Number(major=0, minor=0, patch=0, tag='', build=0)), + (Number(major=1, minor=0, patch=0), Number(major=1, minor=0, patch=0)), + ({'major': 1, 'minor': 0, 'patch': 0}, Number(major=1, minor=0, patch=0)), + ("0.0.1", Number(major=0, minor=0, patch=1)), + ("0.0.2", Number(major=0, minor=0, patch=2)), + ("0.1.0", Number(major=0, minor=1, patch=0)), + ("0.2.3", Number(major=0, minor=2, patch=3)), + ("1.0.0", Number(major=1, minor=0, patch=0)), + ("10.234.3456", Number(major=10, minor=234, patch=3456)), + ("10.234.3456.1", Number(major=10, minor=234, patch=3456, build=1)), + ("10.234.3456.64", Number(major=10, minor=234, patch=3456, build=64)), + ("10.235.3456", Number(major=10, minor=235, patch=3456)), + ("1.21-alpha1", Number(major=1, minor=21, patch=1, tag="alpha")), + ("1.21-alpha1.1", Number(major=1, minor=21, patch=1, tag="alpha", + build=1)), + ("1.21-alpha10", Number(major=1, minor=21, patch=10, tag="alpha")), + ("1.21.0", Number(major=1, minor=21)), + ("1234567890.2.1", TypeError), + ("0.2..1", TypeError), + ("1.21.alpha1", TypeError), + ("1.21-alpha", TypeError), + ("1.21-alpha1beta", TypeError), + ("1.21-alpha-dev", TypeError), + ("1.21-alpha_dev3", TypeError), + ("1.21-alpha123dev3", TypeError), +)) +def test_number(input, expected): + if expected is TypeError: + with pytest.raises(expected): + Number.from_json(input) + else: + result = Number.from_json(input) + assert result == expected + if isinstance(input, str): + assert result.to_json() == input + + +# test cases ported from: +# https://github.com/juju/version/blob/master/version_test.go +@pytest.mark.parametrize("input,expected", ( + (None, Binary(Number(), None, None)), + (Binary(Number(1), 'trusty', 'amd64'), Binary(Number(1), + 'trusty', 'amd64')), + ({'number': {'major': 1}, + 'series': 'trusty', + 'arch': 'amd64'}, Binary(Number(1), 'trusty', 'amd64')), + ("1.2.3-trusty-amd64", Binary(Number(1, 2, 3, "", 0), + "trusty", "amd64")), + ("1.2.3.4-trusty-amd64", Binary(Number(1, 2, 3, "", 4), + "trusty", "amd64")), + ("1.2-alpha3-trusty-amd64", Binary(Number(1, 2, 3, "alpha", 0), + "trusty", "amd64")), + ("1.2-alpha3.4-trusty-amd64", Binary(Number(1, 2, 3, "alpha", 4), + "trusty", "amd64")), + ("1.2.3", TypeError), + ("1.2-beta1", TypeError), + ("1.2.3--amd64", TypeError), + ("1.2.3-trusty-", TypeError), +)) +def test_binary(input, expected): + if expected is TypeError: + with pytest.raises(expected): + Binary.from_json(input) + else: + result = Binary.from_json(input) + assert result == expected + if isinstance(input, str): + assert result.to_json() == input diff --git a/modules/libjuju/tests/unit/test_placement.py b/modules/libjuju/tests/unit/test_placement.py new file mode 100644 index 0000000..5a933ec --- /dev/null +++ b/modules/libjuju/tests/unit/test_placement.py @@ -0,0 +1,20 @@ +# +# Test our placement helper +# + +import unittest + +from juju import placement + + +class TestPlacement(unittest.TestCase): + + def test_parse_both_specified(self): + res = placement.parse("foo:bar") + self.assertEqual(res[0].scope, "foo") + self.assertEqual(res[0].directive, "bar") + + def test_parse_machine(self): + res = placement.parse("22") + self.assertEqual(res[0].scope, "#") + self.assertEqual(res[0].directive, "22") diff --git a/modules/libjuju/tests/unit/test_registration_string.py b/modules/libjuju/tests/unit/test_registration_string.py new file mode 100644 index 0000000..f4fea44 --- /dev/null +++ b/modules/libjuju/tests/unit/test_registration_string.py @@ -0,0 +1,18 @@ +# +# Test our placement helper +# + +import unittest + +from juju.utils import generate_user_controller_access_token + + +class TestRegistrationString(unittest.TestCase): + def test_generate_user_controller_access_token(self): + controller_name = "localhost-localhost" + endpoints = ["192.168.1.1:17070", "192.168.1.2:17070", "192.168.1.3:17070"] + username = "test-01234" + secret_key = "paNZrqOw51ONk1kTER6rkm4hdPcg5VgC/dzXYxtUZaM=" + reg_string = generate_user_controller_access_token(username, endpoints, secret_key, controller_name) + assert reg_string == b"MH4TCnRlc3QtMDEyMzQwORMRMTkyLjE2OC4xLjE6MTcwNzATETE5Mi4xNjguMS4yOjE3MDcwExExOTIuMTY4" \ + b"LjEuMzoxNzA3MAQgpaNZrqOw51ONk1kTER6rkm4hdPcg5VgC_dzXYxtUZaMTE2xvY2FsaG9zdC1sb2NhbGhvc3QA" diff --git a/modules/libjuju/tox.ini b/modules/libjuju/tox.ini new file mode 100644 index 0000000..350a1fc --- /dev/null +++ b/modules/libjuju/tox.ini @@ -0,0 +1,66 @@ +# Tox (http://tox.testrun.org/) is a tool for running tests +# in multiple virtualenvs. This configuration file will run the +# test suite on all supported python versions. To use it, "pip install tox" +# and then run "tox" from this directory. + +[tox] +envlist = lint,py3 +skipsdist=True + +[pytest] +markers = + serial: mark a test that must run by itself + +[testenv] +basepython=python3 +usedevelop=True +# for testing with other python versions +commands = py.test --tb native -ra -v -s -n auto -k 'not integration' -m 'not serial' {posargs} +passenv = + HOME + TEST_AGENTS +deps = + asynctest + ipdb + mock + pytest + pytest-asyncio + pytest-xdist + Twine + # use fork to pick up fix for https://github.com/aaugustin/websockets/pull/528 + git+https://github.com/johnsca/websockets@bug/client-redirects#egg=websockets + +[testenv:py3] +# default tox env excludes integration and serial tests +commands = + # These need to be installed in a specific order + pip install urllib3==1.22 + pip install pylxd + py.test --tb native -ra -v -s -n auto -k 'not integration' -m 'not serial' {posargs} + +[testenv:lint] +envdir = {toxworkdir}/py3 +commands = + flake8 --ignore E501,W504 {posargs} juju tests +deps = + flake8 + +[testenv:integration] +envdir = {toxworkdir}/py3 +commands = + # These need to be installed in a specific order + pip install urllib3==1.22 + pip install pylxd + py.test --tb native -ra -v -s -n auto -k 'integration' -m 'not serial' {posargs} + +[testenv:serial] +# tests that can't be run in parallel +envdir = {toxworkdir}/py3 +commands = py.test --tb native -ra -v -s {posargs:-m 'serial'} + +[testenv:example] +envdir = {toxworkdir}/py3 +commands = python {posargs} + +[flake8] +exclude = juju/client/_* -- 2.17.1 From cda5f41db80360640c9665018325f29b57fd8878 Mon Sep 17 00:00:00 2001 From: quilesj Date: Mon, 18 Nov 2019 11:32:12 +0100 Subject: [PATCH 08/16] Enhancements K8s helm connector Change-Id: If7619c257d3e64b54c1268bf0b5c51712a5586f5 Signed-off-by: quilesj --- n2vc/k8s_helm_conn.py | 94 +++++++++++++++++++++++++++++++++---------- 1 file changed, 72 insertions(+), 22 deletions(-) diff --git a/n2vc/k8s_helm_conn.py b/n2vc/k8s_helm_conn.py index 88c94c5..cd15d73 100644 --- a/n2vc/k8s_helm_conn.py +++ b/n2vc/k8s_helm_conn.py @@ -25,7 +25,6 @@ import subprocess import os import shutil import asyncio -import uuid import time import yaml from uuid import uuid4 @@ -100,7 +99,8 @@ class K8sHelmConnector(K8sConnector): self.debug('Initializing K8S environment. namespace: {}'.format(namespace)) # create config filename - kube_dir, helm_dir, config_filename = self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) + kube_dir, helm_dir, config_filename, cluster_dir = \ + self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) f = open(config_filename, "w") f.write(k8s_creds) f.close() @@ -156,7 +156,8 @@ class K8sHelmConnector(K8sConnector): self.debug('adding {} repository {}. URL: {}'.format(repo_type, name, url)) # config filename - kube_dir, helm_dir, config_filename = self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) + kube_dir, helm_dir, config_filename, cluster_dir = \ + self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) # helm repo update command = '{} --kubeconfig={} --home={} repo update'.format(self._helm_command, config_filename, helm_dir) @@ -182,7 +183,8 @@ class K8sHelmConnector(K8sConnector): self.debug('list repositories for cluster {}'.format(cluster_uuid)) # config filename - kube_dir, helm_dir, config_filename = self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) + kube_dir, helm_dir, config_filename, cluster_dir = \ + self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) command = '{} --kubeconfig={} --home={} repo list --output yaml'.format(self._helm_command, config_filename, helm_dir) @@ -208,7 +210,8 @@ class K8sHelmConnector(K8sConnector): self.debug('list repositories for cluster {}'.format(cluster_uuid)) # config filename - kube_dir, helm_dir, config_filename = self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) + kube_dir, helm_dir, config_filename, cluster_dir = \ + self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) command = '{} --kubeconfig={} --home={} repo remove {}'\ .format(self._helm_command, config_filename, helm_dir, name) @@ -225,7 +228,8 @@ class K8sHelmConnector(K8sConnector): self.debug('Resetting K8s environment. cluster uuid: {}'.format(cluster_uuid)) # get kube and helm directories - kube_dir, helm_dir, config_filename = self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=False) + kube_dir, helm_dir, config_filename, cluster_dir = \ + self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=False) # uninstall releases if needed releases = await self.instances_list(cluster_uuid=cluster_uuid) @@ -310,10 +314,12 @@ class K8sHelmConnector(K8sConnector): end = start + timeout # config filename - kube_dir, helm_dir, config_filename = self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) + kube_dir, helm_dir, config_filename, cluster_dir = \ + self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) # params to str - params_str = K8sHelmConnector._params_to_set_option(params) + # params_str = K8sHelmConnector._params_to_set_option(params) + params_str, file_to_delete = self._params_to_file_option(cluster_uuid=cluster_uuid, params=params) timeout_str = '' if timeout: @@ -382,6 +388,10 @@ class K8sHelmConnector(K8sConnector): output, rc = await self._local_async_exec(command=command, raise_exception_on_error=False) + # remove temporal values yaml file + if file_to_delete: + os.remove(file_to_delete) + # write final status await self._store_status( cluster_uuid=cluster_uuid, @@ -414,7 +424,8 @@ class K8sHelmConnector(K8sConnector): self.debug('list releases for cluster {}'.format(cluster_uuid)) # config filename - kube_dir, helm_dir, config_filename = self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) + kube_dir, helm_dir, config_filename, cluster_dir = \ + self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) command = '{} --kubeconfig={} --home={} list --output yaml'\ .format(self._helm_command, config_filename, helm_dir) @@ -443,10 +454,12 @@ class K8sHelmConnector(K8sConnector): end = start + timeout # config filename - kube_dir, helm_dir, config_filename = self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) + kube_dir, helm_dir, config_filename, cluster_dir = \ + self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) # params to str - params_str = K8sHelmConnector._params_to_set_option(params) + # params_str = K8sHelmConnector._params_to_set_option(params) + params_str, file_to_delete = self._params_to_file_option(cluster_uuid=cluster_uuid, params=params) timeout_str = '' if timeout: @@ -459,7 +472,7 @@ class K8sHelmConnector(K8sConnector): # version version_str = '' - if ':' in kdu_model: + if kdu_model and ':' in kdu_model: parts = kdu_model.split(sep=':') if len(parts) == 2: version_str = '--version {}'.format(parts[1]) @@ -499,6 +512,10 @@ class K8sHelmConnector(K8sConnector): output, rc = await self._local_async_exec(command=command, raise_exception_on_error=False) + # remove temporal values yaml file + if file_to_delete: + os.remove(file_to_delete) + # write final status await self._store_status( cluster_uuid=cluster_uuid, @@ -535,7 +552,8 @@ class K8sHelmConnector(K8sConnector): .format(kdu_instance, revision, cluster_uuid)) # config filename - kube_dir, helm_dir, config_filename = self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) + kube_dir, helm_dir, config_filename, cluster_dir = \ + self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) command = '{} rollback --kubeconfig={} --home={} {} {} --wait'\ .format(self._helm_command, config_filename, helm_dir, kdu_instance, revision) @@ -604,7 +622,8 @@ class K8sHelmConnector(K8sConnector): self.debug('uninstall kdu_instance {} from cluster {}'.format(kdu_instance, cluster_uuid)) # config filename - kube_dir, helm_dir, config_filename = self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) + kube_dir, helm_dir, config_filename, cluster_dir = \ + self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) command = '{} --kubeconfig={} --home={} delete --purge {}'\ .format(self._helm_command, config_filename, helm_dir, kdu_instance) @@ -666,7 +685,8 @@ class K8sHelmConnector(K8sConnector): self.debug('status of kdu_instance {}'.format(kdu_instance)) # config filename - kube_dir, helm_dir, config_filename = self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) + kube_dir, helm_dir, config_filename, cluster_dir = \ + self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) command = '{} --kubeconfig={} --home={} status {} --output yaml'\ .format(self._helm_command, config_filename, helm_dir, kdu_instance) @@ -698,7 +718,6 @@ class K8sHelmConnector(K8sConnector): return data - async def get_instance_info( self, cluster_uuid: str, @@ -733,8 +752,7 @@ class K8sHelmConnector(K8sConnector): def get_random_number(): r = random.randrange(start=1, stop=99999999) s = str(r) - while len(s) < 10: - s = '0' + s + s = s.rjust(width=10, fillchar=' ') return s name = name + get_random_number() @@ -856,6 +874,37 @@ class K8sHelmConnector(K8sConnector): pass return None + # params for use in -f file + # returns values file option and filename (in order to delete it at the end) + def _params_to_file_option(self, cluster_uuid: str, params: dict) -> (str, str): + params_str = '' + + if params and len(params) > 0: + kube_dir, helm_dir, config_filename, cluster_dir = \ + self._get_paths(cluster_name=cluster_uuid, create_if_not_exist=True) + + def get_random_number(): + r = random.randrange(start=1, stop=99999999) + s = str(r) + while len(s) < 10: + s = '0' + s + return s + + params2 = dict() + for key in params: + value = params.get(key) + if '!!yaml' in str(value): + value = yaml.load(value[7:]) + params2[key] = value + + values_file = get_random_number() + '.yaml' + with open(values_file, 'w') as stream: + yaml.dump(params2, stream, indent=4, default_flow_style=False) + + return '-f {}'.format(values_file), values_file + + return '', None + # params for use in --set option @staticmethod def _params_to_set_option(params: dict) -> str: @@ -898,13 +947,14 @@ class K8sHelmConnector(K8sConnector): line_list.append(cell) return output_table - def _get_paths(self, cluster_name: str, create_if_not_exist: bool = False) -> (str, str, str): + def _get_paths(self, cluster_name: str, create_if_not_exist: bool = False) -> (str, str, str, str): """ Returns kube and helm directories :param cluster_name: :param create_if_not_exist: - :return: kube, helm directories and config filename. Raises exception if not exist and cannot create + :return: kube, helm directories, config filename and cluster dir. + Raises exception if not exist and cannot create """ base = self.fs.path @@ -942,7 +992,7 @@ class K8sHelmConnector(K8sConnector): raise Exception(msg) config_filename = kube_dir + '/config' - return kube_dir, helm_dir, config_filename + return kube_dir, helm_dir, config_filename, cluster_dir @staticmethod def _remove_multiple_spaces(str): @@ -972,7 +1022,7 @@ class K8sHelmConnector(K8sConnector): self, command: str, raise_exception_on_error: bool = False, - show_error_log: bool = False + show_error_log: bool = True ) -> (str, int): command = K8sHelmConnector._remove_multiple_spaces(command) -- 2.17.1 From 5aa242fe2d61c2da9fdb29ed65029f3e27b6966d Mon Sep 17 00:00:00 2001 From: almagia Date: Thu, 21 Nov 2019 16:57:01 +0100 Subject: [PATCH 09/16] Revert "Revert "Remove vendored libjuju"" Major code clean-up, approved by TSC This reverts commit e2051cca7dac12aa09f6ed33555dcc4548c4b52b. Change-Id: I567a594bebfe56e31f68df92a828839a56948223 --- Jenkinsfile | 15 + juju | 1 - modules/libjuju/.gitignore | 15 - modules/libjuju/.travis.yml | 48 - modules/libjuju/CONTRIBUTORS | 4 - modules/libjuju/LICENSE | 201 - modules/libjuju/MANIFEST.in | 5 - modules/libjuju/Makefile | 46 - modules/libjuju/TODO | 5 - modules/libjuju/VERSION | 1 - modules/libjuju/docs/Makefile | 230 - .../docs/_extensions/automembersummary.py | 112 - modules/libjuju/docs/_static/custom.css | 5 - modules/libjuju/docs/api/juju.action.rst | 13 - modules/libjuju/docs/api/juju.annotation.rst | 13 - modules/libjuju/docs/api/juju.application.rst | 13 - modules/libjuju/docs/api/juju.client.rst | 120 - modules/libjuju/docs/api/juju.cloud.rst | 13 - modules/libjuju/docs/api/juju.constraints.rst | 13 - modules/libjuju/docs/api/juju.controller.rst | 13 - modules/libjuju/docs/api/juju.delta.rst | 13 - modules/libjuju/docs/api/juju.errors.rst | 13 - modules/libjuju/docs/api/juju.exceptions.rst | 13 - modules/libjuju/docs/api/juju.juju.rst | 13 - modules/libjuju/docs/api/juju.loop.rst | 13 - modules/libjuju/docs/api/juju.machine.rst | 13 - modules/libjuju/docs/api/juju.model.rst | 13 - modules/libjuju/docs/api/juju.placement.rst | 13 - modules/libjuju/docs/api/juju.relation.rst | 13 - modules/libjuju/docs/api/juju.tag.rst | 13 - modules/libjuju/docs/api/juju.unit.rst | 13 - modules/libjuju/docs/api/juju.utils.rst | 13 - modules/libjuju/docs/api/modules.rst | 31 - modules/libjuju/docs/changelog.rst | 290 - modules/libjuju/docs/conf.py | 303 - modules/libjuju/docs/index.rst | 45 - .../libjuju/docs/narrative/application.rst | 136 - modules/libjuju/docs/narrative/controller.rst | 92 - modules/libjuju/docs/narrative/index.rst | 10 - modules/libjuju/docs/narrative/model.rst | 290 - modules/libjuju/docs/narrative/unit.rst | 65 - modules/libjuju/docs/readme.rst | 103 - modules/libjuju/docs/requirements.txt | 5 - .../libjuju/docs/upstream-updates/index.rst | 114 - modules/libjuju/examples/action.py | 49 - modules/libjuju/examples/add_machine.py | 70 - modules/libjuju/examples/add_model.py | 67 - modules/libjuju/examples/allwatcher.py | 31 - modules/libjuju/examples/config.py | 54 - .../libjuju/examples/connect_current_model.py | 27 - modules/libjuju/examples/controller.py | 41 - modules/libjuju/examples/credential.py | 47 - modules/libjuju/examples/deploy.py | 41 - modules/libjuju/examples/fullstatus.py | 23 - modules/libjuju/examples/future.py | 47 - modules/libjuju/examples/leadership.py | 28 - modules/libjuju/examples/livemodel.py | 31 - modules/libjuju/examples/localcharm.py | 34 - modules/libjuju/examples/relate.py | 102 - modules/libjuju/examples/unitrun.py | 46 - modules/libjuju/juju/__init__.py | 0 modules/libjuju/juju/action.py | 10 - modules/libjuju/juju/annotation.py | 9 - modules/libjuju/juju/application.py | 533 - modules/libjuju/juju/client/__init__.py | 0 modules/libjuju/juju/client/_client.py | 454 - modules/libjuju/juju/client/_client1.py | 11068 ----- modules/libjuju/juju/client/_client2.py | 7535 ---- modules/libjuju/juju/client/_client3.py | 6749 --- modules/libjuju/juju/client/_client4.py | 4626 -- modules/libjuju/juju/client/_client5.py | 5322 --- modules/libjuju/juju/client/_client7.py | 1770 - modules/libjuju/juju/client/_client8.py | 1278 - modules/libjuju/juju/client/_client9.py | 2385 - modules/libjuju/juju/client/_definitions.py | 11058 ----- modules/libjuju/juju/client/client.py | 33 - modules/libjuju/juju/client/codegen.py | 52 - modules/libjuju/juju/client/connection.py | 601 - modules/libjuju/juju/client/connector.py | 156 - modules/libjuju/juju/client/facade.py | 818 - modules/libjuju/juju/client/gocookies.py | 102 - modules/libjuju/juju/client/jujudata.py | 219 - modules/libjuju/juju/client/overrides.py | 365 - modules/libjuju/juju/client/runner.py | 21 - .../juju/client/schemas-juju-2.0.0.json | 24533 ---------- .../juju/client/schemas-juju-2.0.1.json | 24799 ----------- .../juju/client/schemas-juju-2.0.2.json | 24799 ----------- .../juju/client/schemas-juju-2.0.3.json | 24799 ----------- .../juju/client/schemas-juju-2.1.0.json | 25652 ----------- .../juju/client/schemas-juju-2.1.1.json | 25730 ----------- .../juju/client/schemas-juju-2.1.2.json | 25730 ----------- .../juju/client/schemas-juju-2.2-alpha1.json | 25974 ----------- .../juju/client/schemas-juju-2.2-beta1.json | 26135 ----------- .../juju/client/schemas-juju-2.2-beta2.json | 26150 ----------- .../juju/client/schemas-juju-2.2-rc1.json | 26295 ----------- .../juju/client/schemas-juju-2.3-alpha1.json | 26050 ----------- .../juju/client/schemas-juju-2.5-rc1.json | 37036 ---------------- modules/libjuju/juju/cloud.py | 81 - modules/libjuju/juju/constraints.py | 87 - modules/libjuju/juju/controller.py | 653 - modules/libjuju/juju/credential.py | 0 modules/libjuju/juju/delta.py | 79 - modules/libjuju/juju/errors.py | 49 - modules/libjuju/juju/exceptions.py | 2 - modules/libjuju/juju/juju.py | 118 - modules/libjuju/juju/loop.py | 42 - modules/libjuju/juju/machine.py | 284 - modules/libjuju/juju/model.py | 2328 - modules/libjuju/juju/placement.py | 58 - modules/libjuju/juju/provisioner.py | 369 - modules/libjuju/juju/relation.py | 123 - modules/libjuju/juju/tag.py | 40 - modules/libjuju/juju/unit.py | 281 - modules/libjuju/juju/user.py | 86 - modules/libjuju/juju/utils.py | 165 - modules/libjuju/scripts/gendoc | 39 - modules/libjuju/setup.py | 61 - modules/libjuju/tests/__init__.py | 0 modules/libjuju/tests/base.py | 148 - modules/libjuju/tests/bundle/bundle.yaml | 28 - modules/libjuju/tests/bundle/invalid.yaml | 7 - modules/libjuju/tests/bundle/mini-bundle.yaml | 9 - modules/libjuju/tests/charm/metadata.yaml | 5 - modules/libjuju/tests/integration/__init__.py | 0 .../bundle/bundle-resource-rev.yaml | 7 - .../tests/integration/bundle/bundle.yaml | 12 - modules/libjuju/tests/integration/cert.pem | 33 - .../tests/integration/charm/metadata.yaml | 5 - modules/libjuju/tests/integration/key.pem | 52 - .../tests/integration/test_application.py | 134 - .../libjuju/tests/integration/test_client.py | 21 - .../tests/integration/test_connection.py | 236 - .../tests/integration/test_controller.py | 228 - .../libjuju/tests/integration/test_errors.py | 68 - .../tests/integration/test_macaroon_auth.py | 108 - .../libjuju/tests/integration/test_machine.py | 65 - .../libjuju/tests/integration/test_model.py | 485 - .../libjuju/tests/integration/test_unit.py | 99 - modules/libjuju/tests/unit/__init__.py | 0 modules/libjuju/tests/unit/test_client.py | 26 - modules/libjuju/tests/unit/test_connection.py | 65 - .../libjuju/tests/unit/test_constraints.py | 57 - modules/libjuju/tests/unit/test_controller.py | 140 - modules/libjuju/tests/unit/test_gocookies.py | 244 - modules/libjuju/tests/unit/test_loop.py | 32 - modules/libjuju/tests/unit/test_model.py | 264 - modules/libjuju/tests/unit/test_overrides.py | 76 - modules/libjuju/tests/unit/test_placement.py | 20 - .../tests/unit/test_registration_string.py | 18 - modules/libjuju/tox.ini | 66 - 150 files changed, 15 insertions(+), 409798 deletions(-) delete mode 120000 juju delete mode 100644 modules/libjuju/.gitignore delete mode 100644 modules/libjuju/.travis.yml delete mode 100644 modules/libjuju/CONTRIBUTORS delete mode 100644 modules/libjuju/LICENSE delete mode 100644 modules/libjuju/MANIFEST.in delete mode 100644 modules/libjuju/Makefile delete mode 100644 modules/libjuju/TODO delete mode 100644 modules/libjuju/VERSION delete mode 100644 modules/libjuju/docs/Makefile delete mode 100644 modules/libjuju/docs/_extensions/automembersummary.py delete mode 100644 modules/libjuju/docs/_static/custom.css delete mode 100644 modules/libjuju/docs/api/juju.action.rst delete mode 100644 modules/libjuju/docs/api/juju.annotation.rst delete mode 100644 modules/libjuju/docs/api/juju.application.rst delete mode 100644 modules/libjuju/docs/api/juju.client.rst delete mode 100644 modules/libjuju/docs/api/juju.cloud.rst delete mode 100644 modules/libjuju/docs/api/juju.constraints.rst delete mode 100644 modules/libjuju/docs/api/juju.controller.rst delete mode 100644 modules/libjuju/docs/api/juju.delta.rst delete mode 100644 modules/libjuju/docs/api/juju.errors.rst delete mode 100644 modules/libjuju/docs/api/juju.exceptions.rst delete mode 100644 modules/libjuju/docs/api/juju.juju.rst delete mode 100644 modules/libjuju/docs/api/juju.loop.rst delete mode 100644 modules/libjuju/docs/api/juju.machine.rst delete mode 100644 modules/libjuju/docs/api/juju.model.rst delete mode 100644 modules/libjuju/docs/api/juju.placement.rst delete mode 100644 modules/libjuju/docs/api/juju.relation.rst delete mode 100644 modules/libjuju/docs/api/juju.tag.rst delete mode 100644 modules/libjuju/docs/api/juju.unit.rst delete mode 100644 modules/libjuju/docs/api/juju.utils.rst delete mode 100644 modules/libjuju/docs/api/modules.rst delete mode 100644 modules/libjuju/docs/changelog.rst delete mode 100644 modules/libjuju/docs/conf.py delete mode 100644 modules/libjuju/docs/index.rst delete mode 100644 modules/libjuju/docs/narrative/application.rst delete mode 100644 modules/libjuju/docs/narrative/controller.rst delete mode 100644 modules/libjuju/docs/narrative/index.rst delete mode 100644 modules/libjuju/docs/narrative/model.rst delete mode 100644 modules/libjuju/docs/narrative/unit.rst delete mode 100644 modules/libjuju/docs/readme.rst delete mode 100644 modules/libjuju/docs/requirements.txt delete mode 100644 modules/libjuju/docs/upstream-updates/index.rst delete mode 100644 modules/libjuju/examples/action.py delete mode 100755 modules/libjuju/examples/add_machine.py delete mode 100644 modules/libjuju/examples/add_model.py delete mode 100644 modules/libjuju/examples/allwatcher.py delete mode 100644 modules/libjuju/examples/config.py delete mode 100644 modules/libjuju/examples/connect_current_model.py delete mode 100644 modules/libjuju/examples/controller.py delete mode 100644 modules/libjuju/examples/credential.py delete mode 100644 modules/libjuju/examples/deploy.py delete mode 100644 modules/libjuju/examples/fullstatus.py delete mode 100644 modules/libjuju/examples/future.py delete mode 100644 modules/libjuju/examples/leadership.py delete mode 100644 modules/libjuju/examples/livemodel.py delete mode 100644 modules/libjuju/examples/localcharm.py delete mode 100644 modules/libjuju/examples/relate.py delete mode 100644 modules/libjuju/examples/unitrun.py delete mode 100644 modules/libjuju/juju/__init__.py delete mode 100644 modules/libjuju/juju/action.py delete mode 100644 modules/libjuju/juju/annotation.py delete mode 100644 modules/libjuju/juju/application.py delete mode 100644 modules/libjuju/juju/client/__init__.py delete mode 100644 modules/libjuju/juju/client/_client.py delete mode 100644 modules/libjuju/juju/client/_client1.py delete mode 100644 modules/libjuju/juju/client/_client2.py delete mode 100644 modules/libjuju/juju/client/_client3.py delete mode 100644 modules/libjuju/juju/client/_client4.py delete mode 100644 modules/libjuju/juju/client/_client5.py delete mode 100644 modules/libjuju/juju/client/_client7.py delete mode 100644 modules/libjuju/juju/client/_client8.py delete mode 100644 modules/libjuju/juju/client/_client9.py delete mode 100644 modules/libjuju/juju/client/_definitions.py delete mode 100644 modules/libjuju/juju/client/client.py delete mode 100644 modules/libjuju/juju/client/codegen.py delete mode 100644 modules/libjuju/juju/client/connection.py delete mode 100644 modules/libjuju/juju/client/connector.py delete mode 100644 modules/libjuju/juju/client/facade.py delete mode 100644 modules/libjuju/juju/client/gocookies.py delete mode 100644 modules/libjuju/juju/client/jujudata.py delete mode 100644 modules/libjuju/juju/client/overrides.py delete mode 100644 modules/libjuju/juju/client/runner.py delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.0.0.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.0.1.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.0.2.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.0.3.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.1.0.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.1.1.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.1.2.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.2-alpha1.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.2-beta1.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.2-beta2.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.2-rc1.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.3-alpha1.json delete mode 100644 modules/libjuju/juju/client/schemas-juju-2.5-rc1.json delete mode 100644 modules/libjuju/juju/cloud.py delete mode 100644 modules/libjuju/juju/constraints.py delete mode 100644 modules/libjuju/juju/controller.py delete mode 100644 modules/libjuju/juju/credential.py delete mode 100644 modules/libjuju/juju/delta.py delete mode 100644 modules/libjuju/juju/errors.py delete mode 100644 modules/libjuju/juju/exceptions.py delete mode 100644 modules/libjuju/juju/juju.py delete mode 100644 modules/libjuju/juju/loop.py delete mode 100644 modules/libjuju/juju/machine.py delete mode 100644 modules/libjuju/juju/model.py delete mode 100644 modules/libjuju/juju/placement.py delete mode 100644 modules/libjuju/juju/provisioner.py delete mode 100644 modules/libjuju/juju/relation.py delete mode 100644 modules/libjuju/juju/tag.py delete mode 100644 modules/libjuju/juju/unit.py delete mode 100644 modules/libjuju/juju/user.py delete mode 100644 modules/libjuju/juju/utils.py delete mode 100755 modules/libjuju/scripts/gendoc delete mode 100644 modules/libjuju/setup.py delete mode 100644 modules/libjuju/tests/__init__.py delete mode 100644 modules/libjuju/tests/base.py delete mode 100644 modules/libjuju/tests/bundle/bundle.yaml delete mode 100644 modules/libjuju/tests/bundle/invalid.yaml delete mode 100644 modules/libjuju/tests/bundle/mini-bundle.yaml delete mode 100644 modules/libjuju/tests/charm/metadata.yaml delete mode 100644 modules/libjuju/tests/integration/__init__.py delete mode 100644 modules/libjuju/tests/integration/bundle/bundle-resource-rev.yaml delete mode 100644 modules/libjuju/tests/integration/bundle/bundle.yaml delete mode 100644 modules/libjuju/tests/integration/cert.pem delete mode 100644 modules/libjuju/tests/integration/charm/metadata.yaml delete mode 100644 modules/libjuju/tests/integration/key.pem delete mode 100644 modules/libjuju/tests/integration/test_application.py delete mode 100644 modules/libjuju/tests/integration/test_client.py delete mode 100644 modules/libjuju/tests/integration/test_connection.py delete mode 100644 modules/libjuju/tests/integration/test_controller.py delete mode 100644 modules/libjuju/tests/integration/test_errors.py delete mode 100644 modules/libjuju/tests/integration/test_macaroon_auth.py delete mode 100644 modules/libjuju/tests/integration/test_machine.py delete mode 100644 modules/libjuju/tests/integration/test_model.py delete mode 100644 modules/libjuju/tests/integration/test_unit.py delete mode 100644 modules/libjuju/tests/unit/__init__.py delete mode 100644 modules/libjuju/tests/unit/test_client.py delete mode 100644 modules/libjuju/tests/unit/test_connection.py delete mode 100644 modules/libjuju/tests/unit/test_constraints.py delete mode 100644 modules/libjuju/tests/unit/test_controller.py delete mode 100644 modules/libjuju/tests/unit/test_gocookies.py delete mode 100644 modules/libjuju/tests/unit/test_loop.py delete mode 100644 modules/libjuju/tests/unit/test_model.py delete mode 100644 modules/libjuju/tests/unit/test_overrides.py delete mode 100644 modules/libjuju/tests/unit/test_placement.py delete mode 100644 modules/libjuju/tests/unit/test_registration_string.py delete mode 100644 modules/libjuju/tox.ini diff --git a/Jenkinsfile b/Jenkinsfile index ed9e879..e384cbd 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,3 +1,18 @@ +/* + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + properties([ parameters([ string(defaultValue: env.BRANCH_NAME, description: '', name: 'GERRIT_BRANCH'), diff --git a/juju b/juju deleted file mode 120000 index 1d37c18..0000000 --- a/juju +++ /dev/null @@ -1 +0,0 @@ -modules/libjuju/juju \ No newline at end of file diff --git a/modules/libjuju/.gitignore b/modules/libjuju/.gitignore deleted file mode 100644 index 6d00fec..0000000 --- a/modules/libjuju/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -*.sw[mnop] -.venv/ -*.pyc -*.py~ -docs/_build/ -__pycache__/ -.tox/ -*.egg-info/ -.cache/ -.\#* -dist/ -dev/ -.pytest_cache -pytestdebug.log -.vscode/ diff --git a/modules/libjuju/.travis.yml b/modules/libjuju/.travis.yml deleted file mode 100644 index 5edfef5..0000000 --- a/modules/libjuju/.travis.yml +++ /dev/null @@ -1,48 +0,0 @@ -dist: xenial -sudo: required -language: python -cache: pip -before_install: - - if [[ $TRAVIS_PYTHON_VERSION == '3.6' ]]; then sudo add-apt-repository -y ppa:jonathonf/python-3.6; fi - - if [[ $TRAVIS_PYTHON_VERSION == '3.7-dev' ]]; then sudo add-apt-repository -y ppa:deadsnakes/ppa; fi - - sudo apt-get update -q - - sudo apt-get remove -qy lxd lxd-client - - sudo apt-get install snapd libsodium-dev -y -install: - - sudo snap install lxd || true # ignore failures so that unit tests will still run, at least - - sudo sh -c 'echo PATH=/snap/bin:$PATH >> /etc/environment'; - - sudo snap install jq || true - - sudo snap install juju --classic --$JUJU_CHANNEL || true - - sudo snap install juju-wait --classic || true - - pip install tox-travis -env: - global: > - TEST_AGENTS='{"agents":[{"url":"https://api.staging.jujucharms.com/identity","username":"libjuju-ci@yellow"}],"key":{"private":"88OOCxIHQNguRG7zFg2y2Hx5Ob0SeVKKBRnjyehverc=","public":"fDn20+5FGyN2hYO7z0rFUyoHGUnfrleslUNtoYsjNSs="}}' - PATH="/snap/bin:$PATH" - -matrix: - include: - - python: 3.6 - env: JUJU_CHANNEL=edge - - python: 3.6 - env: JUJU_CHANNEL=stable - - python: 3.7-dev - env: JUJU_CHANNEL=stable - - python: 3.7-dev - env: JUJU_CHANNEL=edge -before_script: - # Run lint before performing more expensive operations (fail fast/early) - - tox -e lint - - # init lxd for tests - - sudo lxd waitready --timeout 30 - - sudo chmod 666 /var/snap/lxd/common/lxd/unix.socket - - lxd init --auto --network-address='[::]' --network-port=8443 --storage-backend=dir - - # Horrible workaround to LP Bug #1738614 - - sudo mkdir /var/snap/lxd/common/lxd/storage-pools/juju-zfs - - lxc storage create juju-zfs dir source=/var/snap/lxd/common/lxd/storage-pools/juju-zfs - -script: - - juju bootstrap localhost test --config 'identity-url=https://api.staging.jujucharms.com/identity' --config 'allow-model-access=true' - - tox -e py3,integration,serial diff --git a/modules/libjuju/CONTRIBUTORS b/modules/libjuju/CONTRIBUTORS deleted file mode 100644 index 3895eaa..0000000 --- a/modules/libjuju/CONTRIBUTORS +++ /dev/null @@ -1,4 +0,0 @@ -Benjamin Saller -Tim Van Steenburgh -Cory Johns -Pete VanderGiessen diff --git a/modules/libjuju/LICENSE b/modules/libjuju/LICENSE deleted file mode 100644 index 8dada3e..0000000 --- a/modules/libjuju/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/modules/libjuju/MANIFEST.in b/modules/libjuju/MANIFEST.in deleted file mode 100644 index c14d3fc..0000000 --- a/modules/libjuju/MANIFEST.in +++ /dev/null @@ -1,5 +0,0 @@ -include *.py CONTRIBUTORS LICENSE README.rst VERSION -recursive-include juju *.py -recursive-include examples *.py -recursive-include docs *.rst -exclude Makefile diff --git a/modules/libjuju/Makefile b/modules/libjuju/Makefile deleted file mode 100644 index 38dcc11..0000000 --- a/modules/libjuju/Makefile +++ /dev/null @@ -1,46 +0,0 @@ -BIN := .tox/py3/bin -PY := $(BIN)/python -PIP := $(BIN)/pip -SCHEMAGEN := $(shell which schemagen) -VERSION=$(shell cat VERSION) - -clean: - find . -name __pycache__ -type d -exec rm -r {} + - find . -name *.pyc -delete - rm -rf .tox - rm -rf docs/_build/ - -.tox: - tox -r --notest - -client: .tox -ifndef SCHEMAGEN - $(error "schemagen is not available, please install from https://github.com/juju/schemagen") -endif - $(PY) -m juju.client.facade -s "juju/client/schemas*" -o juju/client/ - -test: - tox - -.PHONY: lint -lint: - tox -e lint --notest - -docs: .tox - $(PIP) install -r docs/requirements.txt - rm -rf docs/_build/ - $(BIN)/sphinx-build -b html docs/ docs/_build/ - cd docs/_build/ && zip -r docs.zip * - -release: - git fetch --tags - rm dist/*.tar.gz - $(PY) setup.py sdist - $(BIN)/twine upload --repository-url https://upload.pypi.org/legacy/ dist/* - git tag ${VERSION} - git push --tags - -upload: release - - -.PHONY: clean client test docs upload release diff --git a/modules/libjuju/TODO b/modules/libjuju/TODO deleted file mode 100644 index 94fc342..0000000 --- a/modules/libjuju/TODO +++ /dev/null @@ -1,5 +0,0 @@ -TODO -==== - -- Add a LogWatcher coroutine that yields from debug-log api -- Add a way to exit the event loop when a Model matches a bundle yaml diff --git a/modules/libjuju/VERSION b/modules/libjuju/VERSION deleted file mode 100644 index 1a96df1..0000000 --- a/modules/libjuju/VERSION +++ /dev/null @@ -1 +0,0 @@ -0.11.3 diff --git a/modules/libjuju/docs/Makefile b/modules/libjuju/docs/Makefile deleted file mode 100644 index 2869eb4..0000000 --- a/modules/libjuju/docs/Makefile +++ /dev/null @@ -1,230 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = _build - -# User-friendly check for sphinx-build -ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) - $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don\'t have Sphinx installed, grab it from http://sphinx-doc.org/) -endif - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -.PHONY: help -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " applehelp to make an Apple Help Book" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " epub3 to make an epub3" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - @echo " coverage to run coverage check of the documentation (if enabled)" - @echo " dummy to check syntax errors of document sources" - -.PHONY: clean -clean: - rm -rf $(BUILDDIR)/* - -.PHONY: html -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -.PHONY: dirhtml -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -.PHONY: singlehtml -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -.PHONY: pickle -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -.PHONY: json -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -.PHONY: htmlhelp -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -.PHONY: qthelp -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/libjuju.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/libjuju.qhc" - -.PHONY: applehelp -applehelp: - $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp - @echo - @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." - @echo "N.B. You won't be able to view it unless you put it in" \ - "~/Library/Documentation/Help or install it in your application" \ - "bundle." - -.PHONY: devhelp -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/libjuju" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/libjuju" - @echo "# devhelp" - -.PHONY: epub -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -.PHONY: epub3 -epub3: - $(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3 - @echo - @echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3." - -.PHONY: latex -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -.PHONY: latexpdf -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -.PHONY: latexpdfja -latexpdfja: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through platex and dvipdfmx..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -.PHONY: text -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -.PHONY: man -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -.PHONY: texinfo -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -.PHONY: info -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -.PHONY: gettext -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -.PHONY: changes -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -.PHONY: linkcheck -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -.PHONY: doctest -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -.PHONY: coverage -coverage: - $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage - @echo "Testing of coverage in the sources finished, look at the " \ - "results in $(BUILDDIR)/coverage/python.txt." - -.PHONY: xml -xml: - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." - -.PHONY: pseudoxml -pseudoxml: - $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml - @echo - @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." - -.PHONY: dummy -dummy: - $(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy - @echo - @echo "Build finished. Dummy builder generates no files." diff --git a/modules/libjuju/docs/_extensions/automembersummary.py b/modules/libjuju/docs/_extensions/automembersummary.py deleted file mode 100644 index cfe0b84..0000000 --- a/modules/libjuju/docs/_extensions/automembersummary.py +++ /dev/null @@ -1,112 +0,0 @@ -# Copyright 2014-2015 Canonical Limited. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -import importlib -import inspect -import textwrap - -from docutils import nodes -from docutils.statemachine import ViewList -from sphinx.errors import SphinxError -from sphinx.util.compat import Directive -from sphinx.util.nodes import nested_parse_with_titles - - -class AutoMemberSummary(Directive): - required_arguments = 1 - - def run(self): - module_name = self.arguments[0] - - try: - module = importlib.import_module(module_name) - except ImportError: - raise SphinxError("Unable to generate reference docs for %s, " - "could not import" % (module_name)) - - divider = '+{:-<80}+'.format('') - row = '| {:<78} |'.format - lines = [] - for member_name, member in inspect.getmembers(module): - if not self._filter(module_name, member_name, member): - continue - summary = textwrap.wrap(self._get_summary(member), 78) or [''] - link = '`{} <#{}>`_'.format(member_name, - '.'.join([module_name, - member_name])) - methods = ['* `{} <#{}>`_'.format(n, - '.'.join([module_name, - member_name, - n])) - for n, m in inspect.getmembers(member) - if not n.startswith('_') and inspect.isfunction(m)] - - lines.append(divider) - lines.append(row(link)) - lines.append(divider) - for line in summary: - lines.append(row(line)) - if methods: - lines.append(row('')) - lines.append(row('Methods:')) - lines.append(row('')) - for i, method in enumerate(methods): - lines.append(row(method)) - lines.append(divider) - content = '\n'.join(lines) - - result = self._parse(content, '') - return result - - def _get_summary(self, member): - doc = (member.__doc__ or '').splitlines() - - # strip any leading blank lines - while doc and not doc[0].strip(): - doc.pop(0) - - # strip anything after the first blank line - for i, piece in enumerate(doc): - if not piece.strip(): - doc = doc[:i] - break - - return " ".join(doc).strip() - - def _filter(self, module_name, member_name, member): - if member_name.startswith('_'): - return False - if hasattr(member, '__module__'): - # skip imported classes & functions - return member.__module__.startswith(module_name) - elif hasattr(member, '__name__'): - # skip imported modules - return member.__name__.startswith(module_name) - else: - return False # skip instances - return True - - def _parse(self, rst_text, annotation): - result = ViewList() - for line in rst_text.split("\n"): - result.append(line, annotation) - node = nodes.paragraph() - node.document = self.state.document - nested_parse_with_titles(self.state, result, node) - return node.children - - -def setup(app): - app.add_directive('automembersummary', AutoMemberSummary) diff --git a/modules/libjuju/docs/_static/custom.css b/modules/libjuju/docs/_static/custom.css deleted file mode 100644 index 333cd74..0000000 --- a/modules/libjuju/docs/_static/custom.css +++ /dev/null @@ -1,5 +0,0 @@ -.wy-table-responsive table td, -.wy-table-responsive table th -{ - white-space: normal !important; -} diff --git a/modules/libjuju/docs/api/juju.action.rst b/modules/libjuju/docs/api/juju.action.rst deleted file mode 100644 index cc86af2..0000000 --- a/modules/libjuju/docs/api/juju.action.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.action -=========== - -.. rubric:: Summary - -.. automembersummary:: juju.action - -.. rubric:: Reference - -.. automodule:: juju.action - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.annotation.rst b/modules/libjuju/docs/api/juju.annotation.rst deleted file mode 100644 index ec31344..0000000 --- a/modules/libjuju/docs/api/juju.annotation.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.annotation -=============== - -.. rubric:: Summary - -.. automembersummary:: juju.annotation - -.. rubric:: Reference - -.. automodule:: juju.annotation - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.application.rst b/modules/libjuju/docs/api/juju.application.rst deleted file mode 100644 index dba9177..0000000 --- a/modules/libjuju/docs/api/juju.application.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.application -================ - -.. rubric:: Summary - -.. automembersummary:: juju.application - -.. rubric:: Reference - -.. automodule:: juju.application - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.client.rst b/modules/libjuju/docs/api/juju.client.rst deleted file mode 100644 index dad691f..0000000 --- a/modules/libjuju/docs/api/juju.client.rst +++ /dev/null @@ -1,120 +0,0 @@ -Internal APIs -============= - -These packages are for internal use in communicating with the low-level -API. You should use the object oriented API instead. They are documented -here for developer reference. - - -juju\.client\.client module ---------------------------- - -.. automodule:: juju.client.client - :members: - :undoc-members: - :show-inheritance: - -juju\.client\._definitions module ---------------------------------- - -.. automodule:: juju.client._definitions - :members: - :undoc-members: - :show-inheritance: - -juju\.client\._client module ----------------------------- - -.. automodule:: juju.client._client - :members: - :undoc-members: - :show-inheritance: - -juju\.client\._client1 module ------------------------------ - -.. automodule:: juju.client._client1 - :members: - :undoc-members: - :show-inheritance: - -juju\.client\._client2 module ------------------------------ - -.. automodule:: juju.client._client2 - :members: - :undoc-members: - :show-inheritance: - -juju\.client\._client3 module ------------------------------ - -.. automodule:: juju.client._client3 - :members: - :undoc-members: - :show-inheritance: - -juju\.client\._client4 module ------------------------------ - -.. automodule:: juju.client._client4 - :members: - :undoc-members: - :show-inheritance: - -juju\.client\._client5 module ------------------------------ - -.. automodule:: juju.client._client5 - :members: - :undoc-members: - :show-inheritance: - -juju\.client\.codegen module ----------------------------- - -.. automodule:: juju.client.codegen - :members: - :undoc-members: - :show-inheritance: - -juju\.client\.connection module -------------------------------- - -.. automodule:: juju.client.connection - :members: - :undoc-members: - :show-inheritance: - -juju\.client\.facade module ---------------------------- - -.. automodule:: juju.client.facade - :members: - :undoc-members: - :show-inheritance: - -juju\.client\.overrides module ------------------------------- - -.. automodule:: juju.client.overrides - :members: - :undoc-members: - :show-inheritance: - -juju\.client\.runner module ---------------------------- - -.. automodule:: juju.client.runner - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: juju.client - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.cloud.rst b/modules/libjuju/docs/api/juju.cloud.rst deleted file mode 100644 index 39021e0..0000000 --- a/modules/libjuju/docs/api/juju.cloud.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.cloud -========== - -.. rubric:: Summary - -.. automembersummary:: juju.cloud - -.. rubric:: Reference - -.. automodule:: juju.cloud - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.constraints.rst b/modules/libjuju/docs/api/juju.constraints.rst deleted file mode 100644 index 5fcbd31..0000000 --- a/modules/libjuju/docs/api/juju.constraints.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.constraints -================ - -.. rubric:: Summary - -.. automembersummary:: juju.constraints - -.. rubric:: Reference - -.. automodule:: juju.constraints - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.controller.rst b/modules/libjuju/docs/api/juju.controller.rst deleted file mode 100644 index 4484fd5..0000000 --- a/modules/libjuju/docs/api/juju.controller.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.controller -=============== - -.. rubric:: Summary - -.. automembersummary:: juju.controller - -.. rubric:: Reference - -.. automodule:: juju.controller - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.delta.rst b/modules/libjuju/docs/api/juju.delta.rst deleted file mode 100644 index 9924f8c..0000000 --- a/modules/libjuju/docs/api/juju.delta.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.delta -========== - -.. rubric:: Summary - -.. automembersummary:: juju.delta - -.. rubric:: Reference - -.. automodule:: juju.delta - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.errors.rst b/modules/libjuju/docs/api/juju.errors.rst deleted file mode 100644 index 7c77574..0000000 --- a/modules/libjuju/docs/api/juju.errors.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.errors -=========== - -.. rubric:: Summary - -.. automembersummary:: juju.errors - -.. rubric:: Reference - -.. automodule:: juju.errors - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.exceptions.rst b/modules/libjuju/docs/api/juju.exceptions.rst deleted file mode 100644 index 85be2fb..0000000 --- a/modules/libjuju/docs/api/juju.exceptions.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.exceptions -=============== - -.. rubric:: Summary - -.. automembersummary:: juju.exceptions - -.. rubric:: Reference - -.. automodule:: juju.exceptions - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.juju.rst b/modules/libjuju/docs/api/juju.juju.rst deleted file mode 100644 index 68698c3..0000000 --- a/modules/libjuju/docs/api/juju.juju.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.juju -========= - -.. rubric:: Summary - -.. automembersummary:: juju.juju - -.. rubric:: Reference - -.. automodule:: juju.juju - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.loop.rst b/modules/libjuju/docs/api/juju.loop.rst deleted file mode 100644 index 4f175e9..0000000 --- a/modules/libjuju/docs/api/juju.loop.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.loop -========= - -.. rubric:: Summary - -.. automembersummary:: juju.loop - -.. rubric:: Reference - -.. automodule:: juju.loop - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.machine.rst b/modules/libjuju/docs/api/juju.machine.rst deleted file mode 100644 index edb5b6c..0000000 --- a/modules/libjuju/docs/api/juju.machine.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.machine -============ - -.. rubric:: Summary - -.. automembersummary:: juju.machine - -.. rubric:: Reference - -.. automodule:: juju.machine - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.model.rst b/modules/libjuju/docs/api/juju.model.rst deleted file mode 100644 index dfb735d..0000000 --- a/modules/libjuju/docs/api/juju.model.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.model -========== - -.. rubric:: Summary - -.. automembersummary:: juju.model - -.. rubric:: Reference - -.. automodule:: juju.model - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.placement.rst b/modules/libjuju/docs/api/juju.placement.rst deleted file mode 100644 index 67cde0c..0000000 --- a/modules/libjuju/docs/api/juju.placement.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.placement -============== - -.. rubric:: Summary - -.. automembersummary:: juju.placement - -.. rubric:: Reference - -.. automodule:: juju.placement - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.relation.rst b/modules/libjuju/docs/api/juju.relation.rst deleted file mode 100644 index 90e3130..0000000 --- a/modules/libjuju/docs/api/juju.relation.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.relation -============= - -.. rubric:: Summary - -.. automembersummary:: juju.relation - -.. rubric:: Reference - -.. automodule:: juju.relation - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.tag.rst b/modules/libjuju/docs/api/juju.tag.rst deleted file mode 100644 index 9b3a29f..0000000 --- a/modules/libjuju/docs/api/juju.tag.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.tag -======== - -.. rubric:: Summary - -.. automembersummary:: juju.tag - -.. rubric:: Reference - -.. automodule:: juju.tag - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.unit.rst b/modules/libjuju/docs/api/juju.unit.rst deleted file mode 100644 index 4a7d167..0000000 --- a/modules/libjuju/docs/api/juju.unit.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.unit -========= - -.. rubric:: Summary - -.. automembersummary:: juju.unit - -.. rubric:: Reference - -.. automodule:: juju.unit - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/juju.utils.rst b/modules/libjuju/docs/api/juju.utils.rst deleted file mode 100644 index 9220a1b..0000000 --- a/modules/libjuju/docs/api/juju.utils.rst +++ /dev/null @@ -1,13 +0,0 @@ -juju.utils -========== - -.. rubric:: Summary - -.. automembersummary:: juju.utils - -.. rubric:: Reference - -.. automodule:: juju.utils - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/api/modules.rst b/modules/libjuju/docs/api/modules.rst deleted file mode 100644 index 9722a6a..0000000 --- a/modules/libjuju/docs/api/modules.rst +++ /dev/null @@ -1,31 +0,0 @@ -Public APIs -=========== - -It is recommended that you start with :doc:`juju.model` or :doc:`juju.controller`. -If you need helpers to manage the asyncio loop, try :doc:`juju.loop`. - -.. toctree:: - - juju.action - juju.annotation - juju.application - juju.cloud - juju.constraints - juju.controller - juju.delta - juju.errors - juju.exceptions - juju.juju - juju.loop - juju.machine - juju.model - juju.placement - juju.relation - juju.tag - juju.unit - juju.utils - -.. automodule:: juju - :members: - :undoc-members: - :show-inheritance: diff --git a/modules/libjuju/docs/changelog.rst b/modules/libjuju/docs/changelog.rst deleted file mode 100644 index d5e13ba..0000000 --- a/modules/libjuju/docs/changelog.rst +++ /dev/null @@ -1,290 +0,0 @@ -Changelog ---------- - -0.11.3 -^^^^^^ -Wednesday March 13 2019 - -* k8s bundles no longer have application placement (#293) -* Add retry for connection if all endpoints fail (#288) -* Support generation of registration string for model sharing. (#279) -* Add Twine for dist upload on release (#284) - - -0.11.2 -^^^^^^ -Wednesday January 16 2019 - -* update facade methods for Juju 2.5-rc2 (#281) -* Add test case for redirect during connect (#275) -* Implement App.get_resources and pinned resources in bundles (#278) - - -0.11.1 -^^^^^^ -Thursday December 13 2018 - -* Fix bundles with subordinates for Juju <2.5 (#277) - - -0.11.0 -^^^^^^ -Tuesday December 11 2018 - -* Updates for new Juju version (#274) -* Fix wrong variable name in revoke_model function (#271) - - -0.10.2 -^^^^^^ -Tuesday September 18 2018 - -* set include_stats to false to reduce request time (#266) - - -0.10.1 -^^^^^^ -Monday September 17 2018 - -* Retry ssh in manual provision test (#265) -* Clean up lint and add lint coverage to travis config (#263) -* Increase the timeout for charmstore connections (#262) -* Fix log level of `Driver connected to juju` message (#258) - - -0.10.0 -^^^^^^ -Thursday August 16 2018 - -* Fix error due to scp extra opts order (#260) -* Implement set/get model constraints (#253) - - ->>>>>>> b8a8281b1785358bd5632a119c016f21811172c6 -0.9.1 -^^^^^ -Monday July 16 2018 - -* Update websockets to 6.0 to fix OS X support due to Brew update to Py3.7 (#254) - - -0.9.0 -^^^^^ -Friday June 29 2018 - -* python3.7 compatibility updates (#251) -* Handle juju not installed in is_bootstrapped for tests (#250) -* Add app.reset_config(list). (#249) -* Implement model.get_action_status (#248) -* Fix `make client` in Python 3.6 (#247) - - -0.8.0 -^^^^^ -Thursday June 14 2018 - -* Add support for adding a manual (ssh) machine (#240) -* Backwards compatibility fixes (#213) -* Implement model.get_action_output (#242) -* Fix JSON serialization error for bundle with lxd to unit placement (#243) -* Fix reference in docs to connect_current (#239) -* Wrap machine agent status workaround in version check (#238) -* Convert seconds to nanoseconds for juju.unit.run (#237) -* Fix spurious intermittent failure in test_machines.py::test_status (#236) -* Define an unused juju-zfs lxd storage pool for Travis (#235) -* Add support for Application get_actions (#234) - - -0.7.5 -^^^^^ -Friday May 18 2018 - -* Surface errors from bundle plan (#233) -* Always send auth-tag even with macaroon auth (#217) -* Inline jsonfile credential when sending to controller (#231) - -0.7.4 -^^^^^ -Tuesday Apr 24 2018 - -* Always parse tags and spaces constraints to lists (#228) -* Doc index improvements (#211) -* Add doc req to force newer pymacaroons to fix RTD builds -* Fix dependency conflict for building docs - -0.7.3 -^^^^^ -Tuesday Feb 20 2018 - -* Full macaroon bakery support (#206) -* Fix regression with deploying local charm, add test case (#209) -* Expose a machines series (#208) -* Automated test runner fixes (#205) - -0.7.2 -^^^^^ -Friday Feb 9 2018 - -* Support deploying bundle YAML file directly (rather than just directory) (#202) - -0.7.1 -^^^^^ -Monday Dec 18 2017 - -* Fix missed renames of model_uuids (#197) - -0.7.0 -^^^^^ -Fri Dec 15 2017 - -* Fix race condition in adding relations (#192) -* Fix race condition in connection monitor test (#183) -* Fix example in README (#178) -* Fix rare hang during Unit.run (#177) -* Fix licensing quirks (#176) -* Refactor model handling (#171) -* Refactor users handling, add get_users (#170) -* Upload credential to controller when adding model (#168) -* Support 'applications' key in bundles (#165) -* Improve handling of thread error handling for loop.run() (#169) -* Fix encoding when using to_json() (#166) -* Fix intermittent test failures (#167) - -0.6.1 -^^^^^ -Fri Sept 29 2017 - -* Fix failure when controller supports newer facade version (#145) -* Fix test failures (#163) -* Fix SSH key handling when adding a new model (#161) -* Make Application.upgrade_charm upgrade resources (#158) -* Expand integration tests to use stable/edge versions of juju (#155) -* Move docs to ReadTheDocs (https://pythonlibjuju.readthedocs.io/en/latest/) - -0.6.0 -^^^^^ -Thu June 29 2017 - -* Implement scp functionality (#149) -* Add Unit.public_address property (#153) -* Adds support for getting/setting config on a model (#152) - -0.5.3 -^^^^^ -Thu June 22 2017 - -* Improve handling of closed connections (#148) -* Configurable and larger max message size (#146) - -0.5.2 -^^^^^ -Wed June 14 2017 - -* Fix deploying non-stable channels and explicit revs (#144) - -0.5.1 -^^^^^ -Tue June 13 2017 - -* Update schema for Juju 2.3 alpha1 (#142) -* Improve API doc navigation and coverage (#141) -* Add type info to Model.add_machine docs (#138) - -0.5.0 -^^^^^ -Thu June 8 2017 - -* Add machine status properties (#133) -* Add model context manager (#128) -* Implement Application.upgrade_charm method (#132) - -0.4.3 -^^^^^ -Thu June 1 2017 - -* Accept new / unknown API fields gracefully (#131) -* Add support for new agent-version field in ModelInfo (#131) -* Replace pip with pip3 in install instructions (#129) -* Strip local:-prefix from local charm urls (#121) - -0.4.2 -^^^^^ -Wed May 10 2017 - -* Support (and prefer) per-controller macaroon files (#125) - -0.4.1 -^^^^^ -Wed Apr 27 2017 - -* Remove VERSION_MAP and rely on facade list from controller (#118) -* Refactor connection task management to avoid cancels (#117) -* Refactored login code to better handle redirects (#116) - -0.4.0 -^^^^^ -Wed Apr 19 2017 - -* Feature/api version support (#109) -* Expanding controller.py with basic user functions, get_models and - destroy (#89) -* Added Monitor class to Connection. (#105) -* Support placement lists (#103) -* Include resources from store when deploying (#102) -* Allow underscore to dash translation when accessing model - attributes (#101) -* Added controller to ssh fix. (#100) -* Regen schema to pick up missing APIs -* Improve error handling -* Fix issue where we do not check to make sure that we are receiving the - correct response. -* Retry calls to charmstore and increase timeout to 5s -* Make connect_model and deploy a bit more friendly -* Fix model name not including user -* Implement Model.get_status -* Add integration tests. - -0.3.0 -^^^^^ -Mon Feb 27 2017 - -* Fix docstrings for placement directives. -* Implement Model.add_machine() -* Bug fix - "to" parameter to Model.deploy() was broken -* Add docs and examples for adding machines and containers and deploying - charms to them. -* Make Machine.destroy() block the current coroutine, returning only after - the machine is actually removed from the remote model. This is more - consistent with the way the other apis work (e.g. Model.deploy(), - Application.add_unit(), etc). -* Raise NotImplementedError in all unimplemented method stubs instead of - silently passing. - -0.2.0 -^^^^^ -Thu Feb 16 2017 - -* Add default ssh key to newly created model. -* Add loop helpers and simplify examples/deploy.py -* Add support for deploying local charms, and bundles containing local charm paths. -* Add ability to get cloud name for controller. -* Bug fix - fix wrong api used in Model.destroy_unit() -* Add error detection in bundle deploy. - -0.1.2 -^^^^^ -Thu Dec 22 2016 - -* Bug fix - Include docs in package - -0.1.1 -^^^^^ -Thu Dec 22 2016 - -* Bug fix - Include VERSION file in package - -0.1.0 -^^^^^ -Wed Dec 21 2016 - -* Initial Release diff --git a/modules/libjuju/docs/conf.py b/modules/libjuju/docs/conf.py deleted file mode 100644 index a95ec04..0000000 --- a/modules/libjuju/docs/conf.py +++ /dev/null @@ -1,303 +0,0 @@ -# -*- coding: utf-8 -*- -# -# libjuju documentation build configuration file, created by -# sphinx-quickstart on Thu May 19 11:21:38 2016. -# -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys -import os - -from pathlib import Path - -here = Path(__file__).absolute().parent -version = (here.parent / 'VERSION').read_text().strip() - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) - -# -- General configuration ------------------------------------------------ - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -sys.path.append(os.path.abspath('_extensions/')) -extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.intersphinx', - 'sphinx.ext.todo', - 'sphinx.ext.viewcode', - 'sphinxcontrib.asyncio', - 'automembersummary', -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# source_suffix = ['.rst', '.md'] -source_suffix = '.rst' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = u'juju' -copyright = u'2016, Canonical Ltd.' -author = u'Canonical' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = version -# The full version, including alpha/beta/rc tags. -release = version - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# -# This is also used if you do content translation via gettext catalogs. -# Usually you set "language" from the command line for these cases. -language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This patterns also effect to html_static_path and html_extra_path -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False - -# If true, `todo` and `todoList` produce output, else they produce nothing. -todo_include_todos = True - - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'sphinx_rtd_theme' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -#html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] - -# The name for this set of Sphinx documents. -# " v documentation" by default. -#html_title = u'libjuju v0.0.0' - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (relative to this directory) to use as a favicon of -# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -#html_extra_path = [] - -# If not None, a 'Last updated on:' timestamp is inserted at every page -# bottom, using the given strftime format. -# The empty string is equivalent to '%b %d, %Y'. -#html_last_updated_fmt = None - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Language to be used for generating the HTML full-text search index. -# Sphinx supports the following languages: -# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' -# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr', 'zh' -#html_search_language = 'en' - -# A dictionary with options for the search language support, empty by default. -# 'ja' uses this config value. -# 'zh' user can custom change `jieba` dictionary path. -#html_search_options = {'type': 'default'} - -# The name of a javascript file (relative to the configuration directory) that -# implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' - -# Output file base name for HTML help builder. -htmlhelp_basename = 'libjujudoc' - -# -- Options for LaTeX output --------------------------------------------- - -latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -#'papersize': 'letterpaper', - -# The font size ('10pt', '11pt' or '12pt'). -#'pointsize': '10pt', - -# Additional stuff for the LaTeX preamble. -#'preamble': '', - -# Latex figure (float) alignment -#'figure_align': 'htbp', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - (master_doc, 'libjuju.tex', u'libjuju Documentation', - u'Canonical', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - (master_doc, 'libjuju', u'libjuju Documentation', - [author], 1) -] - -# If true, show URL addresses after external links. -#man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - (master_doc, 'libjuju', u'libjuju Documentation', - author, 'libjuju', 'One line description of project.', - 'Miscellaneous'), -] - -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] - -# If false, no module index is generated. -#texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False - -def setup(app): - app.add_stylesheet('custom.css') diff --git a/modules/libjuju/docs/index.rst b/modules/libjuju/docs/index.rst deleted file mode 100644 index 2dd55cb..0000000 --- a/modules/libjuju/docs/index.rst +++ /dev/null @@ -1,45 +0,0 @@ -.. libjuju documentation master file, created by - sphinx-quickstart on Thu May 19 11:21:38 2016. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - - -.. include:: readme.rst - - -Table of Contents ------------------ - -.. toctree:: - :caption: Overview - :glob: - :maxdepth: 3 - - narrative/index - - -.. toctree:: - :caption: API Documentation - :glob: - :maxdepth: 3 - - api/modules - api/juju.client - -.. toctree:: - :caption: Project - :glob: - :maxdepth: 3 - - upstream-updates/index - changelog - - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - diff --git a/modules/libjuju/docs/narrative/application.rst b/modules/libjuju/docs/narrative/application.rst deleted file mode 100644 index 1565e5f..0000000 --- a/modules/libjuju/docs/narrative/application.rst +++ /dev/null @@ -1,136 +0,0 @@ -Applications -============ -For api docs, see :class:`juju.application.Application`. - - -Deploying ---------- -To deploy a new application, connect a model and then call its -:meth:`~juju.model.Model.deploy` method. An -:class:`~juju.application.Application` instance is returned. - -.. code:: python - - from juju.model import Model - - model = Model() - await model.connect_current() - - mysql_app = await model.deploy( - # If a revision number is not included in the charm url, - # the latest revision from the Charm Store will be used. - 'cs:mysql-55', - application_name='mysql', - series='trusty', - channel='stable', - config={ - 'tuning-level': 'safest', - }, - constraints={ - 'mem': 256 * MB, - }, - ) - - -Deploying a Local Charm ------------------------ -To deploy a local charm, pass the charm directory path to -`Model.deploy()`. - -.. code:: python - - from juju.model import Model - - model = Model() - await model.connect_current() - - # Deploy a local charm using a path to the charm directory - await model.deploy( - '/home/tvansteenburgh/src/charms/ubuntu', - application_name='ubuntu', - series='trusty', - ) - - -Adding Units ------------- -To add units to a deployed application, use the -:meth:`juju.application.Application.add_units` method. A list of the newly -added units (:class:`~juju.unit.Unit` objects) is returned. - -.. code:: python - - ubuntu_app = await model.deploy( - 'ubuntu', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - - unit_a, unit_b = await ubuntu_app.add_units(count=2) - - -Updating Config and Constraints -------------------------------- -Example showing how to update configuration and constraints on a deployed -application. The `mysql_app` object is an instance of -:class:`juju.application.Application`. - -.. code:: python - - MB = 1024 * 1024 - - # Update and check app config - await mysql_app.set_config({'tuning-level': 'fast'}) - config = await mysql_app.get_config() - - assert(config['tuning-level']['value'] == 'fast') - - # update and check app constraints - await mysql_app.set_constraints({'mem': 512 * MB}) - constraints = await mysql_app.get_constraints() - - assert(constraints['mem'] == 512 * MB) - - -Adding and Removing Relations ------------------------------ -The :meth:`juju.application.Application.add_relation` method returns a -:class:`juju.relation.Relation` instance. - -.. code:: python - - from juju.model import Model - - model = Model() - await model.connect_current() - - # Deploy mysql-master application - mysql_master = await model.deploy( - 'cs:mysql-55', - application_name='mysql-master', - series='trusty', - channel='stable', - ) - - # Deploy mysql-slave application - mysql_slave = await model.deploy( - 'cs:mysql-55', - application_name='mysql-slave', - series='trusty', - channel='stable', - ) - - # Add the master-slave relation - relation = await mysql_master.add_relation( - # Name of the relation on the local (mysql-master) side - 'master', - # Name of the app:relation on the remote side - 'mysql-slave:slave', - ) - - # Remove the relation - await mysql_master.remove_relation( - 'master', - 'mysql-slave:slave', - ) diff --git a/modules/libjuju/docs/narrative/controller.rst b/modules/libjuju/docs/narrative/controller.rst deleted file mode 100644 index 1d86321..0000000 --- a/modules/libjuju/docs/narrative/controller.rst +++ /dev/null @@ -1,92 +0,0 @@ -Controllers -=========== -A Juju controller provides websocket endpoints for itself and each of its -models. In order to do anything useful, the juju lib must connect to one of -these endpoints. - -Connecting to the controller endpoint is useful if you want to programmatically -create a new model. If the model you want to use already exists, you can -connect directly to it (see py:doc:`model`). - -For API docs, see py:class:`juju.controller.Controller`. - - -Connecting to the Current Controller ------------------------------------- -Connect to the currently active Juju controller (the one returned by -`juju switch`). This only works if you have the Juju CLI client installed. - -.. code:: python - - from juju.controller import Controller - - controller = Controller() - await controller.connect() - - -Connecting to a Named Controller --------------------------------- -Connect to a controller by name. - -.. code:: python - - from juju.controller import Controller - - controller = Controller() - await controller.connect('mycontroller') - - -Connecting with Authentication ------------------------------- -You can control what user you are connecting with by specifying either a -username/password pair, or a macaroon or bakery client that can provide -a macaroon. - - -.. code:: python - - controller = Controller() - await controller.connect(username='admin', - password='f53f08cfc32a2e257fe5393271d89d62') - - # or with a macaroon - await controller.connect(macaroons=[ - { - "Name": "macaroon-218d87053ad19626bcd5a0eef0bc9ba8bd4fbd80a968f52a5fd430b2aa8660df", - "Value": "W3siY2F2ZWF0cyI6 ... jBkZiJ9XQ==", - "Domain": "10.130.48.27", - "Path": "/auth", - "Secure": false, - "HostOnly": true, - "Expires": "2018-03-07T22:07:23Z", - }, - ]) - - # or with a bakery client - from macaroonbakery.httpbakery import Client - from http.cookiejar import FileCookieJar - - bakery_client=Client() - bakery_client.cookies = FileCookieJar('cookies.txt') - controller = Controller() - await controller.connect(bakery_client=bakery_client) - - - -Connecting with an Explicit Endpoint ------------------------------------- -The most flexible, but also most verbose, way to connect is using the API -endpoint url and credentials directly. This method does NOT require the -Juju CLI client to be installed. - -.. code:: python - - controller = Controller() - await controller.connect( - endpoint='10.0.4.171:17070', - username='admin', - password='f53f08cfc32a2e257fe5393271d89d62', - cacert=None, # Left out for brevity, but if you have a cert string you - # should pass it in. You can get the cert from the output - # of The `juju show-controller` command. - ) diff --git a/modules/libjuju/docs/narrative/index.rst b/modules/libjuju/docs/narrative/index.rst deleted file mode 100644 index b1684a0..0000000 --- a/modules/libjuju/docs/narrative/index.rst +++ /dev/null @@ -1,10 +0,0 @@ -**Overview** - -.. toctree:: - :glob: - :maxdepth: 2 - - controller - model - application - unit diff --git a/modules/libjuju/docs/narrative/model.rst b/modules/libjuju/docs/narrative/model.rst deleted file mode 100644 index 42633a1..0000000 --- a/modules/libjuju/docs/narrative/model.rst +++ /dev/null @@ -1,290 +0,0 @@ -Models -====== -A Juju controller provides websocket endpoints for each of its -models. In order to do anything useful with a model, the juju lib must -connect to one of these endpoints. There are several ways to do this. - -For api docs, see py:class:`juju.model.Model`. - - -Connecting to the Current Model -------------------------------- -Connect to the currently active Juju model (the one returned by -`juju switch`). This only works if you have the Juju CLI client installed. - -.. code:: python - - model = Model() - await model.connect() - - -Connecting to a Named Model ---------------------------- -Connect to a model by name, using the same format as that returned from the -`juju switch` command. The accepted format is '[controller:][user/]model'. -This only works if you have the Juju CLI client installed. - -.. code:: python - - model = Model() - await model.connect('juju-2.0.1:admin/libjuju') - - -Connecting with Authentication ------------------------------- -You can control what user you are connecting with by specifying either a -username/password pair, or a macaroon or bakery client that can provide -a macaroon. - - -.. code:: python - - model = Model() - await model.connect(username='admin', - password='f53f08cfc32a2e257fe5393271d89d62') - - # or with a macaroon - await model.connect(macaroons=[ - { - "Name": "macaroon-218d87053ad19626bcd5a0eef0bc9ba8bd4fbd80a968f52a5fd430b2aa8660df", - "Value": "W3siY2F2ZWF0cyI6 ... jBkZiJ9XQ==", - "Domain": "10.130.48.27", - "Path": "/auth", - "Secure": false, - "HostOnly": true, - "Expires": "2018-03-07T22:07:23Z", - }, - ]) - - # or with a bakery client - from macaroonbakery.httpbakery import Client - from http.cookiejar import FileCookieJar - - bakery_client=Client() - bakery_client.cookies = FileCookieJar('cookies.txt') - model = Model() - await model.connect(bakery_client=bakery_client) - - - -Connecting with an Explicit Endpoint ------------------------------------- -The most flexible, but also most verbose, way to connect is using the API -endpoint url, model UUID, and credentials directly. This method does NOT -require the Juju CLI client to be installed. - -.. code:: python - - from juju.model import Model - - model = Model() - await model.connect( - endpoint='10.0.4.171:17070', - uuid='e8399ac7-078c-4817-8e5e-32316d55b083', - username='admin', - password='f53f08cfc32a2e257fe5393271d89d62', - cacert=None, # Left out for brevity, but if you have a cert string you - # should pass it in. You can get the cert from the output - # of The `juju show-controller` command. - ) - - -Creating and Destroying a Model -------------------------------- -Example of creating a new model and then destroying it. See -py:method:`juju.controller.Controller.add_model` and -py:method:`juju.controller.Controller.destroy_model` for more info. - -.. code:: python - - from juju.controller import Controller - - controller = Controller() - await controller.connect_current() - - # Create our new model - model = await controller.add_model( - 'mymodel', # name of your new model - ) - - # Do stuff with our model... - - # Destroy the model - await model.disconnect() - await controller.destroy_model(model.info.uuid) - model = None - - -Adding Machines and Containers ------------------------------- -To add a machine or container, connect to a model and then call its -py:method:`~juju.model.Model.add_machine` method. A -py:class:`~juju.machine.Machine` instance is returned. The machine id -can be used to deploy a charm to a specific machine or container. - -.. code:: python - - from juju.model import Model - - MB = 1 - GB = 1024 - - - model = Model() - await model.connect_current() - - # add a new default machine - machine1 = await model.add_machine() - - # add a machine with constraints, disks, and series specified - machine2 = await model.add_machine( - constraints={ - 'mem': 256 * MB, - }, - disks=[{ - 'pool': 'rootfs', - 'size': 10 * GB, - 'count': 1, - }], - series='xenial', - ) - - # add a lxd container to machine2 - machine3 = await model.add_machine( - 'lxd:{}'.format(machine2.id)) - - # deploy charm to the lxd container - application = await model.deploy( - 'ubuntu-10', - application_name='ubuntu', - series='xenial', - channel='stable', - to=machine3.id - ) - - # remove application - await application.remove() - - # destroy machines - note that machine3 must be destroyed before machine2 - # since it's a container on machine2 - await machine3.destroy(force=True) - await machine2.destroy(force=True) - await machine1.destroy(force=True) - - -Reacting to Changes in a Model ------------------------------- -To watch for and respond to changes in a model, register an observer with the -model. The easiest way to do this is by creating a -py:class:`juju.model.ModelObserver` subclass. - -.. code:: python - - from juju.model import Model, ModelObserver - - class MyModelObserver(ModelObserver): - async def on_change(self, delta, old, new, model): - # The raw change data (dict) from the websocket. - print(delta.data) - - # The entity type (str) affected by this change. - # One of ('action', 'application', 'annotation', 'machine', - # 'unit', 'relation') - print(delta.entity) - - # The type (str) of change. - # One of ('add', 'change', 'remove') - print(delta.type) - - # The 'old' and 'new' parameters are juju.model.ModelEntity - # instances which represent an entity in the model both before - # this change was applied (old) and after (new). - - # If an entity is being added to the model, the 'old' param - # will be None. - if delta.type == 'add': - assert(old is None) - - # If an entity is being removed from the model, the 'new' param - # will be None. - if delta.type == 'remove': - assert(new is None) - - # The 'old' and 'new' parameters, when not None, will be instances - # of a juju.model.ModelEntity subclass. The type of the subclass - # depends on the value of 'delta.entity', for example: - # - # delta.entity type - # ------------ ---- - # 'action' -> juju.action.Action - # 'application' -> juju.application.Application - # 'annotation' -> juju.annotation.Annotation - # 'machine' -> juju.machine.Machine - # 'unit' -> juju.unit.Unit - # 'relation' -> juju.relation.Relation - - # Finally, the 'model' parameter is a reference to the - # juju.model.Model instance to which this observer is attached. - print(id(model)) - - - model = Model() - await model.connect_current() - - model.add_observer(MyModelObserver()) - - -Every change in the model will result in a call to the `on_change()` -method of your observer(s). - -To target your code more precisely, define method names that correspond -to the entity and type of change that you wish to handle. - -.. code:: python - - from juju.model import Model, ModelObserver - - class MyModelObserver(ModelObserver): - async def on_application_change(self, delta, old, new, model): - # Both 'old' and 'new' params will be instances of - # juju.application.Application - pass - - async def on_unit_remove(self, delta, old, new, model): - # Since a unit is being removed, the 'new' param will always - # be None in this handler. The 'old' param will be an instance - # of juju.unit.Unit - the state of the unit before it was removed. - pass - - async def on_machine_add(self, delta, old, new, model): - # Since a machine is being added, the 'old' param will always be - # None in this handler. The 'new' param will be an instance of - # juju.machine.Machine. - pass - - async def on_change(self, delta, old, new, model): - # The catch-all handler - will be called whenever a more - # specific handler method is not defined. - - -Any py:class:`juju.model.ModelEntity` object can be observed directly by -registering callbacks on the object itself. - -.. code:: python - - import logging - - async def on_app_change(delta, old, new, model): - logging.debug('App changed: %r', new) - - async def on_app_remove(delta, old, new, model): - logging.debug('App removed: %r', old) - - ubuntu_app = await model.deploy( - 'ubuntu', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - ubuntu_app.on_change(on_app_change) - ubuntu_app.on_remove(on_app_remove) diff --git a/modules/libjuju/docs/narrative/unit.rst b/modules/libjuju/docs/narrative/unit.rst deleted file mode 100644 index 5d6b48d..0000000 --- a/modules/libjuju/docs/narrative/unit.rst +++ /dev/null @@ -1,65 +0,0 @@ -Units -===== -For api docs, see :class:`juju.unit.Unit`. - - -Running Commands ----------------- -Run arbitrary commands on a unit with the -:meth:`juju.unit.Unit.run` method. This method blocks -the current coroutine until a result is available, and -returns a :class:`juju.action.Action` instance. - - -.. code:: python - - from juju.model import Model - - model = Model() - await model.connect_current() - - app = await model.deploy( - 'ubuntu', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - - for unit in app.units: - action = await unit.run('unit-get public-address') - print(action.results) - - action = await unit.run('uname -a') - print(action.results) - - -Running Actions ---------------- -Run actions on a unit with the -:meth:`juju.unit.Unit.run_action` method. This method -returns a :class:`juju.action.Action` instance immediately. To block until -the action completes, use the :meth:`juju.action.Action.wait` method, as -in the example below. - - -.. code:: python - - from juju.model import Model - - model = Model() - await model.connect_current() - - app = await model.deploy( - 'git', - application_name='git', - series='trusty', - channel='stable', - ) - - for unit in app.units: - # run the 'add-repo' action, passing a 'repo' param - action = await unit.run_action('add-repo', repo='myrepo') - # wait for the action to complete - action = await action.wait() - - print(action.results) diff --git a/modules/libjuju/docs/readme.rst b/modules/libjuju/docs/readme.rst deleted file mode 100644 index 87666d0..0000000 --- a/modules/libjuju/docs/readme.rst +++ /dev/null @@ -1,103 +0,0 @@ -A Python library for Juju -========================= - -Source code: https://github.com/juju/python-libjuju - -Bug reports: https://github.com/juju/python-libjuju/issues - -Documentation: https://pythonlibjuju.readthedocs.io/en/latest/ - - -Requirements ------------- - -* Python 3.5+ -* Juju 2.0+ - - -Design Notes ------------- - -* Asynchronous - uses asyncio and async/await features of python 3.5 -* Websocket-level bindings are programmatically generated (indirectly) from the - Juju golang code, ensuring full api coverage -* Provides an OO layer which encapsulates much of the websocket api and - provides familiar nouns and verbs (e.g. Model.deploy(), Application.add_unit(), - etc.) - - -Installation ------------- - -.. code:: bash - - pip3 install juju - - -Quickstart ----------- -Here's a simple example that shows basic usage of the library. The example -connects to the currently active Juju model, deploys a single unit of the -ubuntu charm, then exits: - - -.. code:: python - - #!/usr/bin/python3 - - import logging - import sys - - from juju import loop - from juju.model import Model - - - async def deploy(): - # Create a Model instance. We need to connect our Model to a Juju api - # server before we can use it. - model = Model() - - # Connect to the currently active Juju model - await model.connect_current() - - try: - # Deploy a single unit of the ubuntu charm, using the latest revision - # from the stable channel of the Charm Store. - ubuntu_app = await model.deploy( - 'ubuntu', - application_name='ubuntu', - series='xenial', - channel='stable', - ) - - if '--wait' in sys.argv: - # optionally block until the application is ready - await model.block_until(lambda: ubuntu_app.status == 'active') - finally: - # Disconnect from the api server and cleanup. - await model.disconnect() - - - def main(): - logging.basicConfig(level=logging.INFO) - - # If you want to see everything sent over the wire, set this to DEBUG. - ws_logger = logging.getLogger('websockets.protocol') - ws_logger.setLevel(logging.INFO) - - # Run the deploy coroutine in an asyncio event loop, using a helper - # that abstracts loop creation and teardown. - loop.run(deploy()) - - - if __name__ == '__main__': - main() - - -More examples can be found in the docs, as well as in the ``examples/`` -directory of the source tree which can be run using ``tox``. For -example, to run ``examples/connect_current_model.py``, use: - -.. code:: bash - - tox -e example -- examples/connect_current_model.py diff --git a/modules/libjuju/docs/requirements.txt b/modules/libjuju/docs/requirements.txt deleted file mode 100644 index dabf3a0..0000000 --- a/modules/libjuju/docs/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -pytz<2018.0,>=2017.2 # conflict between sphinx and macaroonbakery -pymacaroons>=0.13.0,<1.0 # force new version with pynacl instead of libnacl -sphinx==1.6.5 -sphinxcontrib-asyncio -sphinx_rtd_theme diff --git a/modules/libjuju/docs/upstream-updates/index.rst b/modules/libjuju/docs/upstream-updates/index.rst deleted file mode 100644 index 41f448a..0000000 --- a/modules/libjuju/docs/upstream-updates/index.rst +++ /dev/null @@ -1,114 +0,0 @@ -Syncing Upstream Updates -======================== - -Updating the facade and definitions code generated from the schema -to reflect changes in upstream Juju consists of two steps: - -* Creating a new `schemas-juju-.json` file from the Juju code-base -* Generating the libjuju Python code from that schema - -Rarely, you may also have to add or update an override. - - -Creating a Schema File ----------------------- - -First, you will need to fetch SchemaGen_ and a copy of the Juju source. -Once your copy of the Juju source is at the version you want to update to -(probably the `develop` branch, or a release tag) and you have updated -and reinstalled SchemaGen to reflect those changes, you just need to send -the output into a file in the libjuju repository: - -.. code:: bash - - schemagen > juju/client/schemas-juju-2.2-rc1.json - -The version number you use in the filename should match the upstream -version of Juju. You should then also move the `latest` pointer to -the new file: - -.. code:: bash - - rm juju/client/schemas-juju-latest.json - ln -s schemas-juju-2.2-rc1.json juju/client/schemas-juju-latest.json - - -Generating the Python Code --------------------------- - -Once you have a new schema file, you can update the Python code -using the `client` make target: - -.. code:: bash - - make client - -You should expect to see updates to the `juju/client/_definitions.py` file, -as well as one or more of the `juju/client/_clientX.py` files, depending on -which facades were touched. - - -Integrating into the Object Layer ---------------------------------- - -Once the raw client APIs are synced, you may need to integrate any new or -changed API calls into the object layer, to provide a clean, Pythonic way -to interact with the model. This may be as simple as adding an optional -parameter to an existing model method, tweaking what manipulations, if any -the model method does to the data before it is sent to the API, or it may -require adding an entirely new model method to capture the new functionality. - -In general, the approach should be to make the interactions with the model -layer use the same patterns as when you use the CLI, just with Python idioms -and OO approaches. - -When trying to determine what client calls need to be made and what data to -be sent for a given Juju CLI action, it is very useful to add -`--debug --logging-config TRACE` to any Juju CLI command to view the full -conversation between the CLI client and the API server. For example: - -``` -[johnsca@murdoch:~] $ juju deploy --debug --logging-config TRACE ./builds/test -11:51:20 INFO juju.cmd supercommand.go:56 running juju [2.3.5 gc go1.10] -11:51:20 DEBUG juju.cmd supercommand.go:57 args: []string{"/snap/juju/3884/bin/juju", "deploy", "--debug", "--logging-config", "TRACE", "./builds/test"} -11:51:20 INFO juju.juju api.go:67 connecting to API addresses: [35.172.119.191:17070 172.31.94.16:17070 252.94.16.1:17070] -11:51:20 TRACE juju.api certpool.go:49 cert dir "/etc/juju/certs.d" does not exist -11:51:20 DEBUG juju.api apiclient.go:843 successfully dialed "wss://35.172.119.191:17070/model/a7317969-6dab-4ba4-844b-af3d661c228d/api" -11:51:20 INFO juju.api apiclient.go:597 connection established to "wss://35.172.119.191:17070/model/a7317969-6dab-4ba4-844b-af3d661c228d/api" -... -11:51:20 INFO juju.cmd.juju.application series_selector.go:71 with the configured model default series "xenial" -11:51:20 DEBUG httpbakery client.go:244 client do POST https://35.172.119.191:17070/model/a7317969-6dab-4ba4-844b-af3d661c228d/charms?revision=0&schema=local&series=xenial { -11:51:21 DEBUG httpbakery client.go:246 } -> error -11:51:21 INFO cmd deploy.go:1096 Deploying charm "local:xenial/test-0". -11:51:21 TRACE juju.rpc.jsoncodec codec.go:225 -> {"request-id":3,"type":"Charms","version":2,"request":"CharmInfo","params":{"url":"local:xenial/test-0"}} -11:51:21 TRACE juju.rpc.jsoncodec codec.go:120 <- {"request-id":3,"response":{"revision":0,"url":"local:xenial/test-0","config":{"test":{"type":"string","default":""}},"meta":{"name":"test","summary":"test","description":"test","subordinate":false,"series":["xenial"],"resources":{"dummy":{"name":"dummy","type":"file","path":"dummy.snap","description":"dummy snap"}},"min-juju-version":"0.0.0"},"actions":{}}} -11:51:21 TRACE juju.rpc.jsoncodec codec.go:225 -> {"request-id":4,"type":"Charms","version":2,"request":"IsMetered","params":{"url":"local:xenial/test-0"}} -11:51:21 TRACE juju.rpc.jsoncodec codec.go:120 <- {"request-id":4,"response":{"metered":false}} -11:51:21 TRACE juju.rpc.jsoncodec codec.go:225 -> {"request-id":5,"type":"Resources","version":1,"request":"AddPendingResources","params":{"tag":"application-test","url":"local:xenial/test-0","channel":"","macaroon":null,"resources":[{"name":"dummy","type":"file","path":"dummy.snap","description":"dummy snap","origin":"store","revision":-1,"fingerprint":"","size":0}]}} -11:51:21 TRACE juju.rpc.jsoncodec codec.go:120 <- {"request-id":5,"response":{"pending-ids":["c0ffdd92-da23-4fb2-8d41-d82d58423447"]}} -11:51:21 TRACE juju.rpc.jsoncodec codec.go:225 -> {"request-id":6,"type":"Application","version":5,"request":"Deploy","params":{"applications":[{"application":"test","series":"xenial","charm-url":"local:xenial/test-0","channel":"","num-units":1,"config-yaml":"","constraints":{},"resources":{"dummy":"c0ffdd92-da23-4fb2-8d41-d82d58423447"}}]}} -11:51:21 TRACE juju.rpc.jsoncodec codec.go:120 <- {"request-id":6,"response":{"results":[{}]}} -11:51:21 TRACE juju.rpc.jsoncodec codec.go:123 <- error: read tcp 192.168.1.102:52168->35.172.119.191:17070: use of closed network connection (closing true) -11:51:21 DEBUG juju.api monitor.go:35 RPC connection died -11:51:21 INFO cmd supercommand.go:465 command finished -``` - -Note that this will contain login information (which has been removed from the above). - - -Overrides ---------- - -It should be quite rare, but occasionally the generated Python code does -not capture all of the logic needed to properly parse the output from the API -or may otherwise need some small amount of tweaking. This is what the -`juju/client/overrides.py` file is for. An example of this is the `Number` -type, which isn't standard JSON and must be parsed slightly differently. - -At the top of that file are two lists, `__all__` and `__patches__`. The -former replaces entire class implementations, while the latter patches -the attributes of the override classes into the matching generated class, -leaving the rest of the generated class untouched. - - -.. _SchemaGen: https://github.com/juju/schemagen diff --git a/modules/libjuju/examples/action.py b/modules/libjuju/examples/action.py deleted file mode 100644 index f839f11..0000000 --- a/modules/libjuju/examples/action.py +++ /dev/null @@ -1,49 +0,0 @@ -""" -This example: - -1. Connects to current model and resets it. -2. Deploys a git unit. -3. Runs an action against the unit. -4. Waits for the action results to come back, then exits. - -""" -import logging - -from juju import loop -from juju.model import Model - - -async def run_action(unit): - logging.debug('Running action on unit %s', unit.name) - - # unit.run() returns a juju.action.Action instance - action = await unit.run_action('add-repo', repo='myrepo') - # wait for the action to complete - action = await action.wait() - - logging.debug("Action results: %s", action.results) - - -async def main(): - model = Model() - # connect to current model with current user, per Juju CLI - await model.connect() - - app = await model.deploy( - 'git', - application_name='git', - series='trusty', - channel='stable', - ) - - for unit in app.units: - await run_action(unit) - - await model.disconnect() - - -if __name__ == '__main__': - logging.basicConfig(level=logging.DEBUG) - ws_logger = logging.getLogger('websockets.protocol') - ws_logger.setLevel(logging.INFO) - loop.run(main()) diff --git a/modules/libjuju/examples/add_machine.py b/modules/libjuju/examples/add_machine.py deleted file mode 100755 index 33d0c34..0000000 --- a/modules/libjuju/examples/add_machine.py +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/env python3.5 - -""" -This example: - -1. Connects to the current model -2. Creates two machines and a lxd container -3. Deploys charm to the lxd container - -""" -import logging - -from juju import loop -from juju.model import Model - -MB = 1 -GB = 1024 - - -async def main(): - model = Model() - await model.connect() - - try: - # add a new default machine - machine1 = await model.add_machine() - # add a machine with constraints, disks, and series - machine2 = await model.add_machine( - constraints={ - 'mem': 256 * MB, - }, - disks=[{ - 'pool': 'rootfs', - 'size': 10 * GB, - 'count': 1, - }], - series='xenial', - ) - # add a lxd container to machine2 - machine3 = await model.add_machine( - 'lxd:{}'.format(machine2.id)) - - # deploy charm to the lxd container - application = await model.deploy( - 'ubuntu-10', - application_name='ubuntu', - series='xenial', - channel='stable', - to=machine3.id - ) - - await model.block_until( - lambda: all(unit.workload_status == 'active' - for unit in application.units)) - - await application.remove() - - await machine3.destroy(force=True) - await machine2.destroy(force=True) - await machine1.destroy(force=True) - finally: - await model.disconnect() - - -if __name__ == '__main__': - logging.basicConfig(level=logging.DEBUG) - ws_logger = logging.getLogger('websockets.protocol') - ws_logger.setLevel(logging.INFO) - - loop.run(main()) diff --git a/modules/libjuju/examples/add_model.py b/modules/libjuju/examples/add_model.py deleted file mode 100644 index 88766f1..0000000 --- a/modules/libjuju/examples/add_model.py +++ /dev/null @@ -1,67 +0,0 @@ -""" -This example: - -1. Creates a model on the current controller -2. Deploys a charm to it. -3. Attempts to ssh into the charm - -""" -from juju import loop -from juju import utils -from juju.controller import Controller -import asyncio -from logging import getLogger -import uuid - -LOG = getLogger(__name__) - - -async def main(): - controller = Controller() - print("Connecting to controller") - # connect to current controller with current user, per Juju CLI - await controller.connect() - - try: - model_name = "addmodeltest-{}".format(uuid.uuid4()) - print("Adding model {}".format(model_name)) - model = await controller.add_model(model_name) - - print('Deploying ubuntu') - application = await model.deploy( - 'ubuntu-10', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - - print('Waiting for active') - await asyncio.sleep(10) - await model.block_until( - lambda: all(unit.workload_status == 'active' - for unit in application.units)) - - print("Verifying that we can ssh into the created model") - ret = await utils.execute_process( - 'juju', 'ssh', '-m', model_name, 'ubuntu/0', 'ls /', log=LOG) - assert ret - - print('Removing ubuntu') - await application.remove() - - print("Destroying model") - await controller.destroy_model(model.info.uuid) - - except Exception: - LOG.exception( - "Test failed! Model {} may not be cleaned up".format(model_name)) - - finally: - print('Disconnecting from controller') - if model: - await model.disconnect() - await controller.disconnect() - - -if __name__ == '__main__': - loop.run(main()) diff --git a/modules/libjuju/examples/allwatcher.py b/modules/libjuju/examples/allwatcher.py deleted file mode 100644 index 884230b..0000000 --- a/modules/libjuju/examples/allwatcher.py +++ /dev/null @@ -1,31 +0,0 @@ -""" -This example: - -1. Connects to the current model -2. Starts an AllWatcher -3. Prints all changes received from the AllWatcher -4. Runs forever (kill with Ctrl-C) - -""" -import asyncio -import logging - -from juju.client.connection import Connection -from juju.client import client -from juju import loop - - -async def watch(): - conn = await Connection.connect() - allwatcher = client.AllWatcherFacade.from_connection(conn) - while True: - change = await allwatcher.Next() - for delta in change.deltas: - print(delta.deltas) - - -if __name__ == '__main__': - logging.basicConfig(level=logging.DEBUG) - # Run loop until the process is manually stopped (watch will loop - # forever). - loop.run(watch()) diff --git a/modules/libjuju/examples/config.py b/modules/libjuju/examples/config.py deleted file mode 100644 index c7580f6..0000000 --- a/modules/libjuju/examples/config.py +++ /dev/null @@ -1,54 +0,0 @@ -""" -This example: - -1. Connects to the current model -2. Resets it -3. Deploys a charm and prints its config and constraints - -""" -import logging - -from juju.model import Model -from juju import loop - -log = logging.getLogger(__name__) - -MB = 1 - - -async def main(): - model = Model() - # connect to current model with current user, per Juju CLI - await model.connect() - - ubuntu_app = await model.deploy( - 'mysql', - application_name='mysql', - series='trusty', - channel='stable', - config={ - 'tuning-level': 'safest', - }, - constraints={ - 'mem': 256 * MB, - }, - ) - - # update and check app config - await ubuntu_app.set_config({'tuning-level': 'fast'}) - config = await ubuntu_app.get_config() - assert(config['tuning-level']['value'] == 'fast') - - # update and check app constraints - await ubuntu_app.set_constraints({'mem': 512 * MB}) - constraints = await ubuntu_app.get_constraints() - assert(constraints['mem'] == 512 * MB) - - await model.disconnect() - - -if __name__ == '__main__': - logging.basicConfig(level=logging.DEBUG) - ws_logger = logging.getLogger('websockets.protocol') - ws_logger.setLevel(logging.INFO) - loop.run(main()) diff --git a/modules/libjuju/examples/connect_current_model.py b/modules/libjuju/examples/connect_current_model.py deleted file mode 100644 index b46a09c..0000000 --- a/modules/libjuju/examples/connect_current_model.py +++ /dev/null @@ -1,27 +0,0 @@ -""" -This is a very basic example that connects to the currently selected model -and prints the number of applications deployed to it. -""" -import logging - -from juju import loop -from juju.model import Model - -log = logging.getLogger(__name__) - - -async def main(): - model = Model() - try: - # connect to the current model with the current user, per the Juju CLI - await model.connect() - print('There are {} applications'.format(len(model.applications))) - finally: - if model.is_connected(): - print('Disconnecting from model') - await model.disconnect() - - -if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) - loop.run(main()) diff --git a/modules/libjuju/examples/controller.py b/modules/libjuju/examples/controller.py deleted file mode 100644 index b61a6f6..0000000 --- a/modules/libjuju/examples/controller.py +++ /dev/null @@ -1,41 +0,0 @@ -""" -This example: - -1. Connects to current controller. -2. Creates a new model. -3. Deploys an application on the new model. -4. Disconnects from the model -5. Destroys the model - -""" -import logging - -from juju.controller import Controller -from juju import loop - - -async def main(): - controller = Controller() - # connect to current controller with current user, per Juju CLI - await controller.connect() - model = await controller.add_model( - 'my-test-model', - 'aws', - 'aws-tim', - ) - await model.deploy( - 'ubuntu-0', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - await model.disconnect() - await controller.destroy_model(model.info.uuid) - await controller.disconnect() - - -if __name__ == '__main__': - logging.basicConfig(level=logging.DEBUG) - ws_logger = logging.getLogger('websockets.protocol') - ws_logger.setLevel(logging.INFO) - loop.run(main()) diff --git a/modules/libjuju/examples/credential.py b/modules/libjuju/examples/credential.py deleted file mode 100644 index e653536..0000000 --- a/modules/libjuju/examples/credential.py +++ /dev/null @@ -1,47 +0,0 @@ -import sys -from juju import loop -from juju.controller import Controller - - -async def main(cloud_name, credential_name): - controller = Controller() - model = None - print('Connecting to controller') - # connect to current controller with current user, per Juju CLI - await controller.connect() - try: - print('Adding model') - model = await controller.add_model( - 'test', - cloud_name=cloud_name, - credential_name=credential_name) - - # verify credential - print("Verify model's credential: {}".format( - model.info.cloud_credential_tag)) - - # verify we can deploy - print('Deploying ubuntu') - app = await model.deploy('ubuntu-10') - - print('Waiting for active') - await model.block_until( - lambda: app.units and all(unit.workload_status == 'active' - for unit in app.units)) - - print('Removing ubuntu') - await app.remove() - finally: - print('Cleaning up') - if model: - print('Removing model') - model_uuid = model.info.uuid - await model.disconnect() - await controller.destroy_model(model_uuid) - print('Disconnecting') - await controller.disconnect() - - -if __name__ == '__main__': - assert len(sys.argv) > 2, 'Please provide a cloud and credential name' - loop.run(main(sys.argv[1], sys.argv[2])) diff --git a/modules/libjuju/examples/deploy.py b/modules/libjuju/examples/deploy.py deleted file mode 100644 index 43764d7..0000000 --- a/modules/libjuju/examples/deploy.py +++ /dev/null @@ -1,41 +0,0 @@ -""" -This example: - -1. Connects to the current model -2. Deploy a charm and waits until it reports itself active -3. Destroys the unit and application - -""" -from juju import loop -from juju.model import Model - - -async def main(): - model = Model() - print('Connecting to model') - # connect to current model with current user, per Juju CLI - await model.connect() - - try: - print('Deploying ubuntu') - application = await model.deploy( - 'ubuntu-10', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - - print('Waiting for active') - await model.block_until( - lambda: all(unit.workload_status == 'active' - for unit in application.units)) - - print('Removing ubuntu') - await application.remove() - finally: - print('Disconnecting from model') - await model.disconnect() - - -if __name__ == '__main__': - loop.run(main()) diff --git a/modules/libjuju/examples/fullstatus.py b/modules/libjuju/examples/fullstatus.py deleted file mode 100644 index 5548423..0000000 --- a/modules/libjuju/examples/fullstatus.py +++ /dev/null @@ -1,23 +0,0 @@ -import asyncio - -from juju.client.connection import Connection -from juju.client.client import ClientFacade -from juju import loop - -async def status(): - conn = await Connection.connect() - client = ClientFacade.from_connection(conn) - - patterns = None - status = await client.FullStatus(patterns) - await conn.close() - - print('Applications:', list(status.applications.keys())) - print('Machines:', list(status.machines.keys())) - print('Relations:', status.relations) - - return status - -if __name__ == '__main__': - loop.run(status()) - diff --git a/modules/libjuju/examples/future.py b/modules/libjuju/examples/future.py deleted file mode 100644 index 5e974cf..0000000 --- a/modules/libjuju/examples/future.py +++ /dev/null @@ -1,47 +0,0 @@ -""" -This example doesn't work - it demonstrates features that don't exist yet. - -""" -import logging - -from juju.model import Model -from juju import loop - - -async def main(): - model = Model() - # connect to current model with current user, per Juju CLI - await model.connect() - - goal_state = Model.from_yaml('bundle-like-thing') - ubuntu_app = await model.deploy( - 'ubuntu-0', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - ubuntu_app.on_unit_added(callback=lambda unit: True) - - await model.deploy( - 'nrpe-11', - application_name='nrpe', - series='trusty', - channel='stable', - num_units=0, - ) - await model.add_relation( - 'ubuntu', - 'nrpe', - ) - - result, ok = await model.block_until( - lambda: model.matches(goal_state), - timeout=600 - ) - - -if __name__ == '__main__': - logging.basicConfig(level=logging.DEBUG) - ws_logger = logging.getLogger('websockets.protocol') - ws_logger.setLevel(logging.INFO) - loop.run(main()) diff --git a/modules/libjuju/examples/leadership.py b/modules/libjuju/examples/leadership.py deleted file mode 100644 index dbd1b6e..0000000 --- a/modules/libjuju/examples/leadership.py +++ /dev/null @@ -1,28 +0,0 @@ -""" -This example: - -1. Connects to the current model. -2. Prints out leadership status for all deployed units in the model. -3. Cleanly disconnects. - -""" -import asyncio - -from juju.model import Model -from juju import loop - -async def report_leadership(): - model = Model() - await model.connect() - - print("Leadership: ") - for app in model.applications.values(): - for unit in app.units: - print("{}: {}".format( - unit.name, await unit.is_leader_from_status())) - - await model.disconnect() - - -if __name__ == '__main__': - loop.run(report_leadership()) diff --git a/modules/libjuju/examples/livemodel.py b/modules/libjuju/examples/livemodel.py deleted file mode 100644 index 1b10ac9..0000000 --- a/modules/libjuju/examples/livemodel.py +++ /dev/null @@ -1,31 +0,0 @@ -""" -This example: - -1. Connects to the current model -2. Watches the model and prints all changes -3. Runs forever (kill with Ctrl-C) - -""" -from juju.model import Model -from juju import loop - - -async def on_model_change(delta, old, new, model): - print(delta.entity, delta.type, delta.data) - print(old) - print(new) - print(model) - - -async def watch_model(): - model = Model() - # connect to current model with current user, per Juju CLI - await model.connect() - - model.add_observer(on_model_change) - - -if __name__ == '__main__': - # Run loop until the process is manually stopped (watch_model will loop - # forever). - loop.run(watch_model()) diff --git a/modules/libjuju/examples/localcharm.py b/modules/libjuju/examples/localcharm.py deleted file mode 100644 index b9481d4..0000000 --- a/modules/libjuju/examples/localcharm.py +++ /dev/null @@ -1,34 +0,0 @@ -""" -This example shows how to deploy a local charm. It: - -1. Connects to current model. -2. Uploads a local charm (directory on filesystem) to the model. -3. Deploys the uploaded charm. - -""" -import asyncio -import logging - -from juju.model import Model -from juju import loop - - -async def main(): - model = Model() - await model.connect() - - # Deploy a local charm using a path to the charm directory - await model.deploy( - '/home/tvansteenburgh/src/charms/ubuntu', - application_name='ubuntu', - series='trusty', - ) - - await model.disconnect() - - -if __name__ == '__main__': - logging.basicConfig(level=logging.DEBUG) - ws_logger = logging.getLogger('websockets.protocol') - ws_logger.setLevel(logging.INFO) - loop.run(main()) diff --git a/modules/libjuju/examples/relate.py b/modules/libjuju/examples/relate.py deleted file mode 100644 index 347e021..0000000 --- a/modules/libjuju/examples/relate.py +++ /dev/null @@ -1,102 +0,0 @@ -""" -This example: - -1. Connects to the current model -2. Resets it -3. Deploys two charms and relates them -4. Waits for units to be idle, then exits - -""" -import asyncio -import logging - -from juju.model import Model, ModelObserver -from juju import loop - - -class MyRemoveObserver(ModelObserver): - async def on_change(self, delta, old, new, model): - if delta.type == 'remove': - assert(new.latest() == new) - assert(new.next() is None) - assert(new.dead) - assert(new.current) - assert(new.connected) - assert(new.previous().dead) - assert(not new.previous().current) - assert(not new.previous().connected) - - -class MyModelObserver(ModelObserver): - _shutting_down = False - - async def on_change(self, delta, old, new, model): - if model.units and model.all_units_idle() and not self._shutting_down: - self._shutting_down = True - logging.debug('All units idle, disconnecting') - await model.reset(force=True) - await model.disconnect() - - -async def main(): - model = Model() - # connect to current model with current user, per Juju CLI - await model.connect() - - try: - model.add_observer(MyRemoveObserver()) - await model.reset(force=True) - model.add_observer(MyModelObserver()) - - ubuntu_app = await model.deploy( - 'ubuntu', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - ubuntu_app.on_change(asyncio.coroutine( - lambda delta, old_app, new_app, model: - print('App changed: {}'.format(new_app.entity_id)) - )) - ubuntu_app.on_remove(asyncio.coroutine( - lambda delta, old_app, new_app, model: - print('App removed: {}'.format(old_app.entity_id)) - )) - ubuntu_app.on_unit_add(asyncio.coroutine( - lambda delta, old_unit, new_unit, model: - print('Unit added: {}'.format(new_unit.entity_id)) - )) - ubuntu_app.on_unit_remove(asyncio.coroutine( - lambda delta, old_unit, new_unit, model: - print('Unit removed: {}'.format(old_unit.entity_id)) - )) - unit_a, unit_b = await ubuntu_app.add_units(count=2) - unit_a.on_change(asyncio.coroutine( - lambda delta, old_unit, new_unit, model: - print('Unit changed: {}'.format(new_unit.entity_id)) - )) - await model.deploy( - 'nrpe', - application_name='nrpe', - series='trusty', - channel='stable', - # subordinates must be deployed without units - num_units=0, - ) - my_relation = await model.add_relation( - 'ubuntu', - 'nrpe', - ) - my_relation.on_remove(asyncio.coroutine( - lambda delta, old_rel, new_rel, model: - print('Relation removed: {}'.format(old_rel.endpoints)) - )) - finally: - await model.disconnect() - - -if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) - ws_logger = logging.getLogger('websockets.protocol') - ws_logger.setLevel(logging.INFO) - loop.run(main()) diff --git a/modules/libjuju/examples/unitrun.py b/modules/libjuju/examples/unitrun.py deleted file mode 100644 index 805f0ae..0000000 --- a/modules/libjuju/examples/unitrun.py +++ /dev/null @@ -1,46 +0,0 @@ -""" -This example: - -1. Connects to current model and resets it. -2. Deploys one ubuntu unit. -3. Runs an action against the unit. -4. Waits for the action results to come back, then exits. - -""" -import logging - -from juju.model import Model -from juju import loop - - -async def run_command(unit): - logging.debug('Running command on unit %s', unit.name) - - # unit.run() returns a juju.action.Action instance - action = await unit.run('unit-get public-address') - logging.debug("Action results: %s", action.results) - - -async def main(): - model = Model() - # connect to current model with current user, per Juju CLI - await model.connect() - - app = await model.deploy( - 'ubuntu-0', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - - for unit in app.units: - await run_command(unit) - - await model.disconnect() - - -if __name__ == '__main__': - logging.basicConfig(level=logging.DEBUG) - ws_logger = logging.getLogger('websockets.protocol') - ws_logger.setLevel(logging.INFO) - loop.run(main()) diff --git a/modules/libjuju/juju/__init__.py b/modules/libjuju/juju/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/modules/libjuju/juju/action.py b/modules/libjuju/juju/action.py deleted file mode 100644 index 7a136a7..0000000 --- a/modules/libjuju/juju/action.py +++ /dev/null @@ -1,10 +0,0 @@ -from . import model - - -class Action(model.ModelEntity): - @property - def status(self): - return self.data['status'] - - async def wait(self): - return await self.model.wait_for_action(self.id) diff --git a/modules/libjuju/juju/annotation.py b/modules/libjuju/juju/annotation.py deleted file mode 100644 index 73c9b1c..0000000 --- a/modules/libjuju/juju/annotation.py +++ /dev/null @@ -1,9 +0,0 @@ -import logging - -from . import model - -log = logging.getLogger(__name__) - - -class Annotation(model.ModelEntity): - pass diff --git a/modules/libjuju/juju/application.py b/modules/libjuju/juju/application.py deleted file mode 100644 index 3f7f02e..0000000 --- a/modules/libjuju/juju/application.py +++ /dev/null @@ -1,533 +0,0 @@ -# Copyright 2016 Canonical Ltd. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import asyncio -import logging - -from . import model -from .client import client -from .errors import JujuError -from .placement import parse as parse_placement - -log = logging.getLogger(__name__) - - -class Application(model.ModelEntity): - @property - def _unit_match_pattern(self): - return r'^{}.*$'.format(self.entity_id) - - def on_unit_add(self, callable_): - """Add a "unit added" observer to this entity, which will be called - whenever a unit is added to this application. - - """ - self.model.add_observer( - callable_, 'unit', 'add', self._unit_match_pattern) - - def on_unit_remove(self, callable_): - """Add a "unit removed" observer to this entity, which will be called - whenever a unit is removed from this application. - - """ - self.model.add_observer( - callable_, 'unit', 'remove', self._unit_match_pattern) - - @property - def units(self): - return [ - unit for unit in self.model.units.values() - if unit.application == self.name - ] - - @property - def relations(self): - return [rel for rel in self.model.relations if rel.matches(self.name)] - - def related_applications(self, endpoint_name=None): - apps = {} - for rel in self.relations: - if rel.is_peer: - local_ep, remote_ep = rel.endpoints[0] - else: - def is_us(ep): - return ep.application.name == self.name - local_ep, remote_ep = sorted(rel.endpoints, key=is_us) - if endpoint_name is not None and endpoint_name != local_ep.name: - continue - apps[remote_ep.application.name] = remote_ep.application - return apps - - @property - def status(self): - """Get the application status, as set by the charm's leader. - - """ - return self.safe_data['status']['current'] - - @property - def status_message(self): - """Get the application status message, as set by the charm's leader. - - """ - return self.safe_data['status']['message'] - - @property - def tag(self): - return 'application-%s' % self.name - - async def add_relation(self, local_relation, remote_relation): - """Add a relation to another application. - - :param str local_relation: Name of relation on this application - :param str remote_relation: Name of relation on the other - application in the form '[:]' - - """ - if ':' not in local_relation: - local_relation = '{}:{}'.format(self.name, local_relation) - - return await self.model.add_relation(local_relation, remote_relation) - - async def add_unit(self, count=1, to=None): - """Add one or more units to this application. - - :param int count: Number of units to add - :param str to: Placement directive, e.g.:: - '23' - machine 23 - 'lxc:7' - new lxc container on machine 7 - '24/lxc/3' - lxc container 3 or machine 24 - - If None, a new machine is provisioned. - - """ - app_facade = client.ApplicationFacade.from_connection(self.connection) - - log.debug( - 'Adding %s unit%s to %s', - count, '' if count == 1 else 's', self.name) - - result = await app_facade.AddUnits( - application=self.name, - placement=parse_placement(to) if to else None, - num_units=count, - ) - - return await asyncio.gather(*[ - asyncio.ensure_future(self.model._wait_for_new('unit', unit_id)) - for unit_id in result.units - ]) - - add_units = add_unit - - async def scale(self, scale=None, scale_change=None): - """ - Set or adjust the scale of this (K8s) application. - - One or the other of scale or scale_change must be provided. - - :param int scale: Scale to which to set this application. - :param int scale_change: Amount by which to adjust the scale of this - application (can be positive or negative). - """ - app_facade = client.ApplicationFacade.from_connection(self.connection) - - if (scale, scale_change) == (None, None): - raise ValueError('Must provide either scale or scale_change') - - log.debug( - 'Scaling application %s %s %s', - self.name, 'to' if scale else 'by', scale or scale_change) - - await app_facade.ScaleApplications([ - client.ScaleApplicationParam(application_tag=self.tag, - scale=scale, - scale_change=scale_change) - ]) - - def allocate(self, budget, value): - """Allocate budget to this application. - - :param str budget: Name of budget - :param int value: Budget limit - - """ - raise NotImplementedError() - - def attach(self, resource_name, file_path): - """Upload a file as a resource for this application. - - :param str resource: Name of the resource - :param str file_path: Path to the file to upload - - """ - raise NotImplementedError() - - def collect_metrics(self): - """Collect metrics on this application. - - """ - raise NotImplementedError() - - async def destroy_relation(self, local_relation, remote_relation): - """Remove a relation to another application. - - :param str local_relation: Name of relation on this application - :param str remote_relation: Name of relation on the other - application in the form '[:]' - - """ - if ':' not in local_relation: - local_relation = '{}:{}'.format(self.name, local_relation) - - app_facade = client.ApplicationFacade.from_connection(self.connection) - - log.debug( - 'Destroying relation %s <-> %s', local_relation, remote_relation) - - return await app_facade.DestroyRelation([ - local_relation, remote_relation]) - remove_relation = destroy_relation - - async def destroy_unit(self, *unit_names): - """Destroy units by name. - - """ - return await self.model.destroy_units(*unit_names) - destroy_units = destroy_unit - - async def destroy(self): - """Remove this application from the model. - - """ - app_facade = client.ApplicationFacade.from_connection(self.connection) - - log.debug( - 'Destroying %s', self.name) - - return await app_facade.Destroy(self.name) - remove = destroy - - async def expose(self): - """Make this application publicly available over the network. - - """ - app_facade = client.ApplicationFacade.from_connection(self.connection) - - log.debug( - 'Exposing %s', self.name) - - return await app_facade.Expose(self.name) - - async def get_config(self): - """Return the configuration settings dict for this application. - - """ - app_facade = client.ApplicationFacade.from_connection(self.connection) - - log.debug( - 'Getting config for %s', self.name) - - return (await app_facade.Get(self.name)).config - - async def get_constraints(self): - """Return the machine constraints dict for this application. - - """ - app_facade = client.ApplicationFacade.from_connection(self.connection) - - log.debug( - 'Getting constraints for %s', self.name) - - result = (await app_facade.Get(self.name)).constraints - return vars(result) if result else result - - async def get_actions(self, schema=False): - """Get actions defined for this application. - - :param bool schema: Return the full action schema - :return dict: The charms actions, empty dict if none are defined. - """ - actions = {} - entity = [{"tag": self.tag}] - action_facade = client.ActionFacade.from_connection(self.connection) - results = ( - await action_facade.ApplicationsCharmsActions(entity)).results - for result in results: - if result.application_tag == self.tag and result.actions: - actions = result.actions - break - if not schema: - actions = {k: v['description'] for k, v in actions.items()} - return actions - - async def get_resources(self): - """Return resources for this application. - - Returns a dict mapping resource name to - :class:`~juju._definitions.CharmResource` instances. - """ - facade = client.ResourcesFacade.from_connection(self.connection) - response = await facade.ListResources([client.Entity(self.tag)]) - - resources = dict() - for result in response.results: - for resource in result.charm_store_resources or []: - resources[resource.name] = resource - for resource in result.resources or []: - if resource.charmresource: - resource = resource.charmresource - resources[resource.name] = resource - return resources - - async def run(self, command, timeout=None): - """Run command on all units for this application. - - :param str command: The command to run - :param int timeout: Time to wait before command is considered failed - - """ - action = client.ActionFacade.from_connection(self.connection) - - log.debug( - 'Running `%s` on all units of %s', command, self.name) - - # TODO this should return a list of Actions - return await action.Run( - [self.name], - command, - [], - timeout, - [], - ) - - async def set_annotations(self, annotations): - """Set annotations on this application. - - :param annotations map[string]string: the annotations as key/value - pairs. - - """ - log.debug('Updating annotations on application %s', self.name) - - self.ann_facade = client.AnnotationsFacade.from_connection( - self.connection) - - ann = client.EntityAnnotations( - entity=self.tag, - annotations=annotations, - ) - return await self.ann_facade.Set([ann]) - - async def set_config(self, config): - """Set configuration options for this application. - - :param config: Dict of configuration to set - """ - app_facade = client.ApplicationFacade.from_connection(self.connection) - - log.debug( - 'Setting config for %s: %s', self.name, config) - - return await app_facade.Set(self.name, config) - - async def reset_config(self, to_default): - """ - Restore application config to default values. - - :param list to_default: A list of config options to be reset to their - default value. - """ - app_facade = client.ApplicationFacade.from_connection(self.connection) - - log.debug( - 'Restoring default config for %s: %s', self.name, to_default) - - return await app_facade.Unset(self.name, to_default) - - async def set_constraints(self, constraints): - """Set machine constraints for this application. - - :param dict constraints: Dict of machine constraints - - """ - app_facade = client.ApplicationFacade.from_connection(self.connection) - - log.debug( - 'Setting constraints for %s: %s', self.name, constraints) - - return await app_facade.SetConstraints(self.name, constraints) - - def set_meter_status(self, status, info=None): - """Set the meter status on this status. - - :param str status: Meter status, e.g. 'RED', 'AMBER' - :param str info: Extra info message - - """ - raise NotImplementedError() - - def set_plan(self, plan_name): - """Set the plan for this application, effective immediately. - - :param str plan_name: Name of plan - - """ - raise NotImplementedError() - - async def unexpose(self): - """Remove public availability over the network for this application. - - """ - app_facade = client.ApplicationFacade.from_connection(self.connection) - - log.debug( - 'Unexposing %s', self.name) - - return await app_facade.Unexpose(self.name) - - def update_allocation(self, allocation): - """Update existing allocation for this application. - - :param int allocation: The allocation to set - - """ - raise NotImplementedError() - - async def upgrade_charm( - self, channel=None, force_series=False, force_units=False, - path=None, resources=None, revision=None, switch=None): - """Upgrade the charm for this application. - - :param str channel: Channel to use when getting the charm from the - charm store, e.g. 'development' - :param bool force_series: Upgrade even if series of deployed - application is not supported by the new charm - :param bool force_units: Upgrade all units immediately, even if in - error state - :param str path: Uprade to a charm located at path - :param dict resources: Dictionary of resource name/filepath pairs - :param int revision: Explicit upgrade revision - :param str switch: Crossgrade charm url - - """ - # TODO: Support local upgrades - if path is not None: - raise NotImplementedError("path option is not implemented") - if resources is not None: - raise NotImplementedError("resources option is not implemented") - - if switch is not None and revision is not None: - raise ValueError("switch and revision are mutually exclusive") - - client_facade = client.ClientFacade.from_connection(self.connection) - resources_facade = client.ResourcesFacade.from_connection( - self.connection) - app_facade = client.ApplicationFacade.from_connection(self.connection) - - charmstore = self.model.charmstore - charmstore_entity = None - - if switch is not None: - charm_url = switch - if not charm_url.startswith('cs:'): - charm_url = 'cs:' + charm_url - else: - charm_url = self.data['charm-url'] - charm_url = charm_url.rpartition('-')[0] - if revision is not None: - charm_url = "%s-%d" % (charm_url, revision) - else: - charmstore_entity = await charmstore.entity(charm_url, - channel=channel) - charm_url = charmstore_entity['Id'] - - if charm_url == self.data['charm-url']: - raise JujuError('already running charm "%s"' % charm_url) - - # Update charm - await client_facade.AddCharm( - url=charm_url, - channel=channel - ) - - # Update resources - if not charmstore_entity: - charmstore_entity = await charmstore.entity(charm_url, - channel=channel) - store_resources = charmstore_entity['Meta']['resources'] - - request_data = [client.Entity(self.tag)] - response = await resources_facade.ListResources(request_data) - existing_resources = { - resource.name: resource - for resource in response.results[0].resources - } - - resources_to_update = [ - resource for resource in store_resources - if resource['Name'] not in existing_resources or - existing_resources[resource['Name']].origin != 'upload' - ] - - if resources_to_update: - request_data = [ - client.CharmResource( - description=resource.get('Description'), - fingerprint=resource['Fingerprint'], - name=resource['Name'], - path=resource['Path'], - revision=resource['Revision'], - size=resource['Size'], - type_=resource['Type'], - origin='store', - ) for resource in resources_to_update - ] - response = await resources_facade.AddPendingResources( - self.tag, - charm_url, - request_data - ) - pending_ids = response.pending_ids - resource_ids = { - resource['Name']: id - for resource, id in zip(resources_to_update, pending_ids) - } - else: - resource_ids = None - - # Update application - await app_facade.SetCharm( - application=self.entity_id, - channel=channel, - charm_url=charm_url, - config_settings=None, - config_settings_yaml=None, - force_series=force_series, - force_units=force_units, - resource_ids=resource_ids, - storage_constraints=None - ) - - await self.model.block_until( - lambda: self.data['charm-url'] == charm_url - ) - - async def get_metrics(self): - """Get metrics for this application's units. - - :return: Dictionary of unit_name:metrics - - """ - return await self.model.get_metrics(self.tag) diff --git a/modules/libjuju/juju/client/__init__.py b/modules/libjuju/juju/client/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/modules/libjuju/juju/client/_client.py b/modules/libjuju/juju/client/_client.py deleted file mode 100644 index bfa9e6f..0000000 --- a/modules/libjuju/juju/client/_client.py +++ /dev/null @@ -1,454 +0,0 @@ -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. - -from juju.client._definitions import * - -from juju.client import _client2, _client1, _client3, _client4, _client5, _client8, _client7, _client9 - - -CLIENTS = { - "2": _client2, - "1": _client1, - "3": _client3, - "4": _client4, - "5": _client5, - "8": _client8, - "7": _client7, - "9": _client9 -} - - -def lookup_facade(name, version): - """ - Given a facade name and version, attempt to pull that facade out - of the correct client.py file. - - """ - for _version in range(int(version), 0, -1): - try: - facade = getattr(CLIENTS[str(_version)], name) - return facade - except (KeyError, AttributeError): - continue - else: - raise ImportError("No supported version for facade: " - "{}".format(name)) - - -class TypeFactory: - @classmethod - def from_connection(cls, connection): - """ - Given a connected Connection object, return an initialized and - connected instance of an API Interface matching the name of - this class. - - @param connection: initialized Connection object. - - """ - facade_name = cls.__name__ - if not facade_name.endswith('Facade'): - raise TypeError('Unexpected class name: {}'.format(facade_name)) - facade_name = facade_name[:-len('Facade')] - version = connection.facades.get(facade_name) - if version is None: - raise Exception('No facade {} in facades {}'.format(facade_name, - connection.facades)) - - c = lookup_facade(cls.__name__, version) - c = c() - c.connect(connection) - - return c - - -class ActionFacade(TypeFactory): - pass - - -class ActionPrunerFacade(TypeFactory): - pass - - -class AgentFacade(TypeFactory): - pass - - -class AgentToolsFacade(TypeFactory): - pass - - -class AllModelWatcherFacade(TypeFactory): - pass - - -class AllWatcherFacade(TypeFactory): - pass - - -class AnnotationsFacade(TypeFactory): - pass - - -class ApplicationFacade(TypeFactory): - pass - - -class ApplicationOffersFacade(TypeFactory): - pass - - -class ApplicationRelationsWatcherFacade(TypeFactory): - pass - - -class ApplicationScalerFacade(TypeFactory): - pass - - -class BackupsFacade(TypeFactory): - pass - - -class BlockFacade(TypeFactory): - pass - - -class BundleFacade(TypeFactory): - pass - - -class CAASAgentFacade(TypeFactory): - pass - - -class CAASFirewallerFacade(TypeFactory): - pass - - -class CAASOperatorFacade(TypeFactory): - pass - - -class CAASOperatorProvisionerFacade(TypeFactory): - pass - - -class CAASUnitProvisionerFacade(TypeFactory): - pass - - -class CharmRevisionUpdaterFacade(TypeFactory): - pass - - -class CharmsFacade(TypeFactory): - pass - - -class CleanerFacade(TypeFactory): - pass - - -class ClientFacade(TypeFactory): - pass - - -class CloudFacade(TypeFactory): - pass - - -class ControllerFacade(TypeFactory): - pass - - -class CredentialManagerFacade(TypeFactory): - pass - - -class CredentialValidatorFacade(TypeFactory): - pass - - -class CrossControllerFacade(TypeFactory): - pass - - -class CrossModelRelationsFacade(TypeFactory): - pass - - -class DeployerFacade(TypeFactory): - pass - - -class DiscoverSpacesFacade(TypeFactory): - pass - - -class DiskManagerFacade(TypeFactory): - pass - - -class EntityWatcherFacade(TypeFactory): - pass - - -class ExternalControllerUpdaterFacade(TypeFactory): - pass - - -class FanConfigurerFacade(TypeFactory): - pass - - -class FilesystemAttachmentsWatcherFacade(TypeFactory): - pass - - -class FirewallRulesFacade(TypeFactory): - pass - - -class FirewallerFacade(TypeFactory): - pass - - -class HighAvailabilityFacade(TypeFactory): - pass - - -class HostKeyReporterFacade(TypeFactory): - pass - - -class ImageManagerFacade(TypeFactory): - pass - - -class ImageMetadataFacade(TypeFactory): - pass - - -class InstancePollerFacade(TypeFactory): - pass - - -class KeyManagerFacade(TypeFactory): - pass - - -class KeyUpdaterFacade(TypeFactory): - pass - - -class LeadershipServiceFacade(TypeFactory): - pass - - -class LifeFlagFacade(TypeFactory): - pass - - -class LogForwardingFacade(TypeFactory): - pass - - -class LoggerFacade(TypeFactory): - pass - - -class MachineActionsFacade(TypeFactory): - pass - - -class MachineManagerFacade(TypeFactory): - pass - - -class MachineUndertakerFacade(TypeFactory): - pass - - -class MachinerFacade(TypeFactory): - pass - - -class MeterStatusFacade(TypeFactory): - pass - - -class MetricsAdderFacade(TypeFactory): - pass - - -class MetricsDebugFacade(TypeFactory): - pass - - -class MetricsManagerFacade(TypeFactory): - pass - - -class MigrationFlagFacade(TypeFactory): - pass - - -class MigrationMasterFacade(TypeFactory): - pass - - -class MigrationMinionFacade(TypeFactory): - pass - - -class MigrationStatusWatcherFacade(TypeFactory): - pass - - -class MigrationTargetFacade(TypeFactory): - pass - - -class ModelConfigFacade(TypeFactory): - pass - - -class ModelManagerFacade(TypeFactory): - pass - - -class ModelUpgraderFacade(TypeFactory): - pass - - -class NotifyWatcherFacade(TypeFactory): - pass - - -class OfferStatusWatcherFacade(TypeFactory): - pass - - -class PayloadsFacade(TypeFactory): - pass - - -class PayloadsHookContextFacade(TypeFactory): - pass - - -class PingerFacade(TypeFactory): - pass - - -class ProvisionerFacade(TypeFactory): - pass - - -class ProxyUpdaterFacade(TypeFactory): - pass - - -class RebootFacade(TypeFactory): - pass - - -class RelationStatusWatcherFacade(TypeFactory): - pass - - -class RelationUnitsWatcherFacade(TypeFactory): - pass - - -class RemoteApplicationWatcherFacade(TypeFactory): - pass - - -class RemoteRelationsFacade(TypeFactory): - pass - - -class RemoteRelationsWatcherFacade(TypeFactory): - pass - - -class ResourcesFacade(TypeFactory): - pass - - -class ResourcesHookContextFacade(TypeFactory): - pass - - -class ResumerFacade(TypeFactory): - pass - - -class RetryStrategyFacade(TypeFactory): - pass - - -class SSHClientFacade(TypeFactory): - pass - - -class SingularFacade(TypeFactory): - pass - - -class SpacesFacade(TypeFactory): - pass - - -class StatusHistoryFacade(TypeFactory): - pass - - -class StorageFacade(TypeFactory): - pass - - -class StorageProvisionerFacade(TypeFactory): - pass - - -class StringsWatcherFacade(TypeFactory): - pass - - -class SubnetsFacade(TypeFactory): - pass - - -class UndertakerFacade(TypeFactory): - pass - - -class UnitAssignerFacade(TypeFactory): - pass - - -class UniterFacade(TypeFactory): - pass - - -class UpgradeSeriesFacade(TypeFactory): - pass - - -class UpgraderFacade(TypeFactory): - pass - - -class UserManagerFacade(TypeFactory): - pass - - -class VolumeAttachmentPlansWatcherFacade(TypeFactory): - pass - - -class VolumeAttachmentsWatcherFacade(TypeFactory): - pass diff --git a/modules/libjuju/juju/client/_client1.py b/modules/libjuju/juju/client/_client1.py deleted file mode 100644 index 83437bc..0000000 --- a/modules/libjuju/juju/client/_client1.py +++ /dev/null @@ -1,11068 +0,0 @@ -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. - -from juju.client._definitions import * -from juju.client.facade import ReturnMapping, Type - - -class ActionPrunerFacade(Type): - name = 'ActionPruner' - version = 1 - schema = {'definitions': {'ActionPruneArgs': {'additionalProperties': False, - 'properties': {'max-history-mb': {'type': 'integer'}, - 'max-history-time': {'type': 'integer'}}, - 'required': ['max-history-time', - 'max-history-mb'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}}, - 'properties': {'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'Prune': {'properties': {'Params': {'$ref': '#/definitions/ActionPruneArgs'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ActionPruner', - request='ModelConfig', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Prune(self, max_history_mb, max_history_time): - ''' - max_history_mb : int - max_history_time : int - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ActionPruner', - request='Prune', - version=1, - params=_params) - _params['max-history-mb'] = max_history_mb - _params['max-history-time'] = max_history_time - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ActionPruner', - request='WatchForModelConfigChanges', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class AgentToolsFacade(Type): - name = 'AgentTools' - version = 1 - schema = {'properties': {'UpdateToolsAvailable': {'type': 'object'}}, 'type': 'object'} - - - @ReturnMapping(None) - async def UpdateToolsAvailable(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='AgentTools', - request='UpdateToolsAvailable', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class AllWatcherFacade(Type): - name = 'AllWatcher' - version = 1 - schema = {'definitions': {'AllWatcherNextResults': {'additionalProperties': False, - 'properties': {'deltas': {'items': {'$ref': '#/definitions/Delta'}, - 'type': 'array'}}, - 'required': ['deltas'], - 'type': 'object'}, - 'Delta': {'additionalProperties': False, - 'properties': {'entity': {'additionalProperties': True, - 'type': 'object'}, - 'removed': {'type': 'boolean'}}, - 'required': ['removed', 'entity'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherNextResults'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AllWatcherNextResults) - async def Next(self): - ''' - - Returns -> typing.Sequence[~Delta] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='AllWatcher', - request='Next', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='AllWatcher', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class ApplicationRelationsWatcherFacade(Type): - name = 'ApplicationRelationsWatcher' - version = 1 - schema = {'definitions': {'ApplicationRelationsChange': {'additionalProperties': False, - 'properties': {'changed': {'items': {'$ref': '#/definitions/RelationChange'}, - 'type': 'array'}, - 'removed': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ApplicationRelationsWatchResult': {'additionalProperties': False, - 'properties': {'ApplicationRelationsWatcherId': {'type': 'string'}, - 'changes': {'$ref': '#/definitions/ApplicationRelationsChange'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['ApplicationRelationsWatcherId'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'RelationChange': {'additionalProperties': False, - 'properties': {'changedunits': {'patternProperties': {'.*': {'$ref': '#/definitions/RelationUnitChange'}}, - 'type': 'object'}, - 'departedunits': {'items': {'type': 'string'}, - 'type': 'array'}, - 'id': {'type': 'integer'}, - 'life': {'type': 'string'}}, - 'required': ['id', 'life'], - 'type': 'object'}, - 'RelationUnitChange': {'additionalProperties': False, - 'properties': {'settings': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/ApplicationRelationsWatchResult'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ApplicationRelationsWatchResult) - async def Next(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('ApplicationRelationsChange'), _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationRelationsWatcher', - request='Next', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationRelationsWatcher', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class ApplicationScalerFacade(Type): - name = 'ApplicationScaler' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}}, - 'properties': {'Rescale': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def Rescale(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationScaler', - request='Rescale', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def Watch(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationScaler', - request='Watch', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class BackupsFacade(Type): - name = 'Backups' - version = 1 - schema = {'definitions': {'BackupsCreateArgs': {'additionalProperties': False, - 'properties': {'notes': {'type': 'string'}}, - 'required': ['notes'], - 'type': 'object'}, - 'BackupsInfoArgs': {'additionalProperties': False, - 'properties': {'id': {'type': 'string'}}, - 'required': ['id'], - 'type': 'object'}, - 'BackupsListArgs': {'additionalProperties': False, - 'type': 'object'}, - 'BackupsListResult': {'additionalProperties': False, - 'properties': {'list': {'items': {'$ref': '#/definitions/BackupsMetadataResult'}, - 'type': 'array'}}, - 'required': ['list'], - 'type': 'object'}, - 'BackupsMetadataResult': {'additionalProperties': False, - 'properties': {'ca-cert': {'type': 'string'}, - 'ca-private-key': {'type': 'string'}, - 'checksum': {'type': 'string'}, - 'checksum-format': {'type': 'string'}, - 'finished': {'format': 'date-time', - 'type': 'string'}, - 'hostname': {'type': 'string'}, - 'id': {'type': 'string'}, - 'machine': {'type': 'string'}, - 'model': {'type': 'string'}, - 'notes': {'type': 'string'}, - 'series': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'started': {'format': 'date-time', - 'type': 'string'}, - 'stored': {'format': 'date-time', - 'type': 'string'}, - 'version': {'$ref': '#/definitions/Number'}}, - 'required': ['id', - 'checksum', - 'checksum-format', - 'size', - 'stored', - 'started', - 'finished', - 'notes', - 'model', - 'machine', - 'hostname', - 'version', - 'series', - 'ca-cert', - 'ca-private-key'], - 'type': 'object'}, - 'BackupsRemoveArgs': {'additionalProperties': False, - 'properties': {'id': {'type': 'string'}}, - 'required': ['id'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'RestoreArgs': {'additionalProperties': False, - 'properties': {'backup-id': {'type': 'string'}}, - 'required': ['backup-id'], - 'type': 'object'}}, - 'properties': {'Create': {'properties': {'Params': {'$ref': '#/definitions/BackupsCreateArgs'}, - 'Result': {'$ref': '#/definitions/BackupsMetadataResult'}}, - 'type': 'object'}, - 'FinishRestore': {'type': 'object'}, - 'Info': {'properties': {'Params': {'$ref': '#/definitions/BackupsInfoArgs'}, - 'Result': {'$ref': '#/definitions/BackupsMetadataResult'}}, - 'type': 'object'}, - 'List': {'properties': {'Params': {'$ref': '#/definitions/BackupsListArgs'}, - 'Result': {'$ref': '#/definitions/BackupsListResult'}}, - 'type': 'object'}, - 'PrepareRestore': {'type': 'object'}, - 'Remove': {'properties': {'Params': {'$ref': '#/definitions/BackupsRemoveArgs'}}, - 'type': 'object'}, - 'Restore': {'properties': {'Params': {'$ref': '#/definitions/RestoreArgs'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(BackupsMetadataResult) - async def Create(self, notes): - ''' - notes : str - Returns -> typing.Union[str, int, _ForwardRef('Number')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='Create', - version=1, - params=_params) - _params['notes'] = notes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def FinishRestore(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='FinishRestore', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BackupsMetadataResult) - async def Info(self, id_): - ''' - id_ : str - Returns -> typing.Union[str, int, _ForwardRef('Number')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='Info', - version=1, - params=_params) - _params['id'] = id_ - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BackupsListResult) - async def List(self): - ''' - - Returns -> typing.Sequence[~BackupsMetadataResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='List', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def PrepareRestore(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='PrepareRestore', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Remove(self, id_): - ''' - id_ : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='Remove', - version=1, - params=_params) - _params['id'] = id_ - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Restore(self, backup_id): - ''' - backup_id : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='Restore', - version=1, - params=_params) - _params['backup-id'] = backup_id - reply = await self.rpc(msg) - return reply - - - -class BundleFacade(Type): - name = 'Bundle' - version = 1 - schema = {'definitions': {'BundleChange': {'additionalProperties': False, - 'properties': {'args': {'items': {'additionalProperties': True, - 'type': 'object'}, - 'type': 'array'}, - 'id': {'type': 'string'}, - 'method': {'type': 'string'}, - 'requires': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['id', - 'method', - 'args', - 'requires'], - 'type': 'object'}, - 'BundleChangesParams': {'additionalProperties': False, - 'properties': {'yaml': {'type': 'string'}}, - 'required': ['yaml'], - 'type': 'object'}, - 'BundleChangesResults': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/BundleChange'}, - 'type': 'array'}, - 'errors': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'GetChanges': {'properties': {'Params': {'$ref': '#/definitions/BundleChangesParams'}, - 'Result': {'$ref': '#/definitions/BundleChangesResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(BundleChangesResults) - async def GetChanges(self, yaml): - ''' - yaml : str - Returns -> typing.Union[typing.Sequence[~BundleChange], typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Bundle', - request='GetChanges', - version=1, - params=_params) - _params['yaml'] = yaml - reply = await self.rpc(msg) - return reply - - - -class CAASAgentFacade(Type): - name = 'CAASAgent' - version = 1 - schema = {'definitions': {'CloudCredential': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'auth-type': {'type': 'string'}, - 'redacted': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['auth-type'], - 'type': 'object'}, - 'CloudSpec': {'additionalProperties': False, - 'properties': {'cacertificates': {'items': {'type': 'string'}, - 'type': 'array'}, - 'credential': {'$ref': '#/definitions/CloudCredential'}, - 'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'name': {'type': 'string'}, - 'region': {'type': 'string'}, - 'storage-endpoint': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type', 'name'], - 'type': 'object'}, - 'CloudSpecResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/CloudSpec'}}, - 'type': 'object'}, - 'CloudSpecResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CloudSpecResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelTag': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}}, - 'properties': {'CloudSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/CloudSpecResults'}}, - 'type': 'object'}, - 'GetCloudSpec': {'properties': {'Params': {'$ref': '#/definitions/ModelTag'}, - 'Result': {'$ref': '#/definitions/CloudSpecResult'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(CloudSpecResults) - async def CloudSpec(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~CloudSpecResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASAgent', - request='CloudSpec', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudSpecResult) - async def GetCloudSpec(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASAgent', - request='GetCloudSpec', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASAgent', - request='ModelConfig', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASAgent', - request='WatchForModelConfigChanges', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class CAASFirewallerFacade(Type): - name = 'CAASFirewaller' - version = 1 - schema = {'definitions': {'ApplicationGetConfigResults': {'additionalProperties': False, - 'properties': {'Results': {'items': {'$ref': '#/definitions/ConfigResult'}, - 'type': 'array'}}, - 'required': ['Results'], - 'type': 'object'}, - 'BoolResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'boolean'}}, - 'required': ['result'], - 'type': 'object'}, - 'BoolResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['config'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}}, - 'properties': {'ApplicationsConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ApplicationGetConfigResults'}}, - 'type': 'object'}, - 'IsExposed': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/BoolResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchApplications': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ApplicationGetConfigResults) - async def ApplicationsConfig(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ConfigResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASFirewaller', - request='ApplicationsConfig', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BoolResults) - async def IsExposed(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~BoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASFirewaller', - request='IsExposed', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASFirewaller', - request='Life', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def Watch(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASFirewaller', - request='Watch', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchApplications(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASFirewaller', - request='WatchApplications', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class CAASOperatorFacade(Type): - name = 'CAASOperator' - version = 1 - schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, - 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, - 'type': 'array'}, - 'type': 'array'}}, - 'required': ['servers'], - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'ApplicationCharm': {'additionalProperties': False, - 'properties': {'charm-modified-version': {'type': 'integer'}, - 'force-upgrade': {'type': 'boolean'}, - 'sha256': {'type': 'string'}, - 'url': {'type': 'string'}}, - 'required': ['url', - 'sha256', - 'charm-modified-version'], - 'type': 'object'}, - 'ApplicationCharmResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ApplicationCharm'}}, - 'type': 'object'}, - 'ApplicationCharmResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationCharmResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Binary': {'additionalProperties': False, - 'properties': {'Arch': {'type': 'string'}, - 'Number': {'$ref': '#/definitions/Number'}, - 'Series': {'type': 'string'}}, - 'required': ['Number', 'Series', 'Arch'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesVersion': {'additionalProperties': False, - 'properties': {'agent-tools': {'items': {'$ref': '#/definitions/EntityVersion'}, - 'type': 'array'}}, - 'required': ['agent-tools'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'EntityString': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['tag', 'value'], - 'type': 'object'}, - 'EntityVersion': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}, - 'tools': {'$ref': '#/definitions/Version'}}, - 'required': ['tag', 'tools'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'HostPort': {'additionalProperties': False, - 'properties': {'Address': {'$ref': '#/definitions/Address'}, - 'port': {'type': 'integer'}}, - 'required': ['Address', 'port'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', 'uuid', 'type'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'SetPodSpecParams': {'additionalProperties': False, - 'properties': {'specs': {'items': {'$ref': '#/definitions/EntityString'}, - 'type': 'array'}}, - 'required': ['specs'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Version': {'additionalProperties': False, - 'properties': {'version': {'$ref': '#/definitions/Binary'}}, - 'required': ['version'], - 'type': 'object'}}, - 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, - 'type': 'object'}, - 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, - 'type': 'object'}, - 'Charm': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ApplicationCharmResults'}}, - 'type': 'object'}, - 'CurrentModel': {'properties': {'Result': {'$ref': '#/definitions/ModelResult'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'Remove': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetPodSpec': {'properties': {'Params': {'$ref': '#/definitions/SetPodSpecParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetTools': {'properties': {'Params': {'$ref': '#/definitions/EntitiesVersion'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringsResult) - async def APIAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='APIAddresses', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(APIHostPortsResult) - async def APIHostPorts(self): - ''' - - Returns -> typing.Sequence[~HostPort] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='APIHostPorts', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationCharmResults) - async def Charm(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ApplicationCharmResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='Charm', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelResult) - async def CurrentModel(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='CurrentModel', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='Life', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ModelUUID(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='ModelUUID', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Remove(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='Remove', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetPodSpec(self, specs): - ''' - specs : typing.Sequence[~EntityString] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='SetPodSpec', - version=1, - params=_params) - _params['specs'] = specs - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='SetStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetTools(self, agent_tools): - ''' - agent_tools : typing.Sequence[~EntityVersion] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='SetTools', - version=1, - params=_params) - _params['agent-tools'] = agent_tools - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def Watch(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='Watch', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchAPIHostPorts(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='WatchAPIHostPorts', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchUnits(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperator', - request='WatchUnits', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class CAASOperatorProvisionerFacade(Type): - name = 'CAASOperatorProvisioner' - version = 1 - schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, - 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, - 'type': 'array'}, - 'type': 'array'}}, - 'required': ['servers'], - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityPassword': {'additionalProperties': False, - 'properties': {'password': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'password'], - 'type': 'object'}, - 'EntityPasswords': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'HostPort': {'additionalProperties': False, - 'properties': {'Address': {'$ref': '#/definitions/Address'}, - 'port': {'type': 'integer'}}, - 'required': ['Address', 'port'], - 'type': 'object'}, - 'KubernetesFilesystemAttachmentParams': {'additionalProperties': False, - 'properties': {'mount-point': {'type': 'string'}, - 'provider': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'required': ['provider'], - 'type': 'object'}, - 'KubernetesFilesystemParams': {'additionalProperties': False, - 'properties': {'attachment': {'$ref': '#/definitions/KubernetesFilesystemAttachmentParams'}, - 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'provider': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'storagename': {'type': 'string'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['storagename', - 'size', - 'provider'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'OperatorProvisioningInfo': {'additionalProperties': False, - 'properties': {'api-addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'charm-storage': {'$ref': '#/definitions/KubernetesFilesystemParams'}, - 'image-path': {'type': 'string'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'version': {'$ref': '#/definitions/Number'}}, - 'required': ['image-path', - 'version', - 'api-addresses', - 'charm-storage'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}}, - 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, - 'type': 'object'}, - 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'OperatorProvisioningInfo': {'properties': {'Result': {'$ref': '#/definitions/OperatorProvisioningInfo'}}, - 'type': 'object'}, - 'SetPasswords': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchApplications': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringsResult) - async def APIAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperatorProvisioner', - request='APIAddresses', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(APIHostPortsResult) - async def APIHostPorts(self): - ''' - - Returns -> typing.Sequence[~HostPort] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperatorProvisioner', - request='APIHostPorts', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperatorProvisioner', - request='Life', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ModelUUID(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperatorProvisioner', - request='ModelUUID', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(OperatorProvisioningInfo) - async def OperatorProvisioningInfo(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('KubernetesFilesystemParams'), str, typing.Mapping[str, str], _ForwardRef('Number')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperatorProvisioner', - request='OperatorProvisioningInfo', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetPasswords(self, changes): - ''' - changes : typing.Sequence[~EntityPassword] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperatorProvisioner', - request='SetPasswords', - version=1, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchAPIHostPorts(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperatorProvisioner', - request='WatchAPIHostPorts', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchApplications(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASOperatorProvisioner', - request='WatchApplications', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class CAASUnitProvisionerFacade(Type): - name = 'CAASUnitProvisioner' - version = 1 - schema = {'definitions': {'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'ApplicationGetConfigResults': {'additionalProperties': False, - 'properties': {'Results': {'items': {'$ref': '#/definitions/ConfigResult'}, - 'type': 'array'}}, - 'required': ['Results'], - 'type': 'object'}, - 'ApplicationUnitParams': {'additionalProperties': False, - 'properties': {'address': {'type': 'string'}, - 'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'filesystem-info': {'items': {'$ref': '#/definitions/KubernetesFilesystemInfo'}, - 'type': 'array'}, - 'info': {'type': 'string'}, - 'ports': {'items': {'type': 'string'}, - 'type': 'array'}, - 'provider-id': {'type': 'string'}, - 'status': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['provider-id', - 'unit-tag', - 'address', - 'ports', - 'status', - 'info'], - 'type': 'object'}, - 'ConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['config'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'IntResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'integer'}}, - 'required': ['result'], - 'type': 'object'}, - 'IntResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/IntResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'KubernetesDeviceParams': {'additionalProperties': False, - 'properties': {'Attributes': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'Count': {'type': 'integer'}, - 'Type': {'type': 'string'}}, - 'required': ['Type', - 'Count', - 'Attributes'], - 'type': 'object'}, - 'KubernetesFilesystemAttachmentParams': {'additionalProperties': False, - 'properties': {'mount-point': {'type': 'string'}, - 'provider': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'required': ['provider'], - 'type': 'object'}, - 'KubernetesFilesystemInfo': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'filesystem-id': {'type': 'string'}, - 'info': {'type': 'string'}, - 'mount-point': {'type': 'string'}, - 'pool': {'type': 'string'}, - 'read-only': {'type': 'boolean'}, - 'size': {'type': 'integer'}, - 'status': {'type': 'string'}, - 'storagename': {'type': 'string'}, - 'volume': {'$ref': '#/definitions/KubernetesVolumeInfo'}}, - 'required': ['storagename', - 'pool', - 'size', - 'filesystem-id', - 'status', - 'info', - 'volume'], - 'type': 'object'}, - 'KubernetesFilesystemParams': {'additionalProperties': False, - 'properties': {'attachment': {'$ref': '#/definitions/KubernetesFilesystemAttachmentParams'}, - 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'provider': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'storagename': {'type': 'string'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['storagename', - 'size', - 'provider'], - 'type': 'object'}, - 'KubernetesProvisioningInfo': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}, - 'devices': {'items': {'$ref': '#/definitions/KubernetesDeviceParams'}, - 'type': 'array'}, - 'filesystems': {'items': {'$ref': '#/definitions/KubernetesFilesystemParams'}, - 'type': 'array'}, - 'placement': {'type': 'string'}, - 'pod-spec': {'type': 'string'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'volumes': {'items': {'$ref': '#/definitions/KubernetesVolumeParams'}, - 'type': 'array'}}, - 'required': ['pod-spec', - 'constraints'], - 'type': 'object'}, - 'KubernetesProvisioningInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/KubernetesProvisioningInfo'}}, - 'required': ['result'], - 'type': 'object'}, - 'KubernetesProvisioningInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/KubernetesProvisioningInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'KubernetesVolumeAttachmentParams': {'additionalProperties': False, - 'properties': {'provider': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'required': ['provider'], - 'type': 'object'}, - 'KubernetesVolumeInfo': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'persistent': {'type': 'boolean'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'status': {'type': 'string'}, - 'volume-id': {'type': 'string'}}, - 'required': ['volume-id', - 'size', - 'persistent', - 'status', - 'info'], - 'type': 'object'}, - 'KubernetesVolumeParams': {'additionalProperties': False, - 'properties': {'attachment': {'$ref': '#/definitions/KubernetesVolumeAttachmentParams'}, - 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'provider': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'storagename': {'type': 'string'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['storagename', - 'size', - 'provider'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'UpdateApplicationServiceArg': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, - 'type': 'array'}, - 'application-tag': {'type': 'string'}, - 'provider-id': {'type': 'string'}}, - 'required': ['application-tag', - 'provider-id', - 'addresses'], - 'type': 'object'}, - 'UpdateApplicationServiceArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/UpdateApplicationServiceArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'UpdateApplicationUnitArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/UpdateApplicationUnits'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'UpdateApplicationUnits': {'additionalProperties': False, - 'properties': {'application-tag': {'type': 'string'}, - 'units': {'items': {'$ref': '#/definitions/ApplicationUnitParams'}, - 'type': 'array'}}, - 'required': ['application-tag', - 'units'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'ApplicationsConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ApplicationGetConfigResults'}}, - 'type': 'object'}, - 'ApplicationsScale': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/IntResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'ProvisioningInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/KubernetesProvisioningInfoResults'}}, - 'type': 'object'}, - 'SetOperatorStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UpdateApplicationsService': {'properties': {'Params': {'$ref': '#/definitions/UpdateApplicationServiceArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UpdateApplicationsUnits': {'properties': {'Params': {'$ref': '#/definitions/UpdateApplicationUnitArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchApplications': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}, - 'WatchApplicationsScale': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchPodSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ApplicationGetConfigResults) - async def ApplicationsConfig(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ConfigResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASUnitProvisioner', - request='ApplicationsConfig', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(IntResults) - async def ApplicationsScale(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~IntResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASUnitProvisioner', - request='ApplicationsScale', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASUnitProvisioner', - request='Life', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(KubernetesProvisioningInfoResults) - async def ProvisioningInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~KubernetesProvisioningInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASUnitProvisioner', - request='ProvisioningInfo', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetOperatorStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASUnitProvisioner', - request='SetOperatorStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateApplicationsService(self, args): - ''' - args : typing.Sequence[~UpdateApplicationServiceArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASUnitProvisioner', - request='UpdateApplicationsService', - version=1, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateApplicationsUnits(self, args): - ''' - args : typing.Sequence[~UpdateApplicationUnits] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASUnitProvisioner', - request='UpdateApplicationsUnits', - version=1, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchApplications(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASUnitProvisioner', - request='WatchApplications', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchApplicationsScale(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASUnitProvisioner', - request='WatchApplicationsScale', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchPodSpec(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CAASUnitProvisioner', - request='WatchPodSpec', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class ClientFacade(Type): - name = 'Client' - version = 1 - schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, - 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, - 'type': 'array'}, - 'type': 'array'}}, - 'required': ['servers'], - 'type': 'object'}, - 'AddCharm': {'additionalProperties': False, - 'properties': {'channel': {'type': 'string'}, - 'url': {'type': 'string'}}, - 'required': ['url', 'channel'], - 'type': 'object'}, - 'AddCharmWithAuthorization': {'additionalProperties': False, - 'properties': {'channel': {'type': 'string'}, - 'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'url': {'type': 'string'}}, - 'required': ['url', - 'channel', - 'macaroon'], - 'type': 'object'}, - 'AddMachineParams': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, - 'type': 'array'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'container-type': {'type': 'string'}, - 'disks': {'items': {'$ref': '#/definitions/Constraints'}, - 'type': 'array'}, - 'hardware-characteristics': {'$ref': '#/definitions/HardwareCharacteristics'}, - 'instance-id': {'type': 'string'}, - 'jobs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'nonce': {'type': 'string'}, - 'parent-id': {'type': 'string'}, - 'placement': {'$ref': '#/definitions/Placement'}, - 'series': {'type': 'string'}}, - 'required': ['series', - 'constraints', - 'jobs', - 'parent-id', - 'container-type', - 'instance-id', - 'nonce', - 'hardware-characteristics', - 'addresses'], - 'type': 'object'}, - 'AddMachines': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/AddMachineParams'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'AddMachinesResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'machine': {'type': 'string'}}, - 'required': ['machine'], - 'type': 'object'}, - 'AddMachinesResults': {'additionalProperties': False, - 'properties': {'machines': {'items': {'$ref': '#/definitions/AddMachinesResult'}, - 'type': 'array'}}, - 'required': ['machines'], - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'AgentVersionResult': {'additionalProperties': False, - 'properties': {'version': {'$ref': '#/definitions/Number'}}, - 'required': ['version'], - 'type': 'object'}, - 'AllWatcherId': {'additionalProperties': False, - 'properties': {'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'ApplicationStatus': {'additionalProperties': False, - 'properties': {'can-upgrade-to': {'type': 'string'}, - 'charm': {'type': 'string'}, - 'err': {'additionalProperties': True, - 'type': 'object'}, - 'exposed': {'type': 'boolean'}, - 'life': {'type': 'string'}, - 'meter-statuses': {'patternProperties': {'.*': {'$ref': '#/definitions/MeterStatus'}}, - 'type': 'object'}, - 'relations': {'patternProperties': {'.*': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'series': {'type': 'string'}, - 'status': {'$ref': '#/definitions/DetailedStatus'}, - 'subordinate-to': {'items': {'type': 'string'}, - 'type': 'array'}, - 'units': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitStatus'}}, - 'type': 'object'}, - 'workload-version': {'type': 'string'}}, - 'required': ['charm', - 'series', - 'exposed', - 'life', - 'relations', - 'can-upgrade-to', - 'subordinate-to', - 'units', - 'meter-statuses', - 'status', - 'workload-version'], - 'type': 'object'}, - 'Binary': {'additionalProperties': False, - 'properties': {'Arch': {'type': 'string'}, - 'Number': {'$ref': '#/definitions/Number'}, - 'Series': {'type': 'string'}}, - 'required': ['Number', 'Series', 'Arch'], - 'type': 'object'}, - 'BundleChange': {'additionalProperties': False, - 'properties': {'args': {'items': {'additionalProperties': True, - 'type': 'object'}, - 'type': 'array'}, - 'id': {'type': 'string'}, - 'method': {'type': 'string'}, - 'requires': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['id', - 'method', - 'args', - 'requires'], - 'type': 'object'}, - 'BundleChangesParams': {'additionalProperties': False, - 'properties': {'yaml': {'type': 'string'}}, - 'required': ['yaml'], - 'type': 'object'}, - 'BundleChangesResults': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/BundleChange'}, - 'type': 'array'}, - 'errors': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'BytesResult': {'additionalProperties': False, - 'properties': {'result': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['result'], - 'type': 'object'}, - 'ConfigValue': {'additionalProperties': False, - 'properties': {'source': {'type': 'string'}, - 'value': {'additionalProperties': True, - 'type': 'object'}}, - 'required': ['value', 'source'], - 'type': 'object'}, - 'Constraints': {'additionalProperties': False, - 'properties': {'Count': {'type': 'integer'}, - 'Pool': {'type': 'string'}, - 'Size': {'type': 'integer'}}, - 'required': ['Pool', 'Size', 'Count'], - 'type': 'object'}, - 'DestroyMachines': {'additionalProperties': False, - 'properties': {'force': {'type': 'boolean'}, - 'machine-names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['machine-names', 'force'], - 'type': 'object'}, - 'DetailedStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'err': {'additionalProperties': True, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'kind': {'type': 'string'}, - 'life': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}, - 'version': {'type': 'string'}}, - 'required': ['status', - 'info', - 'data', - 'since', - 'kind', - 'version', - 'life'], - 'type': 'object'}, - 'EndpointStatus': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'name': {'type': 'string'}, - 'role': {'type': 'string'}, - 'subordinate': {'type': 'boolean'}}, - 'required': ['application', - 'name', - 'role', - 'subordinate'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'info', 'since'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'FindToolsParams': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'major': {'type': 'integer'}, - 'minor': {'type': 'integer'}, - 'number': {'$ref': '#/definitions/Number'}, - 'series': {'type': 'string'}}, - 'required': ['number', - 'major', - 'minor', - 'arch', - 'series'], - 'type': 'object'}, - 'FindToolsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'list': {'items': {'$ref': '#/definitions/Tools'}, - 'type': 'array'}}, - 'required': ['list'], - 'type': 'object'}, - 'FullStatus': {'additionalProperties': False, - 'properties': {'applications': {'patternProperties': {'.*': {'$ref': '#/definitions/ApplicationStatus'}}, - 'type': 'object'}, - 'machines': {'patternProperties': {'.*': {'$ref': '#/definitions/MachineStatus'}}, - 'type': 'object'}, - 'model': {'$ref': '#/definitions/ModelStatusInfo'}, - 'relations': {'items': {'$ref': '#/definitions/RelationStatus'}, - 'type': 'array'}, - 'remote-applications': {'patternProperties': {'.*': {'$ref': '#/definitions/RemoteApplicationStatus'}}, - 'type': 'object'}}, - 'required': ['model', - 'machines', - 'applications', - 'remote-applications', - 'relations'], - 'type': 'object'}, - 'GetConstraintsResults': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'HardwareCharacteristics': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cpu-cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'History': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'statuses': {'items': {'$ref': '#/definitions/DetailedStatus'}, - 'type': 'array'}}, - 'required': ['statuses'], - 'type': 'object'}, - 'HostPort': {'additionalProperties': False, - 'properties': {'Address': {'$ref': '#/definitions/Address'}, - 'port': {'type': 'integer'}}, - 'required': ['Address', 'port'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineHardware': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'MachineStatus': {'additionalProperties': False, - 'properties': {'agent-status': {'$ref': '#/definitions/DetailedStatus'}, - 'constraints': {'type': 'string'}, - 'containers': {'patternProperties': {'.*': {'$ref': '#/definitions/MachineStatus'}}, - 'type': 'object'}, - 'dns-name': {'type': 'string'}, - 'hardware': {'type': 'string'}, - 'has-vote': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'instance-id': {'type': 'string'}, - 'instance-status': {'$ref': '#/definitions/DetailedStatus'}, - 'ip-addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'jobs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'network-interfaces': {'patternProperties': {'.*': {'$ref': '#/definitions/NetworkInterface'}}, - 'type': 'object'}, - 'series': {'type': 'string'}, - 'wants-vote': {'type': 'boolean'}}, - 'required': ['agent-status', - 'instance-status', - 'dns-name', - 'instance-id', - 'series', - 'id', - 'containers', - 'constraints', - 'hardware', - 'jobs', - 'has-vote', - 'wants-vote'], - 'type': 'object'}, - 'MeterStatus': {'additionalProperties': False, - 'properties': {'color': {'type': 'string'}, - 'message': {'type': 'string'}}, - 'required': ['color', 'message'], - 'type': 'object'}, - 'ModelConfigResults': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelInfo': {'additionalProperties': False, - 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, - 'cloud-credential-tag': {'type': 'string'}, - 'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'controller-uuid': {'type': 'string'}, - 'default-series': {'type': 'string'}, - 'life': {'type': 'string'}, - 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, - 'type': 'array'}, - 'migration': {'$ref': '#/definitions/ModelMigrationStatus'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'provider-type': {'type': 'string'}, - 'sla': {'$ref': '#/definitions/ModelSLAInfo'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'users': {'items': {'$ref': '#/definitions/ModelUserInfo'}, - 'type': 'array'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', - 'uuid', - 'controller-uuid', - 'cloud-tag', - 'owner-tag', - 'life', - 'users', - 'machines', - 'sla', - 'agent-version'], - 'type': 'object'}, - 'ModelMachineInfo': {'additionalProperties': False, - 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'}, - 'has-vote': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'instance-id': {'type': 'string'}, - 'status': {'type': 'string'}, - 'wants-vote': {'type': 'boolean'}}, - 'required': ['id'], - 'type': 'object'}, - 'ModelMigrationStatus': {'additionalProperties': False, - 'properties': {'end': {'format': 'date-time', - 'type': 'string'}, - 'start': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'start'], - 'type': 'object'}, - 'ModelSLA': {'additionalProperties': False, - 'properties': {'ModelSLAInfo': {'$ref': '#/definitions/ModelSLAInfo'}, - 'creds': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['ModelSLAInfo', 'creds'], - 'type': 'object'}, - 'ModelSLAInfo': {'additionalProperties': False, - 'properties': {'level': {'type': 'string'}, - 'owner': {'type': 'string'}}, - 'required': ['level', 'owner'], - 'type': 'object'}, - 'ModelSet': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelStatusInfo': {'additionalProperties': False, - 'properties': {'available-version': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'meter-status': {'$ref': '#/definitions/MeterStatus'}, - 'model-status': {'$ref': '#/definitions/DetailedStatus'}, - 'name': {'type': 'string'}, - 'region': {'type': 'string'}, - 'sla': {'type': 'string'}, - 'version': {'type': 'string'}}, - 'required': ['name', - 'cloud-tag', - 'version', - 'available-version', - 'model-status', - 'meter-status', - 'sla'], - 'type': 'object'}, - 'ModelUnset': {'additionalProperties': False, - 'properties': {'keys': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['keys'], - 'type': 'object'}, - 'ModelUserInfo': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'display-name': {'type': 'string'}, - 'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'user': {'type': 'string'}}, - 'required': ['user', - 'display-name', - 'last-connection', - 'access'], - 'type': 'object'}, - 'ModelUserInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ModelUserInfo'}}, - 'type': 'object'}, - 'ModelUserInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ModelUserInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'NetworkInterface': {'additionalProperties': False, - 'properties': {'dns-nameservers': {'items': {'type': 'string'}, - 'type': 'array'}, - 'gateway': {'type': 'string'}, - 'ip-addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'is-up': {'type': 'boolean'}, - 'mac-address': {'type': 'string'}, - 'space': {'type': 'string'}}, - 'required': ['ip-addresses', - 'mac-address', - 'is-up'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'Placement': {'additionalProperties': False, - 'properties': {'directive': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['scope', 'directive'], - 'type': 'object'}, - 'PrivateAddress': {'additionalProperties': False, - 'properties': {'target': {'type': 'string'}}, - 'required': ['target'], - 'type': 'object'}, - 'PrivateAddressResults': {'additionalProperties': False, - 'properties': {'private-address': {'type': 'string'}}, - 'required': ['private-address'], - 'type': 'object'}, - 'ProvisioningScriptParams': {'additionalProperties': False, - 'properties': {'data-dir': {'type': 'string'}, - 'disable-package-commands': {'type': 'boolean'}, - 'machine-id': {'type': 'string'}, - 'nonce': {'type': 'string'}}, - 'required': ['machine-id', - 'nonce', - 'data-dir', - 'disable-package-commands'], - 'type': 'object'}, - 'ProvisioningScriptResult': {'additionalProperties': False, - 'properties': {'script': {'type': 'string'}}, - 'required': ['script'], - 'type': 'object'}, - 'PublicAddress': {'additionalProperties': False, - 'properties': {'target': {'type': 'string'}}, - 'required': ['target'], - 'type': 'object'}, - 'PublicAddressResults': {'additionalProperties': False, - 'properties': {'public-address': {'type': 'string'}}, - 'required': ['public-address'], - 'type': 'object'}, - 'RelationStatus': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'$ref': '#/definitions/EndpointStatus'}, - 'type': 'array'}, - 'id': {'type': 'integer'}, - 'interface': {'type': 'string'}, - 'key': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['id', - 'key', - 'interface', - 'scope', - 'endpoints'], - 'type': 'object'}, - 'RemoteApplicationStatus': {'additionalProperties': False, - 'properties': {'application-name': {'type': 'string'}, - 'application-url': {'type': 'string'}, - 'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'}, - 'type': 'array'}, - 'err': {'additionalProperties': True, - 'type': 'object'}, - 'life': {'type': 'string'}, - 'relations': {'patternProperties': {'.*': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'status': {'$ref': '#/definitions/DetailedStatus'}}, - 'required': ['application-url', - 'application-name', - 'endpoints', - 'life', - 'relations', - 'status'], - 'type': 'object'}, - 'RemoteEndpoint': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'limit', - 'scope'], - 'type': 'object'}, - 'ResolveCharmResult': {'additionalProperties': False, - 'properties': {'error': {'type': 'string'}, - 'url': {'type': 'string'}}, - 'type': 'object'}, - 'ResolveCharmResults': {'additionalProperties': False, - 'properties': {'urls': {'items': {'$ref': '#/definitions/ResolveCharmResult'}, - 'type': 'array'}}, - 'required': ['urls'], - 'type': 'object'}, - 'ResolveCharms': {'additionalProperties': False, - 'properties': {'references': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['references'], - 'type': 'object'}, - 'Resolved': {'additionalProperties': False, - 'properties': {'retry': {'type': 'boolean'}, - 'unit-name': {'type': 'string'}}, - 'required': ['unit-name', 'retry'], - 'type': 'object'}, - 'SetConstraints': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['application', 'constraints'], - 'type': 'object'}, - 'SetModelAgentVersion': {'additionalProperties': False, - 'properties': {'version': {'$ref': '#/definitions/Number'}}, - 'required': ['version'], - 'type': 'object'}, - 'StatusHistoryFilter': {'additionalProperties': False, - 'properties': {'date': {'format': 'date-time', - 'type': 'string'}, - 'delta': {'type': 'integer'}, - 'exclude': {'items': {'type': 'string'}, - 'type': 'array'}, - 'size': {'type': 'integer'}}, - 'required': ['size', - 'date', - 'delta', - 'exclude'], - 'type': 'object'}, - 'StatusHistoryRequest': {'additionalProperties': False, - 'properties': {'filter': {'$ref': '#/definitions/StatusHistoryFilter'}, - 'historyKind': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'tag': {'type': 'string'}}, - 'required': ['historyKind', - 'size', - 'filter', - 'tag'], - 'type': 'object'}, - 'StatusHistoryRequests': {'additionalProperties': False, - 'properties': {'requests': {'items': {'$ref': '#/definitions/StatusHistoryRequest'}, - 'type': 'array'}}, - 'required': ['requests'], - 'type': 'object'}, - 'StatusHistoryResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'history': {'$ref': '#/definitions/History'}}, - 'required': ['history'], - 'type': 'object'}, - 'StatusHistoryResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StatusHistoryResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StatusParams': {'additionalProperties': False, - 'properties': {'patterns': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['patterns'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'Tools': {'additionalProperties': False, - 'properties': {'sha256': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'url': {'type': 'string'}, - 'version': {'$ref': '#/definitions/Binary'}}, - 'required': ['version', 'url', 'size'], - 'type': 'object'}, - 'UnitStatus': {'additionalProperties': False, - 'properties': {'agent-status': {'$ref': '#/definitions/DetailedStatus'}, - 'charm': {'type': 'string'}, - 'leader': {'type': 'boolean'}, - 'machine': {'type': 'string'}, - 'opened-ports': {'items': {'type': 'string'}, - 'type': 'array'}, - 'public-address': {'type': 'string'}, - 'subordinates': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitStatus'}}, - 'type': 'object'}, - 'workload-status': {'$ref': '#/definitions/DetailedStatus'}, - 'workload-version': {'type': 'string'}}, - 'required': ['agent-status', - 'workload-status', - 'workload-version', - 'machine', - 'opened-ports', - 'public-address', - 'charm', - 'subordinates'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}}, - 'type': 'object'}}, - 'properties': {'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, - 'type': 'object'}, - 'AbortCurrentUpgrade': {'type': 'object'}, - 'AddCharm': {'properties': {'Params': {'$ref': '#/definitions/AddCharm'}}, - 'type': 'object'}, - 'AddCharmWithAuthorization': {'properties': {'Params': {'$ref': '#/definitions/AddCharmWithAuthorization'}}, - 'type': 'object'}, - 'AddMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, - 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, - 'type': 'object'}, - 'AddMachinesV2': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, - 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, - 'type': 'object'}, - 'AgentVersion': {'properties': {'Result': {'$ref': '#/definitions/AgentVersionResult'}}, - 'type': 'object'}, - 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, - 'type': 'object'}, - 'DestroyMachines': {'properties': {'Params': {'$ref': '#/definitions/DestroyMachines'}}, - 'type': 'object'}, - 'FindTools': {'properties': {'Params': {'$ref': '#/definitions/FindToolsParams'}, - 'Result': {'$ref': '#/definitions/FindToolsResult'}}, - 'type': 'object'}, - 'FullStatus': {'properties': {'Params': {'$ref': '#/definitions/StatusParams'}, - 'Result': {'$ref': '#/definitions/FullStatus'}}, - 'type': 'object'}, - 'GetBundleChanges': {'properties': {'Params': {'$ref': '#/definitions/BundleChangesParams'}, - 'Result': {'$ref': '#/definitions/BundleChangesResults'}}, - 'type': 'object'}, - 'GetModelConstraints': {'properties': {'Result': {'$ref': '#/definitions/GetConstraintsResults'}}, - 'type': 'object'}, - 'InjectMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, - 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, - 'type': 'object'}, - 'ModelGet': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}}, - 'type': 'object'}, - 'ModelInfo': {'properties': {'Result': {'$ref': '#/definitions/ModelInfo'}}, - 'type': 'object'}, - 'ModelSet': {'properties': {'Params': {'$ref': '#/definitions/ModelSet'}}, - 'type': 'object'}, - 'ModelUnset': {'properties': {'Params': {'$ref': '#/definitions/ModelUnset'}}, - 'type': 'object'}, - 'ModelUserInfo': {'properties': {'Result': {'$ref': '#/definitions/ModelUserInfoResults'}}, - 'type': 'object'}, - 'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/PrivateAddress'}, - 'Result': {'$ref': '#/definitions/PrivateAddressResults'}}, - 'type': 'object'}, - 'ProvisioningScript': {'properties': {'Params': {'$ref': '#/definitions/ProvisioningScriptParams'}, - 'Result': {'$ref': '#/definitions/ProvisioningScriptResult'}}, - 'type': 'object'}, - 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/PublicAddress'}, - 'Result': {'$ref': '#/definitions/PublicAddressResults'}}, - 'type': 'object'}, - 'ResolveCharms': {'properties': {'Params': {'$ref': '#/definitions/ResolveCharms'}, - 'Result': {'$ref': '#/definitions/ResolveCharmResults'}}, - 'type': 'object'}, - 'Resolved': {'properties': {'Params': {'$ref': '#/definitions/Resolved'}}, - 'type': 'object'}, - 'RetryProvisioning': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'SetModelAgentVersion': {'properties': {'Params': {'$ref': '#/definitions/SetModelAgentVersion'}}, - 'type': 'object'}, - 'SetModelConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, - 'type': 'object'}, - 'SetSLALevel': {'properties': {'Params': {'$ref': '#/definitions/ModelSLA'}}, - 'type': 'object'}, - 'StatusHistory': {'properties': {'Params': {'$ref': '#/definitions/StatusHistoryRequests'}, - 'Result': {'$ref': '#/definitions/StatusHistoryResults'}}, - 'type': 'object'}, - 'WatchAll': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherId'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(APIHostPortsResult) - async def APIHostPorts(self): - ''' - - Returns -> typing.Sequence[~HostPort] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='APIHostPorts', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def AbortCurrentUpgrade(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AbortCurrentUpgrade', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def AddCharm(self, channel, url): - ''' - channel : str - url : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AddCharm', - version=1, - params=_params) - _params['channel'] = channel - _params['url'] = url - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def AddCharmWithAuthorization(self, channel, macaroon, url): - ''' - channel : str - macaroon : Macaroon - url : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AddCharmWithAuthorization', - version=1, - params=_params) - _params['channel'] = channel - _params['macaroon'] = macaroon - _params['url'] = url - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddMachinesResults) - async def AddMachines(self, params): - ''' - params : typing.Sequence[~AddMachineParams] - Returns -> typing.Sequence[~AddMachinesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AddMachines', - version=1, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddMachinesResults) - async def AddMachinesV2(self, params): - ''' - params : typing.Sequence[~AddMachineParams] - Returns -> typing.Sequence[~AddMachinesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AddMachinesV2', - version=1, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AgentVersionResult) - async def AgentVersion(self): - ''' - - Returns -> Number - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AgentVersion', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BytesResult) - async def CACert(self): - ''' - - Returns -> typing.Sequence[int] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='CACert', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyMachines(self, force, machine_names): - ''' - force : bool - machine_names : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='DestroyMachines', - version=1, - params=_params) - _params['force'] = force - _params['machine-names'] = machine_names - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FindToolsResult) - async def FindTools(self, arch, major, minor, number, series): - ''' - arch : str - major : int - minor : int - number : Number - series : str - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[~Tools]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='FindTools', - version=1, - params=_params) - _params['arch'] = arch - _params['major'] = major - _params['minor'] = minor - _params['number'] = number - _params['series'] = series - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FullStatus) - async def FullStatus(self, patterns): - ''' - patterns : typing.Sequence[str] - Returns -> typing.Union[typing.Mapping[str, ~ApplicationStatus], str, typing.Mapping[str, ~MachineStatus], _ForwardRef('ModelStatusInfo'), typing.Mapping[str, ~ApplicationOfferStatus], typing.Sequence[~RelationStatus], typing.Mapping[str, ~RemoteApplicationStatus]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='FullStatus', - version=1, - params=_params) - _params['patterns'] = patterns - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BundleChangesResults) - async def GetBundleChanges(self, yaml): - ''' - yaml : str - Returns -> typing.Union[typing.Sequence[~BundleChange], typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='GetBundleChanges', - version=1, - params=_params) - _params['yaml'] = yaml - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(GetConstraintsResults) - async def GetModelConstraints(self): - ''' - - Returns -> Value - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='GetModelConstraints', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddMachinesResults) - async def InjectMachines(self, params): - ''' - params : typing.Sequence[~AddMachineParams] - Returns -> typing.Sequence[~AddMachinesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='InjectMachines', - version=1, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResults) - async def ModelGet(self): - ''' - - Returns -> typing.Mapping[str, ~ConfigValue] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ModelGet', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelInfo) - async def ModelInfo(self): - ''' - - Returns -> typing.Union[_ForwardRef('Number'), str, typing.Sequence[~ModelMachineInfo], _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence[~ModelUserInfo]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ModelInfo', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ModelSet(self, config): - ''' - config : typing.Mapping[str, typing.Any] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ModelSet', - version=1, - params=_params) - _params['config'] = config - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ModelUnset(self, keys): - ''' - keys : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ModelUnset', - version=1, - params=_params) - _params['keys'] = keys - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelUserInfoResults) - async def ModelUserInfo(self): - ''' - - Returns -> typing.Sequence[~ModelUserInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ModelUserInfo', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(PrivateAddressResults) - async def PrivateAddress(self, target): - ''' - target : str - Returns -> str - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='PrivateAddress', - version=1, - params=_params) - _params['target'] = target - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ProvisioningScriptResult) - async def ProvisioningScript(self, data_dir, disable_package_commands, machine_id, nonce): - ''' - data_dir : str - disable_package_commands : bool - machine_id : str - nonce : str - Returns -> str - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ProvisioningScript', - version=1, - params=_params) - _params['data-dir'] = data_dir - _params['disable-package-commands'] = disable_package_commands - _params['machine-id'] = machine_id - _params['nonce'] = nonce - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(PublicAddressResults) - async def PublicAddress(self, target): - ''' - target : str - Returns -> str - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='PublicAddress', - version=1, - params=_params) - _params['target'] = target - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ResolveCharmResults) - async def ResolveCharms(self, references): - ''' - references : typing.Sequence[str] - Returns -> typing.Sequence[~ResolveCharmResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ResolveCharms', - version=1, - params=_params) - _params['references'] = references - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Resolved(self, retry, unit_name): - ''' - retry : bool - unit_name : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='Resolved', - version=1, - params=_params) - _params['retry'] = retry - _params['unit-name'] = unit_name - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RetryProvisioning(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='RetryProvisioning', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def SLALevel(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='SLALevel', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetModelAgentVersion(self, version): - ''' - version : Number - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='SetModelAgentVersion', - version=1, - params=_params) - _params['version'] = version - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetModelConstraints(self, application, constraints): - ''' - application : str - constraints : Value - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='SetModelConstraints', - version=1, - params=_params) - _params['application'] = application - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetSLALevel(self, creds, level): - ''' - creds : typing.Sequence[int] - level : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='SetSLALevel', - version=1, - params=_params) - _params['creds'] = creds - _params['level'] = level - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusHistoryResults) - async def StatusHistory(self, requests): - ''' - requests : typing.Sequence[~StatusHistoryRequest] - Returns -> typing.Sequence[~StatusHistoryResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='StatusHistory', - version=1, - params=_params) - _params['requests'] = requests - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AllWatcherId) - async def WatchAll(self): - ''' - - Returns -> str - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='WatchAll', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class CloudFacade(Type): - name = 'Cloud' - version = 1 - schema = {'definitions': {'Cloud': {'additionalProperties': False, - 'properties': {'auth-types': {'items': {'type': 'string'}, - 'type': 'array'}, - 'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'regions': {'items': {'$ref': '#/definitions/CloudRegion'}, - 'type': 'array'}, - 'storage-endpoint': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type'], - 'type': 'object'}, - 'CloudCredential': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'auth-type': {'type': 'string'}, - 'redacted': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['auth-type'], - 'type': 'object'}, - 'CloudCredentialResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/CloudCredential'}}, - 'type': 'object'}, - 'CloudCredentialResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CloudCredentialResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'CloudInstanceTypesConstraint': {'additionalProperties': False, - 'properties': {'cloud-tag': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'region': {'type': 'string'}}, - 'required': ['cloud-tag', - 'region'], - 'type': 'object'}, - 'CloudInstanceTypesConstraints': {'additionalProperties': False, - 'properties': {'constraints': {'items': {'$ref': '#/definitions/CloudInstanceTypesConstraint'}, - 'type': 'array'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'CloudRegion': {'additionalProperties': False, - 'properties': {'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'name': {'type': 'string'}, - 'storage-endpoint': {'type': 'string'}}, - 'required': ['name'], - 'type': 'object'}, - 'CloudResult': {'additionalProperties': False, - 'properties': {'cloud': {'$ref': '#/definitions/Cloud'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'CloudResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CloudResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'CloudsResult': {'additionalProperties': False, - 'properties': {'clouds': {'patternProperties': {'.*': {'$ref': '#/definitions/Cloud'}}, - 'type': 'object'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'InstanceType': {'additionalProperties': False, - 'properties': {'arches': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cost': {'type': 'integer'}, - 'cpu-cores': {'type': 'integer'}, - 'deprecated': {'type': 'boolean'}, - 'memory': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'root-disk': {'type': 'integer'}, - 'virt-type': {'type': 'string'}}, - 'required': ['arches', 'cpu-cores', 'memory'], - 'type': 'object'}, - 'InstanceTypesResult': {'additionalProperties': False, - 'properties': {'cost-currency': {'type': 'string'}, - 'cost-divisor': {'type': 'integer'}, - 'cost-unit': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'instance-types': {'items': {'$ref': '#/definitions/InstanceType'}, - 'type': 'array'}}, - 'type': 'object'}, - 'InstanceTypesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/InstanceTypesResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UpdateCloudCredential': {'additionalProperties': False, - 'properties': {'credential': {'$ref': '#/definitions/CloudCredential'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'credential'], - 'type': 'object'}, - 'UpdateCloudCredentials': {'additionalProperties': False, - 'properties': {'credentials': {'items': {'$ref': '#/definitions/UpdateCloudCredential'}, - 'type': 'array'}}, - 'type': 'object'}, - 'UserCloud': {'additionalProperties': False, - 'properties': {'cloud-tag': {'type': 'string'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag', 'cloud-tag'], - 'type': 'object'}, - 'UserClouds': {'additionalProperties': False, - 'properties': {'user-clouds': {'items': {'$ref': '#/definitions/UserCloud'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}}, - 'type': 'object'}}, - 'properties': {'Cloud': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/CloudResults'}}, - 'type': 'object'}, - 'Clouds': {'properties': {'Result': {'$ref': '#/definitions/CloudsResult'}}, - 'type': 'object'}, - 'Credential': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/CloudCredentialResults'}}, - 'type': 'object'}, - 'DefaultCloud': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'InstanceTypes': {'properties': {'Params': {'$ref': '#/definitions/CloudInstanceTypesConstraints'}, - 'Result': {'$ref': '#/definitions/InstanceTypesResults'}}, - 'type': 'object'}, - 'RevokeCredentials': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UpdateCredentials': {'properties': {'Params': {'$ref': '#/definitions/UpdateCloudCredentials'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UserCredentials': {'properties': {'Params': {'$ref': '#/definitions/UserClouds'}, - 'Result': {'$ref': '#/definitions/StringsResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(CloudResults) - async def Cloud(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~CloudResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='Cloud', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudsResult) - async def Clouds(self): - ''' - - Returns -> typing.Mapping[str, ~Cloud] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='Clouds', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudCredentialResults) - async def Credential(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~CloudCredentialResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='Credential', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def DefaultCloud(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='DefaultCloud', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(InstanceTypesResults) - async def InstanceTypes(self, constraints): - ''' - constraints : typing.Sequence[~CloudInstanceTypesConstraint] - Returns -> typing.Sequence[~InstanceTypesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='InstanceTypes', - version=1, - params=_params) - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RevokeCredentials(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='RevokeCredentials', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateCredentials(self, credentials): - ''' - credentials : typing.Sequence[~UpdateCloudCredential] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='UpdateCredentials', - version=1, - params=_params) - _params['credentials'] = credentials - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsResults) - async def UserCredentials(self, user_clouds): - ''' - user_clouds : typing.Sequence[~UserCloud] - Returns -> typing.Sequence[~StringsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='UserCredentials', - version=1, - params=_params) - _params['user-clouds'] = user_clouds - reply = await self.rpc(msg) - return reply - - - -class CredentialManagerFacade(Type): - name = 'CredentialManager' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'InvalidateCredentialArg': {'additionalProperties': False, - 'properties': {'reason': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, - 'properties': {'InvalidateModelCredential': {'properties': {'Params': {'$ref': '#/definitions/InvalidateCredentialArg'}, - 'Result': {'$ref': '#/definitions/ErrorResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResult) - async def InvalidateModelCredential(self, reason): - ''' - reason : str - Returns -> Error - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CredentialManager', - request='InvalidateModelCredential', - version=1, - params=_params) - _params['reason'] = reason - reply = await self.rpc(msg) - return reply - - - -class CrossControllerFacade(Type): - name = 'CrossController' - version = 1 - schema = {'definitions': {'ControllerAPIInfoResult': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cacert': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['addresses', - 'cacert'], - 'type': 'object'}, - 'ControllerAPIInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ControllerAPIInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'ControllerInfo': {'properties': {'Result': {'$ref': '#/definitions/ControllerAPIInfoResults'}}, - 'type': 'object'}, - 'WatchControllerInfo': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ControllerAPIInfoResults) - async def ControllerInfo(self): - ''' - - Returns -> typing.Sequence[~ControllerAPIInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CrossController', - request='ControllerInfo', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchControllerInfo(self): - ''' - - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CrossController', - request='WatchControllerInfo', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class CrossModelRelationsFacade(Type): - name = 'CrossModelRelations' - version = 1 - schema = {'definitions': {'EntityStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'info', 'since'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'IngressNetworksChangeEvent': {'additionalProperties': False, - 'properties': {'application-token': {'type': 'string'}, - 'ingress-required': {'type': 'boolean'}, - 'macaroons': {'items': {'$ref': '#/definitions/Macaroon'}, - 'type': 'array'}, - 'networks': {'items': {'type': 'string'}, - 'type': 'array'}, - 'relation-token': {'type': 'string'}}, - 'required': ['relation-token', - 'application-token', - 'ingress-required'], - 'type': 'object'}, - 'IngressNetworksChanges': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/IngressNetworksChangeEvent'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'OfferArg': {'additionalProperties': False, - 'properties': {'macaroons': {'items': {'$ref': '#/definitions/Macaroon'}, - 'type': 'array'}, - 'offer-uuid': {'type': 'string'}}, - 'required': ['offer-uuid'], - 'type': 'object'}, - 'OfferArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/OfferArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'OfferStatusChange': {'additionalProperties': False, - 'properties': {'offer-name': {'type': 'string'}, - 'status': {'$ref': '#/definitions/EntityStatus'}}, - 'required': ['offer-name', 'status'], - 'type': 'object'}, - 'OfferStatusWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/OfferStatusChange'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}, - 'OfferStatusWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/OfferStatusWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RegisterRemoteRelationArg': {'additionalProperties': False, - 'properties': {'application-token': {'type': 'string'}, - 'local-endpoint-name': {'type': 'string'}, - 'macaroons': {'items': {'$ref': '#/definitions/Macaroon'}, - 'type': 'array'}, - 'offer-uuid': {'type': 'string'}, - 'relation-token': {'type': 'string'}, - 'remote-endpoint': {'$ref': '#/definitions/RemoteEndpoint'}, - 'remote-space': {'$ref': '#/definitions/RemoteSpace'}, - 'source-model-tag': {'type': 'string'}}, - 'required': ['application-token', - 'source-model-tag', - 'relation-token', - 'remote-endpoint', - 'remote-space', - 'offer-uuid', - 'local-endpoint-name'], - 'type': 'object'}, - 'RegisterRemoteRelationArgs': {'additionalProperties': False, - 'properties': {'relations': {'items': {'$ref': '#/definitions/RegisterRemoteRelationArg'}, - 'type': 'array'}}, - 'required': ['relations'], - 'type': 'object'}, - 'RegisterRemoteRelationResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/RemoteRelationDetails'}}, - 'type': 'object'}, - 'RegisterRemoteRelationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RegisterRemoteRelationResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'RelationLifeSuspendedStatusChange': {'additionalProperties': False, - 'properties': {'key': {'type': 'string'}, - 'life': {'type': 'string'}, - 'suspended': {'type': 'boolean'}, - 'suspended-reason': {'type': 'string'}}, - 'required': ['key', - 'life', - 'suspended', - 'suspended-reason'], - 'type': 'object'}, - 'RelationLifeSuspendedStatusWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/RelationLifeSuspendedStatusChange'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}, - 'RelationStatusWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RelationLifeSuspendedStatusWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RelationUnitsChange': {'additionalProperties': False, - 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}}, - 'type': 'object'}, - 'departed': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['changed'], - 'type': 'object'}, - 'RelationUnitsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'$ref': '#/definitions/RelationUnitsChange'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}, - 'RelationUnitsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RelationUnitsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RemoteEndpoint': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'role': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'limit'], - 'type': 'object'}, - 'RemoteEntityArg': {'additionalProperties': False, - 'properties': {'macaroons': {'items': {'$ref': '#/definitions/Macaroon'}, - 'type': 'array'}, - 'relation-token': {'type': 'string'}}, - 'required': ['relation-token'], - 'type': 'object'}, - 'RemoteEntityArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/RemoteEntityArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'RemoteRelationChangeEvent': {'additionalProperties': False, - 'properties': {'application-token': {'type': 'string'}, - 'changed-units': {'items': {'$ref': '#/definitions/RemoteRelationUnitChange'}, - 'type': 'array'}, - 'departed-units': {'items': {'type': 'integer'}, - 'type': 'array'}, - 'force-cleanup': {'type': 'boolean'}, - 'life': {'type': 'string'}, - 'macaroons': {'items': {'$ref': '#/definitions/Macaroon'}, - 'type': 'array'}, - 'relation-token': {'type': 'string'}, - 'suspended': {'type': 'boolean'}, - 'suspended-reason': {'type': 'string'}}, - 'required': ['relation-token', - 'application-token', - 'life'], - 'type': 'object'}, - 'RemoteRelationDetails': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'relation-token': {'type': 'string'}}, - 'required': ['relation-token'], - 'type': 'object'}, - 'RemoteRelationUnit': {'additionalProperties': False, - 'properties': {'macaroons': {'items': {'$ref': '#/definitions/Macaroon'}, - 'type': 'array'}, - 'relation-token': {'type': 'string'}, - 'unit': {'type': 'string'}}, - 'required': ['relation-token', 'unit'], - 'type': 'object'}, - 'RemoteRelationUnitChange': {'additionalProperties': False, - 'properties': {'settings': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'unit-id': {'type': 'integer'}}, - 'required': ['unit-id'], - 'type': 'object'}, - 'RemoteRelationUnits': {'additionalProperties': False, - 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RemoteRelationUnit'}, - 'type': 'array'}}, - 'required': ['relation-units'], - 'type': 'object'}, - 'RemoteRelationsChanges': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/RemoteRelationChangeEvent'}, - 'type': 'array'}}, - 'type': 'object'}, - 'RemoteSpace': {'additionalProperties': False, - 'properties': {'cloud-type': {'type': 'string'}, - 'name': {'type': 'string'}, - 'provider-attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'provider-id': {'type': 'string'}, - 'subnets': {'items': {'$ref': '#/definitions/Subnet'}, - 'type': 'array'}}, - 'required': ['cloud-type', - 'name', - 'provider-id', - 'provider-attributes', - 'subnets'], - 'type': 'object'}, - 'SettingsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['settings'], - 'type': 'object'}, - 'SettingsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/SettingsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Subnet': {'additionalProperties': False, - 'properties': {'cidr': {'type': 'string'}, - 'life': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-network-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'space-tag': {'type': 'string'}, - 'status': {'type': 'string'}, - 'vlan-tag': {'type': 'integer'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['cidr', - 'vlan-tag', - 'life', - 'space-tag', - 'zones'], - 'type': 'object'}, - 'UnitSettings': {'additionalProperties': False, - 'properties': {'version': {'type': 'integer'}}, - 'required': ['version'], - 'type': 'object'}}, - 'properties': {'PublishIngressNetworkChanges': {'properties': {'Params': {'$ref': '#/definitions/IngressNetworksChanges'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'PublishRelationChanges': {'properties': {'Params': {'$ref': '#/definitions/RemoteRelationsChanges'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RegisterRemoteRelations': {'properties': {'Params': {'$ref': '#/definitions/RegisterRemoteRelationArgs'}, - 'Result': {'$ref': '#/definitions/RegisterRemoteRelationResults'}}, - 'type': 'object'}, - 'RelationUnitSettings': {'properties': {'Params': {'$ref': '#/definitions/RemoteRelationUnits'}, - 'Result': {'$ref': '#/definitions/SettingsResults'}}, - 'type': 'object'}, - 'WatchEgressAddressesForRelations': {'properties': {'Params': {'$ref': '#/definitions/RemoteEntityArgs'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchOfferStatus': {'properties': {'Params': {'$ref': '#/definitions/OfferArgs'}, - 'Result': {'$ref': '#/definitions/OfferStatusWatchResults'}}, - 'type': 'object'}, - 'WatchRelationUnits': {'properties': {'Params': {'$ref': '#/definitions/RemoteEntityArgs'}, - 'Result': {'$ref': '#/definitions/RelationUnitsWatchResults'}}, - 'type': 'object'}, - 'WatchRelationsSuspendedStatus': {'properties': {'Params': {'$ref': '#/definitions/RemoteEntityArgs'}, - 'Result': {'$ref': '#/definitions/RelationStatusWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def PublishIngressNetworkChanges(self, changes): - ''' - changes : typing.Sequence[~IngressNetworksChangeEvent] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CrossModelRelations', - request='PublishIngressNetworkChanges', - version=1, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def PublishRelationChanges(self, changes): - ''' - changes : typing.Sequence[~RemoteRelationChangeEvent] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CrossModelRelations', - request='PublishRelationChanges', - version=1, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RegisterRemoteRelationResults) - async def RegisterRemoteRelations(self, relations): - ''' - relations : typing.Sequence[~RegisterRemoteRelationArg] - Returns -> typing.Sequence[~RegisterRemoteRelationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CrossModelRelations', - request='RegisterRemoteRelations', - version=1, - params=_params) - _params['relations'] = relations - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SettingsResults) - async def RelationUnitSettings(self, relation_units): - ''' - relation_units : typing.Sequence[~RemoteRelationUnit] - Returns -> typing.Sequence[~SettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CrossModelRelations', - request='RelationUnitSettings', - version=1, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchEgressAddressesForRelations(self, args): - ''' - args : typing.Sequence[~RemoteEntityArg] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CrossModelRelations', - request='WatchEgressAddressesForRelations', - version=1, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(OfferStatusWatchResults) - async def WatchOfferStatus(self, args): - ''' - args : typing.Sequence[~OfferArg] - Returns -> typing.Sequence[~OfferStatusWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CrossModelRelations', - request='WatchOfferStatus', - version=1, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationUnitsWatchResults) - async def WatchRelationUnits(self, args): - ''' - args : typing.Sequence[~RemoteEntityArg] - Returns -> typing.Sequence[~RelationUnitsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CrossModelRelations', - request='WatchRelationUnits', - version=1, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationStatusWatchResults) - async def WatchRelationsSuspendedStatus(self, args): - ''' - args : typing.Sequence[~RemoteEntityArg] - Returns -> typing.Sequence[~RelationLifeSuspendedStatusWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CrossModelRelations', - request='WatchRelationsSuspendedStatus', - version=1, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - -class DeployerFacade(Type): - name = 'Deployer' - version = 1 - schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, - 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, - 'type': 'array'}, - 'type': 'array'}}, - 'required': ['servers'], - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'DeployerConnectionValues': {'additionalProperties': False, - 'properties': {'api-addresses': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['api-addresses'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityPassword': {'additionalProperties': False, - 'properties': {'password': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'password'], - 'type': 'object'}, - 'EntityPasswords': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'HostPort': {'additionalProperties': False, - 'properties': {'Address': {'$ref': '#/definitions/Address'}, - 'port': {'type': 'integer'}}, - 'required': ['Address', 'port'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, - 'type': 'object'}, - 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, - 'type': 'object'}, - 'ConnectionInfo': {'properties': {'Result': {'$ref': '#/definitions/DeployerConnectionValues'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'Remove': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetPasswords': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringsResult) - async def APIAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Deployer', - request='APIAddresses', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(APIHostPortsResult) - async def APIHostPorts(self): - ''' - - Returns -> typing.Sequence[~HostPort] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Deployer', - request='APIHostPorts', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DeployerConnectionValues) - async def ConnectionInfo(self): - ''' - - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Deployer', - request='ConnectionInfo', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Deployer', - request='Life', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ModelUUID(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Deployer', - request='ModelUUID', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Remove(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Deployer', - request='Remove', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetPasswords(self, changes): - ''' - changes : typing.Sequence[~EntityPassword] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Deployer', - request='SetPasswords', - version=1, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Deployer', - request='SetStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Deployer', - request='UpdateStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchAPIHostPorts(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Deployer', - request='WatchAPIHostPorts', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchUnits(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Deployer', - request='WatchUnits', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class ExternalControllerUpdaterFacade(Type): - name = 'ExternalControllerUpdater' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ExternalControllerInfo': {'additionalProperties': False, - 'properties': {'addrs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'ca-cert': {'type': 'string'}, - 'controller-alias': {'type': 'string'}, - 'controller-tag': {'type': 'string'}}, - 'required': ['controller-tag', - 'controller-alias', - 'addrs', - 'ca-cert'], - 'type': 'object'}, - 'ExternalControllerInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ExternalControllerInfo'}}, - 'required': ['result', - 'error'], - 'type': 'object'}, - 'ExternalControllerInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ExternalControllerInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'SetExternalControllerInfoParams': {'additionalProperties': False, - 'properties': {'info': {'$ref': '#/definitions/ExternalControllerInfo'}}, - 'required': ['info'], - 'type': 'object'}, - 'SetExternalControllersInfoParams': {'additionalProperties': False, - 'properties': {'controllers': {'items': {'$ref': '#/definitions/SetExternalControllerInfoParams'}, - 'type': 'array'}}, - 'required': ['controllers'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'ExternalControllerInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ExternalControllerInfoResults'}}, - 'type': 'object'}, - 'SetExternalControllerInfo': {'properties': {'Params': {'$ref': '#/definitions/SetExternalControllersInfoParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchExternalControllers': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ExternalControllerInfoResults) - async def ExternalControllerInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ExternalControllerInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ExternalControllerUpdater', - request='ExternalControllerInfo', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetExternalControllerInfo(self, controllers): - ''' - controllers : typing.Sequence[~SetExternalControllerInfoParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ExternalControllerUpdater', - request='SetExternalControllerInfo', - version=1, - params=_params) - _params['controllers'] = controllers - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchExternalControllers(self): - ''' - - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ExternalControllerUpdater', - request='WatchExternalControllers', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class FanConfigurerFacade(Type): - name = 'FanConfigurer' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'FanConfigEntry': {'additionalProperties': False, - 'properties': {'overlay': {'type': 'string'}, - 'underlay': {'type': 'string'}}, - 'required': ['underlay', 'overlay'], - 'type': 'object'}, - 'FanConfigResult': {'additionalProperties': False, - 'properties': {'fans': {'items': {'$ref': '#/definitions/FanConfigEntry'}, - 'type': 'array'}}, - 'required': ['fans'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}}, - 'properties': {'FanConfig': {'properties': {'Result': {'$ref': '#/definitions/FanConfigResult'}}, - 'type': 'object'}, - 'WatchForFanConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(FanConfigResult) - async def FanConfig(self): - ''' - - Returns -> typing.Sequence[~FanConfigEntry] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='FanConfigurer', - request='FanConfig', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForFanConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='FanConfigurer', - request='WatchForFanConfigChanges', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class FirewallRulesFacade(Type): - name = 'FirewallRules' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'FirewallRule': {'additionalProperties': False, - 'properties': {'known-service': {'type': 'string'}, - 'whitelist-cidrs': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['known-service'], - 'type': 'object'}, - 'FirewallRuleArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/FirewallRule'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'ListFirewallRulesResults': {'additionalProperties': False, - 'properties': {'Rules': {'items': {'$ref': '#/definitions/FirewallRule'}, - 'type': 'array'}}, - 'required': ['Rules'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, - 'properties': {'ListFirewallRules': {'properties': {'Result': {'$ref': '#/definitions/ListFirewallRulesResults'}}, - 'type': 'object'}, - 'SetFirewallRules': {'properties': {'Params': {'$ref': '#/definitions/FirewallRuleArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ListFirewallRulesResults) - async def ListFirewallRules(self): - ''' - - Returns -> typing.Sequence[~FirewallRule] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='FirewallRules', - request='ListFirewallRules', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetFirewallRules(self, args): - ''' - args : typing.Sequence[~FirewallRule] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='FirewallRules', - request='SetFirewallRules', - version=1, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - -class HostKeyReporterFacade(Type): - name = 'HostKeyReporter' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'SSHHostKeySet': {'additionalProperties': False, - 'properties': {'entity-keys': {'items': {'$ref': '#/definitions/SSHHostKeys'}, - 'type': 'array'}}, - 'required': ['entity-keys'], - 'type': 'object'}, - 'SSHHostKeys': {'additionalProperties': False, - 'properties': {'public-keys': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'public-keys'], - 'type': 'object'}}, - 'properties': {'ReportKeys': {'properties': {'Params': {'$ref': '#/definitions/SSHHostKeySet'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def ReportKeys(self, entity_keys): - ''' - entity_keys : typing.Sequence[~SSHHostKeys] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='HostKeyReporter', - request='ReportKeys', - version=1, - params=_params) - _params['entity-keys'] = entity_keys - reply = await self.rpc(msg) - return reply - - - -class KeyManagerFacade(Type): - name = 'KeyManager' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ListSSHKeys': {'additionalProperties': False, - 'properties': {'entities': {'$ref': '#/definitions/Entities'}, - 'mode': {'type': 'boolean'}}, - 'required': ['entities', 'mode'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModifyUserSSHKeys': {'additionalProperties': False, - 'properties': {'ssh-keys': {'items': {'type': 'string'}, - 'type': 'array'}, - 'user': {'type': 'string'}}, - 'required': ['user', 'ssh-keys'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'AddKeys': {'properties': {'Params': {'$ref': '#/definitions/ModifyUserSSHKeys'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'DeleteKeys': {'properties': {'Params': {'$ref': '#/definitions/ModifyUserSSHKeys'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ImportKeys': {'properties': {'Params': {'$ref': '#/definitions/ModifyUserSSHKeys'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ListKeys': {'properties': {'Params': {'$ref': '#/definitions/ListSSHKeys'}, - 'Result': {'$ref': '#/definitions/StringsResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def AddKeys(self, ssh_keys, user): - ''' - ssh_keys : typing.Sequence[str] - user : str - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='KeyManager', - request='AddKeys', - version=1, - params=_params) - _params['ssh-keys'] = ssh_keys - _params['user'] = user - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DeleteKeys(self, ssh_keys, user): - ''' - ssh_keys : typing.Sequence[str] - user : str - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='KeyManager', - request='DeleteKeys', - version=1, - params=_params) - _params['ssh-keys'] = ssh_keys - _params['user'] = user - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ImportKeys(self, ssh_keys, user): - ''' - ssh_keys : typing.Sequence[str] - user : str - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='KeyManager', - request='ImportKeys', - version=1, - params=_params) - _params['ssh-keys'] = ssh_keys - _params['user'] = user - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsResults) - async def ListKeys(self, entities, mode): - ''' - entities : Entities - mode : bool - Returns -> typing.Sequence[~StringsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='KeyManager', - request='ListKeys', - version=1, - params=_params) - _params['entities'] = entities - _params['mode'] = mode - reply = await self.rpc(msg) - return reply - - - -class KeyUpdaterFacade(Type): - name = 'KeyUpdater' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'AuthorisedKeys': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsResults'}}, - 'type': 'object'}, - 'WatchAuthorisedKeys': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringsResults) - async def AuthorisedKeys(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='KeyUpdater', - request='AuthorisedKeys', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchAuthorisedKeys(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='KeyUpdater', - request='WatchAuthorisedKeys', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class LifeFlagFacade(Type): - name = 'LifeFlag' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='LifeFlag', - request='Life', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def Watch(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='LifeFlag', - request='Watch', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class LogForwardingFacade(Type): - name = 'LogForwarding' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'LogForwardingGetLastSentParams': {'additionalProperties': False, - 'properties': {'ids': {'items': {'$ref': '#/definitions/LogForwardingID'}, - 'type': 'array'}}, - 'required': ['ids'], - 'type': 'object'}, - 'LogForwardingGetLastSentResult': {'additionalProperties': False, - 'properties': {'err': {'$ref': '#/definitions/Error'}, - 'record-id': {'type': 'integer'}, - 'record-timestamp': {'type': 'integer'}}, - 'required': ['record-id', - 'record-timestamp', - 'err'], - 'type': 'object'}, - 'LogForwardingGetLastSentResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LogForwardingGetLastSentResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'LogForwardingID': {'additionalProperties': False, - 'properties': {'model': {'type': 'string'}, - 'sink': {'type': 'string'}}, - 'required': ['model', 'sink'], - 'type': 'object'}, - 'LogForwardingSetLastSentParam': {'additionalProperties': False, - 'properties': {'LogForwardingID': {'$ref': '#/definitions/LogForwardingID'}, - 'record-id': {'type': 'integer'}, - 'record-timestamp': {'type': 'integer'}}, - 'required': ['LogForwardingID', - 'record-id', - 'record-timestamp'], - 'type': 'object'}, - 'LogForwardingSetLastSentParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/LogForwardingSetLastSentParam'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, - 'properties': {'GetLastSent': {'properties': {'Params': {'$ref': '#/definitions/LogForwardingGetLastSentParams'}, - 'Result': {'$ref': '#/definitions/LogForwardingGetLastSentResults'}}, - 'type': 'object'}, - 'SetLastSent': {'properties': {'Params': {'$ref': '#/definitions/LogForwardingSetLastSentParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(LogForwardingGetLastSentResults) - async def GetLastSent(self, ids): - ''' - ids : typing.Sequence[~LogForwardingID] - Returns -> typing.Sequence[~LogForwardingGetLastSentResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='LogForwarding', - request='GetLastSent', - version=1, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetLastSent(self, params): - ''' - params : typing.Sequence[~LogForwardingSetLastSentParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='LogForwarding', - request='SetLastSent', - version=1, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - -class LoggerFacade(Type): - name = 'Logger' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'LoggingConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'WatchLoggingConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringResults) - async def LoggingConfig(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Logger', - request='LoggingConfig', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchLoggingConfig(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Logger', - request='WatchLoggingConfig', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class MachineActionsFacade(Type): - name = 'MachineActions' - version = 1 - schema = {'definitions': {'Action': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'parameters': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'receiver': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'receiver', 'name'], - 'type': 'object'}, - 'ActionExecutionResult': {'additionalProperties': False, - 'properties': {'action-tag': {'type': 'string'}, - 'message': {'type': 'string'}, - 'results': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'status': {'type': 'string'}}, - 'required': ['action-tag', 'status'], - 'type': 'object'}, - 'ActionExecutionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ActionExecutionResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ActionResult': {'additionalProperties': False, - 'properties': {'action': {'$ref': '#/definitions/Action'}, - 'completed': {'format': 'date-time', - 'type': 'string'}, - 'enqueued': {'format': 'date-time', - 'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'message': {'type': 'string'}, - 'output': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'started': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'type': 'object'}, - 'ActionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ActionsByReceiver': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionResult'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'receiver': {'type': 'string'}}, - 'type': 'object'}, - 'ActionsByReceivers': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionsByReceiver'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'BeginActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'FinishActions': {'properties': {'Params': {'$ref': '#/definitions/ActionExecutionResults'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RunningActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, - 'type': 'object'}, - 'WatchActionNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ActionResults) - async def Actions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineActions', - request='Actions', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def BeginActions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineActions', - request='BeginActions', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def FinishActions(self, results): - ''' - results : typing.Sequence[~ActionExecutionResult] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineActions', - request='FinishActions', - version=1, - params=_params) - _params['results'] = results - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionsByReceivers) - async def RunningActions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionsByReceiver] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineActions', - request='RunningActions', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchActionNotifications(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineActions', - request='WatchActionNotifications', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class MachineUndertakerFacade(Type): - name = 'MachineUndertaker' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesResult': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/EntitiesResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ProviderInterfaceInfo': {'additionalProperties': False, - 'properties': {'interface-name': {'type': 'string'}, - 'mac-address': {'type': 'string'}, - 'provider-id': {'type': 'string'}}, - 'required': ['interface-name', - 'mac-address', - 'provider-id'], - 'type': 'object'}, - 'ProviderInterfaceInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'interfaces': {'items': {'$ref': '#/definitions/ProviderInterfaceInfo'}, - 'type': 'array'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['machine-tag', - 'interfaces'], - 'type': 'object'}, - 'ProviderInterfaceInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ProviderInterfaceInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'AllMachineRemovals': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/EntitiesResults'}}, - 'type': 'object'}, - 'CompleteMachineRemovals': {'properties': {'Params': {'$ref': '#/definitions/Entities'}}, - 'type': 'object'}, - 'GetMachineProviderInterfaceInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ProviderInterfaceInfoResults'}}, - 'type': 'object'}, - 'WatchMachineRemovals': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(EntitiesResults) - async def AllMachineRemovals(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~EntitiesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineUndertaker', - request='AllMachineRemovals', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def CompleteMachineRemovals(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineUndertaker', - request='CompleteMachineRemovals', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ProviderInterfaceInfoResults) - async def GetMachineProviderInterfaceInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ProviderInterfaceInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineUndertaker', - request='GetMachineProviderInterfaceInfo', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchMachineRemovals(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineUndertaker', - request='WatchMachineRemovals', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class MachinerFacade(Type): - name = 'Machiner' - version = 1 - schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, - 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, - 'type': 'array'}, - 'type': 'array'}}, - 'required': ['servers'], - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'HostPort': {'additionalProperties': False, - 'properties': {'Address': {'$ref': '#/definitions/Address'}, - 'port': {'type': 'integer'}}, - 'required': ['Address', 'port'], - 'type': 'object'}, - 'JobsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'jobs': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['jobs'], - 'type': 'object'}, - 'JobsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/JobsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineAddresses': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, - 'type': 'array'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'addresses'], - 'type': 'object'}, - 'NetworkConfig': {'additionalProperties': False, - 'properties': {'address': {'type': 'string'}, - 'cidr': {'type': 'string'}, - 'config-type': {'type': 'string'}, - 'device-index': {'type': 'integer'}, - 'disabled': {'type': 'boolean'}, - 'dns-search-domains': {'items': {'type': 'string'}, - 'type': 'array'}, - 'dns-servers': {'items': {'type': 'string'}, - 'type': 'array'}, - 'gateway-address': {'type': 'string'}, - 'interface-name': {'type': 'string'}, - 'interface-type': {'type': 'string'}, - 'is-default-gateway': {'type': 'boolean'}, - 'mac-address': {'type': 'string'}, - 'mtu': {'type': 'integer'}, - 'no-auto-start': {'type': 'boolean'}, - 'parent-interface-name': {'type': 'string'}, - 'provider-address-id': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'provider-subnet-id': {'type': 'string'}, - 'provider-vlan-id': {'type': 'string'}, - 'routes': {'items': {'$ref': '#/definitions/NetworkRoute'}, - 'type': 'array'}, - 'vlan-tag': {'type': 'integer'}}, - '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'], - 'type': 'object'}, - 'NetworkRoute': {'additionalProperties': False, - 'properties': {'destination-cidr': {'type': 'string'}, - 'gateway-ip': {'type': 'string'}, - 'metric': {'type': 'integer'}}, - 'required': ['destination-cidr', - 'gateway-ip', - 'metric'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SetMachineNetworkConfig': {'additionalProperties': False, - 'properties': {'config': {'items': {'$ref': '#/definitions/NetworkConfig'}, - 'type': 'array'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'config'], - 'type': 'object'}, - 'SetMachinesAddresses': {'additionalProperties': False, - 'properties': {'machine-addresses': {'items': {'$ref': '#/definitions/MachineAddresses'}, - 'type': 'array'}}, - 'required': ['machine-addresses'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, - 'type': 'object'}, - 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, - 'type': 'object'}, - 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Jobs': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/JobsResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'SetMachineAddresses': {'properties': {'Params': {'$ref': '#/definitions/SetMachinesAddresses'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetObservedNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/SetMachineNetworkConfig'}}, - 'type': 'object'}, - 'SetProviderNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringsResult) - async def APIAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='APIAddresses', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(APIHostPortsResult) - async def APIHostPorts(self): - ''' - - Returns -> typing.Sequence[~HostPort] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='APIHostPorts', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnsureDead(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='EnsureDead', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(JobsResults) - async def Jobs(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~JobsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='Jobs', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='Life', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ModelUUID(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='ModelUUID', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetMachineAddresses(self, machine_addresses): - ''' - machine_addresses : typing.Sequence[~MachineAddresses] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='SetMachineAddresses', - version=1, - params=_params) - _params['machine-addresses'] = machine_addresses - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetObservedNetworkConfig(self, config, tag): - ''' - config : typing.Sequence[~NetworkConfig] - tag : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='SetObservedNetworkConfig', - version=1, - params=_params) - _params['config'] = config - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetProviderNetworkConfig(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='SetProviderNetworkConfig', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='SetStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='UpdateStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def Watch(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='Watch', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchAPIHostPorts(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Machiner', - request='WatchAPIHostPorts', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class MeterStatusFacade(Type): - name = 'MeterStatus' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MeterStatusResult': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'info': {'type': 'string'}}, - 'required': ['code', 'info'], - 'type': 'object'}, - 'MeterStatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MeterStatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'GetMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MeterStatusResults'}}, - 'type': 'object'}, - 'WatchMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(MeterStatusResults) - async def GetMeterStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MeterStatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MeterStatus', - request='GetMeterStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchMeterStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MeterStatus', - request='WatchMeterStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class MetricsManagerFacade(Type): - name = 'MetricsManager' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, - 'properties': {'AddJujuMachineMetrics': {'type': 'object'}, - 'CleanupOldMetrics': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SendMetrics': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(None) - async def AddJujuMachineMetrics(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MetricsManager', - request='AddJujuMachineMetrics', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def CleanupOldMetrics(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MetricsManager', - request='CleanupOldMetrics', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SendMetrics(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MetricsManager', - request='SendMetrics', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class MigrationFlagFacade(Type): - name = 'MigrationFlag' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'PhaseResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'phase': {'type': 'string'}}, - 'type': 'object'}, - 'PhaseResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/PhaseResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'Phase': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/PhaseResults'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(PhaseResults) - async def Phase(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~PhaseResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationFlag', - request='Phase', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def Watch(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationFlag', - request='Watch', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class MigrationMasterFacade(Type): - name = 'MigrationMaster' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MasterMigrationStatus': {'additionalProperties': False, - 'properties': {'migration-id': {'type': 'string'}, - 'phase': {'type': 'string'}, - 'phase-changed-time': {'format': 'date-time', - 'type': 'string'}, - 'spec': {'$ref': '#/definitions/MigrationSpec'}}, - 'required': ['spec', - 'migration-id', - 'phase', - 'phase-changed-time'], - 'type': 'object'}, - 'MigrationModelInfo': {'additionalProperties': False, - 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, - 'controller-agent-version': {'$ref': '#/definitions/Number'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['uuid', - 'name', - 'owner-tag', - 'agent-version', - 'controller-agent-version'], - 'type': 'object'}, - 'MigrationSpec': {'additionalProperties': False, - 'properties': {'model-tag': {'type': 'string'}, - 'target-info': {'$ref': '#/definitions/MigrationTargetInfo'}}, - 'required': ['model-tag', 'target-info'], - 'type': 'object'}, - 'MigrationTargetInfo': {'additionalProperties': False, - 'properties': {'addrs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'auth-tag': {'type': 'string'}, - 'ca-cert': {'type': 'string'}, - 'controller-tag': {'type': 'string'}, - 'macaroons': {'type': 'string'}, - 'password': {'type': 'string'}}, - 'required': ['controller-tag', - 'addrs', - 'ca-cert', - 'auth-tag'], - 'type': 'object'}, - 'MinionReports': {'additionalProperties': False, - 'properties': {'failed': {'items': {'type': 'string'}, - 'type': 'array'}, - 'migration-id': {'type': 'string'}, - 'phase': {'type': 'string'}, - 'success-count': {'type': 'integer'}, - 'unknown-count': {'type': 'integer'}, - 'unknown-sample': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['migration-id', - 'phase', - 'success-count', - 'unknown-count', - 'unknown-sample', - 'failed'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'SerializedModel': {'additionalProperties': False, - 'properties': {'bytes': {'items': {'type': 'integer'}, - 'type': 'array'}, - 'charms': {'items': {'type': 'string'}, - 'type': 'array'}, - 'resources': {'items': {'$ref': '#/definitions/SerializedModelResource'}, - 'type': 'array'}, - 'tools': {'items': {'$ref': '#/definitions/SerializedModelTools'}, - 'type': 'array'}}, - 'required': ['bytes', - 'charms', - 'tools', - 'resources'], - 'type': 'object'}, - 'SerializedModelResource': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'application-revision': {'$ref': '#/definitions/SerializedModelResourceRevision'}, - 'charmstore-revision': {'$ref': '#/definitions/SerializedModelResourceRevision'}, - 'name': {'type': 'string'}, - 'unit-revisions': {'patternProperties': {'.*': {'$ref': '#/definitions/SerializedModelResourceRevision'}}, - 'type': 'object'}}, - 'required': ['application', - 'name', - 'application-revision', - 'charmstore-revision', - 'unit-revisions'], - 'type': 'object'}, - 'SerializedModelResourceRevision': {'additionalProperties': False, - 'properties': {'description': {'type': 'string'}, - 'fingerprint': {'type': 'string'}, - 'origin': {'type': 'string'}, - 'path': {'type': 'string'}, - 'revision': {'type': 'integer'}, - 'size': {'type': 'integer'}, - 'timestamp': {'format': 'date-time', - 'type': 'string'}, - 'type': {'type': 'string'}, - 'username': {'type': 'string'}}, - 'required': ['revision', - 'type', - 'path', - 'description', - 'origin', - 'fingerprint', - 'size', - 'timestamp'], - 'type': 'object'}, - 'SerializedModelTools': {'additionalProperties': False, - 'properties': {'uri': {'type': 'string'}, - 'version': {'type': 'string'}}, - 'required': ['version', 'uri'], - 'type': 'object'}, - 'SetMigrationPhaseArgs': {'additionalProperties': False, - 'properties': {'phase': {'type': 'string'}}, - 'required': ['phase'], - 'type': 'object'}, - 'SetMigrationStatusMessageArgs': {'additionalProperties': False, - 'properties': {'message': {'type': 'string'}}, - 'required': ['message'], - 'type': 'object'}}, - 'properties': {'Export': {'properties': {'Result': {'$ref': '#/definitions/SerializedModel'}}, - 'type': 'object'}, - 'MigrationStatus': {'properties': {'Result': {'$ref': '#/definitions/MasterMigrationStatus'}}, - 'type': 'object'}, - 'MinionReports': {'properties': {'Result': {'$ref': '#/definitions/MinionReports'}}, - 'type': 'object'}, - 'ModelInfo': {'properties': {'Result': {'$ref': '#/definitions/MigrationModelInfo'}}, - 'type': 'object'}, - 'Prechecks': {'type': 'object'}, - 'Reap': {'type': 'object'}, - 'SetPhase': {'properties': {'Params': {'$ref': '#/definitions/SetMigrationPhaseArgs'}}, - 'type': 'object'}, - 'SetStatusMessage': {'properties': {'Params': {'$ref': '#/definitions/SetMigrationStatusMessageArgs'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchMinionReports': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(SerializedModel) - async def Export(self): - ''' - - Returns -> typing.Union[typing.Sequence[int], typing.Sequence[str], typing.Sequence[~SerializedModelTools]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMaster', - request='Export', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MasterMigrationStatus) - async def MigrationStatus(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('MigrationSpec')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMaster', - request='MigrationStatus', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MinionReports) - async def MinionReports(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], str, int] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMaster', - request='MinionReports', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MigrationModelInfo) - async def ModelInfo(self): - ''' - - Returns -> typing.Union[_ForwardRef('Number'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMaster', - request='ModelInfo', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Prechecks(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMaster', - request='Prechecks', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Reap(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMaster', - request='Reap', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetPhase(self, phase): - ''' - phase : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMaster', - request='SetPhase', - version=1, - params=_params) - _params['phase'] = phase - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetStatusMessage(self, message): - ''' - message : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMaster', - request='SetStatusMessage', - version=1, - params=_params) - _params['message'] = message - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def Watch(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMaster', - request='Watch', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchMinionReports(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMaster', - request='WatchMinionReports', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class MigrationMinionFacade(Type): - name = 'MigrationMinion' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MinionReport': {'additionalProperties': False, - 'properties': {'migration-id': {'type': 'string'}, - 'phase': {'type': 'string'}, - 'success': {'type': 'boolean'}}, - 'required': ['migration-id', - 'phase', - 'success'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}}, - 'properties': {'Report': {'properties': {'Params': {'$ref': '#/definitions/MinionReport'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(None) - async def Report(self, migration_id, phase, success): - ''' - migration_id : str - phase : str - success : bool - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMinion', - request='Report', - version=1, - params=_params) - _params['migration-id'] = migration_id - _params['phase'] = phase - _params['success'] = success - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def Watch(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationMinion', - request='Watch', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class MigrationStatusWatcherFacade(Type): - name = 'MigrationStatusWatcher' - version = 1 - schema = {'definitions': {'MigrationStatus': {'additionalProperties': False, - 'properties': {'attempt': {'type': 'integer'}, - 'migration-id': {'type': 'string'}, - 'phase': {'type': 'string'}, - 'source-api-addrs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'source-ca-cert': {'type': 'string'}, - 'target-api-addrs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'target-ca-cert': {'type': 'string'}}, - 'required': ['migration-id', - 'attempt', - 'phase', - 'source-api-addrs', - 'source-ca-cert', - 'target-api-addrs', - 'target-ca-cert'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/MigrationStatus'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(MigrationStatus) - async def Next(self): - ''' - - Returns -> typing.Union[int, str, typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationStatusWatcher', - request='Next', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationStatusWatcher', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class MigrationTargetFacade(Type): - name = 'MigrationTarget' - version = 1 - schema = {'definitions': {'AdoptResourcesArgs': {'additionalProperties': False, - 'properties': {'model-tag': {'type': 'string'}, - 'source-controller-version': {'$ref': '#/definitions/Number'}}, - 'required': ['model-tag', - 'source-controller-version'], - 'type': 'object'}, - 'BytesResult': {'additionalProperties': False, - 'properties': {'result': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['result'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MigrationModelInfo': {'additionalProperties': False, - 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, - 'controller-agent-version': {'$ref': '#/definitions/Number'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['uuid', - 'name', - 'owner-tag', - 'agent-version', - 'controller-agent-version'], - 'type': 'object'}, - 'ModelArgs': {'additionalProperties': False, - 'properties': {'model-tag': {'type': 'string'}}, - 'required': ['model-tag'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'SerializedModel': {'additionalProperties': False, - 'properties': {'bytes': {'items': {'type': 'integer'}, - 'type': 'array'}, - 'charms': {'items': {'type': 'string'}, - 'type': 'array'}, - 'resources': {'items': {'$ref': '#/definitions/SerializedModelResource'}, - 'type': 'array'}, - 'tools': {'items': {'$ref': '#/definitions/SerializedModelTools'}, - 'type': 'array'}}, - 'required': ['bytes', - 'charms', - 'tools', - 'resources'], - 'type': 'object'}, - 'SerializedModelResource': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'application-revision': {'$ref': '#/definitions/SerializedModelResourceRevision'}, - 'charmstore-revision': {'$ref': '#/definitions/SerializedModelResourceRevision'}, - 'name': {'type': 'string'}, - 'unit-revisions': {'patternProperties': {'.*': {'$ref': '#/definitions/SerializedModelResourceRevision'}}, - 'type': 'object'}}, - 'required': ['application', - 'name', - 'application-revision', - 'charmstore-revision', - 'unit-revisions'], - 'type': 'object'}, - 'SerializedModelResourceRevision': {'additionalProperties': False, - 'properties': {'description': {'type': 'string'}, - 'fingerprint': {'type': 'string'}, - 'origin': {'type': 'string'}, - 'path': {'type': 'string'}, - 'revision': {'type': 'integer'}, - 'size': {'type': 'integer'}, - 'timestamp': {'format': 'date-time', - 'type': 'string'}, - 'type': {'type': 'string'}, - 'username': {'type': 'string'}}, - 'required': ['revision', - 'type', - 'path', - 'description', - 'origin', - 'fingerprint', - 'size', - 'timestamp'], - 'type': 'object'}, - 'SerializedModelTools': {'additionalProperties': False, - 'properties': {'uri': {'type': 'string'}, - 'version': {'type': 'string'}}, - 'required': ['version', 'uri'], - 'type': 'object'}}, - 'properties': {'Abort': {'properties': {'Params': {'$ref': '#/definitions/ModelArgs'}}, - 'type': 'object'}, - 'Activate': {'properties': {'Params': {'$ref': '#/definitions/ModelArgs'}}, - 'type': 'object'}, - 'AdoptResources': {'properties': {'Params': {'$ref': '#/definitions/AdoptResourcesArgs'}}, - 'type': 'object'}, - 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, - 'type': 'object'}, - 'CheckMachines': {'properties': {'Params': {'$ref': '#/definitions/ModelArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Import': {'properties': {'Params': {'$ref': '#/definitions/SerializedModel'}}, - 'type': 'object'}, - 'LatestLogTime': {'properties': {'Params': {'$ref': '#/definitions/ModelArgs'}, - 'Result': {'format': 'date-time', - 'type': 'string'}}, - 'type': 'object'}, - 'Prechecks': {'properties': {'Params': {'$ref': '#/definitions/MigrationModelInfo'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(None) - async def Abort(self, model_tag): - ''' - model_tag : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationTarget', - request='Abort', - version=1, - params=_params) - _params['model-tag'] = model_tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Activate(self, model_tag): - ''' - model_tag : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationTarget', - request='Activate', - version=1, - params=_params) - _params['model-tag'] = model_tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def AdoptResources(self, model_tag, source_controller_version): - ''' - model_tag : str - source_controller_version : Number - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationTarget', - request='AdoptResources', - version=1, - params=_params) - _params['model-tag'] = model_tag - _params['source-controller-version'] = source_controller_version - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BytesResult) - async def CACert(self): - ''' - - Returns -> typing.Sequence[int] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationTarget', - request='CACert', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def CheckMachines(self, model_tag): - ''' - model_tag : str - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationTarget', - request='CheckMachines', - version=1, - params=_params) - _params['model-tag'] = model_tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Import(self, bytes_, charms, tools): - ''' - bytes_ : typing.Sequence[int] - charms : typing.Sequence[str] - tools : typing.Sequence[~SerializedModelTools] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationTarget', - request='Import', - version=1, - params=_params) - _params['bytes'] = bytes_ - _params['charms'] = charms - _params['tools'] = tools - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(str) - async def LatestLogTime(self, model_tag): - ''' - model_tag : str - Returns -> str - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationTarget', - request='LatestLogTime', - version=1, - params=_params) - _params['model-tag'] = model_tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Prechecks(self, agent_version, name, owner_tag, uuid): - ''' - agent_version : Number - name : str - owner_tag : str - uuid : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MigrationTarget', - request='Prechecks', - version=1, - params=_params) - _params['agent-version'] = agent_version - _params['name'] = name - _params['owner-tag'] = owner_tag - _params['uuid'] = uuid - reply = await self.rpc(msg) - return reply - - - -class ModelConfigFacade(Type): - name = 'ModelConfig' - version = 1 - schema = {'definitions': {'ConfigValue': {'additionalProperties': False, - 'properties': {'source': {'type': 'string'}, - 'value': {'additionalProperties': True, - 'type': 'object'}}, - 'required': ['value', 'source'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelConfigResults': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelSLA': {'additionalProperties': False, - 'properties': {'ModelSLAInfo': {'$ref': '#/definitions/ModelSLAInfo'}, - 'creds': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['ModelSLAInfo', 'creds'], - 'type': 'object'}, - 'ModelSLAInfo': {'additionalProperties': False, - 'properties': {'level': {'type': 'string'}, - 'owner': {'type': 'string'}}, - 'required': ['level', 'owner'], - 'type': 'object'}, - 'ModelSet': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelUnset': {'additionalProperties': False, - 'properties': {'keys': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['keys'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}}, - 'properties': {'ModelGet': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}}, - 'type': 'object'}, - 'ModelSet': {'properties': {'Params': {'$ref': '#/definitions/ModelSet'}}, - 'type': 'object'}, - 'ModelUnset': {'properties': {'Params': {'$ref': '#/definitions/ModelUnset'}}, - 'type': 'object'}, - 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'SetSLALevel': {'properties': {'Params': {'$ref': '#/definitions/ModelSLA'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ModelConfigResults) - async def ModelGet(self): - ''' - - Returns -> typing.Mapping[str, ~ConfigValue] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelConfig', - request='ModelGet', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ModelSet(self, config): - ''' - config : typing.Mapping[str, typing.Any] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelConfig', - request='ModelSet', - version=1, - params=_params) - _params['config'] = config - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ModelUnset(self, keys): - ''' - keys : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelConfig', - request='ModelUnset', - version=1, - params=_params) - _params['keys'] = keys - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def SLALevel(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelConfig', - request='SLALevel', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetSLALevel(self, creds, level): - ''' - creds : typing.Sequence[int] - level : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelConfig', - request='SetSLALevel', - version=1, - params=_params) - _params['creds'] = creds - _params['level'] = level - reply = await self.rpc(msg) - return reply - - - -class ModelUpgraderFacade(Type): - name = 'ModelUpgrader' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'IntResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'integer'}}, - 'required': ['result'], - 'type': 'object'}, - 'IntResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/IntResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SetModelEnvironVersion': {'additionalProperties': False, - 'properties': {'model-tag': {'type': 'string'}, - 'version': {'type': 'integer'}}, - 'required': ['model-tag', - 'version'], - 'type': 'object'}, - 'SetModelEnvironVersions': {'additionalProperties': False, - 'properties': {'models': {'items': {'$ref': '#/definitions/SetModelEnvironVersion'}, - 'type': 'array'}}, - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}}, - 'properties': {'ModelEnvironVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/IntResults'}}, - 'type': 'object'}, - 'ModelTargetEnvironVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/IntResults'}}, - 'type': 'object'}, - 'SetModelEnvironVersion': {'properties': {'Params': {'$ref': '#/definitions/SetModelEnvironVersions'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetModelStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchModelEnvironVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(IntResults) - async def ModelEnvironVersion(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~IntResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelUpgrader', - request='ModelEnvironVersion', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(IntResults) - async def ModelTargetEnvironVersion(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~IntResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelUpgrader', - request='ModelTargetEnvironVersion', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetModelEnvironVersion(self, models): - ''' - models : typing.Sequence[~SetModelEnvironVersion] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelUpgrader', - request='SetModelEnvironVersion', - version=1, - params=_params) - _params['models'] = models - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetModelStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelUpgrader', - request='SetModelStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchModelEnvironVersion(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelUpgrader', - request='WatchModelEnvironVersion', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class NotifyWatcherFacade(Type): - name = 'NotifyWatcher' - version = 1 - schema = {'properties': {'Next': {'type': 'object'}, 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(None) - async def Next(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='NotifyWatcher', - request='Next', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='NotifyWatcher', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class OfferStatusWatcherFacade(Type): - name = 'OfferStatusWatcher' - version = 1 - schema = {'definitions': {'EntityStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'info', 'since'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'OfferStatusChange': {'additionalProperties': False, - 'properties': {'offer-name': {'type': 'string'}, - 'status': {'$ref': '#/definitions/EntityStatus'}}, - 'required': ['offer-name', 'status'], - 'type': 'object'}, - 'OfferStatusWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/OfferStatusChange'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/OfferStatusWatchResult'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(OfferStatusWatchResult) - async def Next(self): - ''' - - Returns -> typing.Union[typing.Sequence[~OfferStatusChange], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='OfferStatusWatcher', - request='Next', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='OfferStatusWatcher', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class PayloadsFacade(Type): - name = 'Payloads' - version = 1 - schema = {'definitions': {'Payload': {'additionalProperties': False, - 'properties': {'class': {'type': 'string'}, - 'id': {'type': 'string'}, - 'labels': {'items': {'type': 'string'}, - 'type': 'array'}, - 'machine': {'type': 'string'}, - 'status': {'type': 'string'}, - 'type': {'type': 'string'}, - 'unit': {'type': 'string'}}, - 'required': ['class', - 'type', - 'id', - 'status', - 'labels', - 'unit', - 'machine'], - 'type': 'object'}, - 'PayloadListArgs': {'additionalProperties': False, - 'properties': {'patterns': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['patterns'], - 'type': 'object'}, - 'PayloadListResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/Payload'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'List': {'properties': {'Params': {'$ref': '#/definitions/PayloadListArgs'}, - 'Result': {'$ref': '#/definitions/PayloadListResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(PayloadListResults) - async def List(self, patterns): - ''' - patterns : typing.Sequence[str] - Returns -> typing.Sequence[~Payload] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Payloads', - request='List', - version=1, - params=_params) - _params['patterns'] = patterns - reply = await self.rpc(msg) - return reply - - - -class PayloadsHookContextFacade(Type): - name = 'PayloadsHookContext' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'LookUpPayloadArg': {'additionalProperties': False, - 'properties': {'id': {'type': 'string'}, - 'name': {'type': 'string'}}, - 'required': ['name', 'id'], - 'type': 'object'}, - 'LookUpPayloadArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/LookUpPayloadArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Payload': {'additionalProperties': False, - 'properties': {'class': {'type': 'string'}, - 'id': {'type': 'string'}, - 'labels': {'items': {'type': 'string'}, - 'type': 'array'}, - 'machine': {'type': 'string'}, - 'status': {'type': 'string'}, - 'type': {'type': 'string'}, - 'unit': {'type': 'string'}}, - 'required': ['class', - 'type', - 'id', - 'status', - 'labels', - 'unit', - 'machine'], - 'type': 'object'}, - 'PayloadResult': {'additionalProperties': False, - 'properties': {'Entity': {'$ref': '#/definitions/Entity'}, - 'error': {'$ref': '#/definitions/Error'}, - 'not-found': {'type': 'boolean'}, - 'payload': {'$ref': '#/definitions/Payload'}}, - 'required': ['Entity', - 'payload', - 'not-found'], - 'type': 'object'}, - 'PayloadResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/PayloadResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SetPayloadStatusArg': {'additionalProperties': False, - 'properties': {'Entity': {'$ref': '#/definitions/Entity'}, - 'status': {'type': 'string'}}, - 'required': ['Entity', 'status'], - 'type': 'object'}, - 'SetPayloadStatusArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/SetPayloadStatusArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'TrackPayloadArgs': {'additionalProperties': False, - 'properties': {'payloads': {'items': {'$ref': '#/definitions/Payload'}, - 'type': 'array'}}, - 'required': ['payloads'], - 'type': 'object'}}, - 'properties': {'List': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/PayloadResults'}}, - 'type': 'object'}, - 'LookUp': {'properties': {'Params': {'$ref': '#/definitions/LookUpPayloadArgs'}, - 'Result': {'$ref': '#/definitions/PayloadResults'}}, - 'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetPayloadStatusArgs'}, - 'Result': {'$ref': '#/definitions/PayloadResults'}}, - 'type': 'object'}, - 'Track': {'properties': {'Params': {'$ref': '#/definitions/TrackPayloadArgs'}, - 'Result': {'$ref': '#/definitions/PayloadResults'}}, - 'type': 'object'}, - 'Untrack': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/PayloadResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(PayloadResults) - async def List(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~PayloadResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='PayloadsHookContext', - request='List', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(PayloadResults) - async def LookUp(self, args): - ''' - args : typing.Sequence[~LookUpPayloadArg] - Returns -> typing.Sequence[~PayloadResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='PayloadsHookContext', - request='LookUp', - version=1, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(PayloadResults) - async def SetStatus(self, args): - ''' - args : typing.Sequence[~SetPayloadStatusArg] - Returns -> typing.Sequence[~PayloadResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='PayloadsHookContext', - request='SetStatus', - version=1, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(PayloadResults) - async def Track(self, payloads): - ''' - payloads : typing.Sequence[~Payload] - Returns -> typing.Sequence[~PayloadResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='PayloadsHookContext', - request='Track', - version=1, - params=_params) - _params['payloads'] = payloads - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(PayloadResults) - async def Untrack(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~PayloadResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='PayloadsHookContext', - request='Untrack', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class PingerFacade(Type): - name = 'Pinger' - version = 1 - schema = {'properties': {'Ping': {'type': 'object'}, 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(None) - async def Ping(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Pinger', - request='Ping', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Pinger', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class ProxyUpdaterFacade(Type): - name = 'ProxyUpdater' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ProxyConfig': {'additionalProperties': False, - 'properties': {'ftp': {'type': 'string'}, - 'http': {'type': 'string'}, - 'https': {'type': 'string'}, - 'no-proxy': {'type': 'string'}}, - 'required': ['http', - 'https', - 'ftp', - 'no-proxy'], - 'type': 'object'}, - 'ProxyConfigResult': {'additionalProperties': False, - 'properties': {'apt-proxy-settings': {'$ref': '#/definitions/ProxyConfig'}, - 'error': {'$ref': '#/definitions/Error'}, - 'proxy-settings': {'$ref': '#/definitions/ProxyConfig'}}, - 'required': ['proxy-settings', - 'apt-proxy-settings'], - 'type': 'object'}, - 'ProxyConfigResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ProxyConfigResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'ProxyConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ProxyConfigResults'}}, - 'type': 'object'}, - 'WatchForProxyConfigAndAPIHostPortChanges': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ProxyConfigResults) - async def ProxyConfig(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ProxyConfigResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ProxyUpdater', - request='ProxyConfig', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchForProxyConfigAndAPIHostPortChanges(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ProxyUpdater', - request='WatchForProxyConfigAndAPIHostPortChanges', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class RelationStatusWatcherFacade(Type): - name = 'RelationStatusWatcher' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'RelationLifeSuspendedStatusChange': {'additionalProperties': False, - 'properties': {'key': {'type': 'string'}, - 'life': {'type': 'string'}, - 'suspended': {'type': 'boolean'}, - 'suspended-reason': {'type': 'string'}}, - 'required': ['key', - 'life', - 'suspended', - 'suspended-reason'], - 'type': 'object'}, - 'RelationLifeSuspendedStatusWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/RelationLifeSuspendedStatusChange'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/RelationLifeSuspendedStatusWatchResult'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(RelationLifeSuspendedStatusWatchResult) - async def Next(self): - ''' - - Returns -> typing.Union[typing.Sequence[~RelationLifeSuspendedStatusChange], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RelationStatusWatcher', - request='Next', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RelationStatusWatcher', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class RelationUnitsWatcherFacade(Type): - name = 'RelationUnitsWatcher' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'RelationUnitsChange': {'additionalProperties': False, - 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}}, - 'type': 'object'}, - 'departed': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['changed'], - 'type': 'object'}, - 'RelationUnitsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'$ref': '#/definitions/RelationUnitsChange'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}, - 'UnitSettings': {'additionalProperties': False, - 'properties': {'version': {'type': 'integer'}}, - 'required': ['version'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/RelationUnitsWatchResult'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(RelationUnitsWatchResult) - async def Next(self): - ''' - - Returns -> typing.Union[_ForwardRef('RelationUnitsChange'), _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RelationUnitsWatcher', - request='Next', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RelationUnitsWatcher', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class RemoteApplicationWatcherFacade(Type): - name = 'RemoteApplicationWatcher' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'RemoteApplicationChange': {'additionalProperties': False, - 'properties': {'application-tag': {'type': 'string'}, - 'life': {'type': 'string'}, - 'relations': {'$ref': '#/definitions/RemoteRelationsChange'}}, - 'required': ['application-tag', - 'life', - 'relations'], - 'type': 'object'}, - 'RemoteApplicationWatchResult': {'additionalProperties': False, - 'properties': {'change': {'$ref': '#/definitions/RemoteApplicationChange'}, - 'error': {'$ref': '#/definitions/Error'}, - 'id': {'type': 'string'}}, - 'required': ['id'], - 'type': 'object'}, - 'RemoteEntityId': {'additionalProperties': False, - 'properties': {'model-uuid': {'type': 'string'}, - 'token': {'type': 'string'}}, - 'required': ['model-uuid', 'token'], - 'type': 'object'}, - 'RemoteRelationChange': {'additionalProperties': False, - 'properties': {'changed-units': {'patternProperties': {'.*': {'$ref': '#/definitions/RemoteRelationUnitChange'}}, - 'type': 'object'}, - 'departed-units': {'items': {'type': 'string'}, - 'type': 'array'}, - 'id': {'type': 'integer'}, - 'life': {'type': 'string'}}, - 'required': ['id', 'life'], - 'type': 'object'}, - 'RemoteRelationUnitChange': {'additionalProperties': False, - 'properties': {'settings': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'unit-id': {'$ref': '#/definitions/RemoteEntityId'}}, - 'required': ['unit-id'], - 'type': 'object'}, - 'RemoteRelationsChange': {'additionalProperties': False, - 'properties': {'changed': {'items': {'$ref': '#/definitions/RemoteRelationChange'}, - 'type': 'array'}, - 'initial': {'type': 'boolean'}, - 'removed': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['initial'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/RemoteApplicationWatchResult'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(RemoteApplicationWatchResult) - async def Next(self): - ''' - - Returns -> typing.Union[_ForwardRef('RemoteApplicationChange'), _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteApplicationWatcher', - request='Next', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteApplicationWatcher', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class RemoteRelationsFacade(Type): - name = 'RemoteRelations' - version = 1 - schema = {'definitions': {'ControllerAPIInfoResult': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cacert': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['addresses', - 'cacert'], - 'type': 'object'}, - 'ControllerAPIInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ControllerAPIInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ControllerConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityMacaroonArg': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'tag': {'type': 'string'}}, - 'required': ['macaroon', 'tag'], - 'type': 'object'}, - 'EntityMacaroonArgs': {'additionalProperties': False, - 'properties': {'Args': {'items': {'$ref': '#/definitions/EntityMacaroonArg'}, - 'type': 'array'}}, - 'required': ['Args'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GetTokenArg': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'GetTokenArgs': {'additionalProperties': False, - 'properties': {'Args': {'items': {'$ref': '#/definitions/GetTokenArg'}, - 'type': 'array'}}, - 'required': ['Args'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'RelationUnit': {'additionalProperties': False, - 'properties': {'relation': {'type': 'string'}, - 'unit': {'type': 'string'}}, - 'required': ['relation', 'unit'], - 'type': 'object'}, - 'RelationUnits': {'additionalProperties': False, - 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnit'}, - 'type': 'array'}}, - 'required': ['relation-units'], - 'type': 'object'}, - 'RelationUnitsChange': {'additionalProperties': False, - 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}}, - 'type': 'object'}, - 'departed': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['changed'], - 'type': 'object'}, - 'RelationUnitsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'$ref': '#/definitions/RelationUnitsChange'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}, - 'RelationUnitsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RelationUnitsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RemoteApplication': {'additionalProperties': False, - 'properties': {'is-consumer-proxy': {'type': 'boolean'}, - 'life': {'type': 'string'}, - 'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'model-uuid': {'type': 'string'}, - 'name': {'type': 'string'}, - 'offer-uuid': {'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['name', - 'offer-uuid', - 'model-uuid', - 'is-consumer-proxy'], - 'type': 'object'}, - 'RemoteApplicationResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/RemoteApplication'}}, - 'type': 'object'}, - 'RemoteApplicationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RemoteApplicationResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'RemoteEndpoint': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'role': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'limit'], - 'type': 'object'}, - 'RemoteEntityTokenArg': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}, - 'token': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'RemoteEntityTokenArgs': {'additionalProperties': False, - 'properties': {'Args': {'items': {'$ref': '#/definitions/RemoteEntityTokenArg'}, - 'type': 'array'}}, - 'required': ['Args'], - 'type': 'object'}, - 'RemoteRelation': {'additionalProperties': False, - 'properties': {'application-name': {'type': 'string'}, - 'endpoint': {'$ref': '#/definitions/RemoteEndpoint'}, - 'id': {'type': 'integer'}, - 'key': {'type': 'string'}, - 'life': {'type': 'string'}, - 'remote-application-name': {'type': 'string'}, - 'remote-endpoint-name': {'type': 'string'}, - 'source-model-uuid': {'type': 'string'}, - 'suspended': {'type': 'boolean'}}, - 'required': ['life', - 'suspended', - 'id', - 'key', - 'application-name', - 'endpoint', - 'remote-application-name', - 'remote-endpoint-name', - 'source-model-uuid'], - 'type': 'object'}, - 'RemoteRelationChangeEvent': {'additionalProperties': False, - 'properties': {'application-token': {'type': 'string'}, - 'changed-units': {'items': {'$ref': '#/definitions/RemoteRelationUnitChange'}, - 'type': 'array'}, - 'departed-units': {'items': {'type': 'integer'}, - 'type': 'array'}, - 'force-cleanup': {'type': 'boolean'}, - 'life': {'type': 'string'}, - 'macaroons': {'items': {'$ref': '#/definitions/Macaroon'}, - 'type': 'array'}, - 'relation-token': {'type': 'string'}, - 'suspended': {'type': 'boolean'}, - 'suspended-reason': {'type': 'string'}}, - 'required': ['relation-token', - 'application-token', - 'life'], - 'type': 'object'}, - 'RemoteRelationResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/RemoteRelation'}}, - 'type': 'object'}, - 'RemoteRelationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RemoteRelationResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RemoteRelationUnitChange': {'additionalProperties': False, - 'properties': {'settings': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'unit-id': {'type': 'integer'}}, - 'required': ['unit-id'], - 'type': 'object'}, - 'RemoteRelationsChanges': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/RemoteRelationChangeEvent'}, - 'type': 'array'}}, - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'SettingsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['settings'], - 'type': 'object'}, - 'SettingsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/SettingsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'TokenResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'token': {'type': 'string'}}, - 'type': 'object'}, - 'TokenResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/TokenResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'UnitSettings': {'additionalProperties': False, - 'properties': {'version': {'type': 'integer'}}, - 'required': ['version'], - 'type': 'object'}}, - 'properties': {'ConsumeRemoteRelationChanges': {'properties': {'Params': {'$ref': '#/definitions/RemoteRelationsChanges'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ControllerAPIInfoForModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ControllerAPIInfoResults'}}, - 'type': 'object'}, - 'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}}, - 'type': 'object'}, - 'ExportEntities': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/TokenResults'}}, - 'type': 'object'}, - 'GetTokens': {'properties': {'Params': {'$ref': '#/definitions/GetTokenArgs'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'ImportRemoteEntities': {'properties': {'Params': {'$ref': '#/definitions/RemoteEntityTokenArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RelationUnitSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/SettingsResults'}}, - 'type': 'object'}, - 'Relations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/RemoteRelationResults'}}, - 'type': 'object'}, - 'RemoteApplications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/RemoteApplicationResults'}}, - 'type': 'object'}, - 'SaveMacaroons': {'properties': {'Params': {'$ref': '#/definitions/EntityMacaroonArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetRemoteApplicationsStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchLocalRelationUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/RelationUnitsWatchResults'}}, - 'type': 'object'}, - 'WatchRemoteApplicationRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchRemoteApplications': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}, - 'WatchRemoteRelations': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def ConsumeRemoteRelationChanges(self, changes): - ''' - changes : typing.Sequence[~RemoteRelationChangeEvent] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='ConsumeRemoteRelationChanges', - version=1, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerAPIInfoResults) - async def ControllerAPIInfoForModels(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ControllerAPIInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='ControllerAPIInfoForModels', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerConfigResult) - async def ControllerConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='ControllerConfig', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(TokenResults) - async def ExportEntities(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~TokenResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='ExportEntities', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def GetTokens(self, args): - ''' - args : typing.Sequence[~GetTokenArg] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='GetTokens', - version=1, - params=_params) - _params['Args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ImportRemoteEntities(self, args): - ''' - args : typing.Sequence[~RemoteEntityTokenArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='ImportRemoteEntities', - version=1, - params=_params) - _params['Args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SettingsResults) - async def RelationUnitSettings(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~SettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='RelationUnitSettings', - version=1, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RemoteRelationResults) - async def Relations(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~RemoteRelationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='Relations', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RemoteApplicationResults) - async def RemoteApplications(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~RemoteApplicationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='RemoteApplications', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SaveMacaroons(self, args): - ''' - args : typing.Sequence[~EntityMacaroonArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='SaveMacaroons', - version=1, - params=_params) - _params['Args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetRemoteApplicationsStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='SetRemoteApplicationsStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationUnitsWatchResults) - async def WatchLocalRelationUnits(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~RelationUnitsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='WatchLocalRelationUnits', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchRemoteApplicationRelations(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='WatchRemoteApplicationRelations', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchRemoteApplications(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='WatchRemoteApplications', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchRemoteRelations(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelations', - request='WatchRemoteRelations', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class RemoteRelationsWatcherFacade(Type): - name = 'RemoteRelationsWatcher' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'RemoteEntityId': {'additionalProperties': False, - 'properties': {'model-uuid': {'type': 'string'}, - 'token': {'type': 'string'}}, - 'required': ['model-uuid', 'token'], - 'type': 'object'}, - 'RemoteRelationChange': {'additionalProperties': False, - 'properties': {'changed-units': {'patternProperties': {'.*': {'$ref': '#/definitions/RemoteRelationUnitChange'}}, - 'type': 'object'}, - 'departed-units': {'items': {'type': 'string'}, - 'type': 'array'}, - 'id': {'type': 'integer'}, - 'life': {'type': 'string'}}, - 'required': ['id', 'life'], - 'type': 'object'}, - 'RemoteRelationUnitChange': {'additionalProperties': False, - 'properties': {'settings': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'unit-id': {'$ref': '#/definitions/RemoteEntityId'}}, - 'required': ['unit-id'], - 'type': 'object'}, - 'RemoteRelationsChange': {'additionalProperties': False, - 'properties': {'changed': {'items': {'$ref': '#/definitions/RemoteRelationChange'}, - 'type': 'array'}, - 'initial': {'type': 'boolean'}, - 'removed': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['initial'], - 'type': 'object'}, - 'RemoteRelationsWatchResult': {'additionalProperties': False, - 'properties': {'RemoteRelationsWatcherId': {'type': 'string'}, - 'change': {'$ref': '#/definitions/RemoteRelationsChange'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['RemoteRelationsWatcherId'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/RemoteRelationsWatchResult'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(RemoteRelationsWatchResult) - async def Next(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('RemoteRelationsChange'), _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelationsWatcher', - request='Next', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RemoteRelationsWatcher', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class ResourcesFacade(Type): - name = 'Resources' - version = 1 - schema = {'definitions': {'AddCharmWithAuthorization': {'additionalProperties': False, - 'properties': {'channel': {'type': 'string'}, - 'force': {'type': 'boolean'}, - 'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'url': {'type': 'string'}}, - 'required': ['url', - 'channel', - 'macaroon', - 'force'], - 'type': 'object'}, - 'AddPendingResourcesArgs': {'additionalProperties': False, - 'properties': {'AddCharmWithAuthorization': {'$ref': '#/definitions/AddCharmWithAuthorization'}, - 'Entity': {'$ref': '#/definitions/Entity'}, - 'resources': {'items': {'$ref': '#/definitions/CharmResource'}, - 'type': 'array'}}, - 'required': ['Entity', - 'AddCharmWithAuthorization', - 'resources'], - 'type': 'object'}, - 'AddPendingResourcesResult': {'additionalProperties': False, - 'properties': {'ErrorResult': {'$ref': '#/definitions/ErrorResult'}, - 'pending-ids': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['ErrorResult', - 'pending-ids'], - 'type': 'object'}, - 'CharmResource': {'additionalProperties': False, - 'properties': {'description': {'type': 'string'}, - 'fingerprint': {'items': {'type': 'integer'}, - 'type': 'array'}, - 'name': {'type': 'string'}, - 'origin': {'type': 'string'}, - 'path': {'type': 'string'}, - 'revision': {'type': 'integer'}, - 'size': {'type': 'integer'}, - 'type': {'type': 'string'}}, - 'required': ['name', - 'type', - 'path', - 'origin', - 'revision', - 'fingerprint', - 'size'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ListResourcesArgs': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Resource': {'additionalProperties': False, - 'properties': {'CharmResource': {'$ref': '#/definitions/CharmResource'}, - 'application': {'type': 'string'}, - 'id': {'type': 'string'}, - 'pending-id': {'type': 'string'}, - 'timestamp': {'format': 'date-time', - 'type': 'string'}, - 'username': {'type': 'string'}}, - 'required': ['CharmResource', - 'id', - 'pending-id', - 'application', - 'username', - 'timestamp'], - 'type': 'object'}, - 'ResourcesResult': {'additionalProperties': False, - 'properties': {'ErrorResult': {'$ref': '#/definitions/ErrorResult'}, - 'charm-store-resources': {'items': {'$ref': '#/definitions/CharmResource'}, - 'type': 'array'}, - 'resources': {'items': {'$ref': '#/definitions/Resource'}, - 'type': 'array'}, - 'unit-resources': {'items': {'$ref': '#/definitions/UnitResources'}, - 'type': 'array'}}, - 'required': ['ErrorResult', - 'resources', - 'charm-store-resources', - 'unit-resources'], - 'type': 'object'}, - 'ResourcesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ResourcesResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UnitResources': {'additionalProperties': False, - 'properties': {'Entity': {'$ref': '#/definitions/Entity'}, - 'download-progress': {'patternProperties': {'.*': {'type': 'integer'}}, - 'type': 'object'}, - 'resources': {'items': {'$ref': '#/definitions/Resource'}, - 'type': 'array'}}, - 'required': ['Entity', - 'resources', - 'download-progress'], - 'type': 'object'}}, - 'properties': {'AddPendingResources': {'properties': {'Params': {'$ref': '#/definitions/AddPendingResourcesArgs'}, - 'Result': {'$ref': '#/definitions/AddPendingResourcesResult'}}, - 'type': 'object'}, - 'ListResources': {'properties': {'Params': {'$ref': '#/definitions/ListResourcesArgs'}, - 'Result': {'$ref': '#/definitions/ResourcesResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddPendingResourcesResult) - async def AddPendingResources(self, addcharmwithauthorization, entity, resources): - ''' - addcharmwithauthorization : AddCharmWithAuthorization - entity : Entity - resources : typing.Sequence[~CharmResource] - Returns -> typing.Union[_ForwardRef('ErrorResult'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Resources', - request='AddPendingResources', - version=1, - params=_params) - _params['AddCharmWithAuthorization'] = addcharmwithauthorization - _params['Entity'] = entity - _params['Resources'] = resources - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ResourcesResults) - async def ListResources(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ResourcesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Resources', - request='ListResources', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class ResourcesHookContextFacade(Type): - name = 'ResourcesHookContext' - version = 1 - schema = {'definitions': {'CharmResource': {'additionalProperties': False, - 'properties': {'description': {'type': 'string'}, - 'fingerprint': {'items': {'type': 'integer'}, - 'type': 'array'}, - 'name': {'type': 'string'}, - 'origin': {'type': 'string'}, - 'path': {'type': 'string'}, - 'revision': {'type': 'integer'}, - 'size': {'type': 'integer'}, - 'type': {'type': 'string'}}, - 'required': ['name', - 'type', - 'path', - 'origin', - 'revision', - 'fingerprint', - 'size'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ListUnitResourcesArgs': {'additionalProperties': False, - 'properties': {'resource-names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['resource-names'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Resource': {'additionalProperties': False, - 'properties': {'CharmResource': {'$ref': '#/definitions/CharmResource'}, - 'application': {'type': 'string'}, - 'id': {'type': 'string'}, - 'pending-id': {'type': 'string'}, - 'timestamp': {'format': 'date-time', - 'type': 'string'}, - 'username': {'type': 'string'}}, - 'required': ['CharmResource', - 'id', - 'pending-id', - 'application', - 'username', - 'timestamp'], - 'type': 'object'}, - 'UnitResourceResult': {'additionalProperties': False, - 'properties': {'ErrorResult': {'$ref': '#/definitions/ErrorResult'}, - 'resource': {'$ref': '#/definitions/Resource'}}, - 'required': ['ErrorResult', 'resource'], - 'type': 'object'}, - 'UnitResourcesResult': {'additionalProperties': False, - 'properties': {'ErrorResult': {'$ref': '#/definitions/ErrorResult'}, - 'resources': {'items': {'$ref': '#/definitions/UnitResourceResult'}, - 'type': 'array'}}, - 'required': ['ErrorResult', - 'resources'], - 'type': 'object'}}, - 'properties': {'GetResourceInfo': {'properties': {'Params': {'$ref': '#/definitions/ListUnitResourcesArgs'}, - 'Result': {'$ref': '#/definitions/UnitResourcesResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(UnitResourcesResult) - async def GetResourceInfo(self, resource_names): - ''' - resource_names : typing.Sequence[str] - Returns -> typing.Union[_ForwardRef('ErrorResult'), typing.Sequence[~UnitResourceResult]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ResourcesHookContext', - request='GetResourceInfo', - version=1, - params=_params) - _params['resource-names'] = resource_names - reply = await self.rpc(msg) - return reply - - - -class RetryStrategyFacade(Type): - name = 'RetryStrategy' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RetryStrategy': {'additionalProperties': False, - 'properties': {'jitter-retry-time': {'type': 'boolean'}, - 'max-retry-time': {'type': 'integer'}, - 'min-retry-time': {'type': 'integer'}, - 'retry-time-factor': {'type': 'integer'}, - 'should-retry': {'type': 'boolean'}}, - 'required': ['should-retry', - 'min-retry-time', - 'max-retry-time', - 'jitter-retry-time', - 'retry-time-factor'], - 'type': 'object'}, - 'RetryStrategyResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/RetryStrategy'}}, - 'type': 'object'}, - 'RetryStrategyResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RetryStrategyResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'RetryStrategy': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/RetryStrategyResults'}}, - 'type': 'object'}, - 'WatchRetryStrategy': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(RetryStrategyResults) - async def RetryStrategy(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~RetryStrategyResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RetryStrategy', - request='RetryStrategy', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchRetryStrategy(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='RetryStrategy', - request='WatchRetryStrategy', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class SSHClientFacade(Type): - name = 'SSHClient' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'SSHAddressResult': {'additionalProperties': False, - 'properties': {'address': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'SSHAddressResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/SSHAddressResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SSHProxyResult': {'additionalProperties': False, - 'properties': {'use-proxy': {'type': 'boolean'}}, - 'required': ['use-proxy'], - 'type': 'object'}, - 'SSHPublicKeysResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'public-keys': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'SSHPublicKeysResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/SSHPublicKeysResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/SSHAddressResults'}}, - 'type': 'object'}, - 'Proxy': {'properties': {'Result': {'$ref': '#/definitions/SSHProxyResult'}}, - 'type': 'object'}, - 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/SSHAddressResults'}}, - 'type': 'object'}, - 'PublicKeys': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/SSHPublicKeysResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(SSHAddressResults) - async def PrivateAddress(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~SSHAddressResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='SSHClient', - request='PrivateAddress', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SSHProxyResult) - async def Proxy(self): - ''' - - Returns -> bool - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='SSHClient', - request='Proxy', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SSHAddressResults) - async def PublicAddress(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~SSHAddressResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='SSHClient', - request='PublicAddress', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SSHPublicKeysResults) - async def PublicKeys(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~SSHPublicKeysResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='SSHClient', - request='PublicKeys', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class SingularFacade(Type): - name = 'Singular' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'SingularClaim': {'additionalProperties': False, - 'properties': {'controller-tag': {'type': 'string'}, - 'duration': {'type': 'integer'}, - 'model-tag': {'type': 'string'}}, - 'required': ['model-tag', - 'controller-tag', - 'duration'], - 'type': 'object'}, - 'SingularClaims': {'additionalProperties': False, - 'properties': {'claims': {'items': {'$ref': '#/definitions/SingularClaim'}, - 'type': 'array'}}, - 'required': ['claims'], - 'type': 'object'}}, - 'properties': {'Claim': {'properties': {'Params': {'$ref': '#/definitions/SingularClaims'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Wait': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def Claim(self, claims): - ''' - claims : typing.Sequence[~SingularClaim] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Singular', - request='Claim', - version=1, - params=_params) - _params['claims'] = claims - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Wait(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Singular', - request='Wait', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class StringsWatcherFacade(Type): - name = 'StringsWatcher' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringsWatchResult) - async def Next(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StringsWatcher', - request='Next', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StringsWatcher', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class UndertakerFacade(Type): - name = 'Undertaker' - version = 1 - schema = {'definitions': {'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'UndertakerModelInfo': {'additionalProperties': False, - 'properties': {'global-name': {'type': 'string'}, - 'is-system': {'type': 'boolean'}, - 'life': {'type': 'string'}, - 'name': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['uuid', - 'name', - 'global-name', - 'is-system', - 'life'], - 'type': 'object'}, - 'UndertakerModelInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/UndertakerModelInfo'}}, - 'required': ['result'], - 'type': 'object'}}, - 'properties': {'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'ModelInfo': {'properties': {'Result': {'$ref': '#/definitions/UndertakerModelInfoResult'}}, - 'type': 'object'}, - 'ProcessDyingModel': {'type': 'object'}, - 'RemoveModel': {'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchModelResources': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Undertaker', - request='ModelConfig', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UndertakerModelInfoResult) - async def ModelInfo(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('UndertakerModelInfo')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Undertaker', - request='ModelInfo', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ProcessDyingModel(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Undertaker', - request='ProcessDyingModel', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def RemoveModel(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Undertaker', - request='RemoveModel', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Undertaker', - request='SetStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Undertaker', - request='UpdateStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchModelResources(self): - ''' - - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Undertaker', - request='WatchModelResources', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class UnitAssignerFacade(Type): - name = 'UnitAssigner' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}}, - 'properties': {'AssignUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetAgentStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchUnitAssignments': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def AssignUnits(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UnitAssigner', - request='AssignUnits', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetAgentStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UnitAssigner', - request='SetAgentStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchUnitAssignments(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UnitAssigner', - request='WatchUnitAssignments', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class UpgradeSeriesFacade(Type): - name = 'UpgradeSeries' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesResult': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/EntitiesResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'PinApplicationResult': {'additionalProperties': False, - 'properties': {'application-name': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['application-name'], - 'type': 'object'}, - 'PinApplicationsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/PinApplicationResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'PinnedLeadershipResult': {'additionalProperties': False, - 'properties': {'result': {'patternProperties': {'.*': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UpdateSeriesArg': {'additionalProperties': False, - 'properties': {'force': {'type': 'boolean'}, - 'series': {'type': 'string'}, - 'tag': {'$ref': '#/definitions/Entity'}}, - 'required': ['tag', 'force', 'series'], - 'type': 'object'}, - 'UpdateSeriesArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/UpdateSeriesArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'UpgradeSeriesStartUnitCompletionParam': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'message': {'type': 'string'}}, - 'required': ['entities', - 'message'], - 'type': 'object'}, - 'UpgradeSeriesStatusParam': {'additionalProperties': False, - 'properties': {'entity': {'$ref': '#/definitions/Entity'}, - 'message': {'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['entity', - 'status', - 'message'], - 'type': 'object'}, - 'UpgradeSeriesStatusParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/UpgradeSeriesStatusParam'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'UpgradeSeriesStatusResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'status': {'type': 'string'}}, - 'type': 'object'}, - 'UpgradeSeriesStatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/UpgradeSeriesStatusResult'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'FinishUpgradeSeries': {'properties': {'Params': {'$ref': '#/definitions/UpdateSeriesArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'MachineStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/UpgradeSeriesStatusResults'}}, - 'type': 'object'}, - 'PinMachineApplications': {'properties': {'Result': {'$ref': '#/definitions/PinApplicationsResults'}}, - 'type': 'object'}, - 'PinnedLeadership': {'properties': {'Result': {'$ref': '#/definitions/PinnedLeadershipResult'}}, - 'type': 'object'}, - 'SetMachineStatus': {'properties': {'Params': {'$ref': '#/definitions/UpgradeSeriesStatusParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetUpgradeSeriesUnitStatus': {'properties': {'Params': {'$ref': '#/definitions/UpgradeSeriesStatusParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'StartUnitCompletion': {'properties': {'Params': {'$ref': '#/definitions/UpgradeSeriesStartUnitCompletionParam'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'TargetSeries': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'UnitsCompleted': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/EntitiesResults'}}, - 'type': 'object'}, - 'UnitsPrepared': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/EntitiesResults'}}, - 'type': 'object'}, - 'UnpinMachineApplications': {'properties': {'Result': {'$ref': '#/definitions/PinApplicationsResults'}}, - 'type': 'object'}, - 'UpgradeSeriesUnitStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/UpgradeSeriesStatusResults'}}, - 'type': 'object'}, - 'WatchUpgradeSeriesNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def FinishUpgradeSeries(self, args): - ''' - args : typing.Sequence[~UpdateSeriesArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='FinishUpgradeSeries', - version=1, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UpgradeSeriesStatusResults) - async def MachineStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~UpgradeSeriesStatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='MachineStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(PinApplicationsResults) - async def PinMachineApplications(self): - ''' - - Returns -> typing.Sequence[~PinApplicationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='PinMachineApplications', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(PinnedLeadershipResult) - async def PinnedLeadership(self): - ''' - - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='PinnedLeadership', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetMachineStatus(self, params): - ''' - params : typing.Sequence[~UpgradeSeriesStatusParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='SetMachineStatus', - version=1, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetUpgradeSeriesUnitStatus(self, params): - ''' - params : typing.Sequence[~UpgradeSeriesStatusParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='SetUpgradeSeriesUnitStatus', - version=1, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def StartUnitCompletion(self, entities, message): - ''' - entities : typing.Sequence[~Entity] - message : str - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='StartUnitCompletion', - version=1, - params=_params) - _params['entities'] = entities - _params['message'] = message - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def TargetSeries(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='TargetSeries', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(EntitiesResults) - async def UnitsCompleted(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~EntitiesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='UnitsCompleted', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(EntitiesResults) - async def UnitsPrepared(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~EntitiesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='UnitsPrepared', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(PinApplicationsResults) - async def UnpinMachineApplications(self): - ''' - - Returns -> typing.Sequence[~PinApplicationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='UnpinMachineApplications', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UpgradeSeriesStatusResults) - async def UpgradeSeriesUnitStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~UpgradeSeriesStatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='UpgradeSeriesUnitStatus', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchUpgradeSeriesNotifications(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UpgradeSeries', - request='WatchUpgradeSeriesNotifications', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class UpgraderFacade(Type): - name = 'Upgrader' - version = 1 - schema = {'definitions': {'Binary': {'additionalProperties': False, - 'properties': {'Arch': {'type': 'string'}, - 'Number': {'$ref': '#/definitions/Number'}, - 'Series': {'type': 'string'}}, - 'required': ['Number', 'Series', 'Arch'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesVersion': {'additionalProperties': False, - 'properties': {'agent-tools': {'items': {'$ref': '#/definitions/EntityVersion'}, - 'type': 'array'}}, - 'required': ['agent-tools'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityVersion': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}, - 'tools': {'$ref': '#/definitions/Version'}}, - 'required': ['tag', 'tools'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'Tools': {'additionalProperties': False, - 'properties': {'sha256': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'url': {'type': 'string'}, - 'version': {'$ref': '#/definitions/Binary'}}, - 'required': ['version', 'url', 'size'], - 'type': 'object'}, - 'ToolsResult': {'additionalProperties': False, - 'properties': {'disable-ssl-hostname-verification': {'type': 'boolean'}, - 'error': {'$ref': '#/definitions/Error'}, - 'tools': {'items': {'$ref': '#/definitions/Tools'}, - 'type': 'array'}}, - 'required': ['tools', - 'disable-ssl-hostname-verification'], - 'type': 'object'}, - 'ToolsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ToolsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Version': {'additionalProperties': False, - 'properties': {'version': {'$ref': '#/definitions/Binary'}}, - 'required': ['version'], - 'type': 'object'}, - 'VersionResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'version': {'$ref': '#/definitions/Number'}}, - 'type': 'object'}, - 'VersionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VersionResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'DesiredVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/VersionResults'}}, - 'type': 'object'}, - 'SetTools': {'properties': {'Params': {'$ref': '#/definitions/EntitiesVersion'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Tools': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ToolsResults'}}, - 'type': 'object'}, - 'WatchAPIVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(VersionResults) - async def DesiredVersion(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~VersionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Upgrader', - request='DesiredVersion', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetTools(self, agent_tools): - ''' - agent_tools : typing.Sequence[~EntityVersion] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Upgrader', - request='SetTools', - version=1, - params=_params) - _params['agent-tools'] = agent_tools - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ToolsResults) - async def Tools(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ToolsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Upgrader', - request='Tools', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchAPIVersion(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Upgrader', - request='WatchAPIVersion', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class UserManagerFacade(Type): - name = 'UserManager' - version = 1 - schema = {'definitions': {'AddUser': {'additionalProperties': False, - 'properties': {'display-name': {'type': 'string'}, - 'password': {'type': 'string'}, - 'username': {'type': 'string'}}, - 'required': ['username', 'display-name'], - 'type': 'object'}, - 'AddUserResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'secret-key': {'items': {'type': 'integer'}, - 'type': 'array'}, - 'tag': {'type': 'string'}}, - 'type': 'object'}, - 'AddUserResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/AddUserResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'AddUsers': {'additionalProperties': False, - 'properties': {'users': {'items': {'$ref': '#/definitions/AddUser'}, - 'type': 'array'}}, - 'required': ['users'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityPassword': {'additionalProperties': False, - 'properties': {'password': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'password'], - 'type': 'object'}, - 'EntityPasswords': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'UserInfo': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'created-by': {'type': 'string'}, - 'date-created': {'format': 'date-time', - 'type': 'string'}, - 'disabled': {'type': 'boolean'}, - 'display-name': {'type': 'string'}, - 'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'username': {'type': 'string'}}, - 'required': ['username', - 'display-name', - 'access', - 'created-by', - 'date-created', - 'disabled'], - 'type': 'object'}, - 'UserInfoRequest': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'include-disabled': {'type': 'boolean'}}, - 'required': ['entities', - 'include-disabled'], - 'type': 'object'}, - 'UserInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/UserInfo'}}, - 'type': 'object'}, - 'UserInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/UserInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'AddUser': {'properties': {'Params': {'$ref': '#/definitions/AddUsers'}, - 'Result': {'$ref': '#/definitions/AddUserResults'}}, - 'type': 'object'}, - 'DisableUser': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'EnableUser': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RemoveUser': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetPassword': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UserInfo': {'properties': {'Params': {'$ref': '#/definitions/UserInfoRequest'}, - 'Result': {'$ref': '#/definitions/UserInfoResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddUserResults) - async def AddUser(self, users): - ''' - users : typing.Sequence[~AddUser] - Returns -> typing.Sequence[~AddUserResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='AddUser', - version=1, - params=_params) - _params['users'] = users - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DisableUser(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='DisableUser', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnableUser(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='EnableUser', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RemoveUser(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='RemoveUser', - version=1, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetPassword(self, changes): - ''' - changes : typing.Sequence[~EntityPassword] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='SetPassword', - version=1, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UserInfoResults) - async def UserInfo(self, entities, include_disabled): - ''' - entities : typing.Sequence[~Entity] - include_disabled : bool - Returns -> typing.Sequence[~UserInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='UserInfo', - version=1, - params=_params) - _params['entities'] = entities - _params['include-disabled'] = include_disabled - reply = await self.rpc(msg) - return reply - - - -class VolumeAttachmentPlansWatcherFacade(Type): - name = 'VolumeAttachmentPlansWatcher' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineStorageId': {'additionalProperties': False, - 'properties': {'attachment-tag': {'type': 'string'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['machine-tag', - 'attachment-tag'], - 'type': 'object'}, - 'MachineStorageIdsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/MachineStorageId'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResult'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(MachineStorageIdsWatchResult) - async def Next(self): - ''' - - Returns -> typing.Union[typing.Sequence[~MachineStorageId], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='VolumeAttachmentPlansWatcher', - request='Next', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='VolumeAttachmentPlansWatcher', - request='Stop', - version=1, - params=_params) - - reply = await self.rpc(msg) - return reply diff --git a/modules/libjuju/juju/client/_client2.py b/modules/libjuju/juju/client/_client2.py deleted file mode 100644 index 416faab..0000000 --- a/modules/libjuju/juju/client/_client2.py +++ /dev/null @@ -1,7535 +0,0 @@ -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. - -from juju.client._definitions import * -from juju.client.facade import ReturnMapping, Type - - -class ActionFacade(Type): - name = 'Action' - version = 2 - schema = {'definitions': {'Action': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'parameters': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'receiver': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'receiver', 'name'], - 'type': 'object'}, - 'ActionResult': {'additionalProperties': False, - 'properties': {'action': {'$ref': '#/definitions/Action'}, - 'completed': {'format': 'date-time', - 'type': 'string'}, - 'enqueued': {'format': 'date-time', - 'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'message': {'type': 'string'}, - 'output': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'started': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'type': 'object'}, - 'ActionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ActionSpec': {'additionalProperties': False, - 'properties': {'description': {'type': 'string'}, - 'params': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['description', 'params'], - 'type': 'object'}, - 'Actions': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/Action'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ActionsByName': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionResult'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}}, - 'type': 'object'}, - 'ActionsByNames': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionsByName'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ActionsByReceiver': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionResult'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'receiver': {'type': 'string'}}, - 'type': 'object'}, - 'ActionsByReceivers': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionsByReceiver'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ApplicationCharmActionsResult': {'additionalProperties': False, - 'properties': {'actions': {'patternProperties': {'.*': {'$ref': '#/definitions/ActionSpec'}}, - 'type': 'object'}, - 'application-tag': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ApplicationsCharmActionsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationCharmActionsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'FindActionsByNames': {'additionalProperties': False, - 'properties': {'names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FindTags': {'additionalProperties': False, - 'properties': {'prefixes': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['prefixes'], - 'type': 'object'}, - 'FindTagsResults': {'additionalProperties': False, - 'properties': {'matches': {'patternProperties': {'.*': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'required': ['matches'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'RunParams': {'additionalProperties': False, - 'properties': {'applications': {'items': {'type': 'string'}, - 'type': 'array'}, - 'commands': {'type': 'string'}, - 'machines': {'items': {'type': 'string'}, - 'type': 'array'}, - 'timeout': {'type': 'integer'}, - 'units': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['commands', 'timeout'], - 'type': 'object'}}, - 'properties': {'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'ApplicationsCharmsActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ApplicationsCharmActionsResults'}}, - 'type': 'object'}, - 'Cancel': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'Enqueue': {'properties': {'Params': {'$ref': '#/definitions/Actions'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'FindActionTagsByPrefix': {'properties': {'Params': {'$ref': '#/definitions/FindTags'}, - 'Result': {'$ref': '#/definitions/FindTagsResults'}}, - 'type': 'object'}, - 'FindActionsByNames': {'properties': {'Params': {'$ref': '#/definitions/FindActionsByNames'}, - 'Result': {'$ref': '#/definitions/ActionsByNames'}}, - 'type': 'object'}, - 'ListAll': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, - 'type': 'object'}, - 'ListCompleted': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, - 'type': 'object'}, - 'ListPending': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, - 'type': 'object'}, - 'ListRunning': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, - 'type': 'object'}, - 'Run': {'properties': {'Params': {'$ref': '#/definitions/RunParams'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'RunOnAllMachines': {'properties': {'Params': {'$ref': '#/definitions/RunParams'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ActionResults) - async def Actions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='Actions', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationsCharmActionsResults) - async def ApplicationsCharmsActions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ApplicationCharmActionsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='ApplicationsCharmsActions', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionResults) - async def Cancel(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='Cancel', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionResults) - async def Enqueue(self, actions): - ''' - actions : typing.Sequence[~Action] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='Enqueue', - version=2, - params=_params) - _params['actions'] = actions - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FindTagsResults) - async def FindActionTagsByPrefix(self, prefixes): - ''' - prefixes : typing.Sequence[str] - Returns -> typing.Sequence[~Entity] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='FindActionTagsByPrefix', - version=2, - params=_params) - _params['prefixes'] = prefixes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionsByNames) - async def FindActionsByNames(self, names): - ''' - names : typing.Sequence[str] - Returns -> typing.Sequence[~ActionsByName] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='FindActionsByNames', - version=2, - params=_params) - _params['names'] = names - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionsByReceivers) - async def ListAll(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionsByReceiver] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='ListAll', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionsByReceivers) - async def ListCompleted(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionsByReceiver] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='ListCompleted', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionsByReceivers) - async def ListPending(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionsByReceiver] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='ListPending', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionsByReceivers) - async def ListRunning(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionsByReceiver] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='ListRunning', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionResults) - async def Run(self, applications, commands, machines, timeout, units): - ''' - applications : typing.Sequence[str] - commands : str - machines : typing.Sequence[str] - timeout : int - units : typing.Sequence[str] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='Run', - version=2, - params=_params) - _params['applications'] = applications - _params['commands'] = commands - _params['machines'] = machines - _params['timeout'] = timeout - _params['units'] = units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionResults) - async def RunOnAllMachines(self, applications, commands, machines, timeout, units): - ''' - applications : typing.Sequence[str] - commands : str - machines : typing.Sequence[str] - timeout : int - units : typing.Sequence[str] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='RunOnAllMachines', - version=2, - params=_params) - _params['applications'] = applications - _params['commands'] = commands - _params['machines'] = machines - _params['timeout'] = timeout - _params['units'] = units - reply = await self.rpc(msg) - return reply - - - -class AgentFacade(Type): - name = 'Agent' - version = 2 - schema = {'definitions': {'AgentGetEntitiesResult': {'additionalProperties': False, - 'properties': {'container-type': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'jobs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'life': {'type': 'string'}}, - 'required': ['life', - 'jobs', - 'container-type'], - 'type': 'object'}, - 'AgentGetEntitiesResults': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/AgentGetEntitiesResult'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'CloudCredential': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'auth-type': {'type': 'string'}, - 'redacted': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['auth-type'], - 'type': 'object'}, - 'CloudSpec': {'additionalProperties': False, - 'properties': {'cacertificates': {'items': {'type': 'string'}, - 'type': 'array'}, - 'credential': {'$ref': '#/definitions/CloudCredential'}, - 'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'name': {'type': 'string'}, - 'region': {'type': 'string'}, - 'storage-endpoint': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type', 'name'], - 'type': 'object'}, - 'CloudSpecResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/CloudSpec'}}, - 'type': 'object'}, - 'CloudSpecResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CloudSpecResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ControllerAPIInfoResult': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cacert': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['addresses', - 'cacert'], - 'type': 'object'}, - 'ControllerAPIInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ControllerAPIInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ControllerConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityPassword': {'additionalProperties': False, - 'properties': {'password': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'password'], - 'type': 'object'}, - 'EntityPasswords': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'IsMasterResult': {'additionalProperties': False, - 'properties': {'master': {'type': 'boolean'}}, - 'required': ['master'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelTag': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StateServingInfo': {'additionalProperties': False, - 'properties': {'api-port': {'type': 'integer'}, - 'ca-private-key': {'type': 'string'}, - 'cert': {'type': 'string'}, - 'controller-api-port': {'type': 'integer'}, - 'private-key': {'type': 'string'}, - 'shared-secret': {'type': 'string'}, - 'state-port': {'type': 'integer'}, - 'system-identity': {'type': 'string'}}, - 'required': ['api-port', - 'state-port', - 'cert', - 'private-key', - 'ca-private-key', - 'shared-secret', - 'system-identity'], - 'type': 'object'}}, - 'properties': {'ClearReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'CloudSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/CloudSpecResults'}}, - 'type': 'object'}, - 'ControllerAPIInfoForModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ControllerAPIInfoResults'}}, - 'type': 'object'}, - 'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}}, - 'type': 'object'}, - 'GetCloudSpec': {'properties': {'Params': {'$ref': '#/definitions/ModelTag'}, - 'Result': {'$ref': '#/definitions/CloudSpecResult'}}, - 'type': 'object'}, - 'GetEntities': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/AgentGetEntitiesResults'}}, - 'type': 'object'}, - 'IsMaster': {'properties': {'Result': {'$ref': '#/definitions/IsMasterResult'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'SetPasswords': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'StateServingInfo': {'properties': {'Result': {'$ref': '#/definitions/StateServingInfo'}}, - 'type': 'object'}, - 'WatchCredentials': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def ClearReboot(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='ClearReboot', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudSpecResults) - async def CloudSpec(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~CloudSpecResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='CloudSpec', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerAPIInfoResults) - async def ControllerAPIInfoForModels(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ControllerAPIInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='ControllerAPIInfoForModels', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerConfigResult) - async def ControllerConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='ControllerConfig', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudSpecResult) - async def GetCloudSpec(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='GetCloudSpec', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AgentGetEntitiesResults) - async def GetEntities(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~AgentGetEntitiesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='GetEntities', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(IsMasterResult) - async def IsMaster(self): - ''' - - Returns -> bool - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='IsMaster', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='ModelConfig', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetPasswords(self, changes): - ''' - changes : typing.Sequence[~EntityPassword] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='SetPasswords', - version=2, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StateServingInfo) - async def StateServingInfo(self): - ''' - - Returns -> typing.Union[int, str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='StateServingInfo', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchCredentials(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='WatchCredentials', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Agent', - request='WatchForModelConfigChanges', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class AllModelWatcherFacade(Type): - name = 'AllModelWatcher' - version = 2 - schema = {'definitions': {'AllWatcherNextResults': {'additionalProperties': False, - 'properties': {'deltas': {'items': {'$ref': '#/definitions/Delta'}, - 'type': 'array'}}, - 'required': ['deltas'], - 'type': 'object'}, - 'Delta': {'additionalProperties': False, - 'properties': {'entity': {'additionalProperties': True, - 'type': 'object'}, - 'removed': {'type': 'boolean'}}, - 'required': ['removed', 'entity'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherNextResults'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AllWatcherNextResults) - async def Next(self): - ''' - - Returns -> typing.Sequence[~Delta] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='AllModelWatcher', - request='Next', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='AllModelWatcher', - request='Stop', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class AnnotationsFacade(Type): - name = 'Annotations' - version = 2 - schema = {'definitions': {'AnnotationsGetResult': {'additionalProperties': False, - 'properties': {'annotations': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'entity': {'type': 'string'}, - 'error': {'$ref': '#/definitions/ErrorResult'}}, - 'required': ['entity', 'annotations'], - 'type': 'object'}, - 'AnnotationsGetResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/AnnotationsGetResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'AnnotationsSet': {'additionalProperties': False, - 'properties': {'annotations': {'items': {'$ref': '#/definitions/EntityAnnotations'}, - 'type': 'array'}}, - 'required': ['annotations'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityAnnotations': {'additionalProperties': False, - 'properties': {'annotations': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'entity': {'type': 'string'}}, - 'required': ['entity', 'annotations'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, - 'properties': {'Get': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/AnnotationsGetResults'}}, - 'type': 'object'}, - 'Set': {'properties': {'Params': {'$ref': '#/definitions/AnnotationsSet'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AnnotationsGetResults) - async def Get(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~AnnotationsGetResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Annotations', - request='Get', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Set(self, annotations): - ''' - annotations : typing.Sequence[~EntityAnnotations] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Annotations', - request='Set', - version=2, - params=_params) - _params['annotations'] = annotations - reply = await self.rpc(msg) - return reply - - - -class ApplicationFacade(Type): - name = 'Application' - version = 2 - schema = {'definitions': {'AddApplicationUnits': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'num-units': {'type': 'integer'}, - 'placement': {'items': {'$ref': '#/definitions/Placement'}, - 'type': 'array'}}, - 'required': ['application', - 'num-units', - 'placement'], - 'type': 'object'}, - 'AddApplicationUnitsResults': {'additionalProperties': False, - 'properties': {'units': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['units'], - 'type': 'object'}, - 'AddRelation': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'AddRelationResults': {'additionalProperties': False, - 'properties': {'endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, - 'type': 'object'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'ApplicationCharmRelations': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationCharmRelationsResults': {'additionalProperties': False, - 'properties': {'charm-relations': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['charm-relations'], - 'type': 'object'}, - 'ApplicationDeploy': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'channel': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'config-yaml': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'num-units': {'type': 'integer'}, - 'placement': {'items': {'$ref': '#/definitions/Placement'}, - 'type': 'array'}, - 'resources': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'series': {'type': 'string'}, - 'storage': {'patternProperties': {'.*': {'$ref': '#/definitions/Constraints'}}, - 'type': 'object'}}, - 'required': ['application', - 'series', - 'charm-url', - 'channel', - 'num-units', - 'config-yaml', - 'constraints'], - 'type': 'object'}, - 'ApplicationDestroy': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationExpose': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationGet': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationGetResults': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'charm': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'series': {'type': 'string'}}, - 'required': ['application', - 'charm', - 'config', - 'constraints', - 'series'], - 'type': 'object'}, - 'ApplicationMetricCredential': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'metrics-credentials': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['application', - 'metrics-credentials'], - 'type': 'object'}, - 'ApplicationMetricCredentials': {'additionalProperties': False, - 'properties': {'creds': {'items': {'$ref': '#/definitions/ApplicationMetricCredential'}, - 'type': 'array'}}, - 'required': ['creds'], - 'type': 'object'}, - 'ApplicationSet': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'options': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['application', 'options'], - 'type': 'object'}, - 'ApplicationSetCharm': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'channel': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'config-settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'config-settings-yaml': {'type': 'string'}, - 'force-series': {'type': 'boolean'}, - 'force-units': {'type': 'boolean'}, - 'resource-ids': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'storage-constraints': {'patternProperties': {'.*': {'$ref': '#/definitions/StorageConstraints'}}, - 'type': 'object'}}, - 'required': ['application', - 'charm-url', - 'channel', - 'force-units', - 'force-series'], - 'type': 'object'}, - 'ApplicationUnexpose': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationUnset': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'options': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['application', 'options'], - 'type': 'object'}, - 'ApplicationUpdate': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'force-charm-url': {'type': 'boolean'}, - 'force-series': {'type': 'boolean'}, - 'min-units': {'type': 'integer'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'settings-yaml': {'type': 'string'}}, - 'required': ['application', - 'charm-url', - 'force-charm-url', - 'force-series', - 'settings-yaml'], - 'type': 'object'}, - 'ApplicationsDeploy': {'additionalProperties': False, - 'properties': {'applications': {'items': {'$ref': '#/definitions/ApplicationDeploy'}, - 'type': 'array'}}, - 'required': ['applications'], - 'type': 'object'}, - 'CharmRelation': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'optional': {'type': 'boolean'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'optional', - 'limit', - 'scope'], - 'type': 'object'}, - 'Constraints': {'additionalProperties': False, - 'properties': {'Count': {'type': 'integer'}, - 'Pool': {'type': 'string'}, - 'Size': {'type': 'integer'}}, - 'required': ['Pool', 'Size', 'Count'], - 'type': 'object'}, - 'DestroyApplicationUnits': {'additionalProperties': False, - 'properties': {'unit-names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['unit-names'], - 'type': 'object'}, - 'DestroyRelation': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GetApplicationConstraints': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'GetConstraintsResults': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Placement': {'additionalProperties': False, - 'properties': {'directive': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['scope', 'directive'], - 'type': 'object'}, - 'SetConstraints': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['application', 'constraints'], - 'type': 'object'}, - 'StorageConstraints': {'additionalProperties': False, - 'properties': {'count': {'type': 'integer'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}}, - 'type': 'object'}}, - 'properties': {'AddRelation': {'properties': {'Params': {'$ref': '#/definitions/AddRelation'}, - 'Result': {'$ref': '#/definitions/AddRelationResults'}}, - 'type': 'object'}, - 'AddUnits': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationUnits'}, - 'Result': {'$ref': '#/definitions/AddApplicationUnitsResults'}}, - 'type': 'object'}, - 'CharmRelations': {'properties': {'Params': {'$ref': '#/definitions/ApplicationCharmRelations'}, - 'Result': {'$ref': '#/definitions/ApplicationCharmRelationsResults'}}, - 'type': 'object'}, - 'Deploy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationsDeploy'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationDestroy'}}, - 'type': 'object'}, - 'DestroyRelation': {'properties': {'Params': {'$ref': '#/definitions/DestroyRelation'}}, - 'type': 'object'}, - 'DestroyUnits': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationUnits'}}, - 'type': 'object'}, - 'Expose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationExpose'}}, - 'type': 'object'}, - 'Get': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, - 'Result': {'$ref': '#/definitions/ApplicationGetResults'}}, - 'type': 'object'}, - 'GetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, - 'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'GetConstraints': {'properties': {'Params': {'$ref': '#/definitions/GetApplicationConstraints'}, - 'Result': {'$ref': '#/definitions/GetConstraintsResults'}}, - 'type': 'object'}, - 'Set': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSet'}}, - 'type': 'object'}, - 'SetCharm': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSetCharm'}}, - 'type': 'object'}, - 'SetConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, - 'type': 'object'}, - 'SetMetricCredentials': {'properties': {'Params': {'$ref': '#/definitions/ApplicationMetricCredentials'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Unexpose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnexpose'}}, - 'type': 'object'}, - 'Unset': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnset'}}, - 'type': 'object'}, - 'Update': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUpdate'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddRelationResults) - async def AddRelation(self, endpoints): - ''' - endpoints : typing.Sequence[str] - Returns -> typing.Mapping[str, ~CharmRelation] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='AddRelation', - version=2, - params=_params) - _params['endpoints'] = endpoints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddApplicationUnitsResults) - async def AddUnits(self, application, num_units, placement): - ''' - application : str - num_units : int - placement : typing.Sequence[~Placement] - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='AddUnits', - version=2, - params=_params) - _params['application'] = application - _params['num-units'] = num_units - _params['placement'] = placement - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationCharmRelationsResults) - async def CharmRelations(self, application): - ''' - application : str - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='CharmRelations', - version=2, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Deploy(self, applications): - ''' - applications : typing.Sequence[~ApplicationDeploy] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Deploy', - version=2, - params=_params) - _params['applications'] = applications - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Destroy(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Destroy', - version=2, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyRelation(self, endpoints): - ''' - endpoints : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyRelation', - version=2, - params=_params) - _params['endpoints'] = endpoints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyUnits(self, unit_names): - ''' - unit_names : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyUnits', - version=2, - params=_params) - _params['unit-names'] = unit_names - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Expose(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Expose', - version=2, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationGetResults) - async def Get(self, application): - ''' - application : str - Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Get', - version=2, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def GetCharmURL(self, application): - ''' - application : str - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetCharmURL', - version=2, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(GetConstraintsResults) - async def GetConstraints(self, application): - ''' - application : str - Returns -> Value - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetConstraints', - version=2, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Set(self, application, options): - ''' - application : str - options : typing.Mapping[str, str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Set', - version=2, - params=_params) - _params['application'] = application - _params['options'] = options - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetCharm(self, application, channel, charm_url, config_settings, config_settings_yaml, force_series, force_units, resource_ids, storage_constraints): - ''' - application : str - channel : str - charm_url : str - config_settings : typing.Mapping[str, str] - config_settings_yaml : str - force_series : bool - force_units : bool - resource_ids : typing.Mapping[str, str] - storage_constraints : typing.Mapping[str, ~StorageConstraints] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetCharm', - version=2, - params=_params) - _params['application'] = application - _params['channel'] = channel - _params['charm-url'] = charm_url - _params['config-settings'] = config_settings - _params['config-settings-yaml'] = config_settings_yaml - _params['force-series'] = force_series - _params['force-units'] = force_units - _params['resource-ids'] = resource_ids - _params['storage-constraints'] = storage_constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetConstraints(self, application, constraints): - ''' - application : str - constraints : Value - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetConstraints', - version=2, - params=_params) - _params['application'] = application - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetMetricCredentials(self, creds): - ''' - creds : typing.Sequence[~ApplicationMetricCredential] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetMetricCredentials', - version=2, - params=_params) - _params['creds'] = creds - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Unexpose(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Unexpose', - version=2, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Unset(self, application, options): - ''' - application : str - options : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Unset', - version=2, - params=_params) - _params['application'] = application - _params['options'] = options - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Update(self, application, charm_url, constraints, force_charm_url, force_series, min_units, settings, settings_yaml): - ''' - application : str - charm_url : str - constraints : Value - force_charm_url : bool - force_series : bool - min_units : int - settings : typing.Mapping[str, str] - settings_yaml : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Update', - version=2, - params=_params) - _params['application'] = application - _params['charm-url'] = charm_url - _params['constraints'] = constraints - _params['force-charm-url'] = force_charm_url - _params['force-series'] = force_series - _params['min-units'] = min_units - _params['settings'] = settings - _params['settings-yaml'] = settings_yaml - reply = await self.rpc(msg) - return reply - - - -class ApplicationOffersFacade(Type): - name = 'ApplicationOffers' - version = 2 - schema = {'definitions': {'AddApplicationOffer': {'additionalProperties': False, - 'properties': {'application-description': {'type': 'string'}, - 'application-name': {'type': 'string'}, - 'endpoints': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'model-tag': {'type': 'string'}, - 'offer-name': {'type': 'string'}}, - 'required': ['model-tag', - 'offer-name', - 'application-name', - 'application-description', - 'endpoints'], - 'type': 'object'}, - 'AddApplicationOffers': {'additionalProperties': False, - 'properties': {'Offers': {'items': {'$ref': '#/definitions/AddApplicationOffer'}, - 'type': 'array'}}, - 'required': ['Offers'], - 'type': 'object'}, - 'ApplicationOfferAdminDetails': {'additionalProperties': False, - 'properties': {'ApplicationOfferDetails': {'$ref': '#/definitions/ApplicationOfferDetails'}, - 'application-name': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'connections': {'items': {'$ref': '#/definitions/OfferConnection'}, - 'type': 'array'}}, - 'required': ['ApplicationOfferDetails', - 'application-name', - 'charm-url'], - 'type': 'object'}, - 'ApplicationOfferDetails': {'additionalProperties': False, - 'properties': {'application-description': {'type': 'string'}, - 'bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'}, - 'type': 'array'}, - 'offer-name': {'type': 'string'}, - 'offer-url': {'type': 'string'}, - 'offer-uuid': {'type': 'string'}, - 'source-model-tag': {'type': 'string'}, - 'spaces': {'items': {'$ref': '#/definitions/RemoteSpace'}, - 'type': 'array'}, - 'users': {'items': {'$ref': '#/definitions/OfferUserDetails'}, - 'type': 'array'}}, - 'required': ['source-model-tag', - 'offer-uuid', - 'offer-url', - 'offer-name', - 'application-description'], - 'type': 'object'}, - 'ApplicationOfferResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ApplicationOfferAdminDetails'}}, - 'type': 'object'}, - 'ApplicationOffersResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationOfferResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ConsumeOfferDetails': {'additionalProperties': False, - 'properties': {'external-controller': {'$ref': '#/definitions/ExternalControllerInfo'}, - 'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'offer': {'$ref': '#/definitions/ApplicationOfferDetails'}}, - 'type': 'object'}, - 'ConsumeOfferDetailsResult': {'additionalProperties': False, - 'properties': {'ConsumeOfferDetails': {'$ref': '#/definitions/ConsumeOfferDetails'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['ConsumeOfferDetails'], - 'type': 'object'}, - 'ConsumeOfferDetailsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ConsumeOfferDetailsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyApplicationOffers': {'additionalProperties': False, - 'properties': {'force': {'type': 'boolean'}, - 'offer-urls': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['offer-urls'], - 'type': 'object'}, - 'EndpointFilterAttributes': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'name': {'type': 'string'}, - 'role': {'type': 'string'}}, - 'required': ['role', - 'interface', - 'name'], - 'type': 'object'}, - 'EntityStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'info', 'since'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ExternalControllerInfo': {'additionalProperties': False, - 'properties': {'addrs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'ca-cert': {'type': 'string'}, - 'controller-alias': {'type': 'string'}, - 'controller-tag': {'type': 'string'}}, - 'required': ['controller-tag', - 'controller-alias', - 'addrs', - 'ca-cert'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModifyOfferAccess': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'action': {'type': 'string'}, - 'offer-url': {'type': 'string'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag', - 'action', - 'access', - 'offer-url'], - 'type': 'object'}, - 'ModifyOfferAccessRequest': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyOfferAccess'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'OfferConnection': {'additionalProperties': False, - 'properties': {'endpoint': {'type': 'string'}, - 'ingress-subnets': {'items': {'type': 'string'}, - 'type': 'array'}, - 'relation-id': {'type': 'integer'}, - 'source-model-tag': {'type': 'string'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'username': {'type': 'string'}}, - 'required': ['source-model-tag', - 'relation-id', - 'username', - 'endpoint', - 'status', - 'ingress-subnets'], - 'type': 'object'}, - 'OfferFilter': {'additionalProperties': False, - 'properties': {'allowed-users': {'items': {'type': 'string'}, - 'type': 'array'}, - 'application-description': {'type': 'string'}, - 'application-name': {'type': 'string'}, - 'application-user': {'type': 'string'}, - 'connected-users': {'items': {'type': 'string'}, - 'type': 'array'}, - 'endpoints': {'items': {'$ref': '#/definitions/EndpointFilterAttributes'}, - 'type': 'array'}, - 'model-name': {'type': 'string'}, - 'offer-name': {'type': 'string'}, - 'owner-name': {'type': 'string'}}, - 'required': ['owner-name', - 'model-name', - 'offer-name', - 'application-name', - 'application-description', - 'application-user', - 'endpoints', - 'connected-users', - 'allowed-users'], - 'type': 'object'}, - 'OfferFilters': {'additionalProperties': False, - 'properties': {'Filters': {'items': {'$ref': '#/definitions/OfferFilter'}, - 'type': 'array'}}, - 'required': ['Filters'], - 'type': 'object'}, - 'OfferURLs': {'additionalProperties': False, - 'properties': {'offer-urls': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'OfferUserDetails': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'display-name': {'type': 'string'}, - 'user': {'type': 'string'}}, - 'required': ['user', - 'display-name', - 'access'], - 'type': 'object'}, - 'QueryApplicationOffersResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationOfferAdminDetails'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RemoteApplicationInfo': {'additionalProperties': False, - 'properties': {'description': {'type': 'string'}, - 'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'}, - 'type': 'array'}, - 'icon-url-path': {'type': 'string'}, - 'model-tag': {'type': 'string'}, - 'name': {'type': 'string'}, - 'offer-url': {'type': 'string'}, - 'source-model-label': {'type': 'string'}}, - 'required': ['model-tag', - 'name', - 'description', - 'offer-url', - 'endpoints', - 'icon-url-path'], - 'type': 'object'}, - 'RemoteApplicationInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/RemoteApplicationInfo'}}, - 'type': 'object'}, - 'RemoteApplicationInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RemoteApplicationInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RemoteEndpoint': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'role': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'limit'], - 'type': 'object'}, - 'RemoteSpace': {'additionalProperties': False, - 'properties': {'cloud-type': {'type': 'string'}, - 'name': {'type': 'string'}, - 'provider-attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'provider-id': {'type': 'string'}, - 'subnets': {'items': {'$ref': '#/definitions/Subnet'}, - 'type': 'array'}}, - 'required': ['cloud-type', - 'name', - 'provider-id', - 'provider-attributes', - 'subnets'], - 'type': 'object'}, - 'Subnet': {'additionalProperties': False, - 'properties': {'cidr': {'type': 'string'}, - 'life': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-network-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'space-tag': {'type': 'string'}, - 'status': {'type': 'string'}, - 'vlan-tag': {'type': 'integer'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['cidr', - 'vlan-tag', - 'life', - 'space-tag', - 'zones'], - 'type': 'object'}}, - 'properties': {'ApplicationOffers': {'properties': {'Params': {'$ref': '#/definitions/OfferURLs'}, - 'Result': {'$ref': '#/definitions/ApplicationOffersResults'}}, - 'type': 'object'}, - 'DestroyOffers': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationOffers'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'FindApplicationOffers': {'properties': {'Params': {'$ref': '#/definitions/OfferFilters'}, - 'Result': {'$ref': '#/definitions/QueryApplicationOffersResults'}}, - 'type': 'object'}, - 'GetConsumeDetails': {'properties': {'Params': {'$ref': '#/definitions/OfferURLs'}, - 'Result': {'$ref': '#/definitions/ConsumeOfferDetailsResults'}}, - 'type': 'object'}, - 'ListApplicationOffers': {'properties': {'Params': {'$ref': '#/definitions/OfferFilters'}, - 'Result': {'$ref': '#/definitions/QueryApplicationOffersResults'}}, - 'type': 'object'}, - 'ModifyOfferAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyOfferAccessRequest'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Offer': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationOffers'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RemoteApplicationInfo': {'properties': {'Params': {'$ref': '#/definitions/OfferURLs'}, - 'Result': {'$ref': '#/definitions/RemoteApplicationInfoResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ApplicationOffersResults) - async def ApplicationOffers(self, offer_urls): - ''' - offer_urls : typing.Sequence[str] - Returns -> typing.Sequence[~ApplicationOfferResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationOffers', - request='ApplicationOffers', - version=2, - params=_params) - _params['offer-urls'] = offer_urls - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DestroyOffers(self, force, offer_urls): - ''' - force : bool - offer_urls : typing.Sequence[str] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationOffers', - request='DestroyOffers', - version=2, - params=_params) - _params['force'] = force - _params['offer-urls'] = offer_urls - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(QueryApplicationOffersResults) - async def FindApplicationOffers(self, filters): - ''' - filters : typing.Sequence[~OfferFilter] - Returns -> typing.Sequence[~ApplicationOfferAdminDetails] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationOffers', - request='FindApplicationOffers', - version=2, - params=_params) - _params['Filters'] = filters - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ConsumeOfferDetailsResults) - async def GetConsumeDetails(self, offer_urls): - ''' - offer_urls : typing.Sequence[str] - Returns -> typing.Sequence[~ConsumeOfferDetailsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationOffers', - request='GetConsumeDetails', - version=2, - params=_params) - _params['offer-urls'] = offer_urls - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(QueryApplicationOffersResults) - async def ListApplicationOffers(self, filters): - ''' - filters : typing.Sequence[~OfferFilter] - Returns -> typing.Sequence[~ApplicationOfferAdminDetails] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationOffers', - request='ListApplicationOffers', - version=2, - params=_params) - _params['Filters'] = filters - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ModifyOfferAccess(self, changes): - ''' - changes : typing.Sequence[~ModifyOfferAccess] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationOffers', - request='ModifyOfferAccess', - version=2, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Offer(self, offers): - ''' - offers : typing.Sequence[~AddApplicationOffer] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationOffers', - request='Offer', - version=2, - params=_params) - _params['Offers'] = offers - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RemoteApplicationInfoResults) - async def RemoteApplicationInfo(self, offer_urls): - ''' - offer_urls : typing.Sequence[str] - Returns -> typing.Sequence[~RemoteApplicationInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ApplicationOffers', - request='RemoteApplicationInfo', - version=2, - params=_params) - _params['offer-urls'] = offer_urls - reply = await self.rpc(msg) - return reply - - - -class BackupsFacade(Type): - name = 'Backups' - version = 2 - schema = {'definitions': {'BackupsCreateArgs': {'additionalProperties': False, - 'properties': {'keep-copy': {'type': 'boolean'}, - 'no-download': {'type': 'boolean'}, - 'notes': {'type': 'string'}}, - 'required': ['notes', - 'keep-copy', - 'no-download'], - 'type': 'object'}, - 'BackupsInfoArgs': {'additionalProperties': False, - 'properties': {'id': {'type': 'string'}}, - 'required': ['id'], - 'type': 'object'}, - 'BackupsListArgs': {'additionalProperties': False, - 'type': 'object'}, - 'BackupsListResult': {'additionalProperties': False, - 'properties': {'list': {'items': {'$ref': '#/definitions/BackupsMetadataResult'}, - 'type': 'array'}}, - 'required': ['list'], - 'type': 'object'}, - 'BackupsMetadataResult': {'additionalProperties': False, - 'properties': {'ca-cert': {'type': 'string'}, - 'ca-private-key': {'type': 'string'}, - 'checksum': {'type': 'string'}, - 'checksum-format': {'type': 'string'}, - 'filename': {'type': 'string'}, - 'finished': {'format': 'date-time', - 'type': 'string'}, - 'hostname': {'type': 'string'}, - 'id': {'type': 'string'}, - 'machine': {'type': 'string'}, - 'model': {'type': 'string'}, - 'notes': {'type': 'string'}, - 'series': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'started': {'format': 'date-time', - 'type': 'string'}, - 'stored': {'format': 'date-time', - 'type': 'string'}, - 'version': {'$ref': '#/definitions/Number'}}, - 'required': ['id', - 'checksum', - 'checksum-format', - 'size', - 'stored', - 'started', - 'finished', - 'notes', - 'model', - 'machine', - 'hostname', - 'version', - 'series', - 'ca-cert', - 'ca-private-key', - 'filename'], - 'type': 'object'}, - 'BackupsRemoveArgs': {'additionalProperties': False, - 'properties': {'ids': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['ids'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'RestoreArgs': {'additionalProperties': False, - 'properties': {'backup-id': {'type': 'string'}}, - 'required': ['backup-id'], - 'type': 'object'}}, - 'properties': {'Create': {'properties': {'Params': {'$ref': '#/definitions/BackupsCreateArgs'}, - 'Result': {'$ref': '#/definitions/BackupsMetadataResult'}}, - 'type': 'object'}, - 'FinishRestore': {'type': 'object'}, - 'Info': {'properties': {'Params': {'$ref': '#/definitions/BackupsInfoArgs'}, - 'Result': {'$ref': '#/definitions/BackupsMetadataResult'}}, - 'type': 'object'}, - 'List': {'properties': {'Params': {'$ref': '#/definitions/BackupsListArgs'}, - 'Result': {'$ref': '#/definitions/BackupsListResult'}}, - 'type': 'object'}, - 'PrepareRestore': {'type': 'object'}, - 'Remove': {'properties': {'Params': {'$ref': '#/definitions/BackupsRemoveArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Restore': {'properties': {'Params': {'$ref': '#/definitions/RestoreArgs'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(BackupsMetadataResult) - async def Create(self, notes): - ''' - notes : str - Returns -> typing.Union[str, int, _ForwardRef('Number')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='Create', - version=2, - params=_params) - _params['notes'] = notes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def FinishRestore(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='FinishRestore', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BackupsMetadataResult) - async def Info(self, id_): - ''' - id_ : str - Returns -> typing.Union[str, int, _ForwardRef('Number')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='Info', - version=2, - params=_params) - _params['id'] = id_ - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BackupsListResult) - async def List(self): - ''' - - Returns -> typing.Sequence[~BackupsMetadataResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='List', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def PrepareRestore(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='PrepareRestore', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Remove(self, id_): - ''' - id_ : str - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='Remove', - version=2, - params=_params) - _params['id'] = id_ - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Restore(self, backup_id): - ''' - backup_id : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Backups', - request='Restore', - version=2, - params=_params) - _params['backup-id'] = backup_id - reply = await self.rpc(msg) - return reply - - - -class BlockFacade(Type): - name = 'Block' - version = 2 - schema = {'definitions': {'Block': {'additionalProperties': False, - 'properties': {'id': {'type': 'string'}, - 'message': {'type': 'string'}, - 'tag': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['id', 'tag', 'type'], - 'type': 'object'}, - 'BlockResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/Block'}}, - 'required': ['result'], - 'type': 'object'}, - 'BlockResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/BlockResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'BlockSwitchParams': {'additionalProperties': False, - 'properties': {'message': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, - 'properties': {'List': {'properties': {'Result': {'$ref': '#/definitions/BlockResults'}}, - 'type': 'object'}, - 'SwitchBlockOff': {'properties': {'Params': {'$ref': '#/definitions/BlockSwitchParams'}, - 'Result': {'$ref': '#/definitions/ErrorResult'}}, - 'type': 'object'}, - 'SwitchBlockOn': {'properties': {'Params': {'$ref': '#/definitions/BlockSwitchParams'}, - 'Result': {'$ref': '#/definitions/ErrorResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(BlockResults) - async def List(self): - ''' - - Returns -> typing.Sequence[~BlockResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Block', - request='List', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResult) - async def SwitchBlockOff(self, message, type_): - ''' - message : str - type_ : str - Returns -> Error - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Block', - request='SwitchBlockOff', - version=2, - params=_params) - _params['message'] = message - _params['type'] = type_ - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResult) - async def SwitchBlockOn(self, message, type_): - ''' - message : str - type_ : str - Returns -> Error - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Block', - request='SwitchBlockOn', - version=2, - params=_params) - _params['message'] = message - _params['type'] = type_ - reply = await self.rpc(msg) - return reply - - - -class BundleFacade(Type): - name = 'Bundle' - version = 2 - schema = {'definitions': {'BundleChange': {'additionalProperties': False, - 'properties': {'args': {'items': {'additionalProperties': True, - 'type': 'object'}, - 'type': 'array'}, - 'id': {'type': 'string'}, - 'method': {'type': 'string'}, - 'requires': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['id', - 'method', - 'args', - 'requires'], - 'type': 'object'}, - 'BundleChangesParams': {'additionalProperties': False, - 'properties': {'bundleURL': {'type': 'string'}, - 'yaml': {'type': 'string'}}, - 'required': ['yaml', 'bundleURL'], - 'type': 'object'}, - 'BundleChangesResults': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/BundleChange'}, - 'type': 'array'}, - 'errors': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}}, - 'properties': {'ExportBundle': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'GetChanges': {'properties': {'Params': {'$ref': '#/definitions/BundleChangesParams'}, - 'Result': {'$ref': '#/definitions/BundleChangesResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringResult) - async def ExportBundle(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Bundle', - request='ExportBundle', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BundleChangesResults) - async def GetChanges(self, yaml): - ''' - yaml : str - Returns -> typing.Union[typing.Sequence[~BundleChange], typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Bundle', - request='GetChanges', - version=2, - params=_params) - _params['yaml'] = yaml - reply = await self.rpc(msg) - return reply - - - -class CharmRevisionUpdaterFacade(Type): - name = 'CharmRevisionUpdater' - version = 2 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, - 'properties': {'UpdateLatestRevisions': {'properties': {'Result': {'$ref': '#/definitions/ErrorResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResult) - async def UpdateLatestRevisions(self): - ''' - - Returns -> Error - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CharmRevisionUpdater', - request='UpdateLatestRevisions', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class CharmsFacade(Type): - name = 'Charms' - version = 2 - schema = {'definitions': {'CharmActionSpec': {'additionalProperties': False, - 'properties': {'description': {'type': 'string'}, - 'params': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['description', 'params'], - 'type': 'object'}, - 'CharmActions': {'additionalProperties': False, - 'properties': {'specs': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmActionSpec'}}, - 'type': 'object'}}, - 'type': 'object'}, - 'CharmDevice': {'additionalProperties': False, - 'properties': {'CountMax': {'type': 'integer'}, - 'CountMin': {'type': 'integer'}, - 'Description': {'type': 'string'}, - 'Name': {'type': 'string'}, - 'Type': {'type': 'string'}}, - 'required': ['Name', - 'Description', - 'Type', - 'CountMin', - 'CountMax'], - 'type': 'object'}, - 'CharmInfo': {'additionalProperties': False, - 'properties': {'actions': {'$ref': '#/definitions/CharmActions'}, - 'config': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmOption'}}, - 'type': 'object'}, - 'lxd-profile': {'$ref': '#/definitions/CharmLXDProfile'}, - 'meta': {'$ref': '#/definitions/CharmMeta'}, - 'metrics': {'$ref': '#/definitions/CharmMetrics'}, - 'revision': {'type': 'integer'}, - 'url': {'type': 'string'}}, - 'required': ['revision', 'url', 'config'], - 'type': 'object'}, - 'CharmLXDProfile': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'description': {'type': 'string'}, - 'devices': {'patternProperties': {'.*': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config', - 'description', - 'devices'], - 'type': 'object'}, - 'CharmMeta': {'additionalProperties': False, - 'properties': {'categories': {'items': {'type': 'string'}, - 'type': 'array'}, - 'description': {'type': 'string'}, - 'devices': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmDevice'}}, - 'type': 'object'}, - 'extra-bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'min-juju-version': {'type': 'string'}, - 'name': {'type': 'string'}, - 'payload-classes': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmPayloadClass'}}, - 'type': 'object'}, - 'peers': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, - 'type': 'object'}, - 'provides': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, - 'type': 'object'}, - 'requires': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, - 'type': 'object'}, - 'resources': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmResourceMeta'}}, - 'type': 'object'}, - 'series': {'items': {'type': 'string'}, - 'type': 'array'}, - 'storage': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmStorage'}}, - 'type': 'object'}, - 'subordinate': {'type': 'boolean'}, - 'summary': {'type': 'string'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'terms': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['name', - 'summary', - 'description', - 'subordinate'], - 'type': 'object'}, - 'CharmMetric': {'additionalProperties': False, - 'properties': {'description': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type', 'description'], - 'type': 'object'}, - 'CharmMetrics': {'additionalProperties': False, - 'properties': {'metrics': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmMetric'}}, - 'type': 'object'}, - 'plan': {'$ref': '#/definitions/CharmPlan'}}, - 'required': ['metrics', 'plan'], - 'type': 'object'}, - 'CharmOption': {'additionalProperties': False, - 'properties': {'default': {'additionalProperties': True, - 'type': 'object'}, - 'description': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type'], - 'type': 'object'}, - 'CharmPayloadClass': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['name', 'type'], - 'type': 'object'}, - 'CharmPlan': {'additionalProperties': False, - 'properties': {'required': {'type': 'boolean'}}, - 'required': ['required'], - 'type': 'object'}, - 'CharmRelation': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'optional': {'type': 'boolean'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'optional', - 'limit', - 'scope'], - 'type': 'object'}, - 'CharmResourceMeta': {'additionalProperties': False, - 'properties': {'description': {'type': 'string'}, - 'name': {'type': 'string'}, - 'path': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['name', - 'type', - 'path', - 'description'], - 'type': 'object'}, - 'CharmStorage': {'additionalProperties': False, - 'properties': {'count-max': {'type': 'integer'}, - 'count-min': {'type': 'integer'}, - 'description': {'type': 'string'}, - 'location': {'type': 'string'}, - 'minimum-size': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'properties': {'items': {'type': 'string'}, - 'type': 'array'}, - 'read-only': {'type': 'boolean'}, - 'shared': {'type': 'boolean'}, - 'type': {'type': 'string'}}, - 'required': ['name', - 'description', - 'type', - 'shared', - 'read-only', - 'count-min', - 'count-max', - 'minimum-size'], - 'type': 'object'}, - 'CharmURL': {'additionalProperties': False, - 'properties': {'url': {'type': 'string'}}, - 'required': ['url'], - 'type': 'object'}, - 'CharmsList': {'additionalProperties': False, - 'properties': {'names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['names'], - 'type': 'object'}, - 'CharmsListResult': {'additionalProperties': False, - 'properties': {'charm-urls': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['charm-urls'], - 'type': 'object'}, - 'IsMeteredResult': {'additionalProperties': False, - 'properties': {'metered': {'type': 'boolean'}}, - 'required': ['metered'], - 'type': 'object'}}, - 'properties': {'CharmInfo': {'properties': {'Params': {'$ref': '#/definitions/CharmURL'}, - 'Result': {'$ref': '#/definitions/CharmInfo'}}, - 'type': 'object'}, - 'IsMetered': {'properties': {'Params': {'$ref': '#/definitions/CharmURL'}, - 'Result': {'$ref': '#/definitions/IsMeteredResult'}}, - 'type': 'object'}, - 'List': {'properties': {'Params': {'$ref': '#/definitions/CharmsList'}, - 'Result': {'$ref': '#/definitions/CharmsListResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(CharmInfo) - async def CharmInfo(self, url): - ''' - url : str - Returns -> typing.Union[_ForwardRef('CharmActions'), typing.Mapping[str, ~CharmOption], _ForwardRef('CharmMeta'), _ForwardRef('CharmMetrics'), int, str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Charms', - request='CharmInfo', - version=2, - params=_params) - _params['url'] = url - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(IsMeteredResult) - async def IsMetered(self, url): - ''' - url : str - Returns -> bool - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Charms', - request='IsMetered', - version=2, - params=_params) - _params['url'] = url - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CharmsListResult) - async def List(self, names): - ''' - names : typing.Sequence[str] - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Charms', - request='List', - version=2, - params=_params) - _params['names'] = names - reply = await self.rpc(msg) - return reply - - - -class CleanerFacade(Type): - name = 'Cleaner' - version = 2 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}}, - 'properties': {'Cleanup': {'type': 'object'}, - 'WatchCleanups': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(None) - async def Cleanup(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cleaner', - request='Cleanup', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchCleanups(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cleaner', - request='WatchCleanups', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class ClientFacade(Type): - name = 'Client' - version = 2 - schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, - 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, - 'type': 'array'}, - 'type': 'array'}}, - 'required': ['servers'], - 'type': 'object'}, - 'AddCharm': {'additionalProperties': False, - 'properties': {'channel': {'type': 'string'}, - 'force': {'type': 'boolean'}, - 'url': {'type': 'string'}}, - 'required': ['url', 'channel', 'force'], - 'type': 'object'}, - 'AddCharmWithAuthorization': {'additionalProperties': False, - 'properties': {'channel': {'type': 'string'}, - 'force': {'type': 'boolean'}, - 'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'url': {'type': 'string'}}, - 'required': ['url', - 'channel', - 'macaroon', - 'force'], - 'type': 'object'}, - 'AddMachineParams': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, - 'type': 'array'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'container-type': {'type': 'string'}, - 'disks': {'items': {'$ref': '#/definitions/Constraints'}, - 'type': 'array'}, - 'hardware-characteristics': {'$ref': '#/definitions/HardwareCharacteristics'}, - 'instance-id': {'type': 'string'}, - 'jobs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'nonce': {'type': 'string'}, - 'parent-id': {'type': 'string'}, - 'placement': {'$ref': '#/definitions/Placement'}, - 'series': {'type': 'string'}}, - 'required': ['series', - 'constraints', - 'jobs', - 'parent-id', - 'container-type', - 'instance-id', - 'nonce', - 'hardware-characteristics', - 'addresses'], - 'type': 'object'}, - 'AddMachines': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/AddMachineParams'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'AddMachinesResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'machine': {'type': 'string'}}, - 'required': ['machine'], - 'type': 'object'}, - 'AddMachinesResults': {'additionalProperties': False, - 'properties': {'machines': {'items': {'$ref': '#/definitions/AddMachinesResult'}, - 'type': 'array'}}, - 'required': ['machines'], - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'AgentVersionResult': {'additionalProperties': False, - 'properties': {'version': {'$ref': '#/definitions/Number'}}, - 'required': ['version'], - 'type': 'object'}, - 'AllWatcherId': {'additionalProperties': False, - 'properties': {'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'ApplicationOfferStatus': {'additionalProperties': False, - 'properties': {'active-connected-count': {'type': 'integer'}, - 'application-name': {'type': 'string'}, - 'charm': {'type': 'string'}, - 'endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/RemoteEndpoint'}}, - 'type': 'object'}, - 'err': {'additionalProperties': True, - 'type': 'object'}, - 'offer-name': {'type': 'string'}, - 'total-connected-count': {'type': 'integer'}}, - 'required': ['offer-name', - 'application-name', - 'charm', - 'endpoints', - 'active-connected-count', - 'total-connected-count'], - 'type': 'object'}, - 'ApplicationStatus': {'additionalProperties': False, - 'properties': {'can-upgrade-to': {'type': 'string'}, - 'charm': {'type': 'string'}, - 'charm-verion': {'type': 'string'}, - 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'err': {'additionalProperties': True, - 'type': 'object'}, - 'exposed': {'type': 'boolean'}, - 'int': {'type': 'integer'}, - 'life': {'type': 'string'}, - 'meter-statuses': {'patternProperties': {'.*': {'$ref': '#/definitions/MeterStatus'}}, - 'type': 'object'}, - 'provider-id': {'type': 'string'}, - 'public-address': {'type': 'string'}, - 'relations': {'patternProperties': {'.*': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'series': {'type': 'string'}, - 'status': {'$ref': '#/definitions/DetailedStatus'}, - 'string': {'type': 'string'}, - 'subordinate-to': {'items': {'type': 'string'}, - 'type': 'array'}, - 'units': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitStatus'}}, - 'type': 'object'}, - 'workload-version': {'type': 'string'}}, - 'required': ['charm', - 'series', - 'exposed', - 'life', - 'relations', - 'can-upgrade-to', - 'subordinate-to', - 'units', - 'meter-statuses', - 'status', - 'workload-version', - 'charm-verion', - 'endpoint-bindings', - 'public-address'], - 'type': 'object'}, - 'Binary': {'additionalProperties': False, - 'properties': {'Arch': {'type': 'string'}, - 'Number': {'$ref': '#/definitions/Number'}, - 'Series': {'type': 'string'}}, - 'required': ['Number', 'Series', 'Arch'], - 'type': 'object'}, - 'BundleChange': {'additionalProperties': False, - 'properties': {'args': {'items': {'additionalProperties': True, - 'type': 'object'}, - 'type': 'array'}, - 'id': {'type': 'string'}, - 'method': {'type': 'string'}, - 'requires': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['id', - 'method', - 'args', - 'requires'], - 'type': 'object'}, - 'BundleChangesParams': {'additionalProperties': False, - 'properties': {'bundleURL': {'type': 'string'}, - 'yaml': {'type': 'string'}}, - 'required': ['yaml', 'bundleURL'], - 'type': 'object'}, - 'BundleChangesResults': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/BundleChange'}, - 'type': 'array'}, - 'errors': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'BytesResult': {'additionalProperties': False, - 'properties': {'result': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['result'], - 'type': 'object'}, - 'ConfigValue': {'additionalProperties': False, - 'properties': {'source': {'type': 'string'}, - 'value': {'additionalProperties': True, - 'type': 'object'}}, - 'required': ['value', 'source'], - 'type': 'object'}, - 'Constraints': {'additionalProperties': False, - 'properties': {'Count': {'type': 'integer'}, - 'Pool': {'type': 'string'}, - 'Size': {'type': 'integer'}}, - 'required': ['Pool', 'Size', 'Count'], - 'type': 'object'}, - 'DestroyMachines': {'additionalProperties': False, - 'properties': {'force': {'type': 'boolean'}, - 'machine-names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['machine-names', 'force'], - 'type': 'object'}, - 'DetailedStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'err': {'additionalProperties': True, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'kind': {'type': 'string'}, - 'life': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}, - 'version': {'type': 'string'}}, - 'required': ['status', - 'info', - 'data', - 'since', - 'kind', - 'version', - 'life'], - 'type': 'object'}, - 'EndpointStatus': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'name': {'type': 'string'}, - 'role': {'type': 'string'}, - 'subordinate': {'type': 'boolean'}}, - 'required': ['application', - 'name', - 'role', - 'subordinate'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'info', 'since'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'FindToolsParams': {'additionalProperties': False, - 'properties': {'agentstream': {'type': 'string'}, - 'arch': {'type': 'string'}, - 'major': {'type': 'integer'}, - 'minor': {'type': 'integer'}, - 'number': {'$ref': '#/definitions/Number'}, - 'series': {'type': 'string'}}, - 'required': ['number', - 'major', - 'minor', - 'arch', - 'series', - 'agentstream'], - 'type': 'object'}, - 'FindToolsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'list': {'items': {'$ref': '#/definitions/Tools'}, - 'type': 'array'}}, - 'required': ['list'], - 'type': 'object'}, - 'FullStatus': {'additionalProperties': False, - 'properties': {'applications': {'patternProperties': {'.*': {'$ref': '#/definitions/ApplicationStatus'}}, - 'type': 'object'}, - 'controller-timestamp': {'format': 'date-time', - 'type': 'string'}, - 'machines': {'patternProperties': {'.*': {'$ref': '#/definitions/MachineStatus'}}, - 'type': 'object'}, - 'model': {'$ref': '#/definitions/ModelStatusInfo'}, - 'offers': {'patternProperties': {'.*': {'$ref': '#/definitions/ApplicationOfferStatus'}}, - 'type': 'object'}, - 'relations': {'items': {'$ref': '#/definitions/RelationStatus'}, - 'type': 'array'}, - 'remote-applications': {'patternProperties': {'.*': {'$ref': '#/definitions/RemoteApplicationStatus'}}, - 'type': 'object'}}, - 'required': ['model', - 'machines', - 'applications', - 'remote-applications', - 'offers', - 'relations', - 'controller-timestamp'], - 'type': 'object'}, - 'GetConstraintsResults': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'HardwareCharacteristics': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cpu-cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'History': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'statuses': {'items': {'$ref': '#/definitions/DetailedStatus'}, - 'type': 'array'}}, - 'required': ['statuses'], - 'type': 'object'}, - 'HostPort': {'additionalProperties': False, - 'properties': {'Address': {'$ref': '#/definitions/Address'}, - 'port': {'type': 'integer'}}, - 'required': ['Address', 'port'], - 'type': 'object'}, - 'LXDProfile': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'description': {'type': 'string'}, - 'devices': {'patternProperties': {'.*': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config', - 'description', - 'devices'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineHardware': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'MachineStatus': {'additionalProperties': False, - 'properties': {'agent-status': {'$ref': '#/definitions/DetailedStatus'}, - 'constraints': {'type': 'string'}, - 'containers': {'patternProperties': {'.*': {'$ref': '#/definitions/MachineStatus'}}, - 'type': 'object'}, - 'dns-name': {'type': 'string'}, - 'hardware': {'type': 'string'}, - 'has-vote': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'instance-id': {'type': 'string'}, - 'instance-status': {'$ref': '#/definitions/DetailedStatus'}, - 'ip-addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'jobs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'lxd-profiles': {'patternProperties': {'.*': {'$ref': '#/definitions/LXDProfile'}}, - 'type': 'object'}, - 'network-interfaces': {'patternProperties': {'.*': {'$ref': '#/definitions/NetworkInterface'}}, - 'type': 'object'}, - 'series': {'type': 'string'}, - 'wants-vote': {'type': 'boolean'}}, - 'required': ['agent-status', - 'instance-status', - 'dns-name', - 'instance-id', - 'series', - 'id', - 'containers', - 'constraints', - 'hardware', - 'jobs', - 'has-vote', - 'wants-vote'], - 'type': 'object'}, - 'MeterStatus': {'additionalProperties': False, - 'properties': {'color': {'type': 'string'}, - 'message': {'type': 'string'}}, - 'required': ['color', 'message'], - 'type': 'object'}, - 'ModelConfigResults': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelInfo': {'additionalProperties': False, - 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, - 'cloud-credential-tag': {'type': 'string'}, - 'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'controller-uuid': {'type': 'string'}, - 'default-series': {'type': 'string'}, - 'life': {'type': 'string'}, - 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, - 'type': 'array'}, - 'migration': {'$ref': '#/definitions/ModelMigrationStatus'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'provider-type': {'type': 'string'}, - 'sla': {'$ref': '#/definitions/ModelSLAInfo'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'type': {'type': 'string'}, - 'users': {'items': {'$ref': '#/definitions/ModelUserInfo'}, - 'type': 'array'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', - 'type', - 'uuid', - 'controller-uuid', - 'cloud-tag', - 'owner-tag', - 'life', - 'users', - 'machines', - 'sla', - 'agent-version'], - 'type': 'object'}, - 'ModelMachineInfo': {'additionalProperties': False, - 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'}, - 'has-vote': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'instance-id': {'type': 'string'}, - 'message': {'type': 'string'}, - 'status': {'type': 'string'}, - 'wants-vote': {'type': 'boolean'}}, - 'required': ['id'], - 'type': 'object'}, - 'ModelMigrationStatus': {'additionalProperties': False, - 'properties': {'end': {'format': 'date-time', - 'type': 'string'}, - 'start': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'start'], - 'type': 'object'}, - 'ModelSLA': {'additionalProperties': False, - 'properties': {'ModelSLAInfo': {'$ref': '#/definitions/ModelSLAInfo'}, - 'creds': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['ModelSLAInfo', 'creds'], - 'type': 'object'}, - 'ModelSLAInfo': {'additionalProperties': False, - 'properties': {'level': {'type': 'string'}, - 'owner': {'type': 'string'}}, - 'required': ['level', 'owner'], - 'type': 'object'}, - 'ModelSet': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelStatusInfo': {'additionalProperties': False, - 'properties': {'available-version': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'meter-status': {'$ref': '#/definitions/MeterStatus'}, - 'model-status': {'$ref': '#/definitions/DetailedStatus'}, - 'name': {'type': 'string'}, - 'region': {'type': 'string'}, - 'sla': {'type': 'string'}, - 'type': {'type': 'string'}, - 'version': {'type': 'string'}}, - 'required': ['name', - 'type', - 'cloud-tag', - 'version', - 'available-version', - 'model-status', - 'meter-status', - 'sla'], - 'type': 'object'}, - 'ModelUnset': {'additionalProperties': False, - 'properties': {'keys': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['keys'], - 'type': 'object'}, - 'ModelUserInfo': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'display-name': {'type': 'string'}, - 'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'user': {'type': 'string'}}, - 'required': ['user', - 'display-name', - 'last-connection', - 'access'], - 'type': 'object'}, - 'ModelUserInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ModelUserInfo'}}, - 'type': 'object'}, - 'ModelUserInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ModelUserInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'NetworkInterface': {'additionalProperties': False, - 'properties': {'dns-nameservers': {'items': {'type': 'string'}, - 'type': 'array'}, - 'gateway': {'type': 'string'}, - 'ip-addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'is-up': {'type': 'boolean'}, - 'mac-address': {'type': 'string'}, - 'space': {'type': 'string'}}, - 'required': ['ip-addresses', - 'mac-address', - 'is-up'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'Placement': {'additionalProperties': False, - 'properties': {'directive': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['scope', 'directive'], - 'type': 'object'}, - 'PrivateAddress': {'additionalProperties': False, - 'properties': {'target': {'type': 'string'}}, - 'required': ['target'], - 'type': 'object'}, - 'PrivateAddressResults': {'additionalProperties': False, - 'properties': {'private-address': {'type': 'string'}}, - 'required': ['private-address'], - 'type': 'object'}, - 'ProvisioningScriptParams': {'additionalProperties': False, - 'properties': {'data-dir': {'type': 'string'}, - 'disable-package-commands': {'type': 'boolean'}, - 'machine-id': {'type': 'string'}, - 'nonce': {'type': 'string'}}, - 'required': ['machine-id', - 'nonce', - 'data-dir', - 'disable-package-commands'], - 'type': 'object'}, - 'ProvisioningScriptResult': {'additionalProperties': False, - 'properties': {'script': {'type': 'string'}}, - 'required': ['script'], - 'type': 'object'}, - 'PublicAddress': {'additionalProperties': False, - 'properties': {'target': {'type': 'string'}}, - 'required': ['target'], - 'type': 'object'}, - 'PublicAddressResults': {'additionalProperties': False, - 'properties': {'public-address': {'type': 'string'}}, - 'required': ['public-address'], - 'type': 'object'}, - 'RelationStatus': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'$ref': '#/definitions/EndpointStatus'}, - 'type': 'array'}, - 'id': {'type': 'integer'}, - 'interface': {'type': 'string'}, - 'key': {'type': 'string'}, - 'scope': {'type': 'string'}, - 'status': {'$ref': '#/definitions/DetailedStatus'}}, - 'required': ['id', - 'key', - 'interface', - 'scope', - 'endpoints', - 'status'], - 'type': 'object'}, - 'RemoteApplicationStatus': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'}, - 'type': 'array'}, - 'err': {'additionalProperties': True, - 'type': 'object'}, - 'life': {'type': 'string'}, - 'offer-name': {'type': 'string'}, - 'offer-url': {'type': 'string'}, - 'relations': {'patternProperties': {'.*': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'status': {'$ref': '#/definitions/DetailedStatus'}}, - 'required': ['offer-url', - 'offer-name', - 'endpoints', - 'life', - 'relations', - 'status'], - 'type': 'object'}, - 'RemoteEndpoint': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'role': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'limit'], - 'type': 'object'}, - 'ResolveCharmResult': {'additionalProperties': False, - 'properties': {'error': {'type': 'string'}, - 'url': {'type': 'string'}}, - 'type': 'object'}, - 'ResolveCharmResults': {'additionalProperties': False, - 'properties': {'urls': {'items': {'$ref': '#/definitions/ResolveCharmResult'}, - 'type': 'array'}}, - 'required': ['urls'], - 'type': 'object'}, - 'ResolveCharms': {'additionalProperties': False, - 'properties': {'references': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['references'], - 'type': 'object'}, - 'Resolved': {'additionalProperties': False, - 'properties': {'retry': {'type': 'boolean'}, - 'unit-name': {'type': 'string'}}, - 'required': ['unit-name', 'retry'], - 'type': 'object'}, - 'SetConstraints': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['application', 'constraints'], - 'type': 'object'}, - 'SetModelAgentVersion': {'additionalProperties': False, - 'properties': {'force': {'type': 'boolean'}, - 'version': {'$ref': '#/definitions/Number'}}, - 'required': ['version'], - 'type': 'object'}, - 'StatusHistoryFilter': {'additionalProperties': False, - 'properties': {'date': {'format': 'date-time', - 'type': 'string'}, - 'delta': {'type': 'integer'}, - 'exclude': {'items': {'type': 'string'}, - 'type': 'array'}, - 'size': {'type': 'integer'}}, - 'required': ['size', - 'date', - 'delta', - 'exclude'], - 'type': 'object'}, - 'StatusHistoryRequest': {'additionalProperties': False, - 'properties': {'filter': {'$ref': '#/definitions/StatusHistoryFilter'}, - 'historyKind': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'tag': {'type': 'string'}}, - 'required': ['historyKind', - 'size', - 'filter', - 'tag'], - 'type': 'object'}, - 'StatusHistoryRequests': {'additionalProperties': False, - 'properties': {'requests': {'items': {'$ref': '#/definitions/StatusHistoryRequest'}, - 'type': 'array'}}, - 'required': ['requests'], - 'type': 'object'}, - 'StatusHistoryResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'history': {'$ref': '#/definitions/History'}}, - 'required': ['history'], - 'type': 'object'}, - 'StatusHistoryResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StatusHistoryResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StatusParams': {'additionalProperties': False, - 'properties': {'patterns': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['patterns'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'Tools': {'additionalProperties': False, - 'properties': {'sha256': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'url': {'type': 'string'}, - 'version': {'$ref': '#/definitions/Binary'}}, - 'required': ['version', 'url', 'size'], - 'type': 'object'}, - 'UnitStatus': {'additionalProperties': False, - 'properties': {'address': {'type': 'string'}, - 'agent-status': {'$ref': '#/definitions/DetailedStatus'}, - 'charm': {'type': 'string'}, - 'leader': {'type': 'boolean'}, - 'machine': {'type': 'string'}, - 'opened-ports': {'items': {'type': 'string'}, - 'type': 'array'}, - 'provider-id': {'type': 'string'}, - 'public-address': {'type': 'string'}, - 'subordinates': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitStatus'}}, - 'type': 'object'}, - 'workload-status': {'$ref': '#/definitions/DetailedStatus'}, - 'workload-version': {'type': 'string'}}, - 'required': ['agent-status', - 'workload-status', - 'workload-version', - 'machine', - 'opened-ports', - 'public-address', - 'charm', - 'subordinates'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, - 'type': 'object'}, - 'AbortCurrentUpgrade': {'type': 'object'}, - 'AddCharm': {'properties': {'Params': {'$ref': '#/definitions/AddCharm'}}, - 'type': 'object'}, - 'AddCharmWithAuthorization': {'properties': {'Params': {'$ref': '#/definitions/AddCharmWithAuthorization'}}, - 'type': 'object'}, - 'AddMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, - 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, - 'type': 'object'}, - 'AddMachinesV2': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, - 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, - 'type': 'object'}, - 'AgentVersion': {'properties': {'Result': {'$ref': '#/definitions/AgentVersionResult'}}, - 'type': 'object'}, - 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, - 'type': 'object'}, - 'DestroyMachines': {'properties': {'Params': {'$ref': '#/definitions/DestroyMachines'}}, - 'type': 'object'}, - 'FindTools': {'properties': {'Params': {'$ref': '#/definitions/FindToolsParams'}, - 'Result': {'$ref': '#/definitions/FindToolsResult'}}, - 'type': 'object'}, - 'FullStatus': {'properties': {'Params': {'$ref': '#/definitions/StatusParams'}, - 'Result': {'$ref': '#/definitions/FullStatus'}}, - 'type': 'object'}, - 'GetBundleChanges': {'properties': {'Params': {'$ref': '#/definitions/BundleChangesParams'}, - 'Result': {'$ref': '#/definitions/BundleChangesResults'}}, - 'type': 'object'}, - 'GetModelConstraints': {'properties': {'Result': {'$ref': '#/definitions/GetConstraintsResults'}}, - 'type': 'object'}, - 'InjectMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, - 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, - 'type': 'object'}, - 'ModelGet': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}}, - 'type': 'object'}, - 'ModelInfo': {'properties': {'Result': {'$ref': '#/definitions/ModelInfo'}}, - 'type': 'object'}, - 'ModelSet': {'properties': {'Params': {'$ref': '#/definitions/ModelSet'}}, - 'type': 'object'}, - 'ModelUnset': {'properties': {'Params': {'$ref': '#/definitions/ModelUnset'}}, - 'type': 'object'}, - 'ModelUserInfo': {'properties': {'Result': {'$ref': '#/definitions/ModelUserInfoResults'}}, - 'type': 'object'}, - 'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/PrivateAddress'}, - 'Result': {'$ref': '#/definitions/PrivateAddressResults'}}, - 'type': 'object'}, - 'ProvisioningScript': {'properties': {'Params': {'$ref': '#/definitions/ProvisioningScriptParams'}, - 'Result': {'$ref': '#/definitions/ProvisioningScriptResult'}}, - 'type': 'object'}, - 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/PublicAddress'}, - 'Result': {'$ref': '#/definitions/PublicAddressResults'}}, - 'type': 'object'}, - 'ResolveCharms': {'properties': {'Params': {'$ref': '#/definitions/ResolveCharms'}, - 'Result': {'$ref': '#/definitions/ResolveCharmResults'}}, - 'type': 'object'}, - 'Resolved': {'properties': {'Params': {'$ref': '#/definitions/Resolved'}}, - 'type': 'object'}, - 'RetryProvisioning': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'SetModelAgentVersion': {'properties': {'Params': {'$ref': '#/definitions/SetModelAgentVersion'}}, - 'type': 'object'}, - 'SetModelConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, - 'type': 'object'}, - 'SetSLALevel': {'properties': {'Params': {'$ref': '#/definitions/ModelSLA'}}, - 'type': 'object'}, - 'StatusHistory': {'properties': {'Params': {'$ref': '#/definitions/StatusHistoryRequests'}, - 'Result': {'$ref': '#/definitions/StatusHistoryResults'}}, - 'type': 'object'}, - 'WatchAll': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherId'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(APIHostPortsResult) - async def APIHostPorts(self): - ''' - - Returns -> typing.Sequence[~HostPort] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='APIHostPorts', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def AbortCurrentUpgrade(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AbortCurrentUpgrade', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def AddCharm(self, channel, url): - ''' - channel : str - url : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AddCharm', - version=2, - params=_params) - _params['channel'] = channel - _params['url'] = url - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def AddCharmWithAuthorization(self, channel, macaroon, url): - ''' - channel : str - macaroon : Macaroon - url : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AddCharmWithAuthorization', - version=2, - params=_params) - _params['channel'] = channel - _params['macaroon'] = macaroon - _params['url'] = url - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddMachinesResults) - async def AddMachines(self, params): - ''' - params : typing.Sequence[~AddMachineParams] - Returns -> typing.Sequence[~AddMachinesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AddMachines', - version=2, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddMachinesResults) - async def AddMachinesV2(self, params): - ''' - params : typing.Sequence[~AddMachineParams] - Returns -> typing.Sequence[~AddMachinesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AddMachinesV2', - version=2, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AgentVersionResult) - async def AgentVersion(self): - ''' - - Returns -> Number - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='AgentVersion', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BytesResult) - async def CACert(self): - ''' - - Returns -> typing.Sequence[int] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='CACert', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyMachines(self, force, machine_names): - ''' - force : bool - machine_names : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='DestroyMachines', - version=2, - params=_params) - _params['force'] = force - _params['machine-names'] = machine_names - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FindToolsResult) - async def FindTools(self, arch, major, minor, number, series): - ''' - arch : str - major : int - minor : int - number : Number - series : str - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[~Tools]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='FindTools', - version=2, - params=_params) - _params['arch'] = arch - _params['major'] = major - _params['minor'] = minor - _params['number'] = number - _params['series'] = series - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FullStatus) - async def FullStatus(self, patterns): - ''' - patterns : typing.Sequence[str] - Returns -> typing.Union[typing.Mapping[str, ~ApplicationStatus], str, typing.Mapping[str, ~MachineStatus], _ForwardRef('ModelStatusInfo'), typing.Mapping[str, ~ApplicationOfferStatus], typing.Sequence[~RelationStatus], typing.Mapping[str, ~RemoteApplicationStatus]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='FullStatus', - version=2, - params=_params) - _params['patterns'] = patterns - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BundleChangesResults) - async def GetBundleChanges(self, yaml): - ''' - yaml : str - Returns -> typing.Union[typing.Sequence[~BundleChange], typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='GetBundleChanges', - version=2, - params=_params) - _params['yaml'] = yaml - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(GetConstraintsResults) - async def GetModelConstraints(self): - ''' - - Returns -> Value - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='GetModelConstraints', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddMachinesResults) - async def InjectMachines(self, params): - ''' - params : typing.Sequence[~AddMachineParams] - Returns -> typing.Sequence[~AddMachinesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='InjectMachines', - version=2, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResults) - async def ModelGet(self): - ''' - - Returns -> typing.Mapping[str, ~ConfigValue] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ModelGet', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelInfo) - async def ModelInfo(self): - ''' - - Returns -> typing.Union[_ForwardRef('Number'), str, typing.Sequence[~ModelMachineInfo], _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence[~ModelUserInfo]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ModelInfo', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ModelSet(self, config): - ''' - config : typing.Mapping[str, typing.Any] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ModelSet', - version=2, - params=_params) - _params['config'] = config - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ModelUnset(self, keys): - ''' - keys : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ModelUnset', - version=2, - params=_params) - _params['keys'] = keys - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelUserInfoResults) - async def ModelUserInfo(self): - ''' - - Returns -> typing.Sequence[~ModelUserInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ModelUserInfo', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(PrivateAddressResults) - async def PrivateAddress(self, target): - ''' - target : str - Returns -> str - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='PrivateAddress', - version=2, - params=_params) - _params['target'] = target - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ProvisioningScriptResult) - async def ProvisioningScript(self, data_dir, disable_package_commands, machine_id, nonce): - ''' - data_dir : str - disable_package_commands : bool - machine_id : str - nonce : str - Returns -> str - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ProvisioningScript', - version=2, - params=_params) - _params['data-dir'] = data_dir - _params['disable-package-commands'] = disable_package_commands - _params['machine-id'] = machine_id - _params['nonce'] = nonce - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(PublicAddressResults) - async def PublicAddress(self, target): - ''' - target : str - Returns -> str - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='PublicAddress', - version=2, - params=_params) - _params['target'] = target - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ResolveCharmResults) - async def ResolveCharms(self, references): - ''' - references : typing.Sequence[str] - Returns -> typing.Sequence[~ResolveCharmResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='ResolveCharms', - version=2, - params=_params) - _params['references'] = references - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Resolved(self, retry, unit_name): - ''' - retry : bool - unit_name : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='Resolved', - version=2, - params=_params) - _params['retry'] = retry - _params['unit-name'] = unit_name - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RetryProvisioning(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='RetryProvisioning', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def SLALevel(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='SLALevel', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetModelAgentVersion(self, version): - ''' - version : Number - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='SetModelAgentVersion', - version=2, - params=_params) - _params['version'] = version - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetModelConstraints(self, application, constraints): - ''' - application : str - constraints : Value - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='SetModelConstraints', - version=2, - params=_params) - _params['application'] = application - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetSLALevel(self, creds, level): - ''' - creds : typing.Sequence[int] - level : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='SetSLALevel', - version=2, - params=_params) - _params['creds'] = creds - _params['level'] = level - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusHistoryResults) - async def StatusHistory(self, requests): - ''' - requests : typing.Sequence[~StatusHistoryRequest] - Returns -> typing.Sequence[~StatusHistoryResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='StatusHistory', - version=2, - params=_params) - _params['requests'] = requests - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AllWatcherId) - async def WatchAll(self): - ''' - - Returns -> str - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Client', - request='WatchAll', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class CredentialValidatorFacade(Type): - name = 'CredentialValidator' - version = 2 - schema = {'definitions': {'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'InvalidateCredentialArg': {'additionalProperties': False, - 'properties': {'reason': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelCredential': {'additionalProperties': False, - 'properties': {'credential-tag': {'type': 'string'}, - 'exists': {'type': 'boolean'}, - 'model-tag': {'type': 'string'}, - 'valid': {'type': 'boolean'}}, - 'required': ['model-tag', - 'credential-tag'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}}, - 'properties': {'InvalidateModelCredential': {'properties': {'Params': {'$ref': '#/definitions/InvalidateCredentialArg'}, - 'Result': {'$ref': '#/definitions/ErrorResult'}}, - 'type': 'object'}, - 'ModelCredential': {'properties': {'Result': {'$ref': '#/definitions/ModelCredential'}}, - 'type': 'object'}, - 'WatchCredential': {'properties': {'Params': {'$ref': '#/definitions/Entity'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchModelCredential': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResult) - async def InvalidateModelCredential(self, reason): - ''' - reason : str - Returns -> Error - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CredentialValidator', - request='InvalidateModelCredential', - version=2, - params=_params) - _params['reason'] = reason - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelCredential) - async def ModelCredential(self): - ''' - - Returns -> typing.Union[str, bool] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CredentialValidator', - request='ModelCredential', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchCredential(self, tag): - ''' - tag : str - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CredentialValidator', - request='WatchCredential', - version=2, - params=_params) - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchModelCredential(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='CredentialValidator', - request='WatchModelCredential', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class DiscoverSpacesFacade(Type): - name = 'DiscoverSpaces' - version = 2 - schema = {'definitions': {'AddSubnetParams': {'additionalProperties': False, - 'properties': {'provider-network-id': {'type': 'string'}, - 'space-tag': {'type': 'string'}, - 'subnet-provider-id': {'type': 'string'}, - 'subnet-tag': {'type': 'string'}, - 'vlan-tag': {'type': 'integer'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['space-tag'], - 'type': 'object'}, - 'AddSubnetsParams': {'additionalProperties': False, - 'properties': {'subnets': {'items': {'$ref': '#/definitions/AddSubnetParams'}, - 'type': 'array'}}, - 'required': ['subnets'], - 'type': 'object'}, - 'CreateSpaceParams': {'additionalProperties': False, - 'properties': {'provider-id': {'type': 'string'}, - 'public': {'type': 'boolean'}, - 'space-tag': {'type': 'string'}, - 'subnet-tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['subnet-tags', - 'space-tag', - 'public'], - 'type': 'object'}, - 'CreateSpacesParams': {'additionalProperties': False, - 'properties': {'spaces': {'items': {'$ref': '#/definitions/CreateSpaceParams'}, - 'type': 'array'}}, - 'required': ['spaces'], - 'type': 'object'}, - 'DiscoverSpacesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ProviderSpace'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ListSubnetsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/Subnet'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ProviderSpace': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'subnets': {'items': {'$ref': '#/definitions/Subnet'}, - 'type': 'array'}}, - 'required': ['name', - 'provider-id', - 'subnets'], - 'type': 'object'}, - 'Subnet': {'additionalProperties': False, - 'properties': {'cidr': {'type': 'string'}, - 'life': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-network-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'space-tag': {'type': 'string'}, - 'status': {'type': 'string'}, - 'vlan-tag': {'type': 'integer'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['cidr', - 'vlan-tag', - 'life', - 'space-tag', - 'zones'], - 'type': 'object'}, - 'SubnetsFilters': {'additionalProperties': False, - 'properties': {'space-tag': {'type': 'string'}, - 'zone': {'type': 'string'}}, - 'type': 'object'}}, - 'properties': {'AddSubnets': {'properties': {'Params': {'$ref': '#/definitions/AddSubnetsParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'CreateSpaces': {'properties': {'Params': {'$ref': '#/definitions/CreateSpacesParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ListSpaces': {'properties': {'Result': {'$ref': '#/definitions/DiscoverSpacesResults'}}, - 'type': 'object'}, - 'ListSubnets': {'properties': {'Params': {'$ref': '#/definitions/SubnetsFilters'}, - 'Result': {'$ref': '#/definitions/ListSubnetsResults'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def AddSubnets(self, subnets): - ''' - subnets : typing.Sequence[~AddSubnetParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='DiscoverSpaces', - request='AddSubnets', - version=2, - params=_params) - _params['subnets'] = subnets - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def CreateSpaces(self, spaces): - ''' - spaces : typing.Sequence[~CreateSpaceParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='DiscoverSpaces', - request='CreateSpaces', - version=2, - params=_params) - _params['spaces'] = spaces - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DiscoverSpacesResults) - async def ListSpaces(self): - ''' - - Returns -> typing.Sequence[~ProviderSpace] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='DiscoverSpaces', - request='ListSpaces', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ListSubnetsResults) - async def ListSubnets(self, space_tag, zone): - ''' - space_tag : str - zone : str - Returns -> typing.Sequence[~Subnet] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='DiscoverSpaces', - request='ListSubnets', - version=2, - params=_params) - _params['space-tag'] = space_tag - _params['zone'] = zone - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='DiscoverSpaces', - request='ModelConfig', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class DiskManagerFacade(Type): - name = 'DiskManager' - version = 2 - schema = {'definitions': {'BlockDevice': {'additionalProperties': False, - 'properties': {'BusAddress': {'type': 'string'}, - 'DeviceLinks': {'items': {'type': 'string'}, - 'type': 'array'}, - 'DeviceName': {'type': 'string'}, - 'FilesystemType': {'type': 'string'}, - 'HardwareId': {'type': 'string'}, - 'InUse': {'type': 'boolean'}, - 'Label': {'type': 'string'}, - 'MountPoint': {'type': 'string'}, - 'Size': {'type': 'integer'}, - 'UUID': {'type': 'string'}, - 'WWN': {'type': 'string'}}, - 'required': ['DeviceName', - 'DeviceLinks', - 'Label', - 'UUID', - 'HardwareId', - 'WWN', - 'BusAddress', - 'Size', - 'FilesystemType', - 'InUse', - 'MountPoint'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineBlockDevices': {'additionalProperties': False, - 'properties': {'block-devices': {'items': {'$ref': '#/definitions/BlockDevice'}, - 'type': 'array'}, - 'machine': {'type': 'string'}}, - 'required': ['machine'], - 'type': 'object'}, - 'SetMachineBlockDevices': {'additionalProperties': False, - 'properties': {'machine-block-devices': {'items': {'$ref': '#/definitions/MachineBlockDevices'}, - 'type': 'array'}}, - 'required': ['machine-block-devices'], - 'type': 'object'}}, - 'properties': {'SetMachineBlockDevices': {'properties': {'Params': {'$ref': '#/definitions/SetMachineBlockDevices'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def SetMachineBlockDevices(self, machine_block_devices): - ''' - machine_block_devices : typing.Sequence[~MachineBlockDevices] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='DiskManager', - request='SetMachineBlockDevices', - version=2, - params=_params) - _params['machine-block-devices'] = machine_block_devices - reply = await self.rpc(msg) - return reply - - - -class EntityWatcherFacade(Type): - name = 'EntityWatcher' - version = 2 - schema = {'definitions': {'EntitiesWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/EntitiesWatchResult'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(EntitiesWatchResult) - async def Next(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='EntityWatcher', - request='Next', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='EntityWatcher', - request='Stop', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class FilesystemAttachmentsWatcherFacade(Type): - name = 'FilesystemAttachmentsWatcher' - version = 2 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineStorageId': {'additionalProperties': False, - 'properties': {'attachment-tag': {'type': 'string'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['machine-tag', - 'attachment-tag'], - 'type': 'object'}, - 'MachineStorageIdsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/MachineStorageId'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResult'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(MachineStorageIdsWatchResult) - async def Next(self): - ''' - - Returns -> typing.Union[typing.Sequence[~MachineStorageId], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='FilesystemAttachmentsWatcher', - request='Next', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='FilesystemAttachmentsWatcher', - request='Stop', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class HighAvailabilityFacade(Type): - name = 'HighAvailability' - version = 2 - schema = {'definitions': {'Address': {'additionalProperties': False, - 'properties': {'Scope': {'type': 'string'}, - 'SpaceName': {'type': 'string'}, - 'SpaceProviderId': {'type': 'string'}, - 'Type': {'type': 'string'}, - 'Value': {'type': 'string'}}, - 'required': ['Value', - 'Type', - 'Scope', - 'SpaceName', - 'SpaceProviderId'], - 'type': 'object'}, - 'ControllersChangeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ControllersChanges'}}, - 'required': ['result'], - 'type': 'object'}, - 'ControllersChangeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ControllersChangeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ControllersChanges': {'additionalProperties': False, - 'properties': {'added': {'items': {'type': 'string'}, - 'type': 'array'}, - 'converted': {'items': {'type': 'string'}, - 'type': 'array'}, - 'demoted': {'items': {'type': 'string'}, - 'type': 'array'}, - 'maintained': {'items': {'type': 'string'}, - 'type': 'array'}, - 'promoted': {'items': {'type': 'string'}, - 'type': 'array'}, - 'removed': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ControllersSpec': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}, - 'num-controllers': {'type': 'integer'}, - 'placement': {'items': {'type': 'string'}, - 'type': 'array'}, - 'series': {'type': 'string'}}, - 'required': ['num-controllers'], - 'type': 'object'}, - 'ControllersSpecs': {'additionalProperties': False, - 'properties': {'specs': {'items': {'$ref': '#/definitions/ControllersSpec'}, - 'type': 'array'}}, - 'required': ['specs'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'HAMember': {'additionalProperties': False, - 'properties': {'public-address': {'$ref': '#/definitions/Address'}, - 'series': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'public-address', 'series'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Member': {'additionalProperties': False, - 'properties': {'Address': {'type': 'string'}, - 'Id': {'type': 'integer'}, - 'Priority': {'type': 'number'}, - 'Tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'Votes': {'type': 'integer'}}, - 'required': ['Id', - 'Address', - 'Priority', - 'Tags', - 'Votes'], - 'type': 'object'}, - 'MongoUpgradeResults': {'additionalProperties': False, - 'properties': {'ha-members': {'items': {'$ref': '#/definitions/HAMember'}, - 'type': 'array'}, - 'master': {'$ref': '#/definitions/HAMember'}, - 'rs-members': {'items': {'$ref': '#/definitions/Member'}, - 'type': 'array'}}, - 'required': ['rs-members', - 'master', - 'ha-members'], - 'type': 'object'}, - 'MongoVersion': {'additionalProperties': False, - 'properties': {'engine': {'type': 'string'}, - 'major': {'type': 'integer'}, - 'minor': {'type': 'integer'}, - 'patch': {'type': 'string'}}, - 'required': ['major', - 'minor', - 'patch', - 'engine'], - 'type': 'object'}, - 'ResumeReplicationParams': {'additionalProperties': False, - 'properties': {'members': {'items': {'$ref': '#/definitions/Member'}, - 'type': 'array'}}, - 'required': ['members'], - 'type': 'object'}, - 'UpgradeMongoParams': {'additionalProperties': False, - 'properties': {'target': {'$ref': '#/definitions/MongoVersion'}}, - 'required': ['target'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'EnableHA': {'properties': {'Params': {'$ref': '#/definitions/ControllersSpecs'}, - 'Result': {'$ref': '#/definitions/ControllersChangeResults'}}, - 'type': 'object'}, - 'ResumeHAReplicationAfterUpgrade': {'properties': {'Params': {'$ref': '#/definitions/ResumeReplicationParams'}}, - 'type': 'object'}, - 'StopHAReplicationForUpgrade': {'properties': {'Params': {'$ref': '#/definitions/UpgradeMongoParams'}, - 'Result': {'$ref': '#/definitions/MongoUpgradeResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ControllersChangeResults) - async def EnableHA(self, specs): - ''' - specs : typing.Sequence[~ControllersSpec] - Returns -> typing.Sequence[~ControllersChangeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='HighAvailability', - request='EnableHA', - version=2, - params=_params) - _params['specs'] = specs - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ResumeHAReplicationAfterUpgrade(self, members): - ''' - members : typing.Sequence[~Member] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='HighAvailability', - request='ResumeHAReplicationAfterUpgrade', - version=2, - params=_params) - _params['members'] = members - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MongoUpgradeResults) - async def StopHAReplicationForUpgrade(self, target): - ''' - target : MongoVersion - Returns -> typing.Union[typing.Sequence[~HAMember], _ForwardRef('HAMember'), typing.Sequence[~Member]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='HighAvailability', - request='StopHAReplicationForUpgrade', - version=2, - params=_params) - _params['target'] = target - reply = await self.rpc(msg) - return reply - - - -class ImageManagerFacade(Type): - name = 'ImageManager' - version = 2 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ImageFilterParams': {'additionalProperties': False, - 'properties': {'images': {'items': {'$ref': '#/definitions/ImageSpec'}, - 'type': 'array'}}, - 'required': ['images'], - 'type': 'object'}, - 'ImageMetadata': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'created': {'format': 'date-time', - 'type': 'string'}, - 'kind': {'type': 'string'}, - 'series': {'type': 'string'}, - 'url': {'type': 'string'}}, - 'required': ['kind', - 'arch', - 'series', - 'url', - 'created'], - 'type': 'object'}, - 'ImageSpec': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'kind': {'type': 'string'}, - 'series': {'type': 'string'}}, - 'required': ['kind', 'arch', 'series'], - 'type': 'object'}, - 'ListImageResult': {'additionalProperties': False, - 'properties': {'result': {'items': {'$ref': '#/definitions/ImageMetadata'}, - 'type': 'array'}}, - 'required': ['result'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, - 'properties': {'DeleteImages': {'properties': {'Params': {'$ref': '#/definitions/ImageFilterParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ListImages': {'properties': {'Params': {'$ref': '#/definitions/ImageFilterParams'}, - 'Result': {'$ref': '#/definitions/ListImageResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def DeleteImages(self, images): - ''' - images : typing.Sequence[~ImageSpec] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ImageManager', - request='DeleteImages', - version=2, - params=_params) - _params['images'] = images - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ListImageResult) - async def ListImages(self, images): - ''' - images : typing.Sequence[~ImageSpec] - Returns -> typing.Sequence[~ImageMetadata] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ImageManager', - request='ListImages', - version=2, - params=_params) - _params['images'] = images - reply = await self.rpc(msg) - return reply - - - -class ImageMetadataFacade(Type): - name = 'ImageMetadata' - version = 2 - schema = {'definitions': {'CloudImageMetadata': {'additionalProperties': False, - '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'}}, - 'required': ['image-id', - 'region', - 'version', - 'series', - 'arch', - 'source', - 'priority'], - 'type': 'object'}, - 'CloudImageMetadataList': {'additionalProperties': False, - 'properties': {'metadata': {'items': {'$ref': '#/definitions/CloudImageMetadata'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ImageMetadataFilter': {'additionalProperties': False, - 'properties': {'arches': {'items': {'type': 'string'}, - 'type': 'array'}, - 'region': {'type': 'string'}, - 'root-storage-type': {'type': 'string'}, - 'series': {'items': {'type': 'string'}, - 'type': 'array'}, - 'stream': {'type': 'string'}, - 'virt-type': {'type': 'string'}}, - 'type': 'object'}, - 'ListCloudImageMetadataResult': {'additionalProperties': False, - 'properties': {'result': {'items': {'$ref': '#/definitions/CloudImageMetadata'}, - 'type': 'array'}}, - 'required': ['result'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MetadataImageIds': {'additionalProperties': False, - 'properties': {'image-ids': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['image-ids'], - 'type': 'object'}, - 'MetadataSaveParams': {'additionalProperties': False, - 'properties': {'metadata': {'items': {'$ref': '#/definitions/CloudImageMetadataList'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'Delete': {'properties': {'Params': {'$ref': '#/definitions/MetadataImageIds'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'List': {'properties': {'Params': {'$ref': '#/definitions/ImageMetadataFilter'}, - 'Result': {'$ref': '#/definitions/ListCloudImageMetadataResult'}}, - 'type': 'object'}, - 'Save': {'properties': {'Params': {'$ref': '#/definitions/MetadataSaveParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UpdateFromPublishedImages': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def Delete(self, image_ids): - ''' - image_ids : typing.Sequence[str] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ImageMetadata', - request='Delete', - version=2, - params=_params) - _params['image-ids'] = image_ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ListCloudImageMetadataResult) - async def List(self, arches, region, root_storage_type, series, stream, virt_type): - ''' - arches : typing.Sequence[str] - region : str - root_storage_type : str - series : typing.Sequence[str] - stream : str - virt_type : str - Returns -> typing.Sequence[~CloudImageMetadata] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ImageMetadata', - request='List', - version=2, - params=_params) - _params['arches'] = arches - _params['region'] = region - _params['root-storage-type'] = root_storage_type - _params['series'] = series - _params['stream'] = stream - _params['virt-type'] = virt_type - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Save(self, metadata): - ''' - metadata : typing.Sequence[~CloudImageMetadataList] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ImageMetadata', - request='Save', - version=2, - params=_params) - _params['metadata'] = metadata - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def UpdateFromPublishedImages(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ImageMetadata', - request='UpdateFromPublishedImages', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class LeadershipServiceFacade(Type): - name = 'LeadershipService' - version = 2 - schema = {'definitions': {'ApplicationTag': {'additionalProperties': False, - 'properties': {'Name': {'type': 'string'}}, - 'required': ['Name'], - 'type': 'object'}, - 'ClaimLeadershipBulkParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/ClaimLeadershipParams'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'ClaimLeadershipBulkResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ClaimLeadershipParams': {'additionalProperties': False, - 'properties': {'application-tag': {'type': 'string'}, - 'duration': {'type': 'number'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['application-tag', - 'unit-tag', - 'duration'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, - 'properties': {'BlockUntilLeadershipReleased': {'properties': {'Params': {'$ref': '#/definitions/ApplicationTag'}, - 'Result': {'$ref': '#/definitions/ErrorResult'}}, - 'type': 'object'}, - 'ClaimLeadership': {'properties': {'Params': {'$ref': '#/definitions/ClaimLeadershipBulkParams'}, - 'Result': {'$ref': '#/definitions/ClaimLeadershipBulkResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResult) - async def BlockUntilLeadershipReleased(self, name): - ''' - name : str - Returns -> Error - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='LeadershipService', - request='BlockUntilLeadershipReleased', - version=2, - params=_params) - _params['Name'] = name - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ClaimLeadershipBulkResults) - async def ClaimLeadership(self, params): - ''' - params : typing.Sequence[~ClaimLeadershipParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='LeadershipService', - request='ClaimLeadership', - version=2, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - -class MachineManagerFacade(Type): - name = 'MachineManager' - version = 2 - schema = {'definitions': {'AddMachineParams': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, - 'type': 'array'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'container-type': {'type': 'string'}, - 'disks': {'items': {'$ref': '#/definitions/Constraints'}, - 'type': 'array'}, - 'hardware-characteristics': {'$ref': '#/definitions/HardwareCharacteristics'}, - 'instance-id': {'type': 'string'}, - 'jobs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'nonce': {'type': 'string'}, - 'parent-id': {'type': 'string'}, - 'placement': {'$ref': '#/definitions/Placement'}, - 'series': {'type': 'string'}}, - 'required': ['series', - 'constraints', - 'jobs', - 'parent-id', - 'container-type', - 'instance-id', - 'nonce', - 'hardware-characteristics', - 'addresses'], - 'type': 'object'}, - 'AddMachines': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/AddMachineParams'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'AddMachinesResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'machine': {'type': 'string'}}, - 'required': ['machine'], - 'type': 'object'}, - 'AddMachinesResults': {'additionalProperties': False, - 'properties': {'machines': {'items': {'$ref': '#/definitions/AddMachinesResult'}, - 'type': 'array'}}, - 'required': ['machines'], - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'Constraints': {'additionalProperties': False, - 'properties': {'Count': {'type': 'integer'}, - 'Pool': {'type': 'string'}, - 'Size': {'type': 'integer'}}, - 'required': ['Pool', 'Size', 'Count'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'HardwareCharacteristics': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cpu-cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'InstanceType': {'additionalProperties': False, - 'properties': {'arches': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cost': {'type': 'integer'}, - 'cpu-cores': {'type': 'integer'}, - 'deprecated': {'type': 'boolean'}, - 'memory': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'root-disk': {'type': 'integer'}, - 'virt-type': {'type': 'string'}}, - 'required': ['arches', 'cpu-cores', 'memory'], - 'type': 'object'}, - 'InstanceTypesResult': {'additionalProperties': False, - 'properties': {'cost-currency': {'type': 'string'}, - 'cost-divisor': {'type': 'integer'}, - 'cost-unit': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'instance-types': {'items': {'$ref': '#/definitions/InstanceType'}, - 'type': 'array'}}, - 'type': 'object'}, - 'InstanceTypesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/InstanceTypesResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelInstanceTypesConstraint': {'additionalProperties': False, - 'properties': {'value': {'$ref': '#/definitions/Value'}}, - 'type': 'object'}, - 'ModelInstanceTypesConstraints': {'additionalProperties': False, - 'properties': {'constraints': {'items': {'$ref': '#/definitions/ModelInstanceTypesConstraint'}, - 'type': 'array'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'Placement': {'additionalProperties': False, - 'properties': {'directive': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['scope', 'directive'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}}, - 'type': 'object'}}, - 'properties': {'AddMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, - 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, - 'type': 'object'}, - 'InstanceTypes': {'properties': {'Params': {'$ref': '#/definitions/ModelInstanceTypesConstraints'}, - 'Result': {'$ref': '#/definitions/InstanceTypesResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddMachinesResults) - async def AddMachines(self, params): - ''' - params : typing.Sequence[~AddMachineParams] - Returns -> typing.Sequence[~AddMachinesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='AddMachines', - version=2, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(InstanceTypesResults) - async def InstanceTypes(self, constraints): - ''' - constraints : typing.Sequence[~ModelInstanceTypesConstraint] - Returns -> typing.Sequence[~InstanceTypesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='InstanceTypes', - version=2, - params=_params) - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - -class MetricsAdderFacade(Type): - name = 'MetricsAdder' - version = 2 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Metric': {'additionalProperties': False, - 'properties': {'key': {'type': 'string'}, - 'labels': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'time': {'format': 'date-time', - 'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['key', 'value', 'time'], - 'type': 'object'}, - 'MetricBatch': {'additionalProperties': False, - 'properties': {'charm-url': {'type': 'string'}, - 'created': {'format': 'date-time', - 'type': 'string'}, - 'metrics': {'items': {'$ref': '#/definitions/Metric'}, - 'type': 'array'}, - 'uuid': {'type': 'string'}}, - 'required': ['uuid', - 'charm-url', - 'created', - 'metrics'], - 'type': 'object'}, - 'MetricBatchParam': {'additionalProperties': False, - 'properties': {'batch': {'$ref': '#/definitions/MetricBatch'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'batch'], - 'type': 'object'}, - 'MetricBatchParams': {'additionalProperties': False, - 'properties': {'batches': {'items': {'$ref': '#/definitions/MetricBatchParam'}, - 'type': 'array'}}, - 'required': ['batches'], - 'type': 'object'}}, - 'properties': {'AddMetricBatches': {'properties': {'Params': {'$ref': '#/definitions/MetricBatchParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def AddMetricBatches(self, batches): - ''' - batches : typing.Sequence[~MetricBatchParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MetricsAdder', - request='AddMetricBatches', - version=2, - params=_params) - _params['batches'] = batches - reply = await self.rpc(msg) - return reply - - - -class MetricsDebugFacade(Type): - name = 'MetricsDebug' - version = 2 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityMetrics': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'metrics': {'items': {'$ref': '#/definitions/MetricResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MeterStatusParam': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'code'], - 'type': 'object'}, - 'MeterStatusParams': {'additionalProperties': False, - 'properties': {'statues': {'items': {'$ref': '#/definitions/MeterStatusParam'}, - 'type': 'array'}}, - 'required': ['statues'], - 'type': 'object'}, - 'MetricResult': {'additionalProperties': False, - 'properties': {'key': {'type': 'string'}, - 'labels': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'time': {'format': 'date-time', - 'type': 'string'}, - 'unit': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['time', - 'key', - 'value', - 'unit', - 'labels'], - 'type': 'object'}, - 'MetricResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/EntityMetrics'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'GetMetrics': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MetricResults'}}, - 'type': 'object'}, - 'SetMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/MeterStatusParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(MetricResults) - async def GetMetrics(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~EntityMetrics] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MetricsDebug', - request='GetMetrics', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetMeterStatus(self, statues): - ''' - statues : typing.Sequence[~MeterStatusParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MetricsDebug', - request='SetMeterStatus', - version=2, - params=_params) - _params['statues'] = statues - reply = await self.rpc(msg) - return reply - - - -class ModelConfigFacade(Type): - name = 'ModelConfig' - version = 2 - schema = {'definitions': {'ConfigValue': {'additionalProperties': False, - 'properties': {'source': {'type': 'string'}, - 'value': {'additionalProperties': True, - 'type': 'object'}}, - 'required': ['value', 'source'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelConfigResults': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelSLA': {'additionalProperties': False, - 'properties': {'ModelSLAInfo': {'$ref': '#/definitions/ModelSLAInfo'}, - 'creds': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['ModelSLAInfo', 'creds'], - 'type': 'object'}, - 'ModelSLAInfo': {'additionalProperties': False, - 'properties': {'level': {'type': 'string'}, - 'owner': {'type': 'string'}}, - 'required': ['level', 'owner'], - 'type': 'object'}, - 'ModelSequencesResult': {'additionalProperties': False, - 'properties': {'sequences': {'patternProperties': {'.*': {'type': 'integer'}}, - 'type': 'object'}}, - 'required': ['sequences'], - 'type': 'object'}, - 'ModelSet': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelUnset': {'additionalProperties': False, - 'properties': {'keys': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['keys'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}}, - 'properties': {'ModelGet': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}}, - 'type': 'object'}, - 'ModelSet': {'properties': {'Params': {'$ref': '#/definitions/ModelSet'}}, - 'type': 'object'}, - 'ModelUnset': {'properties': {'Params': {'$ref': '#/definitions/ModelUnset'}}, - 'type': 'object'}, - 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'Sequences': {'properties': {'Result': {'$ref': '#/definitions/ModelSequencesResult'}}, - 'type': 'object'}, - 'SetSLALevel': {'properties': {'Params': {'$ref': '#/definitions/ModelSLA'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ModelConfigResults) - async def ModelGet(self): - ''' - - Returns -> typing.Mapping[str, ~ConfigValue] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelConfig', - request='ModelGet', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ModelSet(self, config): - ''' - config : typing.Mapping[str, typing.Any] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelConfig', - request='ModelSet', - version=2, - params=_params) - _params['config'] = config - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ModelUnset(self, keys): - ''' - keys : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelConfig', - request='ModelUnset', - version=2, - params=_params) - _params['keys'] = keys - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def SLALevel(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelConfig', - request='SLALevel', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelSequencesResult) - async def Sequences(self): - ''' - - Returns -> typing.Mapping[str, int] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelConfig', - request='Sequences', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetSLALevel(self, creds, level): - ''' - creds : typing.Sequence[int] - level : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelConfig', - request='SetSLALevel', - version=2, - params=_params) - _params['creds'] = creds - _params['level'] = level - reply = await self.rpc(msg) - return reply - - - -class ModelManagerFacade(Type): - name = 'ModelManager' - version = 2 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'info', 'since'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineHardware': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'MapResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['result'], - 'type': 'object'}, - 'MapResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MapResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Model': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', 'uuid', 'owner-tag'], - 'type': 'object'}, - 'ModelCreateArgs': {'additionalProperties': False, - 'properties': {'cloud-tag': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'credential': {'type': 'string'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'region': {'type': 'string'}}, - 'required': ['name', 'owner-tag'], - 'type': 'object'}, - 'ModelDefaultValues': {'additionalProperties': False, - 'properties': {'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelDefaults': {'additionalProperties': False, - 'properties': {'controller': {'additionalProperties': True, - 'type': 'object'}, - 'default': {'additionalProperties': True, - 'type': 'object'}, - 'regions': {'items': {'$ref': '#/definitions/RegionDefaults'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ModelDefaultsResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ModelDefaults'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelInfo': {'additionalProperties': False, - 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, - 'cloud-credential-tag': {'type': 'string'}, - 'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'controller-uuid': {'type': 'string'}, - 'default-series': {'type': 'string'}, - 'life': {'type': 'string'}, - 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, - 'type': 'array'}, - 'migration': {'$ref': '#/definitions/ModelMigrationStatus'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'provider-type': {'type': 'string'}, - 'sla': {'$ref': '#/definitions/ModelSLAInfo'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'users': {'items': {'$ref': '#/definitions/ModelUserInfo'}, - 'type': 'array'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', - 'uuid', - 'controller-uuid', - 'cloud-tag', - 'owner-tag', - 'life', - 'users', - 'machines', - 'sla', - 'agent-version'], - 'type': 'object'}, - 'ModelInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ModelInfo'}}, - 'type': 'object'}, - 'ModelInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ModelInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ModelMachineInfo': {'additionalProperties': False, - 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'}, - 'has-vote': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'instance-id': {'type': 'string'}, - 'status': {'type': 'string'}, - 'wants-vote': {'type': 'boolean'}}, - 'required': ['id'], - 'type': 'object'}, - 'ModelMigrationStatus': {'additionalProperties': False, - 'properties': {'end': {'format': 'date-time', - 'type': 'string'}, - 'start': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'start'], - 'type': 'object'}, - 'ModelSLAInfo': {'additionalProperties': False, - 'properties': {'level': {'type': 'string'}, - 'owner': {'type': 'string'}}, - 'required': ['level', 'owner'], - 'type': 'object'}, - 'ModelStatus': {'additionalProperties': False, - 'properties': {'application-count': {'type': 'integer'}, - 'hosted-machine-count': {'type': 'integer'}, - 'life': {'type': 'string'}, - 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, - 'type': 'array'}, - 'model-tag': {'type': 'string'}, - 'owner-tag': {'type': 'string'}}, - 'required': ['model-tag', - 'life', - 'hosted-machine-count', - 'application-count', - 'owner-tag'], - 'type': 'object'}, - 'ModelStatusResults': {'additionalProperties': False, - 'properties': {'models': {'items': {'$ref': '#/definitions/ModelStatus'}, - 'type': 'array'}}, - 'required': ['models'], - 'type': 'object'}, - 'ModelUnsetKeys': {'additionalProperties': False, - 'properties': {'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'keys': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['keys'], - 'type': 'object'}, - 'ModelUserInfo': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'display-name': {'type': 'string'}, - 'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'user': {'type': 'string'}}, - 'required': ['user', - 'display-name', - 'last-connection', - 'access'], - 'type': 'object'}, - 'ModifyModelAccess': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'action': {'type': 'string'}, - 'model-tag': {'type': 'string'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag', - 'action', - 'access', - 'model-tag'], - 'type': 'object'}, - 'ModifyModelAccessRequest': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyModelAccess'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'RegionDefaults': {'additionalProperties': False, - 'properties': {'region-name': {'type': 'string'}, - 'value': {'additionalProperties': True, - 'type': 'object'}}, - 'required': ['region-name', 'value'], - 'type': 'object'}, - 'SetModelDefaults': {'additionalProperties': False, - 'properties': {'config': {'items': {'$ref': '#/definitions/ModelDefaultValues'}, - 'type': 'array'}}, - 'required': ['config'], - 'type': 'object'}, - 'UnsetModelDefaults': {'additionalProperties': False, - 'properties': {'keys': {'items': {'$ref': '#/definitions/ModelUnsetKeys'}, - 'type': 'array'}}, - 'required': ['keys'], - 'type': 'object'}, - 'UserModel': {'additionalProperties': False, - 'properties': {'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'model': {'$ref': '#/definitions/Model'}}, - 'required': ['model', 'last-connection'], - 'type': 'object'}, - 'UserModelList': {'additionalProperties': False, - 'properties': {'user-models': {'items': {'$ref': '#/definitions/UserModel'}, - 'type': 'array'}}, - 'required': ['user-models'], - 'type': 'object'}}, - 'properties': {'CreateModel': {'properties': {'Params': {'$ref': '#/definitions/ModelCreateArgs'}, - 'Result': {'$ref': '#/definitions/ModelInfo'}}, - 'type': 'object'}, - 'DestroyModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'DumpModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MapResults'}}, - 'type': 'object'}, - 'DumpModelsDB': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MapResults'}}, - 'type': 'object'}, - 'ListModels': {'properties': {'Params': {'$ref': '#/definitions/Entity'}, - 'Result': {'$ref': '#/definitions/UserModelList'}}, - 'type': 'object'}, - 'ModelDefaults': {'properties': {'Result': {'$ref': '#/definitions/ModelDefaultsResult'}}, - 'type': 'object'}, - 'ModelInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ModelInfoResults'}}, - 'type': 'object'}, - 'ModelStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ModelStatusResults'}}, - 'type': 'object'}, - 'ModifyModelAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyModelAccessRequest'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetModelDefaults': {'properties': {'Params': {'$ref': '#/definitions/SetModelDefaults'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UnsetModelDefaults': {'properties': {'Params': {'$ref': '#/definitions/UnsetModelDefaults'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ModelInfo) - async def CreateModel(self, cloud_tag, config, credential, name, owner_tag, region): - ''' - cloud_tag : str - config : typing.Mapping[str, typing.Any] - credential : str - name : str - owner_tag : str - region : str - Returns -> typing.Union[_ForwardRef('Number'), str, typing.Sequence[~ModelMachineInfo], _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence[~ModelUserInfo]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='CreateModel', - version=2, - params=_params) - _params['cloud-tag'] = cloud_tag - _params['config'] = config - _params['credential'] = credential - _params['name'] = name - _params['owner-tag'] = owner_tag - _params['region'] = region - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DestroyModels(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='DestroyModels', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MapResults) - async def DumpModels(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MapResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='DumpModels', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MapResults) - async def DumpModelsDB(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MapResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='DumpModelsDB', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UserModelList) - async def ListModels(self, tag): - ''' - tag : str - Returns -> typing.Sequence[~UserModel] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ListModels', - version=2, - params=_params) - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelDefaultsResult) - async def ModelDefaults(self): - ''' - - Returns -> typing.Mapping[str, ~ModelDefaults] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModelDefaults', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelInfoResults) - async def ModelInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ModelInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModelInfo', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelStatusResults) - async def ModelStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ModelStatus] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModelStatus', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ModifyModelAccess(self, changes): - ''' - changes : typing.Sequence[~ModifyModelAccess] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModifyModelAccess', - version=2, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetModelDefaults(self, config): - ''' - config : typing.Sequence[~ModelDefaultValues] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='SetModelDefaults', - version=2, - params=_params) - _params['config'] = config - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UnsetModelDefaults(self, keys): - ''' - keys : typing.Sequence[~ModelUnsetKeys] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='UnsetModelDefaults', - version=2, - params=_params) - _params['keys'] = keys - reply = await self.rpc(msg) - return reply - - - -class ProxyUpdaterFacade(Type): - name = 'ProxyUpdater' - version = 2 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ProxyConfig': {'additionalProperties': False, - 'properties': {'ftp': {'type': 'string'}, - 'http': {'type': 'string'}, - 'https': {'type': 'string'}, - 'no-proxy': {'type': 'string'}}, - 'required': ['http', - 'https', - 'ftp', - 'no-proxy'], - 'type': 'object'}, - 'ProxyConfigResult': {'additionalProperties': False, - 'properties': {'apt-proxy-settings': {'$ref': '#/definitions/ProxyConfig'}, - 'error': {'$ref': '#/definitions/Error'}, - 'juju-proxy-settings': {'$ref': '#/definitions/ProxyConfig'}, - 'legacy-proxy-settings': {'$ref': '#/definitions/ProxyConfig'}, - 'snap-proxy-settings': {'$ref': '#/definitions/ProxyConfig'}, - 'snap-store-assertions': {'type': 'string'}, - 'snap-store-id': {'type': 'string'}}, - 'required': ['legacy-proxy-settings', - 'juju-proxy-settings'], - 'type': 'object'}, - 'ProxyConfigResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ProxyConfigResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'ProxyConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ProxyConfigResults'}}, - 'type': 'object'}, - 'WatchForProxyConfigAndAPIHostPortChanges': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ProxyConfigResults) - async def ProxyConfig(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ProxyConfigResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ProxyUpdater', - request='ProxyConfig', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchForProxyConfigAndAPIHostPortChanges(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ProxyUpdater', - request='WatchForProxyConfigAndAPIHostPortChanges', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class RebootFacade(Type): - name = 'Reboot' - version = 2 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'RebootActionResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'type': 'object'}, - 'RebootActionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RebootActionResult'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'ClearReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'GetRebootAction': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/RebootActionResults'}}, - 'type': 'object'}, - 'RequestReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchForRebootEvent': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def ClearReboot(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Reboot', - request='ClearReboot', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RebootActionResults) - async def GetRebootAction(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~RebootActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Reboot', - request='GetRebootAction', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RequestReboot(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Reboot', - request='RequestReboot', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForRebootEvent(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Reboot', - request='WatchForRebootEvent', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class ResumerFacade(Type): - name = 'Resumer' - version = 2 - schema = {'properties': {'ResumeTransactions': {'type': 'object'}}, 'type': 'object'} - - - @ReturnMapping(None) - async def ResumeTransactions(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Resumer', - request='ResumeTransactions', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class SSHClientFacade(Type): - name = 'SSHClient' - version = 2 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'SSHAddressResult': {'additionalProperties': False, - 'properties': {'address': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'SSHAddressResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/SSHAddressResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SSHAddressesResult': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['addresses'], - 'type': 'object'}, - 'SSHAddressesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/SSHAddressesResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SSHProxyResult': {'additionalProperties': False, - 'properties': {'use-proxy': {'type': 'boolean'}}, - 'required': ['use-proxy'], - 'type': 'object'}, - 'SSHPublicKeysResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'public-keys': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'SSHPublicKeysResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/SSHPublicKeysResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'AllAddresses': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/SSHAddressesResults'}}, - 'type': 'object'}, - 'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/SSHAddressResults'}}, - 'type': 'object'}, - 'Proxy': {'properties': {'Result': {'$ref': '#/definitions/SSHProxyResult'}}, - 'type': 'object'}, - 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/SSHAddressResults'}}, - 'type': 'object'}, - 'PublicKeys': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/SSHPublicKeysResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(SSHAddressesResults) - async def AllAddresses(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~SSHAddressesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='SSHClient', - request='AllAddresses', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SSHAddressResults) - async def PrivateAddress(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~SSHAddressResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='SSHClient', - request='PrivateAddress', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SSHProxyResult) - async def Proxy(self): - ''' - - Returns -> bool - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='SSHClient', - request='Proxy', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SSHAddressResults) - async def PublicAddress(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~SSHAddressResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='SSHClient', - request='PublicAddress', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SSHPublicKeysResults) - async def PublicKeys(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~SSHPublicKeysResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='SSHClient', - request='PublicKeys', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class SingularFacade(Type): - name = 'Singular' - version = 2 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'SingularClaim': {'additionalProperties': False, - 'properties': {'claimant-tag': {'type': 'string'}, - 'duration': {'type': 'integer'}, - 'entity-tag': {'type': 'string'}}, - 'required': ['entity-tag', - 'claimant-tag', - 'duration'], - 'type': 'object'}, - 'SingularClaims': {'additionalProperties': False, - 'properties': {'claims': {'items': {'$ref': '#/definitions/SingularClaim'}, - 'type': 'array'}}, - 'required': ['claims'], - 'type': 'object'}}, - 'properties': {'Claim': {'properties': {'Params': {'$ref': '#/definitions/SingularClaims'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Wait': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def Claim(self, claims): - ''' - claims : typing.Sequence[~SingularClaim] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Singular', - request='Claim', - version=2, - params=_params) - _params['claims'] = claims - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Wait(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Singular', - request='Wait', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class SpacesFacade(Type): - name = 'Spaces' - version = 2 - schema = {'definitions': {'CreateSpaceParams': {'additionalProperties': False, - 'properties': {'provider-id': {'type': 'string'}, - 'public': {'type': 'boolean'}, - 'space-tag': {'type': 'string'}, - 'subnet-tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['subnet-tags', - 'space-tag', - 'public'], - 'type': 'object'}, - 'CreateSpacesParams': {'additionalProperties': False, - 'properties': {'spaces': {'items': {'$ref': '#/definitions/CreateSpaceParams'}, - 'type': 'array'}}, - 'required': ['spaces'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ListSpacesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/Space'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Space': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}, - 'subnets': {'items': {'$ref': '#/definitions/Subnet'}, - 'type': 'array'}}, - 'required': ['name', 'subnets'], - 'type': 'object'}, - 'Subnet': {'additionalProperties': False, - 'properties': {'cidr': {'type': 'string'}, - 'life': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-network-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'space-tag': {'type': 'string'}, - 'status': {'type': 'string'}, - 'vlan-tag': {'type': 'integer'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['cidr', - 'vlan-tag', - 'life', - 'space-tag', - 'zones'], - 'type': 'object'}}, - 'properties': {'CreateSpaces': {'properties': {'Params': {'$ref': '#/definitions/CreateSpacesParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ListSpaces': {'properties': {'Result': {'$ref': '#/definitions/ListSpacesResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def CreateSpaces(self, spaces): - ''' - spaces : typing.Sequence[~CreateSpaceParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Spaces', - request='CreateSpaces', - version=2, - params=_params) - _params['spaces'] = spaces - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ListSpacesResults) - async def ListSpaces(self): - ''' - - Returns -> typing.Sequence[~Space] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Spaces', - request='ListSpaces', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class StatusHistoryFacade(Type): - name = 'StatusHistory' - version = 2 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'StatusHistoryPruneArgs': {'additionalProperties': False, - 'properties': {'max-history-mb': {'type': 'integer'}, - 'max-history-time': {'type': 'integer'}}, - 'required': ['max-history-time', - 'max-history-mb'], - 'type': 'object'}}, - 'properties': {'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'Prune': {'properties': {'Params': {'$ref': '#/definitions/StatusHistoryPruneArgs'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StatusHistory', - request='ModelConfig', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Prune(self, max_history_mb, max_history_time): - ''' - max_history_mb : int - max_history_time : int - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StatusHistory', - request='Prune', - version=2, - params=_params) - _params['max-history-mb'] = max_history_mb - _params['max-history-time'] = max_history_time - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StatusHistory', - request='WatchForModelConfigChanges', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class SubnetsFacade(Type): - name = 'Subnets' - version = 2 - schema = {'definitions': {'AddSubnetParams': {'additionalProperties': False, - 'properties': {'provider-network-id': {'type': 'string'}, - 'space-tag': {'type': 'string'}, - 'subnet-provider-id': {'type': 'string'}, - 'subnet-tag': {'type': 'string'}, - 'vlan-tag': {'type': 'integer'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['space-tag'], - 'type': 'object'}, - 'AddSubnetsParams': {'additionalProperties': False, - 'properties': {'subnets': {'items': {'$ref': '#/definitions/AddSubnetParams'}, - 'type': 'array'}}, - 'required': ['subnets'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ListSubnetsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/Subnet'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'SpaceResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'SpaceResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/SpaceResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Subnet': {'additionalProperties': False, - 'properties': {'cidr': {'type': 'string'}, - 'life': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-network-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'space-tag': {'type': 'string'}, - 'status': {'type': 'string'}, - 'vlan-tag': {'type': 'integer'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['cidr', - 'vlan-tag', - 'life', - 'space-tag', - 'zones'], - 'type': 'object'}, - 'SubnetsFilters': {'additionalProperties': False, - 'properties': {'space-tag': {'type': 'string'}, - 'zone': {'type': 'string'}}, - 'type': 'object'}, - 'ZoneResult': {'additionalProperties': False, - 'properties': {'available': {'type': 'boolean'}, - 'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}}, - 'required': ['name', 'available'], - 'type': 'object'}, - 'ZoneResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ZoneResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'AddSubnets': {'properties': {'Params': {'$ref': '#/definitions/AddSubnetsParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'AllSpaces': {'properties': {'Result': {'$ref': '#/definitions/SpaceResults'}}, - 'type': 'object'}, - 'AllZones': {'properties': {'Result': {'$ref': '#/definitions/ZoneResults'}}, - 'type': 'object'}, - 'ListSubnets': {'properties': {'Params': {'$ref': '#/definitions/SubnetsFilters'}, - 'Result': {'$ref': '#/definitions/ListSubnetsResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def AddSubnets(self, subnets): - ''' - subnets : typing.Sequence[~AddSubnetParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Subnets', - request='AddSubnets', - version=2, - params=_params) - _params['subnets'] = subnets - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SpaceResults) - async def AllSpaces(self): - ''' - - Returns -> typing.Sequence[~SpaceResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Subnets', - request='AllSpaces', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ZoneResults) - async def AllZones(self): - ''' - - Returns -> typing.Sequence[~ZoneResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Subnets', - request='AllZones', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ListSubnetsResults) - async def ListSubnets(self, space_tag, zone): - ''' - space_tag : str - zone : str - Returns -> typing.Sequence[~Subnet] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Subnets', - request='ListSubnets', - version=2, - params=_params) - _params['space-tag'] = space_tag - _params['zone'] = zone - reply = await self.rpc(msg) - return reply - - - -class UserManagerFacade(Type): - name = 'UserManager' - version = 2 - schema = {'definitions': {'AddUser': {'additionalProperties': False, - 'properties': {'display-name': {'type': 'string'}, - 'password': {'type': 'string'}, - 'username': {'type': 'string'}}, - 'required': ['username', 'display-name'], - 'type': 'object'}, - 'AddUserResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'secret-key': {'items': {'type': 'integer'}, - 'type': 'array'}, - 'tag': {'type': 'string'}}, - 'type': 'object'}, - 'AddUserResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/AddUserResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'AddUsers': {'additionalProperties': False, - 'properties': {'users': {'items': {'$ref': '#/definitions/AddUser'}, - 'type': 'array'}}, - 'required': ['users'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityPassword': {'additionalProperties': False, - 'properties': {'password': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'password'], - 'type': 'object'}, - 'EntityPasswords': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'UserInfo': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'created-by': {'type': 'string'}, - 'date-created': {'format': 'date-time', - 'type': 'string'}, - 'disabled': {'type': 'boolean'}, - 'display-name': {'type': 'string'}, - 'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'username': {'type': 'string'}}, - 'required': ['username', - 'display-name', - 'access', - 'created-by', - 'date-created', - 'disabled'], - 'type': 'object'}, - 'UserInfoRequest': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'include-disabled': {'type': 'boolean'}}, - 'required': ['entities', - 'include-disabled'], - 'type': 'object'}, - 'UserInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/UserInfo'}}, - 'type': 'object'}, - 'UserInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/UserInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'AddUser': {'properties': {'Params': {'$ref': '#/definitions/AddUsers'}, - 'Result': {'$ref': '#/definitions/AddUserResults'}}, - 'type': 'object'}, - 'DisableUser': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'EnableUser': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RemoveUser': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ResetPassword': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/AddUserResults'}}, - 'type': 'object'}, - 'SetPassword': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UserInfo': {'properties': {'Params': {'$ref': '#/definitions/UserInfoRequest'}, - 'Result': {'$ref': '#/definitions/UserInfoResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddUserResults) - async def AddUser(self, users): - ''' - users : typing.Sequence[~AddUser] - Returns -> typing.Sequence[~AddUserResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='AddUser', - version=2, - params=_params) - _params['users'] = users - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DisableUser(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='DisableUser', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnableUser(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='EnableUser', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RemoveUser(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='RemoveUser', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddUserResults) - async def ResetPassword(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~AddUserResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='ResetPassword', - version=2, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetPassword(self, changes): - ''' - changes : typing.Sequence[~EntityPassword] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='SetPassword', - version=2, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UserInfoResults) - async def UserInfo(self, entities, include_disabled): - ''' - entities : typing.Sequence[~Entity] - include_disabled : bool - Returns -> typing.Sequence[~UserInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='UserManager', - request='UserInfo', - version=2, - params=_params) - _params['entities'] = entities - _params['include-disabled'] = include_disabled - reply = await self.rpc(msg) - return reply - - - -class VolumeAttachmentsWatcherFacade(Type): - name = 'VolumeAttachmentsWatcher' - version = 2 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineStorageId': {'additionalProperties': False, - 'properties': {'attachment-tag': {'type': 'string'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['machine-tag', - 'attachment-tag'], - 'type': 'object'}, - 'MachineStorageIdsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/MachineStorageId'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResult'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(MachineStorageIdsWatchResult) - async def Next(self): - ''' - - Returns -> typing.Union[typing.Sequence[~MachineStorageId], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='VolumeAttachmentsWatcher', - request='Next', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Stop(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='VolumeAttachmentsWatcher', - request='Stop', - version=2, - params=_params) - - reply = await self.rpc(msg) - return reply diff --git a/modules/libjuju/juju/client/_client3.py b/modules/libjuju/juju/client/_client3.py deleted file mode 100644 index 67840db..0000000 --- a/modules/libjuju/juju/client/_client3.py +++ /dev/null @@ -1,6749 +0,0 @@ -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. - -from juju.client._definitions import * -from juju.client.facade import ReturnMapping, Type - - -class ActionFacade(Type): - name = 'Action' - version = 3 - schema = {'definitions': {'Action': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'parameters': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'receiver': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'receiver', 'name'], - 'type': 'object'}, - 'ActionResult': {'additionalProperties': False, - 'properties': {'action': {'$ref': '#/definitions/Action'}, - 'completed': {'format': 'date-time', - 'type': 'string'}, - 'enqueued': {'format': 'date-time', - 'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'message': {'type': 'string'}, - 'output': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'started': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'type': 'object'}, - 'ActionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ActionSpec': {'additionalProperties': False, - 'properties': {'description': {'type': 'string'}, - 'params': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['description', 'params'], - 'type': 'object'}, - 'Actions': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/Action'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ActionsByName': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionResult'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}}, - 'type': 'object'}, - 'ActionsByNames': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionsByName'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ActionsByReceiver': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionResult'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'receiver': {'type': 'string'}}, - 'type': 'object'}, - 'ActionsByReceivers': {'additionalProperties': False, - 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionsByReceiver'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ApplicationCharmActionsResult': {'additionalProperties': False, - 'properties': {'actions': {'patternProperties': {'.*': {'$ref': '#/definitions/ActionSpec'}}, - 'type': 'object'}, - 'application-tag': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ApplicationsCharmActionsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationCharmActionsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'FindActionsByNames': {'additionalProperties': False, - 'properties': {'names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FindTags': {'additionalProperties': False, - 'properties': {'prefixes': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['prefixes'], - 'type': 'object'}, - 'FindTagsResults': {'additionalProperties': False, - 'properties': {'matches': {'patternProperties': {'.*': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'required': ['matches'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'RunParams': {'additionalProperties': False, - 'properties': {'applications': {'items': {'type': 'string'}, - 'type': 'array'}, - 'commands': {'type': 'string'}, - 'machines': {'items': {'type': 'string'}, - 'type': 'array'}, - 'timeout': {'type': 'integer'}, - 'units': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['commands', 'timeout'], - 'type': 'object'}}, - 'properties': {'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'ApplicationsCharmsActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ApplicationsCharmActionsResults'}}, - 'type': 'object'}, - 'Cancel': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'Enqueue': {'properties': {'Params': {'$ref': '#/definitions/Actions'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'FindActionTagsByPrefix': {'properties': {'Params': {'$ref': '#/definitions/FindTags'}, - 'Result': {'$ref': '#/definitions/FindTagsResults'}}, - 'type': 'object'}, - 'FindActionsByNames': {'properties': {'Params': {'$ref': '#/definitions/FindActionsByNames'}, - 'Result': {'$ref': '#/definitions/ActionsByNames'}}, - 'type': 'object'}, - 'ListAll': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, - 'type': 'object'}, - 'ListCompleted': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, - 'type': 'object'}, - 'ListPending': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, - 'type': 'object'}, - 'ListRunning': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, - 'type': 'object'}, - 'Run': {'properties': {'Params': {'$ref': '#/definitions/RunParams'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'RunOnAllMachines': {'properties': {'Params': {'$ref': '#/definitions/RunParams'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ActionResults) - async def Actions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='Actions', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationsCharmActionsResults) - async def ApplicationsCharmsActions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ApplicationCharmActionsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='ApplicationsCharmsActions', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionResults) - async def Cancel(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='Cancel', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionResults) - async def Enqueue(self, actions): - ''' - actions : typing.Sequence[~Action] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='Enqueue', - version=3, - params=_params) - _params['actions'] = actions - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FindTagsResults) - async def FindActionTagsByPrefix(self, prefixes): - ''' - prefixes : typing.Sequence[str] - Returns -> typing.Sequence[~Entity] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='FindActionTagsByPrefix', - version=3, - params=_params) - _params['prefixes'] = prefixes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionsByNames) - async def FindActionsByNames(self, names): - ''' - names : typing.Sequence[str] - Returns -> typing.Sequence[~ActionsByName] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='FindActionsByNames', - version=3, - params=_params) - _params['names'] = names - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionsByReceivers) - async def ListAll(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionsByReceiver] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='ListAll', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionsByReceivers) - async def ListCompleted(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionsByReceiver] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='ListCompleted', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionsByReceivers) - async def ListPending(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionsByReceiver] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='ListPending', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionsByReceivers) - async def ListRunning(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionsByReceiver] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='ListRunning', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionResults) - async def Run(self, applications, commands, machines, timeout, units): - ''' - applications : typing.Sequence[str] - commands : str - machines : typing.Sequence[str] - timeout : int - units : typing.Sequence[str] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='Run', - version=3, - params=_params) - _params['applications'] = applications - _params['commands'] = commands - _params['machines'] = machines - _params['timeout'] = timeout - _params['units'] = units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionResults) - async def RunOnAllMachines(self, applications, commands, machines, timeout, units): - ''' - applications : typing.Sequence[str] - commands : str - machines : typing.Sequence[str] - timeout : int - units : typing.Sequence[str] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='RunOnAllMachines', - version=3, - params=_params) - _params['applications'] = applications - _params['commands'] = commands - _params['machines'] = machines - _params['timeout'] = timeout - _params['units'] = units - reply = await self.rpc(msg) - return reply - - - -class ApplicationFacade(Type): - name = 'Application' - version = 3 - schema = {'definitions': {'AddApplicationUnits': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'num-units': {'type': 'integer'}, - 'placement': {'items': {'$ref': '#/definitions/Placement'}, - 'type': 'array'}}, - 'required': ['application', - 'num-units', - 'placement'], - 'type': 'object'}, - 'AddApplicationUnitsResults': {'additionalProperties': False, - 'properties': {'units': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['units'], - 'type': 'object'}, - 'AddRelation': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'AddRelationResults': {'additionalProperties': False, - 'properties': {'endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, - 'type': 'object'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'ApplicationCharmRelations': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationCharmRelationsResults': {'additionalProperties': False, - 'properties': {'charm-relations': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['charm-relations'], - 'type': 'object'}, - 'ApplicationDeploy': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'channel': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'config-yaml': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'num-units': {'type': 'integer'}, - 'placement': {'items': {'$ref': '#/definitions/Placement'}, - 'type': 'array'}, - 'resources': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'series': {'type': 'string'}, - 'storage': {'patternProperties': {'.*': {'$ref': '#/definitions/Constraints'}}, - 'type': 'object'}}, - 'required': ['application', - 'series', - 'charm-url', - 'channel', - 'num-units', - 'config-yaml', - 'constraints'], - 'type': 'object'}, - 'ApplicationDestroy': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationExpose': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationGet': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationGetResults': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'charm': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'series': {'type': 'string'}}, - 'required': ['application', - 'charm', - 'config', - 'constraints', - 'series'], - 'type': 'object'}, - 'ApplicationMetricCredential': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'metrics-credentials': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['application', - 'metrics-credentials'], - 'type': 'object'}, - 'ApplicationMetricCredentials': {'additionalProperties': False, - 'properties': {'creds': {'items': {'$ref': '#/definitions/ApplicationMetricCredential'}, - 'type': 'array'}}, - 'required': ['creds'], - 'type': 'object'}, - 'ApplicationSet': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'options': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['application', 'options'], - 'type': 'object'}, - 'ApplicationSetCharm': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'channel': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'config-settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'config-settings-yaml': {'type': 'string'}, - 'force-series': {'type': 'boolean'}, - 'force-units': {'type': 'boolean'}, - 'resource-ids': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'storage-constraints': {'patternProperties': {'.*': {'$ref': '#/definitions/StorageConstraints'}}, - 'type': 'object'}}, - 'required': ['application', - 'charm-url', - 'channel', - 'force-units', - 'force-series'], - 'type': 'object'}, - 'ApplicationUnexpose': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationUnset': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'options': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['application', 'options'], - 'type': 'object'}, - 'ApplicationUpdate': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'force-charm-url': {'type': 'boolean'}, - 'force-series': {'type': 'boolean'}, - 'min-units': {'type': 'integer'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'settings-yaml': {'type': 'string'}}, - 'required': ['application', - 'charm-url', - 'force-charm-url', - 'force-series', - 'settings-yaml'], - 'type': 'object'}, - 'ApplicationsDeploy': {'additionalProperties': False, - 'properties': {'applications': {'items': {'$ref': '#/definitions/ApplicationDeploy'}, - 'type': 'array'}}, - 'required': ['applications'], - 'type': 'object'}, - 'CharmRelation': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'optional': {'type': 'boolean'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'optional', - 'limit', - 'scope'], - 'type': 'object'}, - 'Constraints': {'additionalProperties': False, - 'properties': {'Count': {'type': 'integer'}, - 'Pool': {'type': 'string'}, - 'Size': {'type': 'integer'}}, - 'required': ['Pool', 'Size', 'Count'], - 'type': 'object'}, - 'DestroyApplicationUnits': {'additionalProperties': False, - 'properties': {'unit-names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['unit-names'], - 'type': 'object'}, - 'DestroyRelation': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GetApplicationConstraints': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'GetConstraintsResults': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Placement': {'additionalProperties': False, - 'properties': {'directive': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['scope', 'directive'], - 'type': 'object'}, - 'SetConstraints': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['application', 'constraints'], - 'type': 'object'}, - 'StorageConstraints': {'additionalProperties': False, - 'properties': {'count': {'type': 'integer'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}}, - 'type': 'object'}}, - 'properties': {'AddRelation': {'properties': {'Params': {'$ref': '#/definitions/AddRelation'}, - 'Result': {'$ref': '#/definitions/AddRelationResults'}}, - 'type': 'object'}, - 'AddUnits': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationUnits'}, - 'Result': {'$ref': '#/definitions/AddApplicationUnitsResults'}}, - 'type': 'object'}, - 'CharmRelations': {'properties': {'Params': {'$ref': '#/definitions/ApplicationCharmRelations'}, - 'Result': {'$ref': '#/definitions/ApplicationCharmRelationsResults'}}, - 'type': 'object'}, - 'Deploy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationsDeploy'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationDestroy'}}, - 'type': 'object'}, - 'DestroyRelation': {'properties': {'Params': {'$ref': '#/definitions/DestroyRelation'}}, - 'type': 'object'}, - 'DestroyUnits': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationUnits'}}, - 'type': 'object'}, - 'Expose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationExpose'}}, - 'type': 'object'}, - 'Get': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, - 'Result': {'$ref': '#/definitions/ApplicationGetResults'}}, - 'type': 'object'}, - 'GetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, - 'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'GetConstraints': {'properties': {'Params': {'$ref': '#/definitions/GetApplicationConstraints'}, - 'Result': {'$ref': '#/definitions/GetConstraintsResults'}}, - 'type': 'object'}, - 'Set': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSet'}}, - 'type': 'object'}, - 'SetCharm': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSetCharm'}}, - 'type': 'object'}, - 'SetConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, - 'type': 'object'}, - 'SetMetricCredentials': {'properties': {'Params': {'$ref': '#/definitions/ApplicationMetricCredentials'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Unexpose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnexpose'}}, - 'type': 'object'}, - 'Unset': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnset'}}, - 'type': 'object'}, - 'Update': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUpdate'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddRelationResults) - async def AddRelation(self, endpoints): - ''' - endpoints : typing.Sequence[str] - Returns -> typing.Mapping[str, ~CharmRelation] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='AddRelation', - version=3, - params=_params) - _params['endpoints'] = endpoints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddApplicationUnitsResults) - async def AddUnits(self, application, num_units, placement): - ''' - application : str - num_units : int - placement : typing.Sequence[~Placement] - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='AddUnits', - version=3, - params=_params) - _params['application'] = application - _params['num-units'] = num_units - _params['placement'] = placement - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationCharmRelationsResults) - async def CharmRelations(self, application): - ''' - application : str - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='CharmRelations', - version=3, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Deploy(self, applications): - ''' - applications : typing.Sequence[~ApplicationDeploy] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Deploy', - version=3, - params=_params) - _params['applications'] = applications - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Destroy(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Destroy', - version=3, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyRelation(self, endpoints): - ''' - endpoints : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyRelation', - version=3, - params=_params) - _params['endpoints'] = endpoints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyUnits(self, unit_names): - ''' - unit_names : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyUnits', - version=3, - params=_params) - _params['unit-names'] = unit_names - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Expose(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Expose', - version=3, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationGetResults) - async def Get(self, application): - ''' - application : str - Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Get', - version=3, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def GetCharmURL(self, application): - ''' - application : str - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetCharmURL', - version=3, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(GetConstraintsResults) - async def GetConstraints(self, application): - ''' - application : str - Returns -> Value - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetConstraints', - version=3, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Set(self, application, options): - ''' - application : str - options : typing.Mapping[str, str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Set', - version=3, - params=_params) - _params['application'] = application - _params['options'] = options - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetCharm(self, application, channel, charm_url, config_settings, config_settings_yaml, force_series, force_units, resource_ids, storage_constraints): - ''' - application : str - channel : str - charm_url : str - config_settings : typing.Mapping[str, str] - config_settings_yaml : str - force_series : bool - force_units : bool - resource_ids : typing.Mapping[str, str] - storage_constraints : typing.Mapping[str, ~StorageConstraints] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetCharm', - version=3, - params=_params) - _params['application'] = application - _params['channel'] = channel - _params['charm-url'] = charm_url - _params['config-settings'] = config_settings - _params['config-settings-yaml'] = config_settings_yaml - _params['force-series'] = force_series - _params['force-units'] = force_units - _params['resource-ids'] = resource_ids - _params['storage-constraints'] = storage_constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetConstraints(self, application, constraints): - ''' - application : str - constraints : Value - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetConstraints', - version=3, - params=_params) - _params['application'] = application - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetMetricCredentials(self, creds): - ''' - creds : typing.Sequence[~ApplicationMetricCredential] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetMetricCredentials', - version=3, - params=_params) - _params['creds'] = creds - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Unexpose(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Unexpose', - version=3, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Unset(self, application, options): - ''' - application : str - options : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Unset', - version=3, - params=_params) - _params['application'] = application - _params['options'] = options - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Update(self, application, charm_url, constraints, force_charm_url, force_series, min_units, settings, settings_yaml): - ''' - application : str - charm_url : str - constraints : Value - force_charm_url : bool - force_series : bool - min_units : int - settings : typing.Mapping[str, str] - settings_yaml : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Update', - version=3, - params=_params) - _params['application'] = application - _params['charm-url'] = charm_url - _params['constraints'] = constraints - _params['force-charm-url'] = force_charm_url - _params['force-series'] = force_series - _params['min-units'] = min_units - _params['settings'] = settings - _params['settings-yaml'] = settings_yaml - reply = await self.rpc(msg) - return reply - - - -class CloudFacade(Type): - name = 'Cloud' - version = 3 - schema = {'definitions': {'AddCloudArgs': {'additionalProperties': False, - 'properties': {'cloud': {'$ref': '#/definitions/Cloud'}, - 'name': {'type': 'string'}}, - 'required': ['cloud', 'name'], - 'type': 'object'}, - 'Cloud': {'additionalProperties': False, - 'properties': {'auth-types': {'items': {'type': 'string'}, - 'type': 'array'}, - 'ca-certificates': {'items': {'type': 'string'}, - 'type': 'array'}, - 'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'regions': {'items': {'$ref': '#/definitions/CloudRegion'}, - 'type': 'array'}, - 'storage-endpoint': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type'], - 'type': 'object'}, - 'CloudCredential': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'auth-type': {'type': 'string'}, - 'redacted': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['auth-type'], - 'type': 'object'}, - 'CloudCredentialArg': {'additionalProperties': False, - 'properties': {'cloud-name': {'type': 'string'}, - 'credential-name': {'type': 'string'}}, - 'required': ['cloud-name', - 'credential-name'], - 'type': 'object'}, - 'CloudCredentialArgs': {'additionalProperties': False, - 'properties': {'credentials': {'items': {'$ref': '#/definitions/CloudCredentialArg'}, - 'type': 'array'}, - 'include-secrets': {'type': 'boolean'}}, - 'required': ['include-secrets'], - 'type': 'object'}, - 'CloudCredentialResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/CloudCredential'}}, - 'type': 'object'}, - 'CloudCredentialResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CloudCredentialResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'CloudDetails': {'additionalProperties': False, - 'properties': {'auth-types': {'items': {'type': 'string'}, - 'type': 'array'}, - 'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'regions': {'items': {'$ref': '#/definitions/CloudRegion'}, - 'type': 'array'}, - 'storage-endpoint': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type'], - 'type': 'object'}, - 'CloudInfo': {'additionalProperties': False, - 'properties': {'CloudDetails': {'$ref': '#/definitions/CloudDetails'}, - 'users': {'items': {'$ref': '#/definitions/CloudUserInfo'}, - 'type': 'array'}}, - 'required': ['CloudDetails', 'users'], - 'type': 'object'}, - 'CloudInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/CloudInfo'}}, - 'type': 'object'}, - 'CloudInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CloudInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'CloudInstanceTypesConstraint': {'additionalProperties': False, - 'properties': {'cloud-tag': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'region': {'type': 'string'}}, - 'required': ['cloud-tag', - 'region'], - 'type': 'object'}, - 'CloudInstanceTypesConstraints': {'additionalProperties': False, - 'properties': {'constraints': {'items': {'$ref': '#/definitions/CloudInstanceTypesConstraint'}, - 'type': 'array'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'CloudRegion': {'additionalProperties': False, - 'properties': {'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'name': {'type': 'string'}, - 'storage-endpoint': {'type': 'string'}}, - 'required': ['name'], - 'type': 'object'}, - 'CloudResult': {'additionalProperties': False, - 'properties': {'cloud': {'$ref': '#/definitions/Cloud'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'CloudResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CloudResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'CloudUserInfo': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'display-name': {'type': 'string'}, - 'user': {'type': 'string'}}, - 'required': ['user', - 'display-name', - 'access'], - 'type': 'object'}, - 'CloudsResult': {'additionalProperties': False, - 'properties': {'clouds': {'patternProperties': {'.*': {'$ref': '#/definitions/Cloud'}}, - 'type': 'object'}}, - 'type': 'object'}, - 'ControllerCredentialInfo': {'additionalProperties': False, - 'properties': {'content': {'$ref': '#/definitions/CredentialContent'}, - 'models': {'items': {'$ref': '#/definitions/ModelAccess'}, - 'type': 'array'}}, - 'type': 'object'}, - 'CredentialContent': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'auth-type': {'type': 'string'}, - 'cloud': {'type': 'string'}, - 'name': {'type': 'string'}}, - 'required': ['name', - 'cloud', - 'auth-type'], - 'type': 'object'}, - 'CredentialContentResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ControllerCredentialInfo'}}, - 'type': 'object'}, - 'CredentialContentResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CredentialContentResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'InstanceType': {'additionalProperties': False, - 'properties': {'arches': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cost': {'type': 'integer'}, - 'cpu-cores': {'type': 'integer'}, - 'deprecated': {'type': 'boolean'}, - 'memory': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'root-disk': {'type': 'integer'}, - 'virt-type': {'type': 'string'}}, - 'required': ['arches', 'cpu-cores', 'memory'], - 'type': 'object'}, - 'InstanceTypesResult': {'additionalProperties': False, - 'properties': {'cost-currency': {'type': 'string'}, - 'cost-divisor': {'type': 'integer'}, - 'cost-unit': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'instance-types': {'items': {'$ref': '#/definitions/InstanceType'}, - 'type': 'array'}}, - 'type': 'object'}, - 'InstanceTypesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/InstanceTypesResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ListCloudInfo': {'additionalProperties': False, - 'properties': {'CloudDetails': {'$ref': '#/definitions/CloudDetails'}, - 'user-access': {'type': 'string'}}, - 'required': ['CloudDetails', 'user-access'], - 'type': 'object'}, - 'ListCloudInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ListCloudInfo'}}, - 'type': 'object'}, - 'ListCloudInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ListCloudInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ListCloudsRequest': {'additionalProperties': False, - 'properties': {'all': {'type': 'boolean'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelAccess': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'model': {'type': 'string'}}, - 'type': 'object'}, - 'ModifyCloudAccess': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'action': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag', - 'cloud-tag', - 'action', - 'access'], - 'type': 'object'}, - 'ModifyCloudAccessRequest': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyCloudAccess'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'RevokeCredentialArg': {'additionalProperties': False, - 'properties': {'force': {'type': 'boolean'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'force'], - 'type': 'object'}, - 'RevokeCredentialArgs': {'additionalProperties': False, - 'properties': {'credentials': {'items': {'$ref': '#/definitions/RevokeCredentialArg'}, - 'type': 'array'}}, - 'required': ['credentials'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'TaggedCredential': {'additionalProperties': False, - 'properties': {'credential': {'$ref': '#/definitions/CloudCredential'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'credential'], - 'type': 'object'}, - 'TaggedCredentials': {'additionalProperties': False, - 'properties': {'credentials': {'items': {'$ref': '#/definitions/TaggedCredential'}, - 'type': 'array'}}, - 'type': 'object'}, - 'UpdateCredentialArgs': {'additionalProperties': False, - 'properties': {'credentials': {'items': {'$ref': '#/definitions/TaggedCredential'}, - 'type': 'array'}, - 'force': {'type': 'boolean'}}, - 'required': ['credentials', 'force'], - 'type': 'object'}, - 'UpdateCredentialModelResult': {'additionalProperties': False, - 'properties': {'errors': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}, - 'name': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['uuid', 'name'], - 'type': 'object'}, - 'UpdateCredentialResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'models': {'items': {'$ref': '#/definitions/UpdateCredentialModelResult'}, - 'type': 'array'}, - 'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'UpdateCredentialResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/UpdateCredentialResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'UserCloud': {'additionalProperties': False, - 'properties': {'cloud-tag': {'type': 'string'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag', 'cloud-tag'], - 'type': 'object'}, - 'UserClouds': {'additionalProperties': False, - 'properties': {'user-clouds': {'items': {'$ref': '#/definitions/UserCloud'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'AddCloud': {'properties': {'Params': {'$ref': '#/definitions/AddCloudArgs'}}, - 'type': 'object'}, - 'AddCredentials': {'properties': {'Params': {'$ref': '#/definitions/TaggedCredentials'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'CheckCredentialsModels': {'properties': {'Params': {'$ref': '#/definitions/TaggedCredentials'}, - 'Result': {'$ref': '#/definitions/UpdateCredentialResults'}}, - 'type': 'object'}, - 'Cloud': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/CloudResults'}}, - 'type': 'object'}, - 'CloudInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/CloudInfoResults'}}, - 'type': 'object'}, - 'Clouds': {'properties': {'Result': {'$ref': '#/definitions/CloudsResult'}}, - 'type': 'object'}, - 'Credential': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/CloudCredentialResults'}}, - 'type': 'object'}, - 'CredentialContents': {'properties': {'Params': {'$ref': '#/definitions/CloudCredentialArgs'}, - 'Result': {'$ref': '#/definitions/CredentialContentResults'}}, - 'type': 'object'}, - 'DefaultCloud': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'InstanceTypes': {'properties': {'Params': {'$ref': '#/definitions/CloudInstanceTypesConstraints'}, - 'Result': {'$ref': '#/definitions/InstanceTypesResults'}}, - 'type': 'object'}, - 'ListCloudInfo': {'properties': {'Params': {'$ref': '#/definitions/ListCloudsRequest'}, - 'Result': {'$ref': '#/definitions/ListCloudInfoResults'}}, - 'type': 'object'}, - 'ModifyCloudAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyCloudAccessRequest'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RemoveClouds': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RevokeCredentialsCheckModels': {'properties': {'Params': {'$ref': '#/definitions/RevokeCredentialArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UpdateCredentialsCheckModels': {'properties': {'Params': {'$ref': '#/definitions/UpdateCredentialArgs'}, - 'Result': {'$ref': '#/definitions/UpdateCredentialResults'}}, - 'type': 'object'}, - 'UserCredentials': {'properties': {'Params': {'$ref': '#/definitions/UserClouds'}, - 'Result': {'$ref': '#/definitions/StringsResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(None) - async def AddCloud(self, cloud, name): - ''' - cloud : Cloud - name : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='AddCloud', - version=3, - params=_params) - _params['cloud'] = cloud - _params['name'] = name - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def AddCredentials(self, credentials): - ''' - credentials : typing.Sequence[~TaggedCredential] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='AddCredentials', - version=3, - params=_params) - _params['credentials'] = credentials - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UpdateCredentialResults) - async def CheckCredentialsModels(self, credentials): - ''' - credentials : typing.Sequence[~TaggedCredential] - Returns -> typing.Sequence[~UpdateCredentialResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='CheckCredentialsModels', - version=3, - params=_params) - _params['credentials'] = credentials - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudResults) - async def Cloud(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~CloudResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='Cloud', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudInfoResults) - async def CloudInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~CloudInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='CloudInfo', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudsResult) - async def Clouds(self): - ''' - - Returns -> typing.Mapping[str, ~Cloud] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='Clouds', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudCredentialResults) - async def Credential(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~CloudCredentialResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='Credential', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CredentialContentResults) - async def CredentialContents(self, credentials, include_secrets): - ''' - credentials : typing.Sequence[~CloudCredentialArg] - include_secrets : bool - Returns -> typing.Sequence[~CredentialContentResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='CredentialContents', - version=3, - params=_params) - _params['credentials'] = credentials - _params['include-secrets'] = include_secrets - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def DefaultCloud(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='DefaultCloud', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(InstanceTypesResults) - async def InstanceTypes(self, constraints): - ''' - constraints : typing.Sequence[~CloudInstanceTypesConstraint] - Returns -> typing.Sequence[~InstanceTypesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='InstanceTypes', - version=3, - params=_params) - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ListCloudInfoResults) - async def ListCloudInfo(self, all_, user_tag): - ''' - all_ : bool - user_tag : str - Returns -> typing.Sequence[~ListCloudInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='ListCloudInfo', - version=3, - params=_params) - _params['all'] = all_ - _params['user-tag'] = user_tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ModifyCloudAccess(self, changes): - ''' - changes : typing.Sequence[~ModifyCloudAccess] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='ModifyCloudAccess', - version=3, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RemoveClouds(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='RemoveClouds', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RevokeCredentialsCheckModels(self, credentials): - ''' - credentials : typing.Sequence[~RevokeCredentialArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='RevokeCredentialsCheckModels', - version=3, - params=_params) - _params['credentials'] = credentials - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UpdateCredentialResults) - async def UpdateCredentialsCheckModels(self, credentials, force): - ''' - credentials : typing.Sequence[~TaggedCredential] - force : bool - Returns -> typing.Sequence[~UpdateCredentialResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='UpdateCredentialsCheckModels', - version=3, - params=_params) - _params['credentials'] = credentials - _params['force'] = force - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsResults) - async def UserCredentials(self, user_clouds): - ''' - user_clouds : typing.Sequence[~UserCloud] - Returns -> typing.Sequence[~StringsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Cloud', - request='UserCredentials', - version=3, - params=_params) - _params['user-clouds'] = user_clouds - reply = await self.rpc(msg) - return reply - - - -class ControllerFacade(Type): - name = 'Controller' - version = 3 - schema = {'definitions': {'AllWatcherId': {'additionalProperties': False, - 'properties': {'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'CloudCredential': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'auth-type': {'type': 'string'}, - 'redacted': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['auth-type'], - 'type': 'object'}, - 'CloudSpec': {'additionalProperties': False, - 'properties': {'credential': {'$ref': '#/definitions/CloudCredential'}, - 'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'name': {'type': 'string'}, - 'region': {'type': 'string'}, - 'storage-endpoint': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type', 'name'], - 'type': 'object'}, - 'CloudSpecResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/CloudSpec'}}, - 'type': 'object'}, - 'CloudSpecResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CloudSpecResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ConfigValue': {'additionalProperties': False, - 'properties': {'source': {'type': 'string'}, - 'value': {'additionalProperties': True, - 'type': 'object'}}, - 'required': ['value', 'source'], - 'type': 'object'}, - 'ControllerConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'DestroyControllerArgs': {'additionalProperties': False, - 'properties': {'destroy-models': {'type': 'boolean'}}, - 'required': ['destroy-models'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'HostedModelConfig': {'additionalProperties': False, - 'properties': {'cloud-spec': {'$ref': '#/definitions/CloudSpec'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}, - 'owner': {'type': 'string'}}, - 'required': ['name', 'owner'], - 'type': 'object'}, - 'HostedModelConfigsResults': {'additionalProperties': False, - 'properties': {'models': {'items': {'$ref': '#/definitions/HostedModelConfig'}, - 'type': 'array'}}, - 'required': ['models'], - 'type': 'object'}, - 'InitiateMigrationArgs': {'additionalProperties': False, - 'properties': {'specs': {'items': {'$ref': '#/definitions/MigrationSpec'}, - 'type': 'array'}}, - 'required': ['specs'], - 'type': 'object'}, - 'InitiateMigrationResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'migration-id': {'type': 'string'}, - 'model-tag': {'type': 'string'}}, - 'required': ['model-tag', - 'migration-id'], - 'type': 'object'}, - 'InitiateMigrationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/InitiateMigrationResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineHardware': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'MigrationSpec': {'additionalProperties': False, - 'properties': {'model-tag': {'type': 'string'}, - 'target-info': {'$ref': '#/definitions/MigrationTargetInfo'}}, - 'required': ['model-tag', 'target-info'], - 'type': 'object'}, - 'MigrationTargetInfo': {'additionalProperties': False, - 'properties': {'addrs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'auth-tag': {'type': 'string'}, - 'ca-cert': {'type': 'string'}, - 'controller-tag': {'type': 'string'}, - 'macaroons': {'type': 'string'}, - 'password': {'type': 'string'}}, - 'required': ['controller-tag', - 'addrs', - 'ca-cert', - 'auth-tag'], - 'type': 'object'}, - 'Model': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', 'uuid', 'owner-tag'], - 'type': 'object'}, - 'ModelBlockInfo': {'additionalProperties': False, - 'properties': {'blocks': {'items': {'type': 'string'}, - 'type': 'array'}, - 'model-uuid': {'type': 'string'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}}, - 'required': ['name', - 'model-uuid', - 'owner-tag', - 'blocks'], - 'type': 'object'}, - 'ModelBlockInfoList': {'additionalProperties': False, - 'properties': {'models': {'items': {'$ref': '#/definitions/ModelBlockInfo'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ModelConfigResults': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelMachineInfo': {'additionalProperties': False, - 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'}, - 'has-vote': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'instance-id': {'type': 'string'}, - 'status': {'type': 'string'}, - 'wants-vote': {'type': 'boolean'}}, - 'required': ['id'], - 'type': 'object'}, - 'ModelStatus': {'additionalProperties': False, - 'properties': {'application-count': {'type': 'integer'}, - 'hosted-machine-count': {'type': 'integer'}, - 'life': {'type': 'string'}, - 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, - 'type': 'array'}, - 'model-tag': {'type': 'string'}, - 'owner-tag': {'type': 'string'}}, - 'required': ['model-tag', - 'life', - 'hosted-machine-count', - 'application-count', - 'owner-tag'], - 'type': 'object'}, - 'ModelStatusResults': {'additionalProperties': False, - 'properties': {'models': {'items': {'$ref': '#/definitions/ModelStatus'}, - 'type': 'array'}}, - 'required': ['models'], - 'type': 'object'}, - 'ModelTag': {'additionalProperties': False, 'type': 'object'}, - 'ModifyControllerAccess': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'action': {'type': 'string'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag', - 'action', - 'access'], - 'type': 'object'}, - 'ModifyControllerAccessRequest': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyControllerAccess'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'RemoveBlocksArgs': {'additionalProperties': False, - 'properties': {'all': {'type': 'boolean'}}, - 'required': ['all'], - 'type': 'object'}, - 'UserAccess': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag', 'access'], - 'type': 'object'}, - 'UserAccessResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/UserAccess'}}, - 'type': 'object'}, - 'UserAccessResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/UserAccessResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'UserModel': {'additionalProperties': False, - 'properties': {'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'model': {'$ref': '#/definitions/Model'}}, - 'required': ['model', 'last-connection'], - 'type': 'object'}, - 'UserModelList': {'additionalProperties': False, - 'properties': {'user-models': {'items': {'$ref': '#/definitions/UserModel'}, - 'type': 'array'}}, - 'required': ['user-models'], - 'type': 'object'}}, - 'properties': {'AllModels': {'properties': {'Result': {'$ref': '#/definitions/UserModelList'}}, - 'type': 'object'}, - 'CloudSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/CloudSpecResults'}}, - 'type': 'object'}, - 'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}}, - 'type': 'object'}, - 'DestroyController': {'properties': {'Params': {'$ref': '#/definitions/DestroyControllerArgs'}}, - 'type': 'object'}, - 'GetCloudSpec': {'properties': {'Params': {'$ref': '#/definitions/ModelTag'}, - 'Result': {'$ref': '#/definitions/CloudSpecResult'}}, - 'type': 'object'}, - 'GetControllerAccess': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/UserAccessResults'}}, - 'type': 'object'}, - 'HostedModelConfigs': {'properties': {'Result': {'$ref': '#/definitions/HostedModelConfigsResults'}}, - 'type': 'object'}, - 'InitiateMigration': {'properties': {'Params': {'$ref': '#/definitions/InitiateMigrationArgs'}, - 'Result': {'$ref': '#/definitions/InitiateMigrationResults'}}, - 'type': 'object'}, - 'ListBlockedModels': {'properties': {'Result': {'$ref': '#/definitions/ModelBlockInfoList'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}}, - 'type': 'object'}, - 'ModelStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ModelStatusResults'}}, - 'type': 'object'}, - 'ModifyControllerAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyControllerAccessRequest'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RemoveBlocks': {'properties': {'Params': {'$ref': '#/definitions/RemoveBlocksArgs'}}, - 'type': 'object'}, - 'WatchAllModels': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherId'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(UserModelList) - async def AllModels(self): - ''' - - Returns -> typing.Sequence[~UserModel] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='AllModels', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudSpecResults) - async def CloudSpec(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~CloudSpecResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='CloudSpec', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerConfigResult) - async def ControllerConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ControllerConfig', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyController(self, destroy_models): - ''' - destroy_models : bool - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='DestroyController', - version=3, - params=_params) - _params['destroy-models'] = destroy_models - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudSpecResult) - async def GetCloudSpec(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='GetCloudSpec', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UserAccessResults) - async def GetControllerAccess(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~UserAccessResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='GetControllerAccess', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(HostedModelConfigsResults) - async def HostedModelConfigs(self): - ''' - - Returns -> typing.Sequence[~HostedModelConfig] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='HostedModelConfigs', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(InitiateMigrationResults) - async def InitiateMigration(self, specs): - ''' - specs : typing.Sequence[~MigrationSpec] - Returns -> typing.Sequence[~InitiateMigrationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='InitiateMigration', - version=3, - params=_params) - _params['specs'] = specs - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelBlockInfoList) - async def ListBlockedModels(self): - ''' - - Returns -> typing.Sequence[~ModelBlockInfo] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ListBlockedModels', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResults) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, ~ConfigValue] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ModelConfig', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelStatusResults) - async def ModelStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ModelStatus] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ModelStatus', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ModifyControllerAccess(self, changes): - ''' - changes : typing.Sequence[~ModifyControllerAccess] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ModifyControllerAccess', - version=3, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def RemoveBlocks(self, all_): - ''' - all_ : bool - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='RemoveBlocks', - version=3, - params=_params) - _params['all'] = all_ - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AllWatcherId) - async def WatchAllModels(self): - ''' - - Returns -> str - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='WatchAllModels', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class FirewallerFacade(Type): - name = 'Firewaller' - version = 3 - schema = {'definitions': {'BoolResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'boolean'}}, - 'required': ['result'], - 'type': 'object'}, - 'BoolResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'CloudCredential': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'auth-type': {'type': 'string'}, - 'redacted': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['auth-type'], - 'type': 'object'}, - 'CloudSpec': {'additionalProperties': False, - 'properties': {'credential': {'$ref': '#/definitions/CloudCredential'}, - 'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'name': {'type': 'string'}, - 'region': {'type': 'string'}, - 'storage-endpoint': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type', 'name'], - 'type': 'object'}, - 'CloudSpecResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/CloudSpec'}}, - 'type': 'object'}, - 'CloudSpecResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CloudSpecResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachinePortRange': {'additionalProperties': False, - 'properties': {'port-range': {'$ref': '#/definitions/PortRange'}, - 'relation-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['unit-tag', - 'relation-tag', - 'port-range'], - 'type': 'object'}, - 'MachinePorts': {'additionalProperties': False, - 'properties': {'machine-tag': {'type': 'string'}, - 'subnet-tag': {'type': 'string'}}, - 'required': ['machine-tag', 'subnet-tag'], - 'type': 'object'}, - 'MachinePortsParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/MachinePorts'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'MachinePortsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'ports': {'items': {'$ref': '#/definitions/MachinePortRange'}, - 'type': 'array'}}, - 'required': ['ports'], - 'type': 'object'}, - 'MachinePortsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MachinePortsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelTag': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'PortRange': {'additionalProperties': False, - 'properties': {'from-port': {'type': 'integer'}, - 'protocol': {'type': 'string'}, - 'to-port': {'type': 'integer'}}, - 'required': ['from-port', 'to-port', 'protocol'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'CloudSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/CloudSpecResults'}}, - 'type': 'object'}, - 'GetAssignedMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'GetCloudSpec': {'properties': {'Params': {'$ref': '#/definitions/ModelTag'}, - 'Result': {'$ref': '#/definitions/CloudSpecResult'}}, - 'type': 'object'}, - 'GetExposed': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/BoolResults'}}, - 'type': 'object'}, - 'GetMachineActiveSubnets': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsResults'}}, - 'type': 'object'}, - 'GetMachinePorts': {'properties': {'Params': {'$ref': '#/definitions/MachinePortsParams'}, - 'Result': {'$ref': '#/definitions/MachinePortsResults'}}, - 'type': 'object'}, - 'InstanceId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchModelMachines': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}, - 'WatchOpenedPorts': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(CloudSpecResults) - async def CloudSpec(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~CloudSpecResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='CloudSpec', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def GetAssignedMachine(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='GetAssignedMachine', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudSpecResult) - async def GetCloudSpec(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='GetCloudSpec', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BoolResults) - async def GetExposed(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~BoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='GetExposed', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsResults) - async def GetMachineActiveSubnets(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='GetMachineActiveSubnets', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachinePortsResults) - async def GetMachinePorts(self, params): - ''' - params : typing.Sequence[~MachinePorts] - Returns -> typing.Sequence[~MachinePortsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='GetMachinePorts', - version=3, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def InstanceId(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='InstanceId', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='Life', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='ModelConfig', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def Watch(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='Watch', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='WatchForModelConfigChanges', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchModelMachines(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='WatchModelMachines', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchOpenedPorts(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='WatchOpenedPorts', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchUnits(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='WatchUnits', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class ImageMetadataFacade(Type): - name = 'ImageMetadata' - version = 3 - schema = {'properties': {'UpdateFromPublishedImages': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(None) - async def UpdateFromPublishedImages(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ImageMetadata', - request='UpdateFromPublishedImages', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class InstancePollerFacade(Type): - name = 'InstancePoller' - version = 3 - schema = {'definitions': {'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'BoolResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'boolean'}}, - 'required': ['result'], - 'type': 'object'}, - 'BoolResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineAddresses': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, - 'type': 'array'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'addresses'], - 'type': 'object'}, - 'MachineAddressesResult': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['addresses'], - 'type': 'object'}, - 'MachineAddressesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MachineAddressesResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'SetMachinesAddresses': {'additionalProperties': False, - 'properties': {'machine-addresses': {'items': {'$ref': '#/definitions/MachineAddresses'}, - 'type': 'array'}}, - 'required': ['machine-addresses'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'StatusResult': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'error': {'$ref': '#/definitions/Error'}, - 'id': {'type': 'string'}, - 'info': {'type': 'string'}, - 'life': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['id', - 'life', - 'status', - 'info', - 'data', - 'since'], - 'type': 'object'}, - 'StatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}}, - 'properties': {'AreManuallyProvisioned': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/BoolResults'}}, - 'type': 'object'}, - 'InstanceId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'InstanceStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StatusResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'ProviderAddresses': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachineAddressesResults'}}, - 'type': 'object'}, - 'SetInstanceStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetProviderAddresses': {'properties': {'Params': {'$ref': '#/definitions/SetMachinesAddresses'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Status': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StatusResults'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchModelMachines': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(BoolResults) - async def AreManuallyProvisioned(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~BoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='InstancePoller', - request='AreManuallyProvisioned', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def InstanceId(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='InstancePoller', - request='InstanceId', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusResults) - async def InstanceStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='InstancePoller', - request='InstanceStatus', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='InstancePoller', - request='Life', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='InstancePoller', - request='ModelConfig', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachineAddressesResults) - async def ProviderAddresses(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachineAddressesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='InstancePoller', - request='ProviderAddresses', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetInstanceStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='InstancePoller', - request='SetInstanceStatus', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetProviderAddresses(self, machine_addresses): - ''' - machine_addresses : typing.Sequence[~MachineAddresses] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='InstancePoller', - request='SetProviderAddresses', - version=3, - params=_params) - _params['machine-addresses'] = machine_addresses - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusResults) - async def Status(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='InstancePoller', - request='Status', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='InstancePoller', - request='WatchForModelConfigChanges', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchModelMachines(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='InstancePoller', - request='WatchModelMachines', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class MachineManagerFacade(Type): - name = 'MachineManager' - version = 3 - schema = {'definitions': {'AddMachineParams': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, - 'type': 'array'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'container-type': {'type': 'string'}, - 'disks': {'items': {'$ref': '#/definitions/Constraints'}, - 'type': 'array'}, - 'hardware-characteristics': {'$ref': '#/definitions/HardwareCharacteristics'}, - 'instance-id': {'type': 'string'}, - 'jobs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'nonce': {'type': 'string'}, - 'parent-id': {'type': 'string'}, - 'placement': {'$ref': '#/definitions/Placement'}, - 'series': {'type': 'string'}}, - 'required': ['series', - 'constraints', - 'jobs', - 'parent-id', - 'container-type', - 'instance-id', - 'nonce', - 'hardware-characteristics', - 'addresses'], - 'type': 'object'}, - 'AddMachines': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/AddMachineParams'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'AddMachinesResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'machine': {'type': 'string'}}, - 'required': ['machine'], - 'type': 'object'}, - 'AddMachinesResults': {'additionalProperties': False, - 'properties': {'machines': {'items': {'$ref': '#/definitions/AddMachinesResult'}, - 'type': 'array'}}, - 'required': ['machines'], - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'Constraints': {'additionalProperties': False, - 'properties': {'Count': {'type': 'integer'}, - 'Pool': {'type': 'string'}, - 'Size': {'type': 'integer'}}, - 'required': ['Pool', 'Size', 'Count'], - 'type': 'object'}, - 'DestroyMachineInfo': {'additionalProperties': False, - 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'destroyed-units': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyMachineResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'$ref': '#/definitions/DestroyMachineInfo'}}, - 'type': 'object'}, - 'DestroyMachineResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyMachineResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'HardwareCharacteristics': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cpu-cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'InstanceType': {'additionalProperties': False, - 'properties': {'arches': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cost': {'type': 'integer'}, - 'cpu-cores': {'type': 'integer'}, - 'deprecated': {'type': 'boolean'}, - 'memory': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'root-disk': {'type': 'integer'}, - 'virt-type': {'type': 'string'}}, - 'required': ['arches', 'cpu-cores', 'memory'], - 'type': 'object'}, - 'InstanceTypesResult': {'additionalProperties': False, - 'properties': {'cost-currency': {'type': 'string'}, - 'cost-divisor': {'type': 'integer'}, - 'cost-unit': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'instance-types': {'items': {'$ref': '#/definitions/InstanceType'}, - 'type': 'array'}}, - 'type': 'object'}, - 'InstanceTypesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/InstanceTypesResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelInstanceTypesConstraint': {'additionalProperties': False, - 'properties': {'value': {'$ref': '#/definitions/Value'}}, - 'type': 'object'}, - 'ModelInstanceTypesConstraints': {'additionalProperties': False, - 'properties': {'constraints': {'items': {'$ref': '#/definitions/ModelInstanceTypesConstraint'}, - 'type': 'array'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'Placement': {'additionalProperties': False, - 'properties': {'directive': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['scope', 'directive'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}}, - 'type': 'object'}}, - 'properties': {'AddMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, - 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, - 'type': 'object'}, - 'DestroyMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/DestroyMachineResults'}}, - 'type': 'object'}, - 'ForceDestroyMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/DestroyMachineResults'}}, - 'type': 'object'}, - 'InstanceTypes': {'properties': {'Params': {'$ref': '#/definitions/ModelInstanceTypesConstraints'}, - 'Result': {'$ref': '#/definitions/InstanceTypesResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddMachinesResults) - async def AddMachines(self, params): - ''' - params : typing.Sequence[~AddMachineParams] - Returns -> typing.Sequence[~AddMachinesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='AddMachines', - version=3, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DestroyMachineResults) - async def DestroyMachine(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~DestroyMachineResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='DestroyMachine', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DestroyMachineResults) - async def ForceDestroyMachine(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~DestroyMachineResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='ForceDestroyMachine', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(InstanceTypesResults) - async def InstanceTypes(self, constraints): - ''' - constraints : typing.Sequence[~ModelInstanceTypesConstraint] - Returns -> typing.Sequence[~InstanceTypesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='InstanceTypes', - version=3, - params=_params) - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - -class ModelManagerFacade(Type): - name = 'ModelManager' - version = 3 - schema = {'definitions': {'DumpModelRequest': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'simplified': {'type': 'boolean'}}, - 'required': ['entities', 'simplified'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'info', 'since'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineHardware': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'MapResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['result'], - 'type': 'object'}, - 'MapResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MapResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Model': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', 'uuid', 'owner-tag'], - 'type': 'object'}, - 'ModelCreateArgs': {'additionalProperties': False, - 'properties': {'cloud-tag': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'credential': {'type': 'string'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'region': {'type': 'string'}}, - 'required': ['name', 'owner-tag'], - 'type': 'object'}, - 'ModelDefaultValues': {'additionalProperties': False, - 'properties': {'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelDefaults': {'additionalProperties': False, - 'properties': {'controller': {'additionalProperties': True, - 'type': 'object'}, - 'default': {'additionalProperties': True, - 'type': 'object'}, - 'regions': {'items': {'$ref': '#/definitions/RegionDefaults'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ModelDefaultsResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ModelDefaults'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelInfo': {'additionalProperties': False, - 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, - 'cloud-credential-tag': {'type': 'string'}, - 'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'controller-uuid': {'type': 'string'}, - 'default-series': {'type': 'string'}, - 'life': {'type': 'string'}, - 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, - 'type': 'array'}, - 'migration': {'$ref': '#/definitions/ModelMigrationStatus'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'provider-type': {'type': 'string'}, - 'sla': {'$ref': '#/definitions/ModelSLAInfo'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'users': {'items': {'$ref': '#/definitions/ModelUserInfo'}, - 'type': 'array'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', - 'uuid', - 'controller-uuid', - 'cloud-tag', - 'owner-tag', - 'life', - 'users', - 'machines', - 'sla', - 'agent-version'], - 'type': 'object'}, - 'ModelInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ModelInfo'}}, - 'type': 'object'}, - 'ModelInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ModelInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ModelMachineInfo': {'additionalProperties': False, - 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'}, - 'has-vote': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'instance-id': {'type': 'string'}, - 'status': {'type': 'string'}, - 'wants-vote': {'type': 'boolean'}}, - 'required': ['id'], - 'type': 'object'}, - 'ModelMigrationStatus': {'additionalProperties': False, - 'properties': {'end': {'format': 'date-time', - 'type': 'string'}, - 'start': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'start'], - 'type': 'object'}, - 'ModelSLAInfo': {'additionalProperties': False, - 'properties': {'level': {'type': 'string'}, - 'owner': {'type': 'string'}}, - 'required': ['level', 'owner'], - 'type': 'object'}, - 'ModelStatus': {'additionalProperties': False, - 'properties': {'application-count': {'type': 'integer'}, - 'hosted-machine-count': {'type': 'integer'}, - 'life': {'type': 'string'}, - 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, - 'type': 'array'}, - 'model-tag': {'type': 'string'}, - 'owner-tag': {'type': 'string'}}, - 'required': ['model-tag', - 'life', - 'hosted-machine-count', - 'application-count', - 'owner-tag'], - 'type': 'object'}, - 'ModelStatusResults': {'additionalProperties': False, - 'properties': {'models': {'items': {'$ref': '#/definitions/ModelStatus'}, - 'type': 'array'}}, - 'required': ['models'], - 'type': 'object'}, - 'ModelUnsetKeys': {'additionalProperties': False, - 'properties': {'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'keys': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['keys'], - 'type': 'object'}, - 'ModelUserInfo': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'display-name': {'type': 'string'}, - 'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'user': {'type': 'string'}}, - 'required': ['user', - 'display-name', - 'last-connection', - 'access'], - 'type': 'object'}, - 'ModifyModelAccess': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'action': {'type': 'string'}, - 'model-tag': {'type': 'string'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag', - 'action', - 'access', - 'model-tag'], - 'type': 'object'}, - 'ModifyModelAccessRequest': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyModelAccess'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'RegionDefaults': {'additionalProperties': False, - 'properties': {'region-name': {'type': 'string'}, - 'value': {'additionalProperties': True, - 'type': 'object'}}, - 'required': ['region-name', 'value'], - 'type': 'object'}, - 'SetModelDefaults': {'additionalProperties': False, - 'properties': {'config': {'items': {'$ref': '#/definitions/ModelDefaultValues'}, - 'type': 'array'}}, - 'required': ['config'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UnsetModelDefaults': {'additionalProperties': False, - 'properties': {'keys': {'items': {'$ref': '#/definitions/ModelUnsetKeys'}, - 'type': 'array'}}, - 'required': ['keys'], - 'type': 'object'}, - 'UserModel': {'additionalProperties': False, - 'properties': {'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'model': {'$ref': '#/definitions/Model'}}, - 'required': ['model', 'last-connection'], - 'type': 'object'}, - 'UserModelList': {'additionalProperties': False, - 'properties': {'user-models': {'items': {'$ref': '#/definitions/UserModel'}, - 'type': 'array'}}, - 'required': ['user-models'], - 'type': 'object'}}, - 'properties': {'CreateModel': {'properties': {'Params': {'$ref': '#/definitions/ModelCreateArgs'}, - 'Result': {'$ref': '#/definitions/ModelInfo'}}, - 'type': 'object'}, - 'DestroyModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'DumpModels': {'properties': {'Params': {'$ref': '#/definitions/DumpModelRequest'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'DumpModelsDB': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MapResults'}}, - 'type': 'object'}, - 'ListModels': {'properties': {'Params': {'$ref': '#/definitions/Entity'}, - 'Result': {'$ref': '#/definitions/UserModelList'}}, - 'type': 'object'}, - 'ModelDefaults': {'properties': {'Result': {'$ref': '#/definitions/ModelDefaultsResult'}}, - 'type': 'object'}, - 'ModelInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ModelInfoResults'}}, - 'type': 'object'}, - 'ModelStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ModelStatusResults'}}, - 'type': 'object'}, - 'ModifyModelAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyModelAccessRequest'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetModelDefaults': {'properties': {'Params': {'$ref': '#/definitions/SetModelDefaults'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UnsetModelDefaults': {'properties': {'Params': {'$ref': '#/definitions/UnsetModelDefaults'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ModelInfo) - async def CreateModel(self, cloud_tag, config, credential, name, owner_tag, region): - ''' - cloud_tag : str - config : typing.Mapping[str, typing.Any] - credential : str - name : str - owner_tag : str - region : str - Returns -> typing.Union[_ForwardRef('Number'), str, typing.Sequence[~ModelMachineInfo], _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence[~ModelUserInfo]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='CreateModel', - version=3, - params=_params) - _params['cloud-tag'] = cloud_tag - _params['config'] = config - _params['credential'] = credential - _params['name'] = name - _params['owner-tag'] = owner_tag - _params['region'] = region - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DestroyModels(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='DestroyModels', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def DumpModels(self, entities, simplified): - ''' - entities : typing.Sequence[~Entity] - simplified : bool - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='DumpModels', - version=3, - params=_params) - _params['entities'] = entities - _params['simplified'] = simplified - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MapResults) - async def DumpModelsDB(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MapResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='DumpModelsDB', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UserModelList) - async def ListModels(self, tag): - ''' - tag : str - Returns -> typing.Sequence[~UserModel] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ListModels', - version=3, - params=_params) - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelDefaultsResult) - async def ModelDefaults(self): - ''' - - Returns -> typing.Mapping[str, ~ModelDefaults] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModelDefaults', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelInfoResults) - async def ModelInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ModelInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModelInfo', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelStatusResults) - async def ModelStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ModelStatus] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModelStatus', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ModifyModelAccess(self, changes): - ''' - changes : typing.Sequence[~ModifyModelAccess] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModifyModelAccess', - version=3, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetModelDefaults(self, config): - ''' - config : typing.Sequence[~ModelDefaultValues] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='SetModelDefaults', - version=3, - params=_params) - _params['config'] = config - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UnsetModelDefaults(self, keys): - ''' - keys : typing.Sequence[~ModelUnsetKeys] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='UnsetModelDefaults', - version=3, - params=_params) - _params['keys'] = keys - reply = await self.rpc(msg) - return reply - - - -class ProvisionerFacade(Type): - name = 'Provisioner' - version = 3 - schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, - 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, - 'type': 'array'}, - 'type': 'array'}}, - 'required': ['servers'], - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'Binary': {'additionalProperties': False, - 'properties': {'Arch': {'type': 'string'}, - 'Number': {'$ref': '#/definitions/Number'}, - 'Series': {'type': 'string'}}, - 'required': ['Number', 'Series', 'Arch'], - 'type': 'object'}, - 'BytesResult': {'additionalProperties': False, - 'properties': {'result': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['result'], - 'type': 'object'}, - 'CloudImageMetadata': {'additionalProperties': False, - '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'}}, - 'required': ['image-id', - 'region', - 'version', - 'series', - 'arch', - 'source', - 'priority'], - 'type': 'object'}, - 'ConstraintsResult': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'ConstraintsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ConstraintsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ContainerConfig': {'additionalProperties': False, - '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'}}, - 'required': ['provider-type', - 'authorized-keys', - 'ssl-hostname-verification', - 'proxy', - 'apt-proxy', - 'apt-mirror', - 'UpdateBehavior'], - 'type': 'object'}, - 'ContainerManagerConfig': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ContainerManagerConfigParams': {'additionalProperties': False, - 'properties': {'type': {'type': 'string'}}, - 'required': ['type'], - 'type': 'object'}, - 'ControllerConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'DeviceBridgeInfo': {'additionalProperties': False, - 'properties': {'bridge-name': {'type': 'string'}, - 'host-device-name': {'type': 'string'}}, - 'required': ['host-device-name', - 'bridge-name'], - 'type': 'object'}, - 'DistributionGroupResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['result'], - 'type': 'object'}, - 'DistributionGroupResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/DistributionGroupResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityPassword': {'additionalProperties': False, - 'properties': {'password': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'password'], - 'type': 'object'}, - 'EntityPasswords': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'FindToolsParams': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'major': {'type': 'integer'}, - 'minor': {'type': 'integer'}, - 'number': {'$ref': '#/definitions/Number'}, - 'series': {'type': 'string'}}, - 'required': ['number', - 'major', - 'minor', - 'arch', - 'series'], - 'type': 'object'}, - 'FindToolsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'list': {'items': {'$ref': '#/definitions/Tools'}, - 'type': 'array'}}, - 'required': ['list'], - 'type': 'object'}, - 'HardwareCharacteristics': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cpu-cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'HostNetworkChange': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'new-bridges': {'items': {'$ref': '#/definitions/DeviceBridgeInfo'}, - 'type': 'array'}, - 'reconfigure-delay': {'type': 'integer'}}, - 'required': ['new-bridges', - 'reconfigure-delay'], - 'type': 'object'}, - 'HostNetworkChangeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/HostNetworkChange'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'HostPort': {'additionalProperties': False, - 'properties': {'Address': {'$ref': '#/definitions/Address'}, - 'port': {'type': 'integer'}}, - 'required': ['Address', 'port'], - 'type': 'object'}, - 'InstanceInfo': {'additionalProperties': False, - 'properties': {'characteristics': {'$ref': '#/definitions/HardwareCharacteristics'}, - 'instance-id': {'type': 'string'}, - 'network-config': {'items': {'$ref': '#/definitions/NetworkConfig'}, - 'type': 'array'}, - 'nonce': {'type': 'string'}, - 'tag': {'type': 'string'}, - 'volume-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/VolumeAttachmentInfo'}}, - 'type': 'object'}, - 'volumes': {'items': {'$ref': '#/definitions/Volume'}, - 'type': 'array'}}, - 'required': ['tag', - 'instance-id', - 'nonce', - 'characteristics', - 'volumes', - 'volume-attachments', - 'network-config'], - 'type': 'object'}, - 'InstancesInfo': {'additionalProperties': False, - 'properties': {'machines': {'items': {'$ref': '#/definitions/InstanceInfo'}, - 'type': 'array'}}, - 'required': ['machines'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineContainers': {'additionalProperties': False, - 'properties': {'container-types': {'items': {'type': 'string'}, - 'type': 'array'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['machine-tag', - 'container-types'], - 'type': 'object'}, - 'MachineContainersParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/MachineContainers'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'MachineNetworkConfigResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'items': {'$ref': '#/definitions/NetworkConfig'}, - 'type': 'array'}}, - 'required': ['info'], - 'type': 'object'}, - 'MachineNetworkConfigResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MachineNetworkConfigResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'NetworkConfig': {'additionalProperties': False, - 'properties': {'address': {'type': 'string'}, - 'cidr': {'type': 'string'}, - 'config-type': {'type': 'string'}, - 'device-index': {'type': 'integer'}, - 'disabled': {'type': 'boolean'}, - 'dns-search-domains': {'items': {'type': 'string'}, - 'type': 'array'}, - 'dns-servers': {'items': {'type': 'string'}, - 'type': 'array'}, - 'gateway-address': {'type': 'string'}, - 'interface-name': {'type': 'string'}, - 'interface-type': {'type': 'string'}, - 'mac-address': {'type': 'string'}, - 'mtu': {'type': 'integer'}, - 'no-auto-start': {'type': 'boolean'}, - 'parent-interface-name': {'type': 'string'}, - 'provider-address-id': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'provider-subnet-id': {'type': 'string'}, - 'provider-vlan-id': {'type': 'string'}, - 'routes': {'items': {'$ref': '#/definitions/NetworkRoute'}, - 'type': 'array'}, - 'vlan-tag': {'type': 'integer'}}, - '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'], - 'type': 'object'}, - 'NetworkRoute': {'additionalProperties': False, - 'properties': {'destination-cidr': {'type': 'string'}, - 'gateway-ip': {'type': 'string'}, - 'metric': {'type': 'integer'}}, - 'required': ['destination-cidr', - 'gateway-ip', - 'metric'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'ProvisioningInfo': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}, - 'controller-config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'image-metadata': {'items': {'$ref': '#/definitions/CloudImageMetadata'}, - 'type': 'array'}, - 'jobs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'placement': {'type': 'string'}, - 'series': {'type': 'string'}, - 'subnets-to-zones': {'patternProperties': {'.*': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'volume-attachments': {'items': {'$ref': '#/definitions/VolumeAttachmentParams'}, - 'type': 'array'}, - 'volumes': {'items': {'$ref': '#/definitions/VolumeParams'}, - 'type': 'array'}}, - 'required': ['constraints', - 'series', - 'placement', - 'jobs'], - 'type': 'object'}, - 'ProvisioningInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ProvisioningInfo'}}, - 'required': ['result'], - 'type': 'object'}, - 'ProvisioningInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ProvisioningInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SetMachineNetworkConfig': {'additionalProperties': False, - 'properties': {'config': {'items': {'$ref': '#/definitions/NetworkConfig'}, - 'type': 'array'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'config'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Settings': {'additionalProperties': False, - 'properties': {'AutoNoProxy': {'type': 'string'}, - 'Ftp': {'type': 'string'}, - 'Http': {'type': 'string'}, - 'Https': {'type': 'string'}, - 'NoProxy': {'type': 'string'}}, - 'required': ['Http', - 'Https', - 'Ftp', - 'NoProxy', - 'AutoNoProxy'], - 'type': 'object'}, - 'StatusResult': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'error': {'$ref': '#/definitions/Error'}, - 'id': {'type': 'string'}, - 'info': {'type': 'string'}, - 'life': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['id', - 'life', - 'status', - 'info', - 'data', - 'since'], - 'type': 'object'}, - 'StatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Tools': {'additionalProperties': False, - 'properties': {'sha256': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'url': {'type': 'string'}, - 'version': {'$ref': '#/definitions/Binary'}}, - 'required': ['version', 'url', 'size'], - 'type': 'object'}, - 'ToolsResult': {'additionalProperties': False, - 'properties': {'disable-ssl-hostname-verification': {'type': 'boolean'}, - 'error': {'$ref': '#/definitions/Error'}, - 'tools': {'items': {'$ref': '#/definitions/Tools'}, - 'type': 'array'}}, - 'required': ['tools', - 'disable-ssl-hostname-verification'], - 'type': 'object'}, - 'ToolsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ToolsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UpdateBehavior': {'additionalProperties': False, - 'properties': {'enable-os-refresh-update': {'type': 'boolean'}, - 'enable-os-upgrade': {'type': 'boolean'}}, - 'required': ['enable-os-refresh-update', - 'enable-os-upgrade'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}}, - 'type': 'object'}, - 'Volume': {'additionalProperties': False, - 'properties': {'info': {'$ref': '#/definitions/VolumeInfo'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', 'info'], - 'type': 'object'}, - 'VolumeAttachmentInfo': {'additionalProperties': False, - 'properties': {'bus-address': {'type': 'string'}, - 'device-link': {'type': 'string'}, - 'device-name': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'type': 'object'}, - 'VolumeAttachmentParams': {'additionalProperties': False, - 'properties': {'instance-id': {'type': 'string'}, - 'machine-tag': {'type': 'string'}, - 'provider': {'type': 'string'}, - 'read-only': {'type': 'boolean'}, - 'volume-id': {'type': 'string'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', - 'machine-tag', - 'provider'], - 'type': 'object'}, - 'VolumeInfo': {'additionalProperties': False, - 'properties': {'hardware-id': {'type': 'string'}, - 'persistent': {'type': 'boolean'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'volume-id': {'type': 'string'}, - 'wwn': {'type': 'string'}}, - 'required': ['volume-id', 'size', 'persistent'], - 'type': 'object'}, - 'VolumeParams': {'additionalProperties': False, - 'properties': {'attachment': {'$ref': '#/definitions/VolumeAttachmentParams'}, - 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'provider': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', - 'size', - 'provider'], - 'type': 'object'}, - 'WatchContainer': {'additionalProperties': False, - 'properties': {'container-type': {'type': 'string'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['machine-tag', - 'container-type'], - 'type': 'object'}, - 'WatchContainers': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/WatchContainer'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}}, - 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, - 'type': 'object'}, - 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, - 'type': 'object'}, - 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, - 'type': 'object'}, - 'Constraints': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ConstraintsResults'}}, - 'type': 'object'}, - 'ContainerConfig': {'properties': {'Result': {'$ref': '#/definitions/ContainerConfig'}}, - 'type': 'object'}, - 'ContainerManagerConfig': {'properties': {'Params': {'$ref': '#/definitions/ContainerManagerConfigParams'}, - 'Result': {'$ref': '#/definitions/ContainerManagerConfig'}}, - 'type': 'object'}, - 'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}}, - 'type': 'object'}, - 'DistributionGroup': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/DistributionGroupResults'}}, - 'type': 'object'}, - 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'FindTools': {'properties': {'Params': {'$ref': '#/definitions/FindToolsParams'}, - 'Result': {'$ref': '#/definitions/FindToolsResult'}}, - 'type': 'object'}, - 'GetContainerInterfaceInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachineNetworkConfigResults'}}, - 'type': 'object'}, - 'HostChangesForContainers': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/HostNetworkChangeResults'}}, - 'type': 'object'}, - 'InstanceId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'InstanceStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StatusResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'MachinesWithTransientErrors': {'properties': {'Result': {'$ref': '#/definitions/StatusResults'}}, - 'type': 'object'}, - 'MarkMachinesForRemoval': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'PrepareContainerInterfaceInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachineNetworkConfigResults'}}, - 'type': 'object'}, - 'ProvisioningInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ProvisioningInfoResults'}}, - 'type': 'object'}, - 'ReleaseContainerAddresses': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Remove': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Series': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'SetHostMachineNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/SetMachineNetworkConfig'}}, - 'type': 'object'}, - 'SetInstanceInfo': {'properties': {'Params': {'$ref': '#/definitions/InstancesInfo'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetInstanceStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetObservedNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/SetMachineNetworkConfig'}}, - 'type': 'object'}, - 'SetPasswords': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetProviderNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetSupportedContainers': {'properties': {'Params': {'$ref': '#/definitions/MachineContainersParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'StateAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, - 'type': 'object'}, - 'Status': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StatusResults'}}, - 'type': 'object'}, - 'Tools': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ToolsResults'}}, - 'type': 'object'}, - 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchAllContainers': {'properties': {'Params': {'$ref': '#/definitions/WatchContainers'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchContainers': {'properties': {'Params': {'$ref': '#/definitions/WatchContainers'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchMachineErrorRetry': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchModelMachines': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringsResult) - async def APIAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='APIAddresses', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(APIHostPortsResult) - async def APIHostPorts(self): - ''' - - Returns -> typing.Sequence[~HostPort] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='APIHostPorts', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BytesResult) - async def CACert(self): - ''' - - Returns -> typing.Sequence[int] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='CACert', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ConstraintsResults) - async def Constraints(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ConstraintsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Constraints', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ContainerConfig) - async def ContainerConfig(self): - ''' - - Returns -> typing.Union[_ForwardRef('UpdateBehavior'), str, _ForwardRef('Settings'), bool] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ContainerConfig', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ContainerManagerConfig) - async def ContainerManagerConfig(self, type_): - ''' - type_ : str - Returns -> typing.Mapping[str, str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ContainerManagerConfig', - version=3, - params=_params) - _params['type'] = type_ - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerConfigResult) - async def ControllerConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ControllerConfig', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DistributionGroupResults) - async def DistributionGroup(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~DistributionGroupResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='DistributionGroup', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnsureDead(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='EnsureDead', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FindToolsResult) - async def FindTools(self, arch, major, minor, number, series): - ''' - arch : str - major : int - minor : int - number : Number - series : str - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[~Tools]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='FindTools', - version=3, - params=_params) - _params['arch'] = arch - _params['major'] = major - _params['minor'] = minor - _params['number'] = number - _params['series'] = series - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachineNetworkConfigResults) - async def GetContainerInterfaceInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachineNetworkConfigResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='GetContainerInterfaceInfo', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(HostNetworkChangeResults) - async def HostChangesForContainers(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~HostNetworkChange] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='HostChangesForContainers', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def InstanceId(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='InstanceId', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusResults) - async def InstanceStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='InstanceStatus', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Life', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusResults) - async def MachinesWithTransientErrors(self): - ''' - - Returns -> typing.Sequence[~StatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='MachinesWithTransientErrors', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def MarkMachinesForRemoval(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='MarkMachinesForRemoval', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ModelConfig', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ModelUUID(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ModelUUID', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachineNetworkConfigResults) - async def PrepareContainerInterfaceInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachineNetworkConfigResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='PrepareContainerInterfaceInfo', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ProvisioningInfoResults) - async def ProvisioningInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ProvisioningInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ProvisioningInfo', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ReleaseContainerAddresses(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ReleaseContainerAddresses', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Remove(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Remove', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def Series(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Series', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetHostMachineNetworkConfig(self, config, tag): - ''' - config : typing.Sequence[~NetworkConfig] - tag : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetHostMachineNetworkConfig', - version=3, - params=_params) - _params['config'] = config - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetInstanceInfo(self, machines): - ''' - machines : typing.Sequence[~InstanceInfo] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetInstanceInfo', - version=3, - params=_params) - _params['machines'] = machines - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetInstanceStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetInstanceStatus', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetObservedNetworkConfig(self, config, tag): - ''' - config : typing.Sequence[~NetworkConfig] - tag : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetObservedNetworkConfig', - version=3, - params=_params) - _params['config'] = config - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetPasswords(self, changes): - ''' - changes : typing.Sequence[~EntityPassword] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetPasswords', - version=3, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetProviderNetworkConfig(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetProviderNetworkConfig', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetStatus', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetSupportedContainers(self, params): - ''' - params : typing.Sequence[~MachineContainers] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetSupportedContainers', - version=3, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsResult) - async def StateAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='StateAddresses', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusResults) - async def Status(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Status', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ToolsResults) - async def Tools(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ToolsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Tools', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='UpdateStatus', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchAPIHostPorts(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchAPIHostPorts', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchAllContainers(self, params): - ''' - params : typing.Sequence[~WatchContainer] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchAllContainers', - version=3, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchContainers(self, params): - ''' - params : typing.Sequence[~WatchContainer] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchContainers', - version=3, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchForModelConfigChanges', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchMachineErrorRetry(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchMachineErrorRetry', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchModelMachines(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchModelMachines', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class SpacesFacade(Type): - name = 'Spaces' - version = 3 - schema = {'definitions': {'CreateSpaceParams': {'additionalProperties': False, - 'properties': {'provider-id': {'type': 'string'}, - 'public': {'type': 'boolean'}, - 'space-tag': {'type': 'string'}, - 'subnet-tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['subnet-tags', - 'space-tag', - 'public'], - 'type': 'object'}, - 'CreateSpacesParams': {'additionalProperties': False, - 'properties': {'spaces': {'items': {'$ref': '#/definitions/CreateSpaceParams'}, - 'type': 'array'}}, - 'required': ['spaces'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ListSpacesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/Space'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Space': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}, - 'subnets': {'items': {'$ref': '#/definitions/Subnet'}, - 'type': 'array'}}, - 'required': ['name', 'subnets'], - 'type': 'object'}, - 'Subnet': {'additionalProperties': False, - 'properties': {'cidr': {'type': 'string'}, - 'life': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-network-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'space-tag': {'type': 'string'}, - 'status': {'type': 'string'}, - 'vlan-tag': {'type': 'integer'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['cidr', - 'vlan-tag', - 'life', - 'space-tag', - 'zones'], - 'type': 'object'}}, - 'properties': {'CreateSpaces': {'properties': {'Params': {'$ref': '#/definitions/CreateSpacesParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ListSpaces': {'properties': {'Result': {'$ref': '#/definitions/ListSpacesResults'}}, - 'type': 'object'}, - 'ReloadSpaces': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def CreateSpaces(self, spaces): - ''' - spaces : typing.Sequence[~CreateSpaceParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Spaces', - request='CreateSpaces', - version=3, - params=_params) - _params['spaces'] = spaces - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ListSpacesResults) - async def ListSpaces(self): - ''' - - Returns -> typing.Sequence[~Space] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Spaces', - request='ListSpaces', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ReloadSpaces(self): - ''' - - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Spaces', - request='ReloadSpaces', - version=3, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class StorageFacade(Type): - name = 'Storage' - version = 3 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'info', 'since'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'FilesystemAttachmentDetails': {'additionalProperties': False, - 'properties': {'FilesystemAttachmentInfo': {'$ref': '#/definitions/FilesystemAttachmentInfo'}, - 'life': {'type': 'string'}}, - 'required': ['FilesystemAttachmentInfo'], - 'type': 'object'}, - 'FilesystemAttachmentInfo': {'additionalProperties': False, - 'properties': {'mount-point': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'type': 'object'}, - 'FilesystemDetails': {'additionalProperties': False, - 'properties': {'filesystem-tag': {'type': 'string'}, - 'info': {'$ref': '#/definitions/FilesystemInfo'}, - 'life': {'type': 'string'}, - 'machine-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/FilesystemAttachmentDetails'}}, - 'type': 'object'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'storage': {'$ref': '#/definitions/StorageDetails'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['filesystem-tag', - 'info', - 'status'], - 'type': 'object'}, - 'FilesystemDetailsListResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'$ref': '#/definitions/FilesystemDetails'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemDetailsListResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemDetailsListResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemFilter': {'additionalProperties': False, - 'properties': {'machines': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemFilters': {'additionalProperties': False, - 'properties': {'filters': {'items': {'$ref': '#/definitions/FilesystemFilter'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemInfo': {'additionalProperties': False, - 'properties': {'filesystem-id': {'type': 'string'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'required': ['filesystem-id', - 'pool', - 'size'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'StorageAddParams': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'storage': {'$ref': '#/definitions/StorageConstraints'}, - 'unit': {'type': 'string'}}, - 'required': ['unit', 'name', 'storage'], - 'type': 'object'}, - 'StorageAttachmentDetails': {'additionalProperties': False, - 'properties': {'life': {'type': 'string'}, - 'location': {'type': 'string'}, - 'machine-tag': {'type': 'string'}, - 'storage-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'unit-tag', - 'machine-tag'], - 'type': 'object'}, - 'StorageAttachmentId': {'additionalProperties': False, - 'properties': {'storage-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'unit-tag'], - 'type': 'object'}, - 'StorageAttachmentIds': {'additionalProperties': False, - 'properties': {'ids': {'items': {'$ref': '#/definitions/StorageAttachmentId'}, - 'type': 'array'}}, - 'required': ['ids'], - 'type': 'object'}, - 'StorageConstraints': {'additionalProperties': False, - 'properties': {'count': {'type': 'integer'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'type': 'object'}, - 'StorageDetails': {'additionalProperties': False, - 'properties': {'attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/StorageAttachmentDetails'}}, - 'type': 'object'}, - 'kind': {'type': 'integer'}, - 'life': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'persistent': {'type': 'boolean'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'storage-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'owner-tag', - 'kind', - 'status', - 'persistent'], - 'type': 'object'}, - 'StorageDetailsListResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'$ref': '#/definitions/StorageDetails'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageDetailsListResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StorageDetailsListResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageDetailsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/StorageDetails'}}, - 'type': 'object'}, - 'StorageDetailsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StorageDetailsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageFilter': {'additionalProperties': False, - 'type': 'object'}, - 'StorageFilters': {'additionalProperties': False, - 'properties': {'filters': {'items': {'$ref': '#/definitions/StorageFilter'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StoragePool': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'name': {'type': 'string'}, - 'provider': {'type': 'string'}}, - 'required': ['name', 'provider', 'attrs'], - 'type': 'object'}, - 'StoragePoolFilter': {'additionalProperties': False, - 'properties': {'names': {'items': {'type': 'string'}, - 'type': 'array'}, - 'providers': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StoragePoolFilters': {'additionalProperties': False, - 'properties': {'filters': {'items': {'$ref': '#/definitions/StoragePoolFilter'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StoragePoolsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'storage-pools': {'items': {'$ref': '#/definitions/StoragePool'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StoragePoolsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StoragePoolsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StoragesAddParams': {'additionalProperties': False, - 'properties': {'storages': {'items': {'$ref': '#/definitions/StorageAddParams'}, - 'type': 'array'}}, - 'required': ['storages'], - 'type': 'object'}, - 'VolumeAttachmentDetails': {'additionalProperties': False, - 'properties': {'VolumeAttachmentInfo': {'$ref': '#/definitions/VolumeAttachmentInfo'}, - 'life': {'type': 'string'}}, - 'required': ['VolumeAttachmentInfo'], - 'type': 'object'}, - 'VolumeAttachmentInfo': {'additionalProperties': False, - 'properties': {'bus-address': {'type': 'string'}, - 'device-link': {'type': 'string'}, - 'device-name': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'type': 'object'}, - 'VolumeDetails': {'additionalProperties': False, - 'properties': {'info': {'$ref': '#/definitions/VolumeInfo'}, - 'life': {'type': 'string'}, - 'machine-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/VolumeAttachmentDetails'}}, - 'type': 'object'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'storage': {'$ref': '#/definitions/StorageDetails'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', 'info', 'status'], - 'type': 'object'}, - 'VolumeDetailsListResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'$ref': '#/definitions/VolumeDetails'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeDetailsListResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeDetailsListResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeFilter': {'additionalProperties': False, - 'properties': {'machines': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeFilters': {'additionalProperties': False, - 'properties': {'filters': {'items': {'$ref': '#/definitions/VolumeFilter'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeInfo': {'additionalProperties': False, - 'properties': {'hardware-id': {'type': 'string'}, - 'persistent': {'type': 'boolean'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'volume-id': {'type': 'string'}, - 'wwn': {'type': 'string'}}, - 'required': ['volume-id', 'size', 'persistent'], - 'type': 'object'}}, - 'properties': {'AddToUnit': {'properties': {'Params': {'$ref': '#/definitions/StoragesAddParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Attach': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'CreatePool': {'properties': {'Params': {'$ref': '#/definitions/StoragePool'}}, - 'type': 'object'}, - 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Detach': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ListFilesystems': {'properties': {'Params': {'$ref': '#/definitions/FilesystemFilters'}, - 'Result': {'$ref': '#/definitions/FilesystemDetailsListResults'}}, - 'type': 'object'}, - 'ListPools': {'properties': {'Params': {'$ref': '#/definitions/StoragePoolFilters'}, - 'Result': {'$ref': '#/definitions/StoragePoolsResults'}}, - 'type': 'object'}, - 'ListStorageDetails': {'properties': {'Params': {'$ref': '#/definitions/StorageFilters'}, - 'Result': {'$ref': '#/definitions/StorageDetailsListResults'}}, - 'type': 'object'}, - 'ListVolumes': {'properties': {'Params': {'$ref': '#/definitions/VolumeFilters'}, - 'Result': {'$ref': '#/definitions/VolumeDetailsListResults'}}, - 'type': 'object'}, - 'StorageDetails': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StorageDetailsResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def AddToUnit(self, storages): - ''' - storages : typing.Sequence[~StorageAddParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='AddToUnit', - version=3, - params=_params) - _params['storages'] = storages - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Attach(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='Attach', - version=3, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def CreatePool(self, attrs, name, provider): - ''' - attrs : typing.Mapping[str, typing.Any] - name : str - provider : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='CreatePool', - version=3, - params=_params) - _params['attrs'] = attrs - _params['name'] = name - _params['provider'] = provider - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Destroy(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='Destroy', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Detach(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='Detach', - version=3, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FilesystemDetailsListResults) - async def ListFilesystems(self, filters): - ''' - filters : typing.Sequence[~FilesystemFilter] - Returns -> typing.Sequence[~FilesystemDetailsListResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='ListFilesystems', - version=3, - params=_params) - _params['filters'] = filters - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StoragePoolsResults) - async def ListPools(self, filters): - ''' - filters : typing.Sequence[~StoragePoolFilter] - Returns -> typing.Sequence[~StoragePoolsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='ListPools', - version=3, - params=_params) - _params['filters'] = filters - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StorageDetailsListResults) - async def ListStorageDetails(self, filters): - ''' - filters : typing.Sequence[~StorageFilter] - Returns -> typing.Sequence[~StorageDetailsListResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='ListStorageDetails', - version=3, - params=_params) - _params['filters'] = filters - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(VolumeDetailsListResults) - async def ListVolumes(self, filters): - ''' - filters : typing.Sequence[~VolumeFilter] - Returns -> typing.Sequence[~VolumeDetailsListResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='ListVolumes', - version=3, - params=_params) - _params['filters'] = filters - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StorageDetailsResults) - async def StorageDetails(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StorageDetailsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='StorageDetails', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class StorageProvisionerFacade(Type): - name = 'StorageProvisioner' - version = 3 - schema = {'definitions': {'BlockDevice': {'additionalProperties': False, - 'properties': {'BusAddress': {'type': 'string'}, - 'DeviceLinks': {'items': {'type': 'string'}, - 'type': 'array'}, - 'DeviceName': {'type': 'string'}, - 'FilesystemType': {'type': 'string'}, - 'HardwareId': {'type': 'string'}, - 'InUse': {'type': 'boolean'}, - 'Label': {'type': 'string'}, - 'MountPoint': {'type': 'string'}, - 'Size': {'type': 'integer'}, - 'UUID': {'type': 'string'}, - 'WWN': {'type': 'string'}}, - 'required': ['DeviceName', - 'DeviceLinks', - 'Label', - 'UUID', - 'HardwareId', - 'WWN', - 'BusAddress', - 'Size', - 'FilesystemType', - 'InUse', - 'MountPoint'], - 'type': 'object'}, - 'BlockDeviceResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/BlockDevice'}}, - 'required': ['result'], - 'type': 'object'}, - 'BlockDeviceResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/BlockDeviceResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Filesystem': {'additionalProperties': False, - 'properties': {'filesystem-tag': {'type': 'string'}, - 'info': {'$ref': '#/definitions/FilesystemInfo'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['filesystem-tag', 'info'], - 'type': 'object'}, - 'FilesystemAttachment': {'additionalProperties': False, - 'properties': {'filesystem-tag': {'type': 'string'}, - 'info': {'$ref': '#/definitions/FilesystemAttachmentInfo'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['filesystem-tag', - 'machine-tag', - 'info'], - 'type': 'object'}, - 'FilesystemAttachmentInfo': {'additionalProperties': False, - 'properties': {'mount-point': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'type': 'object'}, - 'FilesystemAttachmentParams': {'additionalProperties': False, - 'properties': {'filesystem-id': {'type': 'string'}, - 'filesystem-tag': {'type': 'string'}, - 'instance-id': {'type': 'string'}, - 'machine-tag': {'type': 'string'}, - 'mount-point': {'type': 'string'}, - 'provider': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'required': ['filesystem-tag', - 'machine-tag', - 'provider'], - 'type': 'object'}, - 'FilesystemAttachmentParamsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/FilesystemAttachmentParams'}}, - 'required': ['result'], - 'type': 'object'}, - 'FilesystemAttachmentParamsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemAttachmentParamsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemAttachmentResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/FilesystemAttachment'}}, - 'required': ['result'], - 'type': 'object'}, - 'FilesystemAttachmentResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemAttachmentResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemAttachments': {'additionalProperties': False, - 'properties': {'filesystem-attachments': {'items': {'$ref': '#/definitions/FilesystemAttachment'}, - 'type': 'array'}}, - 'required': ['filesystem-attachments'], - 'type': 'object'}, - 'FilesystemInfo': {'additionalProperties': False, - 'properties': {'filesystem-id': {'type': 'string'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'required': ['filesystem-id', - 'pool', - 'size'], - 'type': 'object'}, - 'FilesystemParams': {'additionalProperties': False, - 'properties': {'attachment': {'$ref': '#/definitions/FilesystemAttachmentParams'}, - 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'filesystem-tag': {'type': 'string'}, - 'provider': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['filesystem-tag', - 'size', - 'provider'], - 'type': 'object'}, - 'FilesystemParamsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/FilesystemParams'}}, - 'required': ['result'], - 'type': 'object'}, - 'FilesystemParamsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemParamsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/Filesystem'}}, - 'required': ['result'], - 'type': 'object'}, - 'FilesystemResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Filesystems': {'additionalProperties': False, - 'properties': {'filesystems': {'items': {'$ref': '#/definitions/Filesystem'}, - 'type': 'array'}}, - 'required': ['filesystems'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineStorageId': {'additionalProperties': False, - 'properties': {'attachment-tag': {'type': 'string'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['machine-tag', - 'attachment-tag'], - 'type': 'object'}, - 'MachineStorageIds': {'additionalProperties': False, - 'properties': {'ids': {'items': {'$ref': '#/definitions/MachineStorageId'}, - 'type': 'array'}}, - 'required': ['ids'], - 'type': 'object'}, - 'MachineStorageIdsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/MachineStorageId'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}, - 'MachineStorageIdsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MachineStorageIdsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Volume': {'additionalProperties': False, - 'properties': {'info': {'$ref': '#/definitions/VolumeInfo'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', 'info'], - 'type': 'object'}, - 'VolumeAttachment': {'additionalProperties': False, - 'properties': {'info': {'$ref': '#/definitions/VolumeAttachmentInfo'}, - 'machine-tag': {'type': 'string'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', - 'machine-tag', - 'info'], - 'type': 'object'}, - 'VolumeAttachmentInfo': {'additionalProperties': False, - 'properties': {'bus-address': {'type': 'string'}, - 'device-link': {'type': 'string'}, - 'device-name': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'type': 'object'}, - 'VolumeAttachmentParams': {'additionalProperties': False, - 'properties': {'instance-id': {'type': 'string'}, - 'machine-tag': {'type': 'string'}, - 'provider': {'type': 'string'}, - 'read-only': {'type': 'boolean'}, - 'volume-id': {'type': 'string'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', - 'machine-tag', - 'provider'], - 'type': 'object'}, - 'VolumeAttachmentParamsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/VolumeAttachmentParams'}}, - 'required': ['result'], - 'type': 'object'}, - 'VolumeAttachmentParamsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeAttachmentParamsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeAttachmentResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/VolumeAttachment'}}, - 'required': ['result'], - 'type': 'object'}, - 'VolumeAttachmentResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeAttachmentResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeAttachments': {'additionalProperties': False, - 'properties': {'volume-attachments': {'items': {'$ref': '#/definitions/VolumeAttachment'}, - 'type': 'array'}}, - 'required': ['volume-attachments'], - 'type': 'object'}, - 'VolumeInfo': {'additionalProperties': False, - 'properties': {'hardware-id': {'type': 'string'}, - 'persistent': {'type': 'boolean'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'volume-id': {'type': 'string'}, - 'wwn': {'type': 'string'}}, - 'required': ['volume-id', 'size', 'persistent'], - 'type': 'object'}, - 'VolumeParams': {'additionalProperties': False, - 'properties': {'attachment': {'$ref': '#/definitions/VolumeAttachmentParams'}, - 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'provider': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', - 'size', - 'provider'], - 'type': 'object'}, - 'VolumeParamsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/VolumeParams'}}, - 'required': ['result'], - 'type': 'object'}, - 'VolumeParamsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeParamsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/Volume'}}, - 'required': ['result'], - 'type': 'object'}, - 'VolumeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Volumes': {'additionalProperties': False, - 'properties': {'volumes': {'items': {'$ref': '#/definitions/Volume'}, - 'type': 'array'}}, - 'required': ['volumes'], - 'type': 'object'}}, - 'properties': {'AttachmentLife': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'FilesystemAttachmentParams': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/FilesystemAttachmentParamsResults'}}, - 'type': 'object'}, - 'FilesystemAttachments': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/FilesystemAttachmentResults'}}, - 'type': 'object'}, - 'FilesystemParams': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/FilesystemParamsResults'}}, - 'type': 'object'}, - 'Filesystems': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/FilesystemResults'}}, - 'type': 'object'}, - 'InstanceId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'Remove': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RemoveAttachment': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetFilesystemAttachmentInfo': {'properties': {'Params': {'$ref': '#/definitions/FilesystemAttachments'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetFilesystemInfo': {'properties': {'Params': {'$ref': '#/definitions/Filesystems'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetVolumeAttachmentInfo': {'properties': {'Params': {'$ref': '#/definitions/VolumeAttachments'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetVolumeInfo': {'properties': {'Params': {'$ref': '#/definitions/Volumes'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'VolumeAttachmentParams': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/VolumeAttachmentParamsResults'}}, - 'type': 'object'}, - 'VolumeAttachments': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/VolumeAttachmentResults'}}, - 'type': 'object'}, - 'VolumeBlockDevices': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/BlockDeviceResults'}}, - 'type': 'object'}, - 'VolumeParams': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/VolumeParamsResults'}}, - 'type': 'object'}, - 'Volumes': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/VolumeResults'}}, - 'type': 'object'}, - 'WatchBlockDevices': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchFilesystemAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResults'}}, - 'type': 'object'}, - 'WatchFilesystems': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchMachines': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchVolumeAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResults'}}, - 'type': 'object'}, - 'WatchVolumes': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(LifeResults) - async def AttachmentLife(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='AttachmentLife', - version=3, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnsureDead(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='EnsureDead', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FilesystemAttachmentParamsResults) - async def FilesystemAttachmentParams(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~FilesystemAttachmentParamsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='FilesystemAttachmentParams', - version=3, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FilesystemAttachmentResults) - async def FilesystemAttachments(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~FilesystemAttachmentResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='FilesystemAttachments', - version=3, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FilesystemParamsResults) - async def FilesystemParams(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~FilesystemParamsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='FilesystemParams', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FilesystemResults) - async def Filesystems(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~FilesystemResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='Filesystems', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def InstanceId(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='InstanceId', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='Life', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Remove(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='Remove', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RemoveAttachment(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='RemoveAttachment', - version=3, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetFilesystemAttachmentInfo(self, filesystem_attachments): - ''' - filesystem_attachments : typing.Sequence[~FilesystemAttachment] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='SetFilesystemAttachmentInfo', - version=3, - params=_params) - _params['filesystem-attachments'] = filesystem_attachments - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetFilesystemInfo(self, filesystems): - ''' - filesystems : typing.Sequence[~Filesystem] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='SetFilesystemInfo', - version=3, - params=_params) - _params['filesystems'] = filesystems - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='SetStatus', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetVolumeAttachmentInfo(self, volume_attachments): - ''' - volume_attachments : typing.Sequence[~VolumeAttachment] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='SetVolumeAttachmentInfo', - version=3, - params=_params) - _params['volume-attachments'] = volume_attachments - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetVolumeInfo(self, volumes): - ''' - volumes : typing.Sequence[~Volume] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='SetVolumeInfo', - version=3, - params=_params) - _params['volumes'] = volumes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='UpdateStatus', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(VolumeAttachmentParamsResults) - async def VolumeAttachmentParams(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~VolumeAttachmentParamsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='VolumeAttachmentParams', - version=3, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(VolumeAttachmentResults) - async def VolumeAttachments(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~VolumeAttachmentResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='VolumeAttachments', - version=3, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BlockDeviceResults) - async def VolumeBlockDevices(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~BlockDeviceResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='VolumeBlockDevices', - version=3, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(VolumeParamsResults) - async def VolumeParams(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~VolumeParamsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='VolumeParams', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(VolumeResults) - async def Volumes(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~VolumeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='Volumes', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchBlockDevices(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchBlockDevices', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachineStorageIdsWatchResults) - async def WatchFilesystemAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachineStorageIdsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchFilesystemAttachments', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchFilesystems(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchFilesystems', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchMachines(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchMachines', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachineStorageIdsWatchResults) - async def WatchVolumeAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachineStorageIdsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchVolumeAttachments', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchVolumes(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchVolumes', - version=3, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply diff --git a/modules/libjuju/juju/client/_client4.py b/modules/libjuju/juju/client/_client4.py deleted file mode 100644 index 2336d2c..0000000 --- a/modules/libjuju/juju/client/_client4.py +++ /dev/null @@ -1,4626 +0,0 @@ -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. - -from juju.client._definitions import * -from juju.client.facade import ReturnMapping, Type - - -class ApplicationFacade(Type): - name = 'Application' - version = 4 - schema = {'definitions': {'AddApplicationUnits': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'num-units': {'type': 'integer'}, - 'placement': {'items': {'$ref': '#/definitions/Placement'}, - 'type': 'array'}}, - 'required': ['application', - 'num-units', - 'placement'], - 'type': 'object'}, - 'AddApplicationUnitsResults': {'additionalProperties': False, - 'properties': {'units': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['units'], - 'type': 'object'}, - 'AddRelation': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'AddRelationResults': {'additionalProperties': False, - 'properties': {'endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, - 'type': 'object'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'ApplicationCharmRelations': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationCharmRelationsResults': {'additionalProperties': False, - 'properties': {'charm-relations': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['charm-relations'], - 'type': 'object'}, - 'ApplicationDeploy': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'channel': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'config-yaml': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'num-units': {'type': 'integer'}, - 'placement': {'items': {'$ref': '#/definitions/Placement'}, - 'type': 'array'}, - 'resources': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'series': {'type': 'string'}, - 'storage': {'patternProperties': {'.*': {'$ref': '#/definitions/Constraints'}}, - 'type': 'object'}}, - 'required': ['application', - 'series', - 'charm-url', - 'channel', - 'num-units', - 'config-yaml', - 'constraints'], - 'type': 'object'}, - 'ApplicationDestroy': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationExpose': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationGet': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationGetResults': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'charm': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'series': {'type': 'string'}}, - 'required': ['application', - 'charm', - 'config', - 'constraints', - 'series'], - 'type': 'object'}, - 'ApplicationMetricCredential': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'metrics-credentials': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['application', - 'metrics-credentials'], - 'type': 'object'}, - 'ApplicationMetricCredentials': {'additionalProperties': False, - 'properties': {'creds': {'items': {'$ref': '#/definitions/ApplicationMetricCredential'}, - 'type': 'array'}}, - 'required': ['creds'], - 'type': 'object'}, - 'ApplicationSet': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'options': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['application', 'options'], - 'type': 'object'}, - 'ApplicationSetCharm': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'channel': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'config-settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'config-settings-yaml': {'type': 'string'}, - 'force-series': {'type': 'boolean'}, - 'force-units': {'type': 'boolean'}, - 'resource-ids': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'storage-constraints': {'patternProperties': {'.*': {'$ref': '#/definitions/StorageConstraints'}}, - 'type': 'object'}}, - 'required': ['application', - 'charm-url', - 'channel', - 'force-units', - 'force-series'], - 'type': 'object'}, - 'ApplicationURLs': {'additionalProperties': False, - 'properties': {'application-urls': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ApplicationUnexpose': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationUnset': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'options': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['application', 'options'], - 'type': 'object'}, - 'ApplicationUpdate': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'force-charm-url': {'type': 'boolean'}, - 'force-series': {'type': 'boolean'}, - 'min-units': {'type': 'integer'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'settings-yaml': {'type': 'string'}}, - 'required': ['application', - 'charm-url', - 'force-charm-url', - 'force-series', - 'settings-yaml'], - 'type': 'object'}, - 'ApplicationsDeploy': {'additionalProperties': False, - 'properties': {'applications': {'items': {'$ref': '#/definitions/ApplicationDeploy'}, - 'type': 'array'}}, - 'required': ['applications'], - 'type': 'object'}, - 'CharmRelation': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'optional': {'type': 'boolean'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'optional', - 'limit', - 'scope'], - 'type': 'object'}, - 'Constraints': {'additionalProperties': False, - 'properties': {'Count': {'type': 'integer'}, - 'Pool': {'type': 'string'}, - 'Size': {'type': 'integer'}}, - 'required': ['Pool', 'Size', 'Count'], - 'type': 'object'}, - 'ConsumeApplicationArg': {'additionalProperties': False, - 'properties': {'application-alias': {'type': 'string'}, - 'application-url': {'type': 'string'}}, - 'required': ['application-url'], - 'type': 'object'}, - 'ConsumeApplicationArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/ConsumeApplicationArg'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ConsumeApplicationResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'local-name': {'type': 'string'}}, - 'type': 'object'}, - 'ConsumeApplicationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ConsumeApplicationResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'DestroyApplicationInfo': {'additionalProperties': False, - 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'destroyed-units': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyApplicationResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'$ref': '#/definitions/DestroyApplicationInfo'}}, - 'type': 'object'}, - 'DestroyApplicationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyApplicationResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyApplicationUnits': {'additionalProperties': False, - 'properties': {'unit-names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['unit-names'], - 'type': 'object'}, - 'DestroyRelation': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'DestroyUnitInfo': {'additionalProperties': False, - 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyUnitResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'$ref': '#/definitions/DestroyUnitInfo'}}, - 'type': 'object'}, - 'DestroyUnitResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyUnitResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GetApplicationConstraints': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'GetConstraintsResults': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Placement': {'additionalProperties': False, - 'properties': {'directive': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['scope', 'directive'], - 'type': 'object'}, - 'RemoteApplicationInfo': {'additionalProperties': False, - 'properties': {'application-url': {'type': 'string'}, - 'description': {'type': 'string'}, - 'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'}, - 'type': 'array'}, - 'icon-url-path': {'type': 'string'}, - 'model-tag': {'type': 'string'}, - 'name': {'type': 'string'}, - 'source-model-label': {'type': 'string'}}, - 'required': ['model-tag', - 'name', - 'description', - 'application-url', - 'endpoints', - 'icon-url-path'], - 'type': 'object'}, - 'RemoteApplicationInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/RemoteApplicationInfo'}}, - 'type': 'object'}, - 'RemoteApplicationInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RemoteApplicationInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RemoteEndpoint': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'limit', - 'scope'], - 'type': 'object'}, - 'SetConstraints': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['application', 'constraints'], - 'type': 'object'}, - 'StorageConstraints': {'additionalProperties': False, - 'properties': {'count': {'type': 'integer'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}}, - 'type': 'object'}}, - 'properties': {'AddRelation': {'properties': {'Params': {'$ref': '#/definitions/AddRelation'}, - 'Result': {'$ref': '#/definitions/AddRelationResults'}}, - 'type': 'object'}, - 'AddUnits': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationUnits'}, - 'Result': {'$ref': '#/definitions/AddApplicationUnitsResults'}}, - 'type': 'object'}, - 'CharmRelations': {'properties': {'Params': {'$ref': '#/definitions/ApplicationCharmRelations'}, - 'Result': {'$ref': '#/definitions/ApplicationCharmRelationsResults'}}, - 'type': 'object'}, - 'Consume': {'properties': {'Params': {'$ref': '#/definitions/ConsumeApplicationArgs'}, - 'Result': {'$ref': '#/definitions/ConsumeApplicationResults'}}, - 'type': 'object'}, - 'Deploy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationsDeploy'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationDestroy'}}, - 'type': 'object'}, - 'DestroyApplication': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/DestroyApplicationResults'}}, - 'type': 'object'}, - 'DestroyRelation': {'properties': {'Params': {'$ref': '#/definitions/DestroyRelation'}}, - 'type': 'object'}, - 'DestroyUnit': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/DestroyUnitResults'}}, - 'type': 'object'}, - 'DestroyUnits': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationUnits'}}, - 'type': 'object'}, - 'Expose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationExpose'}}, - 'type': 'object'}, - 'Get': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, - 'Result': {'$ref': '#/definitions/ApplicationGetResults'}}, - 'type': 'object'}, - 'GetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, - 'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'GetConstraints': {'properties': {'Params': {'$ref': '#/definitions/GetApplicationConstraints'}, - 'Result': {'$ref': '#/definitions/GetConstraintsResults'}}, - 'type': 'object'}, - 'RemoteApplicationInfo': {'properties': {'Params': {'$ref': '#/definitions/ApplicationURLs'}, - 'Result': {'$ref': '#/definitions/RemoteApplicationInfoResults'}}, - 'type': 'object'}, - 'Set': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSet'}}, - 'type': 'object'}, - 'SetCharm': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSetCharm'}}, - 'type': 'object'}, - 'SetConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, - 'type': 'object'}, - 'SetMetricCredentials': {'properties': {'Params': {'$ref': '#/definitions/ApplicationMetricCredentials'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Unexpose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnexpose'}}, - 'type': 'object'}, - 'Unset': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnset'}}, - 'type': 'object'}, - 'Update': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUpdate'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddRelationResults) - async def AddRelation(self, endpoints): - ''' - endpoints : typing.Sequence[str] - Returns -> typing.Mapping[str, ~CharmRelation] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='AddRelation', - version=4, - params=_params) - _params['endpoints'] = endpoints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddApplicationUnitsResults) - async def AddUnits(self, application, num_units, placement): - ''' - application : str - num_units : int - placement : typing.Sequence[~Placement] - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='AddUnits', - version=4, - params=_params) - _params['application'] = application - _params['num-units'] = num_units - _params['placement'] = placement - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationCharmRelationsResults) - async def CharmRelations(self, application): - ''' - application : str - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='CharmRelations', - version=4, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ConsumeApplicationResults) - async def Consume(self, args): - ''' - args : typing.Sequence[~ConsumeApplicationArg] - Returns -> typing.Sequence[~ConsumeApplicationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Consume', - version=4, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Deploy(self, applications): - ''' - applications : typing.Sequence[~ApplicationDeploy] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Deploy', - version=4, - params=_params) - _params['applications'] = applications - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Destroy(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Destroy', - version=4, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DestroyApplicationResults) - async def DestroyApplication(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~DestroyApplicationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyApplication', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyRelation(self, endpoints): - ''' - endpoints : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyRelation', - version=4, - params=_params) - _params['endpoints'] = endpoints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DestroyUnitResults) - async def DestroyUnit(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~DestroyUnitResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyUnit', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyUnits(self, unit_names): - ''' - unit_names : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyUnits', - version=4, - params=_params) - _params['unit-names'] = unit_names - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Expose(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Expose', - version=4, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationGetResults) - async def Get(self, application): - ''' - application : str - Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Get', - version=4, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def GetCharmURL(self, application): - ''' - application : str - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetCharmURL', - version=4, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(GetConstraintsResults) - async def GetConstraints(self, application): - ''' - application : str - Returns -> Value - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetConstraints', - version=4, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RemoteApplicationInfoResults) - async def RemoteApplicationInfo(self, application_urls): - ''' - application_urls : typing.Sequence[str] - Returns -> typing.Sequence[~RemoteApplicationInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='RemoteApplicationInfo', - version=4, - params=_params) - _params['application-urls'] = application_urls - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Set(self, application, options): - ''' - application : str - options : typing.Mapping[str, str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Set', - version=4, - params=_params) - _params['application'] = application - _params['options'] = options - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetCharm(self, application, channel, charm_url, config_settings, config_settings_yaml, force_series, force_units, resource_ids, storage_constraints): - ''' - application : str - channel : str - charm_url : str - config_settings : typing.Mapping[str, str] - config_settings_yaml : str - force_series : bool - force_units : bool - resource_ids : typing.Mapping[str, str] - storage_constraints : typing.Mapping[str, ~StorageConstraints] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetCharm', - version=4, - params=_params) - _params['application'] = application - _params['channel'] = channel - _params['charm-url'] = charm_url - _params['config-settings'] = config_settings - _params['config-settings-yaml'] = config_settings_yaml - _params['force-series'] = force_series - _params['force-units'] = force_units - _params['resource-ids'] = resource_ids - _params['storage-constraints'] = storage_constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetConstraints(self, application, constraints): - ''' - application : str - constraints : Value - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetConstraints', - version=4, - params=_params) - _params['application'] = application - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetMetricCredentials(self, creds): - ''' - creds : typing.Sequence[~ApplicationMetricCredential] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetMetricCredentials', - version=4, - params=_params) - _params['creds'] = creds - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Unexpose(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Unexpose', - version=4, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Unset(self, application, options): - ''' - application : str - options : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Unset', - version=4, - params=_params) - _params['application'] = application - _params['options'] = options - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Update(self, application, charm_url, constraints, force_charm_url, force_series, min_units, settings, settings_yaml): - ''' - application : str - charm_url : str - constraints : Value - force_charm_url : bool - force_series : bool - min_units : int - settings : typing.Mapping[str, str] - settings_yaml : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Update', - version=4, - params=_params) - _params['application'] = application - _params['charm-url'] = charm_url - _params['constraints'] = constraints - _params['force-charm-url'] = force_charm_url - _params['force-series'] = force_series - _params['min-units'] = min_units - _params['settings'] = settings - _params['settings-yaml'] = settings_yaml - reply = await self.rpc(msg) - return reply - - - -class StorageFacade(Type): - name = 'Storage' - version = 4 - schema = {'definitions': {'AddStorageDetails': {'additionalProperties': False, - 'properties': {'storage-tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['storage-tags'], - 'type': 'object'}, - 'AddStorageResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/AddStorageDetails'}}, - 'type': 'object'}, - 'AddStorageResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/AddStorageResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'BulkImportStorageParams': {'additionalProperties': False, - 'properties': {'storage': {'items': {'$ref': '#/definitions/ImportStorageParams'}, - 'type': 'array'}}, - 'required': ['storage'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'info', 'since'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'FilesystemAttachmentDetails': {'additionalProperties': False, - 'properties': {'FilesystemAttachmentInfo': {'$ref': '#/definitions/FilesystemAttachmentInfo'}, - 'life': {'type': 'string'}}, - 'required': ['FilesystemAttachmentInfo'], - 'type': 'object'}, - 'FilesystemAttachmentInfo': {'additionalProperties': False, - 'properties': {'mount-point': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'type': 'object'}, - 'FilesystemDetails': {'additionalProperties': False, - 'properties': {'filesystem-tag': {'type': 'string'}, - 'info': {'$ref': '#/definitions/FilesystemInfo'}, - 'life': {'type': 'string'}, - 'machine-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/FilesystemAttachmentDetails'}}, - 'type': 'object'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'storage': {'$ref': '#/definitions/StorageDetails'}, - 'unit-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/FilesystemAttachmentDetails'}}, - 'type': 'object'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['filesystem-tag', - 'info', - 'status'], - 'type': 'object'}, - 'FilesystemDetailsListResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'$ref': '#/definitions/FilesystemDetails'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemDetailsListResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemDetailsListResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemFilter': {'additionalProperties': False, - 'properties': {'machines': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemFilters': {'additionalProperties': False, - 'properties': {'filters': {'items': {'$ref': '#/definitions/FilesystemFilter'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemInfo': {'additionalProperties': False, - 'properties': {'filesystem-id': {'type': 'string'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'required': ['filesystem-id', - 'pool', - 'size'], - 'type': 'object'}, - 'ImportStorageDetails': {'additionalProperties': False, - 'properties': {'storage-tag': {'type': 'string'}}, - 'required': ['storage-tag'], - 'type': 'object'}, - 'ImportStorageParams': {'additionalProperties': False, - 'properties': {'kind': {'type': 'integer'}, - 'pool': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'storage-name': {'type': 'string'}}, - 'required': ['kind', - 'pool', - 'provider-id', - 'storage-name'], - 'type': 'object'}, - 'ImportStorageResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ImportStorageDetails'}}, - 'type': 'object'}, - 'ImportStorageResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ImportStorageResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'RemoveStorage': {'additionalProperties': False, - 'properties': {'storage': {'items': {'$ref': '#/definitions/RemoveStorageInstance'}, - 'type': 'array'}}, - 'required': ['storage'], - 'type': 'object'}, - 'RemoveStorageInstance': {'additionalProperties': False, - 'properties': {'destroy-attachments': {'type': 'boolean'}, - 'destroy-storage': {'type': 'boolean'}, - 'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'StorageAddParams': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'storage': {'$ref': '#/definitions/StorageConstraints'}, - 'unit': {'type': 'string'}}, - 'required': ['unit', 'name', 'storage'], - 'type': 'object'}, - 'StorageAttachmentDetails': {'additionalProperties': False, - 'properties': {'life': {'type': 'string'}, - 'location': {'type': 'string'}, - 'machine-tag': {'type': 'string'}, - 'storage-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'unit-tag', - 'machine-tag'], - 'type': 'object'}, - 'StorageAttachmentId': {'additionalProperties': False, - 'properties': {'storage-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'unit-tag'], - 'type': 'object'}, - 'StorageAttachmentIds': {'additionalProperties': False, - 'properties': {'ids': {'items': {'$ref': '#/definitions/StorageAttachmentId'}, - 'type': 'array'}}, - 'required': ['ids'], - 'type': 'object'}, - 'StorageConstraints': {'additionalProperties': False, - 'properties': {'count': {'type': 'integer'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'type': 'object'}, - 'StorageDetails': {'additionalProperties': False, - 'properties': {'attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/StorageAttachmentDetails'}}, - 'type': 'object'}, - 'kind': {'type': 'integer'}, - 'life': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'persistent': {'type': 'boolean'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'storage-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'owner-tag', - 'kind', - 'status', - 'persistent'], - 'type': 'object'}, - 'StorageDetailsListResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'$ref': '#/definitions/StorageDetails'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageDetailsListResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StorageDetailsListResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageDetailsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/StorageDetails'}}, - 'type': 'object'}, - 'StorageDetailsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StorageDetailsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageFilter': {'additionalProperties': False, - 'type': 'object'}, - 'StorageFilters': {'additionalProperties': False, - 'properties': {'filters': {'items': {'$ref': '#/definitions/StorageFilter'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StoragePool': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'name': {'type': 'string'}, - 'provider': {'type': 'string'}}, - 'required': ['name', 'provider', 'attrs'], - 'type': 'object'}, - 'StoragePoolFilter': {'additionalProperties': False, - 'properties': {'names': {'items': {'type': 'string'}, - 'type': 'array'}, - 'providers': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StoragePoolFilters': {'additionalProperties': False, - 'properties': {'filters': {'items': {'$ref': '#/definitions/StoragePoolFilter'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StoragePoolsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'storage-pools': {'items': {'$ref': '#/definitions/StoragePool'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StoragePoolsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StoragePoolsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StoragesAddParams': {'additionalProperties': False, - 'properties': {'storages': {'items': {'$ref': '#/definitions/StorageAddParams'}, - 'type': 'array'}}, - 'required': ['storages'], - 'type': 'object'}, - 'VolumeAttachmentDetails': {'additionalProperties': False, - 'properties': {'VolumeAttachmentInfo': {'$ref': '#/definitions/VolumeAttachmentInfo'}, - 'life': {'type': 'string'}}, - 'required': ['VolumeAttachmentInfo'], - 'type': 'object'}, - 'VolumeAttachmentInfo': {'additionalProperties': False, - 'properties': {'bus-address': {'type': 'string'}, - 'device-link': {'type': 'string'}, - 'device-name': {'type': 'string'}, - 'plan-info': {'$ref': '#/definitions/VolumeAttachmentPlanInfo'}, - 'read-only': {'type': 'boolean'}}, - 'type': 'object'}, - 'VolumeAttachmentPlanInfo': {'additionalProperties': False, - 'properties': {'device-attributes': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'device-type': {'type': 'string'}}, - 'type': 'object'}, - 'VolumeDetails': {'additionalProperties': False, - 'properties': {'info': {'$ref': '#/definitions/VolumeInfo'}, - 'life': {'type': 'string'}, - 'machine-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/VolumeAttachmentDetails'}}, - 'type': 'object'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'storage': {'$ref': '#/definitions/StorageDetails'}, - 'unit-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/VolumeAttachmentDetails'}}, - 'type': 'object'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', 'info', 'status'], - 'type': 'object'}, - 'VolumeDetailsListResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'$ref': '#/definitions/VolumeDetails'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeDetailsListResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeDetailsListResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeFilter': {'additionalProperties': False, - 'properties': {'machines': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeFilters': {'additionalProperties': False, - 'properties': {'filters': {'items': {'$ref': '#/definitions/VolumeFilter'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeInfo': {'additionalProperties': False, - 'properties': {'hardware-id': {'type': 'string'}, - 'persistent': {'type': 'boolean'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'volume-id': {'type': 'string'}, - 'wwn': {'type': 'string'}}, - 'required': ['volume-id', 'size', 'persistent'], - 'type': 'object'}}, - 'properties': {'AddToUnit': {'properties': {'Params': {'$ref': '#/definitions/StoragesAddParams'}, - 'Result': {'$ref': '#/definitions/AddStorageResults'}}, - 'type': 'object'}, - 'Attach': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'CreatePool': {'properties': {'Params': {'$ref': '#/definitions/StoragePool'}}, - 'type': 'object'}, - 'Detach': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Import': {'properties': {'Params': {'$ref': '#/definitions/BulkImportStorageParams'}, - 'Result': {'$ref': '#/definitions/ImportStorageResults'}}, - 'type': 'object'}, - 'ListFilesystems': {'properties': {'Params': {'$ref': '#/definitions/FilesystemFilters'}, - 'Result': {'$ref': '#/definitions/FilesystemDetailsListResults'}}, - 'type': 'object'}, - 'ListPools': {'properties': {'Params': {'$ref': '#/definitions/StoragePoolFilters'}, - 'Result': {'$ref': '#/definitions/StoragePoolsResults'}}, - 'type': 'object'}, - 'ListStorageDetails': {'properties': {'Params': {'$ref': '#/definitions/StorageFilters'}, - 'Result': {'$ref': '#/definitions/StorageDetailsListResults'}}, - 'type': 'object'}, - 'ListVolumes': {'properties': {'Params': {'$ref': '#/definitions/VolumeFilters'}, - 'Result': {'$ref': '#/definitions/VolumeDetailsListResults'}}, - 'type': 'object'}, - 'Remove': {'properties': {'Params': {'$ref': '#/definitions/RemoveStorage'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'StorageDetails': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StorageDetailsResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddStorageResults) - async def AddToUnit(self, storages): - ''' - storages : typing.Sequence[~StorageAddParams] - Returns -> typing.Sequence[~AddStorageResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='AddToUnit', - version=4, - params=_params) - _params['storages'] = storages - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Attach(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='Attach', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def CreatePool(self, attrs, name, provider): - ''' - attrs : typing.Mapping[str, typing.Any] - name : str - provider : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='CreatePool', - version=4, - params=_params) - _params['attrs'] = attrs - _params['name'] = name - _params['provider'] = provider - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Detach(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='Detach', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ImportStorageResults) - async def Import(self, storage): - ''' - storage : typing.Sequence[~ImportStorageParams] - Returns -> typing.Sequence[~ImportStorageResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='Import', - version=4, - params=_params) - _params['storage'] = storage - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FilesystemDetailsListResults) - async def ListFilesystems(self, filters): - ''' - filters : typing.Sequence[~FilesystemFilter] - Returns -> typing.Sequence[~FilesystemDetailsListResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='ListFilesystems', - version=4, - params=_params) - _params['filters'] = filters - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StoragePoolsResults) - async def ListPools(self, filters): - ''' - filters : typing.Sequence[~StoragePoolFilter] - Returns -> typing.Sequence[~StoragePoolsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='ListPools', - version=4, - params=_params) - _params['filters'] = filters - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StorageDetailsListResults) - async def ListStorageDetails(self, filters): - ''' - filters : typing.Sequence[~StorageFilter] - Returns -> typing.Sequence[~StorageDetailsListResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='ListStorageDetails', - version=4, - params=_params) - _params['filters'] = filters - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(VolumeDetailsListResults) - async def ListVolumes(self, filters): - ''' - filters : typing.Sequence[~VolumeFilter] - Returns -> typing.Sequence[~VolumeDetailsListResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='ListVolumes', - version=4, - params=_params) - _params['filters'] = filters - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Remove(self, storage): - ''' - storage : typing.Sequence[~RemoveStorageInstance] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='Remove', - version=4, - params=_params) - _params['storage'] = storage - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StorageDetailsResults) - async def StorageDetails(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StorageDetailsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Storage', - request='StorageDetails', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class StorageProvisionerFacade(Type): - name = 'StorageProvisioner' - version = 4 - schema = {'definitions': {'BlockDevice': {'additionalProperties': False, - 'properties': {'BusAddress': {'type': 'string'}, - 'DeviceLinks': {'items': {'type': 'string'}, - 'type': 'array'}, - 'DeviceName': {'type': 'string'}, - 'FilesystemType': {'type': 'string'}, - 'HardwareId': {'type': 'string'}, - 'InUse': {'type': 'boolean'}, - 'Label': {'type': 'string'}, - 'MountPoint': {'type': 'string'}, - 'Size': {'type': 'integer'}, - 'UUID': {'type': 'string'}, - 'WWN': {'type': 'string'}}, - 'required': ['DeviceName', - 'DeviceLinks', - 'Label', - 'UUID', - 'HardwareId', - 'WWN', - 'BusAddress', - 'Size', - 'FilesystemType', - 'InUse', - 'MountPoint'], - 'type': 'object'}, - 'BlockDeviceResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/BlockDevice'}}, - 'required': ['result'], - 'type': 'object'}, - 'BlockDeviceResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/BlockDeviceResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Filesystem': {'additionalProperties': False, - 'properties': {'filesystem-tag': {'type': 'string'}, - 'info': {'$ref': '#/definitions/FilesystemInfo'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['filesystem-tag', 'info'], - 'type': 'object'}, - 'FilesystemAttachment': {'additionalProperties': False, - 'properties': {'filesystem-tag': {'type': 'string'}, - 'info': {'$ref': '#/definitions/FilesystemAttachmentInfo'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['filesystem-tag', - 'machine-tag', - 'info'], - 'type': 'object'}, - 'FilesystemAttachmentInfo': {'additionalProperties': False, - 'properties': {'mount-point': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'type': 'object'}, - 'FilesystemAttachmentParams': {'additionalProperties': False, - 'properties': {'filesystem-id': {'type': 'string'}, - 'filesystem-tag': {'type': 'string'}, - 'instance-id': {'type': 'string'}, - 'machine-tag': {'type': 'string'}, - 'mount-point': {'type': 'string'}, - 'provider': {'type': 'string'}, - 'read-only': {'type': 'boolean'}}, - 'required': ['filesystem-tag', - 'machine-tag', - 'provider'], - 'type': 'object'}, - 'FilesystemAttachmentParamsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/FilesystemAttachmentParams'}}, - 'required': ['result'], - 'type': 'object'}, - 'FilesystemAttachmentParamsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemAttachmentParamsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemAttachmentResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/FilesystemAttachment'}}, - 'required': ['result'], - 'type': 'object'}, - 'FilesystemAttachmentResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemAttachmentResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemAttachments': {'additionalProperties': False, - 'properties': {'filesystem-attachments': {'items': {'$ref': '#/definitions/FilesystemAttachment'}, - 'type': 'array'}}, - 'required': ['filesystem-attachments'], - 'type': 'object'}, - 'FilesystemInfo': {'additionalProperties': False, - 'properties': {'filesystem-id': {'type': 'string'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'required': ['filesystem-id', - 'pool', - 'size'], - 'type': 'object'}, - 'FilesystemParams': {'additionalProperties': False, - 'properties': {'attachment': {'$ref': '#/definitions/FilesystemAttachmentParams'}, - 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'filesystem-tag': {'type': 'string'}, - 'provider': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['filesystem-tag', - 'size', - 'provider'], - 'type': 'object'}, - 'FilesystemParamsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/FilesystemParams'}}, - 'required': ['result'], - 'type': 'object'}, - 'FilesystemParamsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemParamsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'FilesystemResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/Filesystem'}}, - 'required': ['result'], - 'type': 'object'}, - 'FilesystemResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Filesystems': {'additionalProperties': False, - 'properties': {'filesystems': {'items': {'$ref': '#/definitions/Filesystem'}, - 'type': 'array'}}, - 'required': ['filesystems'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineStorageId': {'additionalProperties': False, - 'properties': {'attachment-tag': {'type': 'string'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['machine-tag', - 'attachment-tag'], - 'type': 'object'}, - 'MachineStorageIds': {'additionalProperties': False, - 'properties': {'ids': {'items': {'$ref': '#/definitions/MachineStorageId'}, - 'type': 'array'}}, - 'required': ['ids'], - 'type': 'object'}, - 'MachineStorageIdsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/MachineStorageId'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}, - 'MachineStorageIdsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MachineStorageIdsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RemoveFilesystemParams': {'additionalProperties': False, - 'properties': {'destroy': {'type': 'boolean'}, - 'filesystem-id': {'type': 'string'}, - 'provider': {'type': 'string'}}, - 'required': ['provider', - 'filesystem-id'], - 'type': 'object'}, - 'RemoveFilesystemParamsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/RemoveFilesystemParams'}}, - 'required': ['result'], - 'type': 'object'}, - 'RemoveFilesystemParamsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RemoveFilesystemParamsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'RemoveVolumeParams': {'additionalProperties': False, - 'properties': {'destroy': {'type': 'boolean'}, - 'provider': {'type': 'string'}, - 'volume-id': {'type': 'string'}}, - 'required': ['provider', 'volume-id'], - 'type': 'object'}, - 'RemoveVolumeParamsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/RemoveVolumeParams'}}, - 'required': ['result'], - 'type': 'object'}, - 'RemoveVolumeParamsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RemoveVolumeParamsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Volume': {'additionalProperties': False, - 'properties': {'info': {'$ref': '#/definitions/VolumeInfo'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', 'info'], - 'type': 'object'}, - 'VolumeAttachment': {'additionalProperties': False, - 'properties': {'info': {'$ref': '#/definitions/VolumeAttachmentInfo'}, - 'machine-tag': {'type': 'string'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', - 'machine-tag', - 'info'], - 'type': 'object'}, - 'VolumeAttachmentInfo': {'additionalProperties': False, - 'properties': {'bus-address': {'type': 'string'}, - 'device-link': {'type': 'string'}, - 'device-name': {'type': 'string'}, - 'plan-info': {'$ref': '#/definitions/VolumeAttachmentPlanInfo'}, - 'read-only': {'type': 'boolean'}}, - 'type': 'object'}, - 'VolumeAttachmentParams': {'additionalProperties': False, - 'properties': {'instance-id': {'type': 'string'}, - 'machine-tag': {'type': 'string'}, - 'provider': {'type': 'string'}, - 'read-only': {'type': 'boolean'}, - 'volume-id': {'type': 'string'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', - 'machine-tag', - 'provider'], - 'type': 'object'}, - 'VolumeAttachmentParamsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/VolumeAttachmentParams'}}, - 'required': ['result'], - 'type': 'object'}, - 'VolumeAttachmentParamsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeAttachmentParamsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeAttachmentPlan': {'additionalProperties': False, - 'properties': {'block-device': {'$ref': '#/definitions/BlockDevice'}, - 'life': {'type': 'string'}, - 'machine-tag': {'type': 'string'}, - 'plan-info': {'$ref': '#/definitions/VolumeAttachmentPlanInfo'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', - 'machine-tag', - 'plan-info'], - 'type': 'object'}, - 'VolumeAttachmentPlanInfo': {'additionalProperties': False, - 'properties': {'device-attributes': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'device-type': {'type': 'string'}}, - 'type': 'object'}, - 'VolumeAttachmentPlanResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/VolumeAttachmentPlan'}}, - 'required': ['result'], - 'type': 'object'}, - 'VolumeAttachmentPlanResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeAttachmentPlanResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeAttachmentPlans': {'additionalProperties': False, - 'properties': {'volume-plans': {'items': {'$ref': '#/definitions/VolumeAttachmentPlan'}, - 'type': 'array'}}, - 'required': ['volume-plans'], - 'type': 'object'}, - 'VolumeAttachmentResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/VolumeAttachment'}}, - 'required': ['result'], - 'type': 'object'}, - 'VolumeAttachmentResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeAttachmentResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeAttachments': {'additionalProperties': False, - 'properties': {'volume-attachments': {'items': {'$ref': '#/definitions/VolumeAttachment'}, - 'type': 'array'}}, - 'required': ['volume-attachments'], - 'type': 'object'}, - 'VolumeInfo': {'additionalProperties': False, - 'properties': {'hardware-id': {'type': 'string'}, - 'persistent': {'type': 'boolean'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'volume-id': {'type': 'string'}, - 'wwn': {'type': 'string'}}, - 'required': ['volume-id', 'size', 'persistent'], - 'type': 'object'}, - 'VolumeParams': {'additionalProperties': False, - 'properties': {'attachment': {'$ref': '#/definitions/VolumeAttachmentParams'}, - 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'provider': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', - 'size', - 'provider'], - 'type': 'object'}, - 'VolumeParamsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/VolumeParams'}}, - 'required': ['result'], - 'type': 'object'}, - 'VolumeParamsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeParamsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'VolumeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/Volume'}}, - 'required': ['result'], - 'type': 'object'}, - 'VolumeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Volumes': {'additionalProperties': False, - 'properties': {'volumes': {'items': {'$ref': '#/definitions/Volume'}, - 'type': 'array'}}, - 'required': ['volumes'], - 'type': 'object'}}, - 'properties': {'AttachmentLife': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'CreateVolumeAttachmentPlans': {'properties': {'Params': {'$ref': '#/definitions/VolumeAttachmentPlans'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'FilesystemAttachmentParams': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/FilesystemAttachmentParamsResults'}}, - 'type': 'object'}, - 'FilesystemAttachments': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/FilesystemAttachmentResults'}}, - 'type': 'object'}, - 'FilesystemParams': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/FilesystemParamsResults'}}, - 'type': 'object'}, - 'Filesystems': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/FilesystemResults'}}, - 'type': 'object'}, - 'InstanceId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'Remove': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RemoveAttachment': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RemoveFilesystemParams': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/RemoveFilesystemParamsResults'}}, - 'type': 'object'}, - 'RemoveVolumeAttachmentPlan': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RemoveVolumeParams': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/RemoveVolumeParamsResults'}}, - 'type': 'object'}, - 'SetFilesystemAttachmentInfo': {'properties': {'Params': {'$ref': '#/definitions/FilesystemAttachments'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetFilesystemInfo': {'properties': {'Params': {'$ref': '#/definitions/Filesystems'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetVolumeAttachmentInfo': {'properties': {'Params': {'$ref': '#/definitions/VolumeAttachments'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetVolumeAttachmentPlanBlockInfo': {'properties': {'Params': {'$ref': '#/definitions/VolumeAttachmentPlans'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetVolumeInfo': {'properties': {'Params': {'$ref': '#/definitions/Volumes'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'VolumeAttachmentParams': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/VolumeAttachmentParamsResults'}}, - 'type': 'object'}, - 'VolumeAttachmentPlans': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/VolumeAttachmentPlanResults'}}, - 'type': 'object'}, - 'VolumeAttachments': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/VolumeAttachmentResults'}}, - 'type': 'object'}, - 'VolumeBlockDevices': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'}, - 'Result': {'$ref': '#/definitions/BlockDeviceResults'}}, - 'type': 'object'}, - 'VolumeParams': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/VolumeParamsResults'}}, - 'type': 'object'}, - 'Volumes': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/VolumeResults'}}, - 'type': 'object'}, - 'WatchApplications': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}, - 'WatchBlockDevices': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchFilesystemAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResults'}}, - 'type': 'object'}, - 'WatchFilesystems': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchMachines': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchVolumeAttachmentPlans': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResults'}}, - 'type': 'object'}, - 'WatchVolumeAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResults'}}, - 'type': 'object'}, - 'WatchVolumes': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(LifeResults) - async def AttachmentLife(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='AttachmentLife', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def CreateVolumeAttachmentPlans(self, volume_plans): - ''' - volume_plans : typing.Sequence[~VolumeAttachmentPlan] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='CreateVolumeAttachmentPlans', - version=4, - params=_params) - _params['volume-plans'] = volume_plans - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnsureDead(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='EnsureDead', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FilesystemAttachmentParamsResults) - async def FilesystemAttachmentParams(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~FilesystemAttachmentParamsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='FilesystemAttachmentParams', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FilesystemAttachmentResults) - async def FilesystemAttachments(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~FilesystemAttachmentResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='FilesystemAttachments', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FilesystemParamsResults) - async def FilesystemParams(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~FilesystemParamsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='FilesystemParams', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FilesystemResults) - async def Filesystems(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~FilesystemResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='Filesystems', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def InstanceId(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='InstanceId', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='Life', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Remove(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='Remove', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RemoveAttachment(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='RemoveAttachment', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RemoveFilesystemParamsResults) - async def RemoveFilesystemParams(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~RemoveFilesystemParamsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='RemoveFilesystemParams', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RemoveVolumeAttachmentPlan(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='RemoveVolumeAttachmentPlan', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RemoveVolumeParamsResults) - async def RemoveVolumeParams(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~RemoveVolumeParamsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='RemoveVolumeParams', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetFilesystemAttachmentInfo(self, filesystem_attachments): - ''' - filesystem_attachments : typing.Sequence[~FilesystemAttachment] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='SetFilesystemAttachmentInfo', - version=4, - params=_params) - _params['filesystem-attachments'] = filesystem_attachments - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetFilesystemInfo(self, filesystems): - ''' - filesystems : typing.Sequence[~Filesystem] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='SetFilesystemInfo', - version=4, - params=_params) - _params['filesystems'] = filesystems - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='SetStatus', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetVolumeAttachmentInfo(self, volume_attachments): - ''' - volume_attachments : typing.Sequence[~VolumeAttachment] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='SetVolumeAttachmentInfo', - version=4, - params=_params) - _params['volume-attachments'] = volume_attachments - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetVolumeAttachmentPlanBlockInfo(self, volume_plans): - ''' - volume_plans : typing.Sequence[~VolumeAttachmentPlan] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='SetVolumeAttachmentPlanBlockInfo', - version=4, - params=_params) - _params['volume-plans'] = volume_plans - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetVolumeInfo(self, volumes): - ''' - volumes : typing.Sequence[~Volume] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='SetVolumeInfo', - version=4, - params=_params) - _params['volumes'] = volumes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='UpdateStatus', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(VolumeAttachmentParamsResults) - async def VolumeAttachmentParams(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~VolumeAttachmentParamsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='VolumeAttachmentParams', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(VolumeAttachmentPlanResults) - async def VolumeAttachmentPlans(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~VolumeAttachmentPlanResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='VolumeAttachmentPlans', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(VolumeAttachmentResults) - async def VolumeAttachments(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~VolumeAttachmentResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='VolumeAttachments', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BlockDeviceResults) - async def VolumeBlockDevices(self, ids): - ''' - ids : typing.Sequence[~MachineStorageId] - Returns -> typing.Sequence[~BlockDeviceResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='VolumeBlockDevices', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(VolumeParamsResults) - async def VolumeParams(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~VolumeParamsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='VolumeParams', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(VolumeResults) - async def Volumes(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~VolumeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='Volumes', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchApplications(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchApplications', - version=4, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchBlockDevices(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchBlockDevices', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachineStorageIdsWatchResults) - async def WatchFilesystemAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachineStorageIdsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchFilesystemAttachments', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchFilesystems(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchFilesystems', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchMachines(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchMachines', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachineStorageIdsWatchResults) - async def WatchVolumeAttachmentPlans(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachineStorageIdsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchVolumeAttachmentPlans', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachineStorageIdsWatchResults) - async def WatchVolumeAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachineStorageIdsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchVolumeAttachments', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchVolumes(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='StorageProvisioner', - request='WatchVolumes', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class UniterFacade(Type): - name = 'Uniter' - version = 4 - schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, - 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, - 'type': 'array'}, - 'type': 'array'}}, - 'required': ['servers'], - 'type': 'object'}, - 'Action': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'parameters': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'receiver': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'receiver', 'name'], - 'type': 'object'}, - 'ActionExecutionResult': {'additionalProperties': False, - 'properties': {'action-tag': {'type': 'string'}, - 'message': {'type': 'string'}, - 'results': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'status': {'type': 'string'}}, - 'required': ['action-tag', 'status'], - 'type': 'object'}, - 'ActionExecutionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ActionExecutionResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ActionResult': {'additionalProperties': False, - 'properties': {'action': {'$ref': '#/definitions/Action'}, - 'completed': {'format': 'date-time', - 'type': 'string'}, - 'enqueued': {'format': 'date-time', - 'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'message': {'type': 'string'}, - 'output': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'started': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'type': 'object'}, - 'ActionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'ApplicationStatusResult': {'additionalProperties': False, - 'properties': {'application': {'$ref': '#/definitions/StatusResult'}, - 'error': {'$ref': '#/definitions/Error'}, - 'units': {'patternProperties': {'.*': {'$ref': '#/definitions/StatusResult'}}, - 'type': 'object'}}, - 'required': ['application', - 'units'], - 'type': 'object'}, - 'ApplicationStatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationStatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'BoolResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'boolean'}}, - 'required': ['result'], - 'type': 'object'}, - 'BoolResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'BytesResult': {'additionalProperties': False, - 'properties': {'result': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['result'], - 'type': 'object'}, - 'CharmRelation': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'optional': {'type': 'boolean'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'optional', - 'limit', - 'scope'], - 'type': 'object'}, - 'CharmURL': {'additionalProperties': False, - 'properties': {'url': {'type': 'string'}}, - 'required': ['url'], - 'type': 'object'}, - 'CharmURLs': {'additionalProperties': False, - 'properties': {'urls': {'items': {'$ref': '#/definitions/CharmURL'}, - 'type': 'array'}}, - 'required': ['urls'], - 'type': 'object'}, - 'ConfigSettingsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'settings': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['settings'], - 'type': 'object'}, - 'ConfigSettingsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ConfigSettingsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Endpoint': {'additionalProperties': False, - 'properties': {'application-name': {'type': 'string'}, - 'relation': {'$ref': '#/definitions/CharmRelation'}}, - 'required': ['application-name', 'relation'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesCharmURL': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityCharmURL'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesPortRanges': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityPortRange'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityCharmURL': {'additionalProperties': False, - 'properties': {'charm-url': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'charm-url'], - 'type': 'object'}, - 'EntityPortRange': {'additionalProperties': False, - 'properties': {'from-port': {'type': 'integer'}, - 'protocol': {'type': 'string'}, - 'tag': {'type': 'string'}, - 'to-port': {'type': 'integer'}}, - 'required': ['tag', - 'protocol', - 'from-port', - 'to-port'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'EntityWorkloadVersion': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}, - 'workload-version': {'type': 'string'}}, - 'required': ['tag', - 'workload-version'], - 'type': 'object'}, - 'EntityWorkloadVersions': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityWorkloadVersion'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GetLeadershipSettingsBulkResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/GetLeadershipSettingsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GetLeadershipSettingsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['settings'], - 'type': 'object'}, - 'HostPort': {'additionalProperties': False, - 'properties': {'Address': {'$ref': '#/definitions/Address'}, - 'port': {'type': 'integer'}}, - 'required': ['Address', 'port'], - 'type': 'object'}, - 'IntResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'integer'}}, - 'required': ['result'], - 'type': 'object'}, - 'IntResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/IntResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachinePortRange': {'additionalProperties': False, - 'properties': {'port-range': {'$ref': '#/definitions/PortRange'}, - 'relation-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['unit-tag', - 'relation-tag', - 'port-range'], - 'type': 'object'}, - 'MachinePortsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'ports': {'items': {'$ref': '#/definitions/MachinePortRange'}, - 'type': 'array'}}, - 'required': ['ports'], - 'type': 'object'}, - 'MachinePortsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MachinePortsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'MergeLeadershipSettingsBulkParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/MergeLeadershipSettingsParam'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'MergeLeadershipSettingsParam': {'additionalProperties': False, - 'properties': {'application-tag': {'type': 'string'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['application-tag', - 'settings'], - 'type': 'object'}, - 'MeterStatusResult': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'info': {'type': 'string'}}, - 'required': ['code', 'info'], - 'type': 'object'}, - 'MeterStatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MeterStatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Metric': {'additionalProperties': False, - 'properties': {'key': {'type': 'string'}, - 'time': {'format': 'date-time', - 'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['key', 'value', 'time'], - 'type': 'object'}, - 'MetricBatch': {'additionalProperties': False, - 'properties': {'charm-url': {'type': 'string'}, - 'created': {'format': 'date-time', - 'type': 'string'}, - 'metrics': {'items': {'$ref': '#/definitions/Metric'}, - 'type': 'array'}, - 'uuid': {'type': 'string'}}, - 'required': ['uuid', - 'charm-url', - 'created', - 'metrics'], - 'type': 'object'}, - 'MetricBatchParam': {'additionalProperties': False, - 'properties': {'batch': {'$ref': '#/definitions/MetricBatch'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'batch'], - 'type': 'object'}, - 'MetricBatchParams': {'additionalProperties': False, - 'properties': {'batches': {'items': {'$ref': '#/definitions/MetricBatchParam'}, - 'type': 'array'}}, - 'required': ['batches'], - 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', 'uuid'], - 'type': 'object'}, - 'NetworkConfig': {'additionalProperties': False, - 'properties': {'address': {'type': 'string'}, - 'cidr': {'type': 'string'}, - 'config-type': {'type': 'string'}, - 'device-index': {'type': 'integer'}, - 'disabled': {'type': 'boolean'}, - 'dns-search-domains': {'items': {'type': 'string'}, - 'type': 'array'}, - 'dns-servers': {'items': {'type': 'string'}, - 'type': 'array'}, - 'gateway-address': {'type': 'string'}, - 'interface-name': {'type': 'string'}, - 'interface-type': {'type': 'string'}, - 'mac-address': {'type': 'string'}, - 'mtu': {'type': 'integer'}, - 'no-auto-start': {'type': 'boolean'}, - 'parent-interface-name': {'type': 'string'}, - 'provider-address-id': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'provider-subnet-id': {'type': 'string'}, - 'provider-vlan-id': {'type': 'string'}, - 'routes': {'items': {'$ref': '#/definitions/NetworkRoute'}, - 'type': 'array'}, - 'vlan-tag': {'type': 'integer'}}, - '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'], - 'type': 'object'}, - 'NetworkRoute': {'additionalProperties': False, - 'properties': {'destination-cidr': {'type': 'string'}, - 'gateway-ip': {'type': 'string'}, - 'metric': {'type': 'integer'}}, - 'required': ['destination-cidr', - 'gateway-ip', - 'metric'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'PortRange': {'additionalProperties': False, - 'properties': {'from-port': {'type': 'integer'}, - 'protocol': {'type': 'string'}, - 'to-port': {'type': 'integer'}}, - 'required': ['from-port', 'to-port', 'protocol'], - 'type': 'object'}, - 'RelationIds': {'additionalProperties': False, - 'properties': {'relation-ids': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['relation-ids'], - 'type': 'object'}, - 'RelationResult': {'additionalProperties': False, - 'properties': {'endpoint': {'$ref': '#/definitions/Endpoint'}, - 'error': {'$ref': '#/definitions/Error'}, - 'id': {'type': 'integer'}, - 'key': {'type': 'string'}, - 'life': {'type': 'string'}}, - 'required': ['life', - 'id', - 'key', - 'endpoint'], - 'type': 'object'}, - 'RelationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RelationResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RelationUnit': {'additionalProperties': False, - 'properties': {'relation': {'type': 'string'}, - 'unit': {'type': 'string'}}, - 'required': ['relation', 'unit'], - 'type': 'object'}, - 'RelationUnitPair': {'additionalProperties': False, - 'properties': {'local-unit': {'type': 'string'}, - 'relation': {'type': 'string'}, - 'remote-unit': {'type': 'string'}}, - 'required': ['relation', - 'local-unit', - 'remote-unit'], - 'type': 'object'}, - 'RelationUnitPairs': {'additionalProperties': False, - 'properties': {'relation-unit-pairs': {'items': {'$ref': '#/definitions/RelationUnitPair'}, - 'type': 'array'}}, - 'required': ['relation-unit-pairs'], - 'type': 'object'}, - 'RelationUnitSettings': {'additionalProperties': False, - 'properties': {'relation': {'type': 'string'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'unit': {'type': 'string'}}, - 'required': ['relation', - 'unit', - 'settings'], - 'type': 'object'}, - 'RelationUnits': {'additionalProperties': False, - 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnit'}, - 'type': 'array'}}, - 'required': ['relation-units'], - 'type': 'object'}, - 'RelationUnitsChange': {'additionalProperties': False, - 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}}, - 'type': 'object'}, - 'departed': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['changed'], - 'type': 'object'}, - 'RelationUnitsSettings': {'additionalProperties': False, - 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnitSettings'}, - 'type': 'array'}}, - 'required': ['relation-units'], - 'type': 'object'}, - 'RelationUnitsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'$ref': '#/definitions/RelationUnitsChange'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}, - 'RelationUnitsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RelationUnitsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ResolvedModeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'mode': {'type': 'string'}}, - 'required': ['mode'], - 'type': 'object'}, - 'ResolvedModeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ResolvedModeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'SettingsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['settings'], - 'type': 'object'}, - 'SettingsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/SettingsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StatusResult': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'error': {'$ref': '#/definitions/Error'}, - 'id': {'type': 'string'}, - 'info': {'type': 'string'}, - 'life': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['id', - 'life', - 'status', - 'info', - 'data', - 'since'], - 'type': 'object'}, - 'StatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StorageAddParams': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'storage': {'$ref': '#/definitions/StorageConstraints'}, - 'unit': {'type': 'string'}}, - 'required': ['unit', 'name', 'storage'], - 'type': 'object'}, - 'StorageAttachment': {'additionalProperties': False, - 'properties': {'kind': {'type': 'integer'}, - 'life': {'type': 'string'}, - 'location': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'storage-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'owner-tag', - 'unit-tag', - 'kind', - 'location', - 'life'], - 'type': 'object'}, - 'StorageAttachmentId': {'additionalProperties': False, - 'properties': {'storage-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'unit-tag'], - 'type': 'object'}, - 'StorageAttachmentIds': {'additionalProperties': False, - 'properties': {'ids': {'items': {'$ref': '#/definitions/StorageAttachmentId'}, - 'type': 'array'}}, - 'required': ['ids'], - 'type': 'object'}, - 'StorageAttachmentIdsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/StorageAttachmentIds'}}, - 'required': ['result'], - 'type': 'object'}, - 'StorageAttachmentIdsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StorageAttachmentIdsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageAttachmentResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/StorageAttachment'}}, - 'required': ['result'], - 'type': 'object'}, - 'StorageAttachmentResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StorageAttachmentResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageConstraints': {'additionalProperties': False, - 'properties': {'count': {'type': 'integer'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'type': 'object'}, - 'StoragesAddParams': {'additionalProperties': False, - 'properties': {'storages': {'items': {'$ref': '#/definitions/StorageAddParams'}, - 'type': 'array'}}, - 'required': ['storages'], - 'type': 'object'}, - 'StringBoolResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'ok': {'type': 'boolean'}, - 'result': {'type': 'string'}}, - 'required': ['result', 'ok'], - 'type': 'object'}, - 'StringBoolResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringBoolResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UnitNetworkConfig': {'additionalProperties': False, - 'properties': {'binding-name': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['unit-tag', 'binding-name'], - 'type': 'object'}, - 'UnitNetworkConfigResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'items': {'$ref': '#/definitions/NetworkConfig'}, - 'type': 'array'}}, - 'required': ['info'], - 'type': 'object'}, - 'UnitNetworkConfigResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/UnitNetworkConfigResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UnitSettings': {'additionalProperties': False, - 'properties': {'version': {'type': 'integer'}}, - 'required': ['version'], - 'type': 'object'}, - 'UnitsNetworkConfig': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/UnitNetworkConfig'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}}, - 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, - 'type': 'object'}, - 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, - 'type': 'object'}, - 'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'AddMetricBatches': {'properties': {'Params': {'$ref': '#/definitions/MetricBatchParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'AddUnitStorage': {'properties': {'Params': {'$ref': '#/definitions/StoragesAddParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'AllMachinePorts': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachinePortsResults'}}, - 'type': 'object'}, - 'ApplicationStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ApplicationStatusResults'}}, - 'type': 'object'}, - 'AssignedMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'AvailabilityZone': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'BeginActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, - 'type': 'object'}, - 'CharmArchiveSha256': {'properties': {'Params': {'$ref': '#/definitions/CharmURLs'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'CharmModifiedVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/IntResults'}}, - 'type': 'object'}, - 'CharmURL': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringBoolResults'}}, - 'type': 'object'}, - 'ClearResolved': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ClosePorts': {'properties': {'Params': {'$ref': '#/definitions/EntitiesPortRanges'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ConfigSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ConfigSettingsResults'}}, - 'type': 'object'}, - 'CurrentModel': {'properties': {'Result': {'$ref': '#/definitions/ModelResult'}}, - 'type': 'object'}, - 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'DestroyAllSubordinates': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'DestroyUnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'EnterScope': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'FinishActions': {'properties': {'Params': {'$ref': '#/definitions/ActionExecutionResults'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'GetMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MeterStatusResults'}}, - 'type': 'object'}, - 'GetPrincipal': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringBoolResults'}}, - 'type': 'object'}, - 'HasSubordinates': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/BoolResults'}}, - 'type': 'object'}, - 'JoinedRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsResults'}}, - 'type': 'object'}, - 'LeaveScope': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'Merge': {'properties': {'Params': {'$ref': '#/definitions/MergeLeadershipSettingsBulkParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'NetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/UnitsNetworkConfig'}, - 'Result': {'$ref': '#/definitions/UnitNetworkConfigResults'}}, - 'type': 'object'}, - 'OpenPorts': {'properties': {'Params': {'$ref': '#/definitions/EntitiesPortRanges'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'ProviderType': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'Read': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/GetLeadershipSettingsBulkResults'}}, - 'type': 'object'}, - 'ReadRemoteSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnitPairs'}, - 'Result': {'$ref': '#/definitions/SettingsResults'}}, - 'type': 'object'}, - 'ReadSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/SettingsResults'}}, - 'type': 'object'}, - 'Relation': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/RelationResults'}}, - 'type': 'object'}, - 'RelationById': {'properties': {'Params': {'$ref': '#/definitions/RelationIds'}, - 'Result': {'$ref': '#/definitions/RelationResults'}}, - 'type': 'object'}, - 'RemoveStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RequestReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Resolved': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ResolvedModeResults'}}, - 'type': 'object'}, - 'SetAgentStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetApplicationStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/EntitiesCharmURL'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetUnitStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetWorkloadVersion': {'properties': {'Params': {'$ref': '#/definitions/EntityWorkloadVersions'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'StorageAttachmentLife': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'StorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/StorageAttachmentResults'}}, - 'type': 'object'}, - 'UnitStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StatusResults'}}, - 'type': 'object'}, - 'UnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StorageAttachmentIdsResults'}}, - 'type': 'object'}, - 'UpdateSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnitsSettings'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchActionNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchApplicationRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchConfigSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchLeadershipSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchRelationUnits': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/RelationUnitsWatchResults'}}, - 'type': 'object'}, - 'WatchStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchUnitAddresses': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchUnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WorkloadVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringsResult) - async def APIAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='APIAddresses', - version=4, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(APIHostPortsResult) - async def APIHostPorts(self): - ''' - - Returns -> typing.Sequence[~HostPort] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='APIHostPorts', - version=4, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionResults) - async def Actions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Actions', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def AddMetricBatches(self, batches): - ''' - batches : typing.Sequence[~MetricBatchParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AddMetricBatches', - version=4, - params=_params) - _params['batches'] = batches - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def AddUnitStorage(self, storages): - ''' - storages : typing.Sequence[~StorageAddParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AddUnitStorage', - version=4, - params=_params) - _params['storages'] = storages - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachinePortsResults) - async def AllMachinePorts(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachinePortsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AllMachinePorts', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationStatusResults) - async def ApplicationStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ApplicationStatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ApplicationStatus', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def AssignedMachine(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AssignedMachine', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def AvailabilityZone(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AvailabilityZone', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def BeginActions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='BeginActions', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BytesResult) - async def CACert(self): - ''' - - Returns -> typing.Sequence[int] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CACert', - version=4, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def CharmArchiveSha256(self, urls): - ''' - urls : typing.Sequence[~CharmURL] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CharmArchiveSha256', - version=4, - params=_params) - _params['urls'] = urls - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(IntResults) - async def CharmModifiedVersion(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~IntResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CharmModifiedVersion', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringBoolResults) - async def CharmURL(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringBoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CharmURL', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ClearResolved(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ClearResolved', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ClosePorts(self, entities): - ''' - entities : typing.Sequence[~EntityPortRange] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ClosePorts', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ConfigSettingsResults) - async def ConfigSettings(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ConfigSettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ConfigSettings', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelResult) - async def CurrentModel(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CurrentModel', - version=4, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Destroy(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Destroy', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DestroyAllSubordinates(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='DestroyAllSubordinates', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DestroyUnitStorageAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='DestroyUnitStorageAttachments', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnsureDead(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='EnsureDead', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnterScope(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='EnterScope', - version=4, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def FinishActions(self, results): - ''' - results : typing.Sequence[~ActionExecutionResult] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='FinishActions', - version=4, - params=_params) - _params['results'] = results - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MeterStatusResults) - async def GetMeterStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MeterStatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='GetMeterStatus', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringBoolResults) - async def GetPrincipal(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringBoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='GetPrincipal', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BoolResults) - async def HasSubordinates(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~BoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='HasSubordinates', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsResults) - async def JoinedRelations(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='JoinedRelations', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def LeaveScope(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='LeaveScope', - version=4, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Life', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Merge(self, params): - ''' - params : typing.Sequence[~MergeLeadershipSettingsParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Merge', - version=4, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ModelConfig', - version=4, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ModelUUID(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ModelUUID', - version=4, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UnitNetworkConfigResults) - async def NetworkConfig(self, args): - ''' - args : typing.Sequence[~UnitNetworkConfig] - Returns -> typing.Sequence[~UnitNetworkConfigResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='NetworkConfig', - version=4, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def OpenPorts(self, entities): - ''' - entities : typing.Sequence[~EntityPortRange] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='OpenPorts', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def PrivateAddress(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='PrivateAddress', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ProviderType(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ProviderType', - version=4, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def PublicAddress(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='PublicAddress', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(GetLeadershipSettingsBulkResults) - async def Read(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~GetLeadershipSettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Read', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SettingsResults) - async def ReadRemoteSettings(self, relation_unit_pairs): - ''' - relation_unit_pairs : typing.Sequence[~RelationUnitPair] - Returns -> typing.Sequence[~SettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ReadRemoteSettings', - version=4, - params=_params) - _params['relation-unit-pairs'] = relation_unit_pairs - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SettingsResults) - async def ReadSettings(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~SettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ReadSettings', - version=4, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationResults) - async def Relation(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~RelationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Relation', - version=4, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationResults) - async def RelationById(self, relation_ids): - ''' - relation_ids : typing.Sequence[int] - Returns -> typing.Sequence[~RelationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='RelationById', - version=4, - params=_params) - _params['relation-ids'] = relation_ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RemoveStorageAttachments(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='RemoveStorageAttachments', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RequestReboot(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='RequestReboot', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ResolvedModeResults) - async def Resolved(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ResolvedModeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Resolved', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetAgentStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetAgentStatus', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetApplicationStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetApplicationStatus', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetCharmURL(self, entities): - ''' - entities : typing.Sequence[~EntityCharmURL] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetCharmURL', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetStatus', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetUnitStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetUnitStatus', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetWorkloadVersion(self, entities): - ''' - entities : typing.Sequence[~EntityWorkloadVersion] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetWorkloadVersion', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def StorageAttachmentLife(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='StorageAttachmentLife', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StorageAttachmentResults) - async def StorageAttachments(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~StorageAttachmentResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='StorageAttachments', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusResults) - async def UnitStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='UnitStatus', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StorageAttachmentIdsResults) - async def UnitStorageAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StorageAttachmentIdsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='UnitStorageAttachments', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateSettings(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnitSettings] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='UpdateSettings', - version=4, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def Watch(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Watch', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchAPIHostPorts(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchAPIHostPorts', - version=4, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchActionNotifications(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchActionNotifications', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchApplicationRelations(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchApplicationRelations', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchConfigSettings(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchConfigSettings', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchForModelConfigChanges', - version=4, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchLeadershipSettings(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchLeadershipSettings', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchMeterStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchMeterStatus', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationUnitsWatchResults) - async def WatchRelationUnits(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~RelationUnitsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchRelationUnits', - version=4, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchStorageAttachments(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchStorageAttachments', - version=4, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchUnitAddresses(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchUnitAddresses', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchUnitStorageAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchUnitStorageAttachments', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def WorkloadVersion(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WorkloadVersion', - version=4, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply diff --git a/modules/libjuju/juju/client/_client5.py b/modules/libjuju/juju/client/_client5.py deleted file mode 100644 index 415aeae..0000000 --- a/modules/libjuju/juju/client/_client5.py +++ /dev/null @@ -1,5322 +0,0 @@ -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. - -from juju.client._definitions import * -from juju.client.facade import ReturnMapping, Type - - -class ApplicationFacade(Type): - name = 'Application' - version = 5 - schema = {'definitions': {'AddApplicationUnits': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'attach-storage': {'items': {'type': 'string'}, - 'type': 'array'}, - 'num-units': {'type': 'integer'}, - 'placement': {'items': {'$ref': '#/definitions/Placement'}, - 'type': 'array'}}, - 'required': ['application', - 'num-units', - 'placement'], - 'type': 'object'}, - 'AddApplicationUnitsResults': {'additionalProperties': False, - 'properties': {'units': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['units'], - 'type': 'object'}, - 'AddRelation': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'AddRelationResults': {'additionalProperties': False, - 'properties': {'endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, - 'type': 'object'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'ApplicationCharmRelations': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationCharmRelationsResults': {'additionalProperties': False, - 'properties': {'charm-relations': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['charm-relations'], - 'type': 'object'}, - 'ApplicationDeploy': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'attach-storage': {'items': {'type': 'string'}, - 'type': 'array'}, - 'channel': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'config-yaml': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'num-units': {'type': 'integer'}, - 'placement': {'items': {'$ref': '#/definitions/Placement'}, - 'type': 'array'}, - 'resources': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'series': {'type': 'string'}, - 'storage': {'patternProperties': {'.*': {'$ref': '#/definitions/Constraints'}}, - 'type': 'object'}}, - 'required': ['application', - 'series', - 'charm-url', - 'channel', - 'num-units', - 'config-yaml', - 'constraints'], - 'type': 'object'}, - 'ApplicationDestroy': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationExpose': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationGet': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationGetResults': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'charm': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'series': {'type': 'string'}}, - 'required': ['application', - 'charm', - 'config', - 'constraints', - 'series'], - 'type': 'object'}, - 'ApplicationMetricCredential': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'metrics-credentials': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['application', - 'metrics-credentials'], - 'type': 'object'}, - 'ApplicationMetricCredentials': {'additionalProperties': False, - 'properties': {'creds': {'items': {'$ref': '#/definitions/ApplicationMetricCredential'}, - 'type': 'array'}}, - 'required': ['creds'], - 'type': 'object'}, - 'ApplicationOffer': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'application-description': {'type': 'string'}, - 'bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'}, - 'type': 'array'}, - 'offer-name': {'type': 'string'}, - 'offer-url': {'type': 'string'}, - 'source-model-tag': {'type': 'string'}, - 'spaces': {'items': {'$ref': '#/definitions/RemoteSpace'}, - 'type': 'array'}}, - 'required': ['source-model-tag', - 'offer-url', - 'offer-name', - 'application-description', - 'endpoints', - 'spaces', - 'bindings', - 'access'], - 'type': 'object'}, - 'ApplicationSet': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'options': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['application', 'options'], - 'type': 'object'}, - 'ApplicationSetCharm': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'channel': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'config-settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'config-settings-yaml': {'type': 'string'}, - 'force-series': {'type': 'boolean'}, - 'force-units': {'type': 'boolean'}, - 'resource-ids': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'storage-constraints': {'patternProperties': {'.*': {'$ref': '#/definitions/StorageConstraints'}}, - 'type': 'object'}}, - 'required': ['application', - 'charm-url', - 'channel', - 'force-units', - 'force-series'], - 'type': 'object'}, - 'ApplicationUnexpose': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationUnset': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'options': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['application', 'options'], - 'type': 'object'}, - 'ApplicationUpdate': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'force-charm-url': {'type': 'boolean'}, - 'force-series': {'type': 'boolean'}, - 'min-units': {'type': 'integer'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'settings-yaml': {'type': 'string'}}, - 'required': ['application', - 'charm-url', - 'force-charm-url', - 'force-series', - 'settings-yaml'], - 'type': 'object'}, - 'ApplicationsDeploy': {'additionalProperties': False, - 'properties': {'applications': {'items': {'$ref': '#/definitions/ApplicationDeploy'}, - 'type': 'array'}}, - 'required': ['applications'], - 'type': 'object'}, - 'CharmRelation': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'optional': {'type': 'boolean'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'optional', - 'limit', - 'scope'], - 'type': 'object'}, - 'Constraints': {'additionalProperties': False, - 'properties': {'Count': {'type': 'integer'}, - 'Pool': {'type': 'string'}, - 'Size': {'type': 'integer'}}, - 'required': ['Pool', 'Size', 'Count'], - 'type': 'object'}, - 'ConsumeApplicationArg': {'additionalProperties': False, - 'properties': {'ApplicationOffer': {'$ref': '#/definitions/ApplicationOffer'}, - 'application-alias': {'type': 'string'}, - 'macaroon': {'$ref': '#/definitions/Macaroon'}}, - 'required': ['ApplicationOffer'], - 'type': 'object'}, - 'ConsumeApplicationArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/ConsumeApplicationArg'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyApplicationInfo': {'additionalProperties': False, - 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'destroyed-units': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyApplicationResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'$ref': '#/definitions/DestroyApplicationInfo'}}, - 'type': 'object'}, - 'DestroyApplicationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyApplicationResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyApplicationUnits': {'additionalProperties': False, - 'properties': {'unit-names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['unit-names'], - 'type': 'object'}, - 'DestroyRelation': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'DestroyUnitInfo': {'additionalProperties': False, - 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyUnitResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'$ref': '#/definitions/DestroyUnitInfo'}}, - 'type': 'object'}, - 'DestroyUnitResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyUnitResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GetApplicationConstraints': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'GetConstraintsResults': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'Placement': {'additionalProperties': False, - 'properties': {'directive': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['scope', 'directive'], - 'type': 'object'}, - 'RemoteEndpoint': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'limit', - 'scope'], - 'type': 'object'}, - 'RemoteSpace': {'additionalProperties': False, - 'properties': {'cloud-type': {'type': 'string'}, - 'name': {'type': 'string'}, - 'provider-attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'provider-id': {'type': 'string'}, - 'subnets': {'items': {'$ref': '#/definitions/Subnet'}, - 'type': 'array'}}, - 'required': ['cloud-type', - 'name', - 'provider-id', - 'provider-attributes', - 'subnets'], - 'type': 'object'}, - 'SetConstraints': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['application', 'constraints'], - 'type': 'object'}, - 'StorageConstraints': {'additionalProperties': False, - 'properties': {'count': {'type': 'integer'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'Subnet': {'additionalProperties': False, - 'properties': {'cidr': {'type': 'string'}, - 'life': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-network-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'space-tag': {'type': 'string'}, - 'status': {'type': 'string'}, - 'vlan-tag': {'type': 'integer'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['cidr', - 'vlan-tag', - 'life', - 'space-tag', - 'zones'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}}, - 'type': 'object'}}, - 'properties': {'AddRelation': {'properties': {'Params': {'$ref': '#/definitions/AddRelation'}, - 'Result': {'$ref': '#/definitions/AddRelationResults'}}, - 'type': 'object'}, - 'AddUnits': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationUnits'}, - 'Result': {'$ref': '#/definitions/AddApplicationUnitsResults'}}, - 'type': 'object'}, - 'CharmRelations': {'properties': {'Params': {'$ref': '#/definitions/ApplicationCharmRelations'}, - 'Result': {'$ref': '#/definitions/ApplicationCharmRelationsResults'}}, - 'type': 'object'}, - 'Consume': {'properties': {'Params': {'$ref': '#/definitions/ConsumeApplicationArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Deploy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationsDeploy'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationDestroy'}}, - 'type': 'object'}, - 'DestroyApplication': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/DestroyApplicationResults'}}, - 'type': 'object'}, - 'DestroyRelation': {'properties': {'Params': {'$ref': '#/definitions/DestroyRelation'}}, - 'type': 'object'}, - 'DestroyUnit': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/DestroyUnitResults'}}, - 'type': 'object'}, - 'DestroyUnits': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationUnits'}}, - 'type': 'object'}, - 'Expose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationExpose'}}, - 'type': 'object'}, - 'Get': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, - 'Result': {'$ref': '#/definitions/ApplicationGetResults'}}, - 'type': 'object'}, - 'GetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, - 'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'GetConstraints': {'properties': {'Params': {'$ref': '#/definitions/GetApplicationConstraints'}, - 'Result': {'$ref': '#/definitions/GetConstraintsResults'}}, - 'type': 'object'}, - 'Set': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSet'}}, - 'type': 'object'}, - 'SetCharm': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSetCharm'}}, - 'type': 'object'}, - 'SetConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, - 'type': 'object'}, - 'SetMetricCredentials': {'properties': {'Params': {'$ref': '#/definitions/ApplicationMetricCredentials'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Unexpose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnexpose'}}, - 'type': 'object'}, - 'Unset': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnset'}}, - 'type': 'object'}, - 'Update': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUpdate'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddRelationResults) - async def AddRelation(self, endpoints): - ''' - endpoints : typing.Sequence[str] - Returns -> typing.Mapping[str, ~CharmRelation] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='AddRelation', - version=5, - params=_params) - _params['endpoints'] = endpoints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddApplicationUnitsResults) - async def AddUnits(self, application, num_units, placement): - ''' - application : str - num_units : int - placement : typing.Sequence[~Placement] - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='AddUnits', - version=5, - params=_params) - _params['application'] = application - _params['num-units'] = num_units - _params['placement'] = placement - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationCharmRelationsResults) - async def CharmRelations(self, application): - ''' - application : str - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='CharmRelations', - version=5, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Consume(self, args): - ''' - args : typing.Sequence[~ConsumeApplicationArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Consume', - version=5, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Deploy(self, applications): - ''' - applications : typing.Sequence[~ApplicationDeploy] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Deploy', - version=5, - params=_params) - _params['applications'] = applications - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Destroy(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Destroy', - version=5, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DestroyApplicationResults) - async def DestroyApplication(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~DestroyApplicationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyApplication', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyRelation(self, endpoints): - ''' - endpoints : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyRelation', - version=5, - params=_params) - _params['endpoints'] = endpoints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DestroyUnitResults) - async def DestroyUnit(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~DestroyUnitResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyUnit', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyUnits(self, unit_names): - ''' - unit_names : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyUnits', - version=5, - params=_params) - _params['unit-names'] = unit_names - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Expose(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Expose', - version=5, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationGetResults) - async def Get(self, application): - ''' - application : str - Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Get', - version=5, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def GetCharmURL(self, application): - ''' - application : str - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetCharmURL', - version=5, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(GetConstraintsResults) - async def GetConstraints(self, application): - ''' - application : str - Returns -> Value - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetConstraints', - version=5, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Set(self, application, options): - ''' - application : str - options : typing.Mapping[str, str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Set', - version=5, - params=_params) - _params['application'] = application - _params['options'] = options - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetCharm(self, application, channel, charm_url, config_settings, config_settings_yaml, force_series, force_units, resource_ids, storage_constraints): - ''' - application : str - channel : str - charm_url : str - config_settings : typing.Mapping[str, str] - config_settings_yaml : str - force_series : bool - force_units : bool - resource_ids : typing.Mapping[str, str] - storage_constraints : typing.Mapping[str, ~StorageConstraints] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetCharm', - version=5, - params=_params) - _params['application'] = application - _params['channel'] = channel - _params['charm-url'] = charm_url - _params['config-settings'] = config_settings - _params['config-settings-yaml'] = config_settings_yaml - _params['force-series'] = force_series - _params['force-units'] = force_units - _params['resource-ids'] = resource_ids - _params['storage-constraints'] = storage_constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetConstraints(self, application, constraints): - ''' - application : str - constraints : Value - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetConstraints', - version=5, - params=_params) - _params['application'] = application - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetMetricCredentials(self, creds): - ''' - creds : typing.Sequence[~ApplicationMetricCredential] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetMetricCredentials', - version=5, - params=_params) - _params['creds'] = creds - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Unexpose(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Unexpose', - version=5, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Unset(self, application, options): - ''' - application : str - options : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Unset', - version=5, - params=_params) - _params['application'] = application - _params['options'] = options - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Update(self, application, charm_url, constraints, force_charm_url, force_series, min_units, settings, settings_yaml): - ''' - application : str - charm_url : str - constraints : Value - force_charm_url : bool - force_series : bool - min_units : int - settings : typing.Mapping[str, str] - settings_yaml : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Update', - version=5, - params=_params) - _params['application'] = application - _params['charm-url'] = charm_url - _params['constraints'] = constraints - _params['force-charm-url'] = force_charm_url - _params['force-series'] = force_series - _params['min-units'] = min_units - _params['settings'] = settings - _params['settings-yaml'] = settings_yaml - reply = await self.rpc(msg) - return reply - - - -class ControllerFacade(Type): - name = 'Controller' - version = 5 - schema = {'definitions': {'AllWatcherId': {'additionalProperties': False, - 'properties': {'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'CloudCredential': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'auth-type': {'type': 'string'}, - 'redacted': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['auth-type'], - 'type': 'object'}, - 'CloudSpec': {'additionalProperties': False, - 'properties': {'cacertificates': {'items': {'type': 'string'}, - 'type': 'array'}, - 'credential': {'$ref': '#/definitions/CloudCredential'}, - 'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'name': {'type': 'string'}, - 'region': {'type': 'string'}, - 'storage-endpoint': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type', 'name'], - 'type': 'object'}, - 'CloudSpecResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/CloudSpec'}}, - 'type': 'object'}, - 'CloudSpecResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CloudSpecResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ConfigValue': {'additionalProperties': False, - 'properties': {'source': {'type': 'string'}, - 'value': {'additionalProperties': True, - 'type': 'object'}}, - 'required': ['value', 'source'], - 'type': 'object'}, - 'ControllerAPIInfoResult': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cacert': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['addresses', - 'cacert'], - 'type': 'object'}, - 'ControllerAPIInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ControllerAPIInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ControllerConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ControllerConfigSet': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'DestroyControllerArgs': {'additionalProperties': False, - 'properties': {'destroy-models': {'type': 'boolean'}, - 'destroy-storage': {'type': 'boolean'}}, - 'required': ['destroy-models'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'HostedModelConfig': {'additionalProperties': False, - 'properties': {'cloud-spec': {'$ref': '#/definitions/CloudSpec'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}, - 'owner': {'type': 'string'}}, - 'required': ['name', 'owner'], - 'type': 'object'}, - 'HostedModelConfigsResults': {'additionalProperties': False, - 'properties': {'models': {'items': {'$ref': '#/definitions/HostedModelConfig'}, - 'type': 'array'}}, - 'required': ['models'], - 'type': 'object'}, - 'InitiateMigrationArgs': {'additionalProperties': False, - 'properties': {'specs': {'items': {'$ref': '#/definitions/MigrationSpec'}, - 'type': 'array'}}, - 'required': ['specs'], - 'type': 'object'}, - 'InitiateMigrationResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'migration-id': {'type': 'string'}, - 'model-tag': {'type': 'string'}}, - 'required': ['model-tag', - 'migration-id'], - 'type': 'object'}, - 'InitiateMigrationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/InitiateMigrationResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineHardware': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'MigrationSpec': {'additionalProperties': False, - 'properties': {'model-tag': {'type': 'string'}, - 'target-info': {'$ref': '#/definitions/MigrationTargetInfo'}}, - 'required': ['model-tag', 'target-info'], - 'type': 'object'}, - 'MigrationTargetInfo': {'additionalProperties': False, - 'properties': {'addrs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'auth-tag': {'type': 'string'}, - 'ca-cert': {'type': 'string'}, - 'controller-tag': {'type': 'string'}, - 'macaroons': {'type': 'string'}, - 'password': {'type': 'string'}}, - 'required': ['controller-tag', - 'addrs', - 'ca-cert', - 'auth-tag'], - 'type': 'object'}, - 'Model': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'type': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', 'uuid', 'type', 'owner-tag'], - 'type': 'object'}, - 'ModelBlockInfo': {'additionalProperties': False, - 'properties': {'blocks': {'items': {'type': 'string'}, - 'type': 'array'}, - 'model-uuid': {'type': 'string'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}}, - 'required': ['name', - 'model-uuid', - 'owner-tag', - 'blocks'], - 'type': 'object'}, - 'ModelBlockInfoList': {'additionalProperties': False, - 'properties': {'models': {'items': {'$ref': '#/definitions/ModelBlockInfo'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ModelConfigResults': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelFilesystemInfo': {'additionalProperties': False, - 'properties': {'detachable': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'message': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['id'], - 'type': 'object'}, - 'ModelMachineInfo': {'additionalProperties': False, - 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'}, - 'has-vote': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'instance-id': {'type': 'string'}, - 'message': {'type': 'string'}, - 'status': {'type': 'string'}, - 'wants-vote': {'type': 'boolean'}}, - 'required': ['id'], - 'type': 'object'}, - 'ModelStatus': {'additionalProperties': False, - 'properties': {'application-count': {'type': 'integer'}, - 'error': {'$ref': '#/definitions/Error'}, - 'filesystems': {'items': {'$ref': '#/definitions/ModelFilesystemInfo'}, - 'type': 'array'}, - 'hosted-machine-count': {'type': 'integer'}, - 'life': {'type': 'string'}, - 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, - 'type': 'array'}, - 'model-tag': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'volumes': {'items': {'$ref': '#/definitions/ModelVolumeInfo'}, - 'type': 'array'}}, - 'required': ['model-tag', - 'life', - 'hosted-machine-count', - 'application-count', - 'owner-tag'], - 'type': 'object'}, - 'ModelStatusResults': {'additionalProperties': False, - 'properties': {'models': {'items': {'$ref': '#/definitions/ModelStatus'}, - 'type': 'array'}}, - 'required': ['models'], - 'type': 'object'}, - 'ModelTag': {'additionalProperties': False, 'type': 'object'}, - 'ModelVolumeInfo': {'additionalProperties': False, - 'properties': {'detachable': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'message': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['id'], - 'type': 'object'}, - 'ModifyControllerAccess': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'action': {'type': 'string'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag', - 'action', - 'access'], - 'type': 'object'}, - 'ModifyControllerAccessRequest': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyControllerAccess'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'RemoveBlocksArgs': {'additionalProperties': False, - 'properties': {'all': {'type': 'boolean'}}, - 'required': ['all'], - 'type': 'object'}, - 'UserAccess': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag', 'access'], - 'type': 'object'}, - 'UserAccessResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/UserAccess'}}, - 'type': 'object'}, - 'UserAccessResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/UserAccessResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'UserModel': {'additionalProperties': False, - 'properties': {'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'model': {'$ref': '#/definitions/Model'}}, - 'required': ['model', 'last-connection'], - 'type': 'object'}, - 'UserModelList': {'additionalProperties': False, - 'properties': {'user-models': {'items': {'$ref': '#/definitions/UserModel'}, - 'type': 'array'}}, - 'required': ['user-models'], - 'type': 'object'}}, - 'properties': {'AllModels': {'properties': {'Result': {'$ref': '#/definitions/UserModelList'}}, - 'type': 'object'}, - 'CloudSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/CloudSpecResults'}}, - 'type': 'object'}, - 'ConfigSet': {'properties': {'Params': {'$ref': '#/definitions/ControllerConfigSet'}}, - 'type': 'object'}, - 'ControllerAPIInfoForModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ControllerAPIInfoResults'}}, - 'type': 'object'}, - 'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}}, - 'type': 'object'}, - 'DestroyController': {'properties': {'Params': {'$ref': '#/definitions/DestroyControllerArgs'}}, - 'type': 'object'}, - 'GetCloudSpec': {'properties': {'Params': {'$ref': '#/definitions/ModelTag'}, - 'Result': {'$ref': '#/definitions/CloudSpecResult'}}, - 'type': 'object'}, - 'GetControllerAccess': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/UserAccessResults'}}, - 'type': 'object'}, - 'HostedModelConfigs': {'properties': {'Result': {'$ref': '#/definitions/HostedModelConfigsResults'}}, - 'type': 'object'}, - 'InitiateMigration': {'properties': {'Params': {'$ref': '#/definitions/InitiateMigrationArgs'}, - 'Result': {'$ref': '#/definitions/InitiateMigrationResults'}}, - 'type': 'object'}, - 'ListBlockedModels': {'properties': {'Result': {'$ref': '#/definitions/ModelBlockInfoList'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}}, - 'type': 'object'}, - 'ModelStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ModelStatusResults'}}, - 'type': 'object'}, - 'ModifyControllerAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyControllerAccessRequest'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RemoveBlocks': {'properties': {'Params': {'$ref': '#/definitions/RemoveBlocksArgs'}}, - 'type': 'object'}, - 'WatchAllModels': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherId'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(UserModelList) - async def AllModels(self): - ''' - - Returns -> typing.Sequence[~UserModel] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='AllModels', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudSpecResults) - async def CloudSpec(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~CloudSpecResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='CloudSpec', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def ConfigSet(self, config): - ''' - config : typing.Mapping[str, typing.Any] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ConfigSet', - version=5, - params=_params) - _params['config'] = config - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerAPIInfoResults) - async def ControllerAPIInfoForModels(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ControllerAPIInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ControllerAPIInfoForModels', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerConfigResult) - async def ControllerConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ControllerConfig', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyController(self, destroy_models): - ''' - destroy_models : bool - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='DestroyController', - version=5, - params=_params) - _params['destroy-models'] = destroy_models - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudSpecResult) - async def GetCloudSpec(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='GetCloudSpec', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UserAccessResults) - async def GetControllerAccess(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~UserAccessResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='GetControllerAccess', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(HostedModelConfigsResults) - async def HostedModelConfigs(self): - ''' - - Returns -> typing.Sequence[~HostedModelConfig] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='HostedModelConfigs', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(InitiateMigrationResults) - async def InitiateMigration(self, specs): - ''' - specs : typing.Sequence[~MigrationSpec] - Returns -> typing.Sequence[~InitiateMigrationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='InitiateMigration', - version=5, - params=_params) - _params['specs'] = specs - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelBlockInfoList) - async def ListBlockedModels(self): - ''' - - Returns -> typing.Sequence[~ModelBlockInfo] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ListBlockedModels', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResults) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, ~ConfigValue] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ModelConfig', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelStatusResults) - async def ModelStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ModelStatus] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ModelStatus', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ModifyControllerAccess(self, changes): - ''' - changes : typing.Sequence[~ModifyControllerAccess] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='ModifyControllerAccess', - version=5, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def RemoveBlocks(self, all_): - ''' - all_ : bool - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='RemoveBlocks', - version=5, - params=_params) - _params['all'] = all_ - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AllWatcherId) - async def WatchAllModels(self): - ''' - - Returns -> str - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Controller', - request='WatchAllModels', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - -class FirewallerFacade(Type): - name = 'Firewaller' - version = 5 - schema = {'definitions': {'BoolResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'boolean'}}, - 'required': ['result'], - 'type': 'object'}, - 'BoolResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'CloudCredential': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'auth-type': {'type': 'string'}, - 'redacted': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['auth-type'], - 'type': 'object'}, - 'CloudSpec': {'additionalProperties': False, - 'properties': {'cacertificates': {'items': {'type': 'string'}, - 'type': 'array'}, - 'credential': {'$ref': '#/definitions/CloudCredential'}, - 'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'name': {'type': 'string'}, - 'region': {'type': 'string'}, - 'storage-endpoint': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type', 'name'], - 'type': 'object'}, - 'CloudSpecResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/CloudSpec'}}, - 'type': 'object'}, - 'CloudSpecResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/CloudSpecResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ControllerAPIInfoResult': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cacert': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['addresses', - 'cacert'], - 'type': 'object'}, - 'ControllerAPIInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ControllerAPIInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ControllerConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'FirewallRule': {'additionalProperties': False, - 'properties': {'known-service': {'type': 'string'}, - 'whitelist-cidrs': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['known-service'], - 'type': 'object'}, - 'KnownServiceArgs': {'additionalProperties': False, - 'properties': {'known-services': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['known-services'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ListFirewallRulesResults': {'additionalProperties': False, - 'properties': {'Rules': {'items': {'$ref': '#/definitions/FirewallRule'}, - 'type': 'array'}}, - 'required': ['Rules'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MacaroonResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/Macaroon'}}, - 'type': 'object'}, - 'MacaroonResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MacaroonResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'MachinePortRange': {'additionalProperties': False, - 'properties': {'port-range': {'$ref': '#/definitions/PortRange'}, - 'relation-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['unit-tag', - 'relation-tag', - 'port-range'], - 'type': 'object'}, - 'MachinePorts': {'additionalProperties': False, - 'properties': {'machine-tag': {'type': 'string'}, - 'subnet-tag': {'type': 'string'}}, - 'required': ['machine-tag', 'subnet-tag'], - 'type': 'object'}, - 'MachinePortsParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/MachinePorts'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'MachinePortsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'ports': {'items': {'$ref': '#/definitions/MachinePortRange'}, - 'type': 'array'}}, - 'required': ['ports'], - 'type': 'object'}, - 'MachinePortsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MachinePortsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelTag': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'PortRange': {'additionalProperties': False, - 'properties': {'from-port': {'type': 'integer'}, - 'protocol': {'type': 'string'}, - 'to-port': {'type': 'integer'}}, - 'required': ['from-port', 'to-port', 'protocol'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}}, - 'properties': {'AreManuallyProvisioned': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/BoolResults'}}, - 'type': 'object'}, - 'CloudSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/CloudSpecResults'}}, - 'type': 'object'}, - 'ControllerAPIInfoForModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ControllerAPIInfoResults'}}, - 'type': 'object'}, - 'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}}, - 'type': 'object'}, - 'FirewallRules': {'properties': {'Params': {'$ref': '#/definitions/KnownServiceArgs'}, - 'Result': {'$ref': '#/definitions/ListFirewallRulesResults'}}, - 'type': 'object'}, - 'GetAssignedMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'GetCloudSpec': {'properties': {'Params': {'$ref': '#/definitions/ModelTag'}, - 'Result': {'$ref': '#/definitions/CloudSpecResult'}}, - 'type': 'object'}, - 'GetExposed': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/BoolResults'}}, - 'type': 'object'}, - 'GetMachineActiveSubnets': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsResults'}}, - 'type': 'object'}, - 'GetMachinePorts': {'properties': {'Params': {'$ref': '#/definitions/MachinePortsParams'}, - 'Result': {'$ref': '#/definitions/MachinePortsResults'}}, - 'type': 'object'}, - 'InstanceId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'MacaroonForRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MacaroonResults'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'SetRelationsStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchEgressAddressesForRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchIngressAddressesForRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchModelMachines': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}, - 'WatchOpenedPorts': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(BoolResults) - async def AreManuallyProvisioned(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~BoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='AreManuallyProvisioned', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudSpecResults) - async def CloudSpec(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~CloudSpecResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='CloudSpec', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerAPIInfoResults) - async def ControllerAPIInfoForModels(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ControllerAPIInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='ControllerAPIInfoForModels', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerConfigResult) - async def ControllerConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='ControllerConfig', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ListFirewallRulesResults) - async def FirewallRules(self, known_services): - ''' - known_services : typing.Sequence[str] - Returns -> typing.Sequence[~FirewallRule] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='FirewallRules', - version=5, - params=_params) - _params['known-services'] = known_services - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def GetAssignedMachine(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='GetAssignedMachine', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudSpecResult) - async def GetCloudSpec(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='GetCloudSpec', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BoolResults) - async def GetExposed(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~BoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='GetExposed', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsResults) - async def GetMachineActiveSubnets(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='GetMachineActiveSubnets', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachinePortsResults) - async def GetMachinePorts(self, params): - ''' - params : typing.Sequence[~MachinePorts] - Returns -> typing.Sequence[~MachinePortsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='GetMachinePorts', - version=5, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def InstanceId(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='InstanceId', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='Life', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MacaroonResults) - async def MacaroonForRelations(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MacaroonResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='MacaroonForRelations', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='ModelConfig', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetRelationsStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='SetRelationsStatus', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def Watch(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='Watch', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchEgressAddressesForRelations(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='WatchEgressAddressesForRelations', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='WatchForModelConfigChanges', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchIngressAddressesForRelations(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='WatchIngressAddressesForRelations', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchModelMachines(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='WatchModelMachines', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchOpenedPorts(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='WatchOpenedPorts', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchUnits(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Firewaller', - request='WatchUnits', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class MachineManagerFacade(Type): - name = 'MachineManager' - version = 5 - schema = {'definitions': {'AddMachineParams': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'}, - 'type': 'array'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'container-type': {'type': 'string'}, - 'disks': {'items': {'$ref': '#/definitions/Constraints'}, - 'type': 'array'}, - 'hardware-characteristics': {'$ref': '#/definitions/HardwareCharacteristics'}, - 'instance-id': {'type': 'string'}, - 'jobs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'nonce': {'type': 'string'}, - 'parent-id': {'type': 'string'}, - 'placement': {'$ref': '#/definitions/Placement'}, - 'series': {'type': 'string'}}, - 'required': ['series', - 'constraints', - 'jobs', - 'parent-id', - 'container-type', - 'instance-id', - 'nonce', - 'hardware-characteristics', - 'addresses'], - 'type': 'object'}, - 'AddMachines': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/AddMachineParams'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'AddMachinesResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'machine': {'type': 'string'}}, - 'required': ['machine'], - 'type': 'object'}, - 'AddMachinesResults': {'additionalProperties': False, - 'properties': {'machines': {'items': {'$ref': '#/definitions/AddMachinesResult'}, - 'type': 'array'}}, - 'required': ['machines'], - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'Constraints': {'additionalProperties': False, - 'properties': {'Count': {'type': 'integer'}, - 'Pool': {'type': 'string'}, - 'Size': {'type': 'integer'}}, - 'required': ['Pool', 'Size', 'Count'], - 'type': 'object'}, - 'DestroyMachineInfo': {'additionalProperties': False, - 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'destroyed-units': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyMachineResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'$ref': '#/definitions/DestroyMachineInfo'}}, - 'type': 'object'}, - 'DestroyMachineResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyMachineResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyMachinesParams': {'additionalProperties': False, - 'properties': {'force': {'type': 'boolean'}, - 'keep': {'type': 'boolean'}, - 'machine-tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['machine-tags'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'HardwareCharacteristics': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cpu-cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'InstanceType': {'additionalProperties': False, - 'properties': {'arches': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cost': {'type': 'integer'}, - 'cpu-cores': {'type': 'integer'}, - 'deprecated': {'type': 'boolean'}, - 'memory': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'root-disk': {'type': 'integer'}, - 'virt-type': {'type': 'string'}}, - 'required': ['arches', 'cpu-cores', 'memory'], - 'type': 'object'}, - 'InstanceTypesResult': {'additionalProperties': False, - 'properties': {'cost-currency': {'type': 'string'}, - 'cost-divisor': {'type': 'integer'}, - 'cost-unit': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'instance-types': {'items': {'$ref': '#/definitions/InstanceType'}, - 'type': 'array'}}, - 'type': 'object'}, - 'InstanceTypesResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/InstanceTypesResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'ModelInstanceTypesConstraint': {'additionalProperties': False, - 'properties': {'value': {'$ref': '#/definitions/Value'}}, - 'type': 'object'}, - 'ModelInstanceTypesConstraints': {'additionalProperties': False, - 'properties': {'constraints': {'items': {'$ref': '#/definitions/ModelInstanceTypesConstraint'}, - 'type': 'array'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Placement': {'additionalProperties': False, - 'properties': {'directive': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['scope', 'directive'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UpdateSeriesArg': {'additionalProperties': False, - 'properties': {'force': {'type': 'boolean'}, - 'series': {'type': 'string'}, - 'tag': {'$ref': '#/definitions/Entity'}}, - 'required': ['tag', 'force', 'series'], - 'type': 'object'}, - 'UpdateSeriesArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/UpdateSeriesArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'UpgradeSeriesNotificationParam': {'additionalProperties': False, - 'properties': {'entity': {'$ref': '#/definitions/Entity'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['entity', - 'watcher-id'], - 'type': 'object'}, - 'UpgradeSeriesNotificationParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/UpgradeSeriesNotificationParam'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'UpgradeSeriesUnitsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'unit-names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['unit-names'], - 'type': 'object'}, - 'UpgradeSeriesUnitsResults': {'additionalProperties': False, - 'properties': {'Results': {'items': {'$ref': '#/definitions/UpgradeSeriesUnitsResult'}, - 'type': 'array'}}, - 'required': ['Results'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'AddMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, - 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, - 'type': 'object'}, - 'DestroyMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/DestroyMachineResults'}}, - 'type': 'object'}, - 'DestroyMachineWithParams': {'properties': {'Params': {'$ref': '#/definitions/DestroyMachinesParams'}, - 'Result': {'$ref': '#/definitions/DestroyMachineResults'}}, - 'type': 'object'}, - 'ForceDestroyMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/DestroyMachineResults'}}, - 'type': 'object'}, - 'GetUpgradeSeriesMessages': {'properties': {'Params': {'$ref': '#/definitions/UpgradeSeriesNotificationParams'}, - 'Result': {'$ref': '#/definitions/StringsResults'}}, - 'type': 'object'}, - 'InstanceTypes': {'properties': {'Params': {'$ref': '#/definitions/ModelInstanceTypesConstraints'}, - 'Result': {'$ref': '#/definitions/InstanceTypesResults'}}, - 'type': 'object'}, - 'UpgradeSeriesComplete': {'properties': {'Params': {'$ref': '#/definitions/UpdateSeriesArg'}, - 'Result': {'$ref': '#/definitions/ErrorResult'}}, - 'type': 'object'}, - 'UpgradeSeriesPrepare': {'properties': {'Params': {'$ref': '#/definitions/UpdateSeriesArg'}, - 'Result': {'$ref': '#/definitions/ErrorResult'}}, - 'type': 'object'}, - 'UpgradeSeriesValidate': {'properties': {'Params': {'$ref': '#/definitions/UpdateSeriesArgs'}, - 'Result': {'$ref': '#/definitions/UpgradeSeriesUnitsResults'}}, - 'type': 'object'}, - 'WatchUpgradeSeriesNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddMachinesResults) - async def AddMachines(self, params): - ''' - params : typing.Sequence[~AddMachineParams] - Returns -> typing.Sequence[~AddMachinesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='AddMachines', - version=5, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DestroyMachineResults) - async def DestroyMachine(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~DestroyMachineResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='DestroyMachine', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DestroyMachineResults) - async def DestroyMachineWithParams(self, force, keep, machine_tags): - ''' - force : bool - keep : bool - machine_tags : typing.Sequence[str] - Returns -> typing.Sequence[~DestroyMachineResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='DestroyMachineWithParams', - version=5, - params=_params) - _params['force'] = force - _params['keep'] = keep - _params['machine-tags'] = machine_tags - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DestroyMachineResults) - async def ForceDestroyMachine(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~DestroyMachineResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='ForceDestroyMachine', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsResults) - async def GetUpgradeSeriesMessages(self, params): - ''' - params : typing.Sequence[~UpgradeSeriesNotificationParam] - Returns -> typing.Sequence[~StringsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='GetUpgradeSeriesMessages', - version=5, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(InstanceTypesResults) - async def InstanceTypes(self, constraints): - ''' - constraints : typing.Sequence[~ModelInstanceTypesConstraint] - Returns -> typing.Sequence[~InstanceTypesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='InstanceTypes', - version=5, - params=_params) - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResult) - async def UpgradeSeriesComplete(self, force, series, tag): - ''' - force : bool - series : str - tag : Entity - Returns -> Error - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='UpgradeSeriesComplete', - version=5, - params=_params) - _params['force'] = force - _params['series'] = series - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResult) - async def UpgradeSeriesPrepare(self, force, series, tag): - ''' - force : bool - series : str - tag : Entity - Returns -> Error - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='UpgradeSeriesPrepare', - version=5, - params=_params) - _params['force'] = force - _params['series'] = series - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UpgradeSeriesUnitsResults) - async def UpgradeSeriesValidate(self, args): - ''' - args : typing.Sequence[~UpdateSeriesArg] - Returns -> typing.Sequence[~UpgradeSeriesUnitsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='UpgradeSeriesValidate', - version=5, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchUpgradeSeriesNotifications(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MachineManager', - request='WatchUpgradeSeriesNotifications', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - -class ModelManagerFacade(Type): - name = 'ModelManager' - version = 5 - schema = {'definitions': {'ChangeModelCredentialParams': {'additionalProperties': False, - 'properties': {'credential-tag': {'type': 'string'}, - 'model-tag': {'type': 'string'}}, - 'required': ['model-tag', - 'credential-tag'], - 'type': 'object'}, - 'ChangeModelCredentialsParams': {'additionalProperties': False, - 'properties': {'model-credentials': {'items': {'$ref': '#/definitions/ChangeModelCredentialParams'}, - 'type': 'array'}}, - 'required': ['model-credentials'], - 'type': 'object'}, - 'DestroyModelParams': {'additionalProperties': False, - 'properties': {'destroy-storage': {'type': 'boolean'}, - 'model-tag': {'type': 'string'}}, - 'required': ['model-tag'], - 'type': 'object'}, - 'DestroyModelsParams': {'additionalProperties': False, - 'properties': {'models': {'items': {'$ref': '#/definitions/DestroyModelParams'}, - 'type': 'array'}}, - 'required': ['models'], - 'type': 'object'}, - 'DumpModelRequest': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'simplified': {'type': 'boolean'}}, - 'required': ['entities', 'simplified'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityStatus': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'info', 'since'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineHardware': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'MapResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['result'], - 'type': 'object'}, - 'MapResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MapResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Model': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'type': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', 'uuid', 'type', 'owner-tag'], - 'type': 'object'}, - 'ModelCreateArgs': {'additionalProperties': False, - 'properties': {'cloud-tag': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'credential': {'type': 'string'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'region': {'type': 'string'}}, - 'required': ['name', 'owner-tag'], - 'type': 'object'}, - 'ModelDefaultValues': {'additionalProperties': False, - 'properties': {'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelDefaults': {'additionalProperties': False, - 'properties': {'controller': {'additionalProperties': True, - 'type': 'object'}, - 'default': {'additionalProperties': True, - 'type': 'object'}, - 'regions': {'items': {'$ref': '#/definitions/RegionDefaults'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ModelDefaultsResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ModelDefaults'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelEntityCount': {'additionalProperties': False, - 'properties': {'count': {'type': 'integer'}, - 'entity': {'type': 'string'}}, - 'required': ['entity', 'count'], - 'type': 'object'}, - 'ModelFilesystemInfo': {'additionalProperties': False, - 'properties': {'detachable': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'message': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['id'], - 'type': 'object'}, - 'ModelInfo': {'additionalProperties': False, - 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, - 'cloud-credential-tag': {'type': 'string'}, - 'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'controller-uuid': {'type': 'string'}, - 'default-series': {'type': 'string'}, - 'life': {'type': 'string'}, - 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, - 'type': 'array'}, - 'migration': {'$ref': '#/definitions/ModelMigrationStatus'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'provider-type': {'type': 'string'}, - 'sla': {'$ref': '#/definitions/ModelSLAInfo'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'type': {'type': 'string'}, - 'users': {'items': {'$ref': '#/definitions/ModelUserInfo'}, - 'type': 'array'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', - 'type', - 'uuid', - 'controller-uuid', - 'cloud-tag', - 'owner-tag', - 'life', - 'users', - 'machines', - 'sla', - 'agent-version'], - 'type': 'object'}, - 'ModelInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ModelInfo'}}, - 'type': 'object'}, - 'ModelInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ModelInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ModelMachineInfo': {'additionalProperties': False, - 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'}, - 'has-vote': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'instance-id': {'type': 'string'}, - 'message': {'type': 'string'}, - 'status': {'type': 'string'}, - 'wants-vote': {'type': 'boolean'}}, - 'required': ['id'], - 'type': 'object'}, - 'ModelMigrationStatus': {'additionalProperties': False, - 'properties': {'end': {'format': 'date-time', - 'type': 'string'}, - 'start': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'start'], - 'type': 'object'}, - 'ModelSLAInfo': {'additionalProperties': False, - 'properties': {'level': {'type': 'string'}, - 'owner': {'type': 'string'}}, - 'required': ['level', 'owner'], - 'type': 'object'}, - 'ModelStatus': {'additionalProperties': False, - 'properties': {'application-count': {'type': 'integer'}, - 'error': {'$ref': '#/definitions/Error'}, - 'filesystems': {'items': {'$ref': '#/definitions/ModelFilesystemInfo'}, - 'type': 'array'}, - 'hosted-machine-count': {'type': 'integer'}, - 'life': {'type': 'string'}, - 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, - 'type': 'array'}, - 'model-tag': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'volumes': {'items': {'$ref': '#/definitions/ModelVolumeInfo'}, - 'type': 'array'}}, - 'required': ['model-tag', - 'life', - 'hosted-machine-count', - 'application-count', - 'owner-tag'], - 'type': 'object'}, - 'ModelStatusResults': {'additionalProperties': False, - 'properties': {'models': {'items': {'$ref': '#/definitions/ModelStatus'}, - 'type': 'array'}}, - 'required': ['models'], - 'type': 'object'}, - 'ModelSummariesRequest': {'additionalProperties': False, - 'properties': {'all': {'type': 'boolean'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag'], - 'type': 'object'}, - 'ModelSummary': {'additionalProperties': False, - 'properties': {'agent-version': {'$ref': '#/definitions/Number'}, - 'cloud-credential-tag': {'type': 'string'}, - 'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'controller-uuid': {'type': 'string'}, - 'counts': {'items': {'$ref': '#/definitions/ModelEntityCount'}, - 'type': 'array'}, - 'default-series': {'type': 'string'}, - 'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'life': {'type': 'string'}, - 'migration': {'$ref': '#/definitions/ModelMigrationStatus'}, - 'name': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'provider-type': {'type': 'string'}, - 'sla': {'$ref': '#/definitions/ModelSLAInfo'}, - 'status': {'$ref': '#/definitions/EntityStatus'}, - 'type': {'type': 'string'}, - 'user-access': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', - 'uuid', - 'type', - 'controller-uuid', - 'cloud-tag', - 'owner-tag', - 'life', - 'user-access', - 'last-connection', - 'counts', - 'sla', - 'agent-version'], - 'type': 'object'}, - 'ModelSummaryResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ModelSummary'}}, - 'type': 'object'}, - 'ModelSummaryResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ModelSummaryResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ModelUnsetKeys': {'additionalProperties': False, - 'properties': {'cloud-region': {'type': 'string'}, - 'cloud-tag': {'type': 'string'}, - 'keys': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['keys'], - 'type': 'object'}, - 'ModelUserInfo': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'display-name': {'type': 'string'}, - 'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'user': {'type': 'string'}}, - 'required': ['user', - 'display-name', - 'last-connection', - 'access'], - 'type': 'object'}, - 'ModelVolumeInfo': {'additionalProperties': False, - 'properties': {'detachable': {'type': 'boolean'}, - 'id': {'type': 'string'}, - 'message': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['id'], - 'type': 'object'}, - 'ModifyModelAccess': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'action': {'type': 'string'}, - 'model-tag': {'type': 'string'}, - 'user-tag': {'type': 'string'}}, - 'required': ['user-tag', - 'action', - 'access', - 'model-tag'], - 'type': 'object'}, - 'ModifyModelAccessRequest': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyModelAccess'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'RegionDefaults': {'additionalProperties': False, - 'properties': {'region-name': {'type': 'string'}, - 'value': {'additionalProperties': True, - 'type': 'object'}}, - 'required': ['region-name', 'value'], - 'type': 'object'}, - 'SetModelDefaults': {'additionalProperties': False, - 'properties': {'config': {'items': {'$ref': '#/definitions/ModelDefaultValues'}, - 'type': 'array'}}, - 'required': ['config'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UnsetModelDefaults': {'additionalProperties': False, - 'properties': {'keys': {'items': {'$ref': '#/definitions/ModelUnsetKeys'}, - 'type': 'array'}}, - 'required': ['keys'], - 'type': 'object'}, - 'UserModel': {'additionalProperties': False, - 'properties': {'last-connection': {'format': 'date-time', - 'type': 'string'}, - 'model': {'$ref': '#/definitions/Model'}}, - 'required': ['model', 'last-connection'], - 'type': 'object'}, - 'UserModelList': {'additionalProperties': False, - 'properties': {'user-models': {'items': {'$ref': '#/definitions/UserModel'}, - 'type': 'array'}}, - 'required': ['user-models'], - 'type': 'object'}}, - 'properties': {'ChangeModelCredential': {'properties': {'Params': {'$ref': '#/definitions/ChangeModelCredentialsParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'CreateModel': {'properties': {'Params': {'$ref': '#/definitions/ModelCreateArgs'}, - 'Result': {'$ref': '#/definitions/ModelInfo'}}, - 'type': 'object'}, - 'DestroyModels': {'properties': {'Params': {'$ref': '#/definitions/DestroyModelsParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'DumpModels': {'properties': {'Params': {'$ref': '#/definitions/DumpModelRequest'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'DumpModelsDB': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MapResults'}}, - 'type': 'object'}, - 'ListModelSummaries': {'properties': {'Params': {'$ref': '#/definitions/ModelSummariesRequest'}, - 'Result': {'$ref': '#/definitions/ModelSummaryResults'}}, - 'type': 'object'}, - 'ListModels': {'properties': {'Params': {'$ref': '#/definitions/Entity'}, - 'Result': {'$ref': '#/definitions/UserModelList'}}, - 'type': 'object'}, - 'ModelDefaults': {'properties': {'Result': {'$ref': '#/definitions/ModelDefaultsResult'}}, - 'type': 'object'}, - 'ModelInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ModelInfoResults'}}, - 'type': 'object'}, - 'ModelStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ModelStatusResults'}}, - 'type': 'object'}, - 'ModifyModelAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyModelAccessRequest'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetModelDefaults': {'properties': {'Params': {'$ref': '#/definitions/SetModelDefaults'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UnsetModelDefaults': {'properties': {'Params': {'$ref': '#/definitions/UnsetModelDefaults'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(ErrorResults) - async def ChangeModelCredential(self, model_credentials): - ''' - model_credentials : typing.Sequence[~ChangeModelCredentialParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ChangeModelCredential', - version=5, - params=_params) - _params['model-credentials'] = model_credentials - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelInfo) - async def CreateModel(self, cloud_tag, config, credential, name, owner_tag, region): - ''' - cloud_tag : str - config : typing.Mapping[str, typing.Any] - credential : str - name : str - owner_tag : str - region : str - Returns -> typing.Union[_ForwardRef('Number'), str, typing.Sequence[~ModelMachineInfo], _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence[~ModelUserInfo]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='CreateModel', - version=5, - params=_params) - _params['cloud-tag'] = cloud_tag - _params['config'] = config - _params['credential'] = credential - _params['name'] = name - _params['owner-tag'] = owner_tag - _params['region'] = region - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DestroyModels(self, models): - ''' - models : typing.Sequence[~DestroyModelParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='DestroyModels', - version=5, - params=_params) - _params['models'] = models - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def DumpModels(self, entities, simplified): - ''' - entities : typing.Sequence[~Entity] - simplified : bool - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='DumpModels', - version=5, - params=_params) - _params['entities'] = entities - _params['simplified'] = simplified - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MapResults) - async def DumpModelsDB(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MapResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='DumpModelsDB', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelSummaryResults) - async def ListModelSummaries(self, all_, user_tag): - ''' - all_ : bool - user_tag : str - Returns -> typing.Sequence[~ModelSummaryResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ListModelSummaries', - version=5, - params=_params) - _params['all'] = all_ - _params['user-tag'] = user_tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UserModelList) - async def ListModels(self, tag): - ''' - tag : str - Returns -> typing.Sequence[~UserModel] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ListModels', - version=5, - params=_params) - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelDefaultsResult) - async def ModelDefaults(self): - ''' - - Returns -> typing.Mapping[str, ~ModelDefaults] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModelDefaults', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelInfoResults) - async def ModelInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ModelInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModelInfo', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelStatusResults) - async def ModelStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ModelStatus] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModelStatus', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ModifyModelAccess(self, changes): - ''' - changes : typing.Sequence[~ModifyModelAccess] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='ModifyModelAccess', - version=5, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetModelDefaults(self, config): - ''' - config : typing.Sequence[~ModelDefaultValues] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='SetModelDefaults', - version=5, - params=_params) - _params['config'] = config - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UnsetModelDefaults(self, keys): - ''' - keys : typing.Sequence[~ModelUnsetKeys] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='ModelManager', - request='UnsetModelDefaults', - version=5, - params=_params) - _params['keys'] = keys - reply = await self.rpc(msg) - return reply - - - -class UniterFacade(Type): - name = 'Uniter' - version = 5 - schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, - 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, - 'type': 'array'}, - 'type': 'array'}}, - 'required': ['servers'], - 'type': 'object'}, - 'Action': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'parameters': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'receiver': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'receiver', 'name'], - 'type': 'object'}, - 'ActionExecutionResult': {'additionalProperties': False, - 'properties': {'action-tag': {'type': 'string'}, - 'message': {'type': 'string'}, - 'results': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'status': {'type': 'string'}}, - 'required': ['action-tag', 'status'], - 'type': 'object'}, - 'ActionExecutionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ActionExecutionResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ActionResult': {'additionalProperties': False, - 'properties': {'action': {'$ref': '#/definitions/Action'}, - 'completed': {'format': 'date-time', - 'type': 'string'}, - 'enqueued': {'format': 'date-time', - 'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'message': {'type': 'string'}, - 'output': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'started': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'type': 'object'}, - 'ActionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'ApplicationStatusResult': {'additionalProperties': False, - 'properties': {'application': {'$ref': '#/definitions/StatusResult'}, - 'error': {'$ref': '#/definitions/Error'}, - 'units': {'patternProperties': {'.*': {'$ref': '#/definitions/StatusResult'}}, - 'type': 'object'}}, - 'required': ['application', - 'units'], - 'type': 'object'}, - 'ApplicationStatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationStatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'BoolResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'boolean'}}, - 'required': ['result'], - 'type': 'object'}, - 'BoolResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'BytesResult': {'additionalProperties': False, - 'properties': {'result': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['result'], - 'type': 'object'}, - 'CharmRelation': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'optional': {'type': 'boolean'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'optional', - 'limit', - 'scope'], - 'type': 'object'}, - 'CharmURL': {'additionalProperties': False, - 'properties': {'url': {'type': 'string'}}, - 'required': ['url'], - 'type': 'object'}, - 'CharmURLs': {'additionalProperties': False, - 'properties': {'urls': {'items': {'$ref': '#/definitions/CharmURL'}, - 'type': 'array'}}, - 'required': ['urls'], - 'type': 'object'}, - 'ConfigSettingsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'settings': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['settings'], - 'type': 'object'}, - 'ConfigSettingsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ConfigSettingsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Endpoint': {'additionalProperties': False, - 'properties': {'application-name': {'type': 'string'}, - 'relation': {'$ref': '#/definitions/CharmRelation'}}, - 'required': ['application-name', 'relation'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesCharmURL': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityCharmURL'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesPortRanges': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityPortRange'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityCharmURL': {'additionalProperties': False, - 'properties': {'charm-url': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'charm-url'], - 'type': 'object'}, - 'EntityPortRange': {'additionalProperties': False, - 'properties': {'from-port': {'type': 'integer'}, - 'protocol': {'type': 'string'}, - 'tag': {'type': 'string'}, - 'to-port': {'type': 'integer'}}, - 'required': ['tag', - 'protocol', - 'from-port', - 'to-port'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'EntityWorkloadVersion': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}, - 'workload-version': {'type': 'string'}}, - 'required': ['tag', - 'workload-version'], - 'type': 'object'}, - 'EntityWorkloadVersions': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityWorkloadVersion'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GetLeadershipSettingsBulkResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/GetLeadershipSettingsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GetLeadershipSettingsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['settings'], - 'type': 'object'}, - 'HostPort': {'additionalProperties': False, - 'properties': {'Address': {'$ref': '#/definitions/Address'}, - 'port': {'type': 'integer'}}, - 'required': ['Address', 'port'], - 'type': 'object'}, - 'IntResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'integer'}}, - 'required': ['result'], - 'type': 'object'}, - 'IntResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/IntResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'InterfaceAddress': {'additionalProperties': False, - 'properties': {'cidr': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'cidr'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachinePortRange': {'additionalProperties': False, - 'properties': {'port-range': {'$ref': '#/definitions/PortRange'}, - 'relation-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['unit-tag', - 'relation-tag', - 'port-range'], - 'type': 'object'}, - 'MachinePortsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'ports': {'items': {'$ref': '#/definitions/MachinePortRange'}, - 'type': 'array'}}, - 'required': ['ports'], - 'type': 'object'}, - 'MachinePortsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MachinePortsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'MergeLeadershipSettingsBulkParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/MergeLeadershipSettingsParam'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'MergeLeadershipSettingsParam': {'additionalProperties': False, - 'properties': {'application-tag': {'type': 'string'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['application-tag', - 'settings'], - 'type': 'object'}, - 'MeterStatusResult': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'info': {'type': 'string'}}, - 'required': ['code', 'info'], - 'type': 'object'}, - 'MeterStatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MeterStatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Metric': {'additionalProperties': False, - 'properties': {'key': {'type': 'string'}, - 'time': {'format': 'date-time', - 'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['key', 'value', 'time'], - 'type': 'object'}, - 'MetricBatch': {'additionalProperties': False, - 'properties': {'charm-url': {'type': 'string'}, - 'created': {'format': 'date-time', - 'type': 'string'}, - 'metrics': {'items': {'$ref': '#/definitions/Metric'}, - 'type': 'array'}, - 'uuid': {'type': 'string'}}, - 'required': ['uuid', - 'charm-url', - 'created', - 'metrics'], - 'type': 'object'}, - 'MetricBatchParam': {'additionalProperties': False, - 'properties': {'batch': {'$ref': '#/definitions/MetricBatch'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'batch'], - 'type': 'object'}, - 'MetricBatchParams': {'additionalProperties': False, - 'properties': {'batches': {'items': {'$ref': '#/definitions/MetricBatchParam'}, - 'type': 'array'}}, - 'required': ['batches'], - 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', 'uuid'], - 'type': 'object'}, - 'NetworkInfo': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'$ref': '#/definitions/InterfaceAddress'}, - 'type': 'array'}, - 'interface-name': {'type': 'string'}, - 'mac-address': {'type': 'string'}}, - 'required': ['mac-address', - 'interface-name', - 'addresses'], - 'type': 'object'}, - 'NetworkInfoParams': {'additionalProperties': False, - 'properties': {'bindings': {'items': {'type': 'string'}, - 'type': 'array'}, - 'unit': {'type': 'string'}}, - 'required': ['unit', 'bindings'], - 'type': 'object'}, - 'NetworkInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'network-info': {'items': {'$ref': '#/definitions/NetworkInfo'}, - 'type': 'array'}}, - 'required': ['network-info'], - 'type': 'object'}, - 'NetworkInfoResults': {'additionalProperties': False, - 'properties': {'results': {'patternProperties': {'.*': {'$ref': '#/definitions/NetworkInfoResult'}}, - 'type': 'object'}}, - 'required': ['results'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'PortRange': {'additionalProperties': False, - 'properties': {'from-port': {'type': 'integer'}, - 'protocol': {'type': 'string'}, - 'to-port': {'type': 'integer'}}, - 'required': ['from-port', 'to-port', 'protocol'], - 'type': 'object'}, - 'RelationIds': {'additionalProperties': False, - 'properties': {'relation-ids': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['relation-ids'], - 'type': 'object'}, - 'RelationResult': {'additionalProperties': False, - 'properties': {'endpoint': {'$ref': '#/definitions/Endpoint'}, - 'error': {'$ref': '#/definitions/Error'}, - 'id': {'type': 'integer'}, - 'key': {'type': 'string'}, - 'life': {'type': 'string'}}, - 'required': ['life', - 'id', - 'key', - 'endpoint'], - 'type': 'object'}, - 'RelationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RelationResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RelationUnit': {'additionalProperties': False, - 'properties': {'relation': {'type': 'string'}, - 'unit': {'type': 'string'}}, - 'required': ['relation', 'unit'], - 'type': 'object'}, - 'RelationUnitPair': {'additionalProperties': False, - 'properties': {'local-unit': {'type': 'string'}, - 'relation': {'type': 'string'}, - 'remote-unit': {'type': 'string'}}, - 'required': ['relation', - 'local-unit', - 'remote-unit'], - 'type': 'object'}, - 'RelationUnitPairs': {'additionalProperties': False, - 'properties': {'relation-unit-pairs': {'items': {'$ref': '#/definitions/RelationUnitPair'}, - 'type': 'array'}}, - 'required': ['relation-unit-pairs'], - 'type': 'object'}, - 'RelationUnitSettings': {'additionalProperties': False, - 'properties': {'relation': {'type': 'string'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'unit': {'type': 'string'}}, - 'required': ['relation', - 'unit', - 'settings'], - 'type': 'object'}, - 'RelationUnits': {'additionalProperties': False, - 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnit'}, - 'type': 'array'}}, - 'required': ['relation-units'], - 'type': 'object'}, - 'RelationUnitsChange': {'additionalProperties': False, - 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}}, - 'type': 'object'}, - 'departed': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['changed'], - 'type': 'object'}, - 'RelationUnitsSettings': {'additionalProperties': False, - 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnitSettings'}, - 'type': 'array'}}, - 'required': ['relation-units'], - 'type': 'object'}, - 'RelationUnitsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'$ref': '#/definitions/RelationUnitsChange'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}, - 'RelationUnitsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RelationUnitsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ResolvedModeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'mode': {'type': 'string'}}, - 'required': ['mode'], - 'type': 'object'}, - 'ResolvedModeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ResolvedModeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'SettingsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['settings'], - 'type': 'object'}, - 'SettingsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/SettingsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StatusResult': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'error': {'$ref': '#/definitions/Error'}, - 'id': {'type': 'string'}, - 'info': {'type': 'string'}, - 'life': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['id', - 'life', - 'status', - 'info', - 'data', - 'since'], - 'type': 'object'}, - 'StatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StorageAddParams': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'storage': {'$ref': '#/definitions/StorageConstraints'}, - 'unit': {'type': 'string'}}, - 'required': ['unit', 'name', 'storage'], - 'type': 'object'}, - 'StorageAttachment': {'additionalProperties': False, - 'properties': {'kind': {'type': 'integer'}, - 'life': {'type': 'string'}, - 'location': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'storage-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'owner-tag', - 'unit-tag', - 'kind', - 'location', - 'life'], - 'type': 'object'}, - 'StorageAttachmentId': {'additionalProperties': False, - 'properties': {'storage-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'unit-tag'], - 'type': 'object'}, - 'StorageAttachmentIds': {'additionalProperties': False, - 'properties': {'ids': {'items': {'$ref': '#/definitions/StorageAttachmentId'}, - 'type': 'array'}}, - 'required': ['ids'], - 'type': 'object'}, - 'StorageAttachmentIdsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/StorageAttachmentIds'}}, - 'required': ['result'], - 'type': 'object'}, - 'StorageAttachmentIdsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StorageAttachmentIdsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageAttachmentResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/StorageAttachment'}}, - 'required': ['result'], - 'type': 'object'}, - 'StorageAttachmentResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StorageAttachmentResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageConstraints': {'additionalProperties': False, - 'properties': {'count': {'type': 'integer'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'type': 'object'}, - 'StoragesAddParams': {'additionalProperties': False, - 'properties': {'storages': {'items': {'$ref': '#/definitions/StorageAddParams'}, - 'type': 'array'}}, - 'required': ['storages'], - 'type': 'object'}, - 'StringBoolResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'ok': {'type': 'boolean'}, - 'result': {'type': 'string'}}, - 'required': ['result', 'ok'], - 'type': 'object'}, - 'StringBoolResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringBoolResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UnitSettings': {'additionalProperties': False, - 'properties': {'version': {'type': 'integer'}}, - 'required': ['version'], - 'type': 'object'}}, - 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, - 'type': 'object'}, - 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, - 'type': 'object'}, - 'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'AddMetricBatches': {'properties': {'Params': {'$ref': '#/definitions/MetricBatchParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'AddUnitStorage': {'properties': {'Params': {'$ref': '#/definitions/StoragesAddParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'AllMachinePorts': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachinePortsResults'}}, - 'type': 'object'}, - 'ApplicationStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ApplicationStatusResults'}}, - 'type': 'object'}, - 'AssignedMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'AvailabilityZone': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'BeginActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, - 'type': 'object'}, - 'CharmArchiveSha256': {'properties': {'Params': {'$ref': '#/definitions/CharmURLs'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'CharmModifiedVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/IntResults'}}, - 'type': 'object'}, - 'CharmURL': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringBoolResults'}}, - 'type': 'object'}, - 'ClearResolved': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ClosePorts': {'properties': {'Params': {'$ref': '#/definitions/EntitiesPortRanges'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ConfigSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ConfigSettingsResults'}}, - 'type': 'object'}, - 'CurrentModel': {'properties': {'Result': {'$ref': '#/definitions/ModelResult'}}, - 'type': 'object'}, - 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'DestroyAllSubordinates': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'DestroyUnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'EnterScope': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'FinishActions': {'properties': {'Params': {'$ref': '#/definitions/ActionExecutionResults'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'GetMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MeterStatusResults'}}, - 'type': 'object'}, - 'GetPrincipal': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringBoolResults'}}, - 'type': 'object'}, - 'HasSubordinates': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/BoolResults'}}, - 'type': 'object'}, - 'JoinedRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsResults'}}, - 'type': 'object'}, - 'LeaveScope': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'Merge': {'properties': {'Params': {'$ref': '#/definitions/MergeLeadershipSettingsBulkParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'NetworkInfo': {'properties': {'Params': {'$ref': '#/definitions/NetworkInfoParams'}, - 'Result': {'$ref': '#/definitions/NetworkInfoResults'}}, - 'type': 'object'}, - 'OpenPorts': {'properties': {'Params': {'$ref': '#/definitions/EntitiesPortRanges'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'ProviderType': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'Read': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/GetLeadershipSettingsBulkResults'}}, - 'type': 'object'}, - 'ReadRemoteSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnitPairs'}, - 'Result': {'$ref': '#/definitions/SettingsResults'}}, - 'type': 'object'}, - 'ReadSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/SettingsResults'}}, - 'type': 'object'}, - 'Relation': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/RelationResults'}}, - 'type': 'object'}, - 'RelationById': {'properties': {'Params': {'$ref': '#/definitions/RelationIds'}, - 'Result': {'$ref': '#/definitions/RelationResults'}}, - 'type': 'object'}, - 'RemoveStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RequestReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Resolved': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ResolvedModeResults'}}, - 'type': 'object'}, - 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'SetAgentStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetApplicationStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/EntitiesCharmURL'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetUnitStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetWorkloadVersion': {'properties': {'Params': {'$ref': '#/definitions/EntityWorkloadVersions'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'StorageAttachmentLife': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'StorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/StorageAttachmentResults'}}, - 'type': 'object'}, - 'UnitStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StatusResults'}}, - 'type': 'object'}, - 'UnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StorageAttachmentIdsResults'}}, - 'type': 'object'}, - 'UpdateSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnitsSettings'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchActionNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchConfigSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchLeadershipSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchRelationUnits': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/RelationUnitsWatchResults'}}, - 'type': 'object'}, - 'WatchStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchUnitAddresses': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchUnitRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchUnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WorkloadVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringsResult) - async def APIAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='APIAddresses', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(APIHostPortsResult) - async def APIHostPorts(self): - ''' - - Returns -> typing.Sequence[~HostPort] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='APIHostPorts', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionResults) - async def Actions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Actions', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def AddMetricBatches(self, batches): - ''' - batches : typing.Sequence[~MetricBatchParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AddMetricBatches', - version=5, - params=_params) - _params['batches'] = batches - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def AddUnitStorage(self, storages): - ''' - storages : typing.Sequence[~StorageAddParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AddUnitStorage', - version=5, - params=_params) - _params['storages'] = storages - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachinePortsResults) - async def AllMachinePorts(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachinePortsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AllMachinePorts', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationStatusResults) - async def ApplicationStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ApplicationStatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ApplicationStatus', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def AssignedMachine(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AssignedMachine', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def AvailabilityZone(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AvailabilityZone', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def BeginActions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='BeginActions', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BytesResult) - async def CACert(self): - ''' - - Returns -> typing.Sequence[int] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CACert', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def CharmArchiveSha256(self, urls): - ''' - urls : typing.Sequence[~CharmURL] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CharmArchiveSha256', - version=5, - params=_params) - _params['urls'] = urls - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(IntResults) - async def CharmModifiedVersion(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~IntResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CharmModifiedVersion', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringBoolResults) - async def CharmURL(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringBoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CharmURL', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ClearResolved(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ClearResolved', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ClosePorts(self, entities): - ''' - entities : typing.Sequence[~EntityPortRange] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ClosePorts', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ConfigSettingsResults) - async def ConfigSettings(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ConfigSettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ConfigSettings', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelResult) - async def CurrentModel(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CurrentModel', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Destroy(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Destroy', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DestroyAllSubordinates(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='DestroyAllSubordinates', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DestroyUnitStorageAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='DestroyUnitStorageAttachments', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnsureDead(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='EnsureDead', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnterScope(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='EnterScope', - version=5, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def FinishActions(self, results): - ''' - results : typing.Sequence[~ActionExecutionResult] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='FinishActions', - version=5, - params=_params) - _params['results'] = results - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MeterStatusResults) - async def GetMeterStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MeterStatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='GetMeterStatus', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringBoolResults) - async def GetPrincipal(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringBoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='GetPrincipal', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BoolResults) - async def HasSubordinates(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~BoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='HasSubordinates', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsResults) - async def JoinedRelations(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='JoinedRelations', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def LeaveScope(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='LeaveScope', - version=5, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Life', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Merge(self, params): - ''' - params : typing.Sequence[~MergeLeadershipSettingsParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Merge', - version=5, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ModelConfig', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ModelUUID(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ModelUUID', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NetworkInfoResults) - async def NetworkInfo(self, bindings, unit): - ''' - bindings : typing.Sequence[str] - unit : str - Returns -> typing.Mapping[str, ~NetworkInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='NetworkInfo', - version=5, - params=_params) - _params['bindings'] = bindings - _params['unit'] = unit - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def OpenPorts(self, entities): - ''' - entities : typing.Sequence[~EntityPortRange] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='OpenPorts', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def PrivateAddress(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='PrivateAddress', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ProviderType(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ProviderType', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def PublicAddress(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='PublicAddress', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(GetLeadershipSettingsBulkResults) - async def Read(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~GetLeadershipSettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Read', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SettingsResults) - async def ReadRemoteSettings(self, relation_unit_pairs): - ''' - relation_unit_pairs : typing.Sequence[~RelationUnitPair] - Returns -> typing.Sequence[~SettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ReadRemoteSettings', - version=5, - params=_params) - _params['relation-unit-pairs'] = relation_unit_pairs - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SettingsResults) - async def ReadSettings(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~SettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ReadSettings', - version=5, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationResults) - async def Relation(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~RelationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Relation', - version=5, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationResults) - async def RelationById(self, relation_ids): - ''' - relation_ids : typing.Sequence[int] - Returns -> typing.Sequence[~RelationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='RelationById', - version=5, - params=_params) - _params['relation-ids'] = relation_ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RemoveStorageAttachments(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='RemoveStorageAttachments', - version=5, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RequestReboot(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='RequestReboot', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ResolvedModeResults) - async def Resolved(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ResolvedModeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Resolved', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def SLALevel(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SLALevel', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetAgentStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetAgentStatus', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetApplicationStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetApplicationStatus', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetCharmURL(self, entities): - ''' - entities : typing.Sequence[~EntityCharmURL] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetCharmURL', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetStatus', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetUnitStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetUnitStatus', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetWorkloadVersion(self, entities): - ''' - entities : typing.Sequence[~EntityWorkloadVersion] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetWorkloadVersion', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def StorageAttachmentLife(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='StorageAttachmentLife', - version=5, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StorageAttachmentResults) - async def StorageAttachments(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~StorageAttachmentResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='StorageAttachments', - version=5, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusResults) - async def UnitStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='UnitStatus', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StorageAttachmentIdsResults) - async def UnitStorageAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StorageAttachmentIdsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='UnitStorageAttachments', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateSettings(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnitSettings] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='UpdateSettings', - version=5, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def Watch(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Watch', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchAPIHostPorts(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchAPIHostPorts', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchActionNotifications(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchActionNotifications', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchConfigSettings(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchConfigSettings', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchForModelConfigChanges', - version=5, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchLeadershipSettings(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchLeadershipSettings', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchMeterStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchMeterStatus', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationUnitsWatchResults) - async def WatchRelationUnits(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~RelationUnitsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchRelationUnits', - version=5, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchStorageAttachments(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchStorageAttachments', - version=5, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchUnitAddresses(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchUnitAddresses', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchUnitRelations(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchUnitRelations', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchUnitStorageAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchUnitStorageAttachments', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def WorkloadVersion(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WorkloadVersion', - version=5, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply diff --git a/modules/libjuju/juju/client/_client7.py b/modules/libjuju/juju/client/_client7.py deleted file mode 100644 index 1d6cd48..0000000 --- a/modules/libjuju/juju/client/_client7.py +++ /dev/null @@ -1,1770 +0,0 @@ -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. - -from juju.client.facade import Type, ReturnMapping -from juju.client._definitions import * - - -class ProvisionerFacade(Type): - name = 'Provisioner' - version = 7 - schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, - 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, - 'type': 'array'}, - 'type': 'array'}}, - 'required': ['servers'], - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'Binary': {'additionalProperties': False, - 'properties': {'Arch': {'type': 'string'}, - 'Number': {'$ref': '#/definitions/Number'}, - 'Series': {'type': 'string'}}, - 'required': ['Number', 'Series', 'Arch'], - 'type': 'object'}, - 'BoolResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'boolean'}}, - 'required': ['result'], - 'type': 'object'}, - 'BoolResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'BytesResult': {'additionalProperties': False, - 'properties': {'result': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['result'], - 'type': 'object'}, - 'CharmLXDProfile': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'description': {'type': 'string'}, - 'devices': {'patternProperties': {'.*': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config', - 'description', - 'devices'], - 'type': 'object'}, - 'CloudImageMetadata': {'additionalProperties': False, - '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'}}, - 'required': ['image-id', - 'region', - 'version', - 'series', - 'arch', - 'source', - 'priority'], - 'type': 'object'}, - 'ConstraintsResult': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'ConstraintsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ConstraintsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ContainerConfig': {'additionalProperties': False, - 'properties': {'UpdateBehavior': {'$ref': '#/definitions/UpdateBehavior'}, - 'apt-mirror': {'type': 'string'}, - 'apt-proxy': {'$ref': '#/definitions/Settings'}, - 'authorized-keys': {'type': 'string'}, - 'cloudinit-userdata': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'container-inherit-properties': {'type': 'string'}, - 'juju-proxy': {'$ref': '#/definitions/Settings'}, - 'legacy-proxy': {'$ref': '#/definitions/Settings'}, - 'provider-type': {'type': 'string'}, - 'snap-proxy': {'$ref': '#/definitions/Settings'}, - 'ssl-hostname-verification': {'type': 'boolean'}}, - 'required': ['provider-type', - 'authorized-keys', - 'ssl-hostname-verification', - 'legacy-proxy', - 'juju-proxy', - 'apt-proxy', - 'snap-proxy', - 'apt-mirror', - 'UpdateBehavior'], - 'type': 'object'}, - 'ContainerLXDProfile': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'profile': {'$ref': '#/definitions/CharmLXDProfile'}}, - 'required': ['profile', 'name'], - 'type': 'object'}, - 'ContainerManagerConfig': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ContainerManagerConfigParams': {'additionalProperties': False, - 'properties': {'type': {'type': 'string'}}, - 'required': ['type'], - 'type': 'object'}, - 'ContainerProfileResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'lxd-profiles': {'items': {'$ref': '#/definitions/ContainerLXDProfile'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ContainerProfileResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ContainerProfileResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ControllerAPIInfoResult': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cacert': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['addresses', - 'cacert'], - 'type': 'object'}, - 'ControllerAPIInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ControllerAPIInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ControllerConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'DeviceBridgeInfo': {'additionalProperties': False, - 'properties': {'bridge-name': {'type': 'string'}, - 'host-device-name': {'type': 'string'}, - 'mac-address': {'type': 'string'}}, - 'required': ['host-device-name', - 'bridge-name', - 'mac-address'], - 'type': 'object'}, - 'DistributionGroupResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['result'], - 'type': 'object'}, - 'DistributionGroupResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/DistributionGroupResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityPassword': {'additionalProperties': False, - 'properties': {'password': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'password'], - 'type': 'object'}, - 'EntityPasswords': {'additionalProperties': False, - 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'}, - 'type': 'array'}}, - 'required': ['changes'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'FindToolsParams': {'additionalProperties': False, - 'properties': {'agentstream': {'type': 'string'}, - 'arch': {'type': 'string'}, - 'major': {'type': 'integer'}, - 'minor': {'type': 'integer'}, - 'number': {'$ref': '#/definitions/Number'}, - 'series': {'type': 'string'}}, - 'required': ['number', - 'major', - 'minor', - 'arch', - 'series', - 'agentstream'], - 'type': 'object'}, - 'FindToolsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'list': {'items': {'$ref': '#/definitions/Tools'}, - 'type': 'array'}}, - 'required': ['list'], - 'type': 'object'}, - 'HardwareCharacteristics': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'availability-zone': {'type': 'string'}, - 'cpu-cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'HostNetworkChange': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'new-bridges': {'items': {'$ref': '#/definitions/DeviceBridgeInfo'}, - 'type': 'array'}, - 'reconfigure-delay': {'type': 'integer'}}, - 'required': ['new-bridges', - 'reconfigure-delay'], - 'type': 'object'}, - 'HostNetworkChangeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/HostNetworkChange'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'HostPort': {'additionalProperties': False, - 'properties': {'Address': {'$ref': '#/definitions/Address'}, - 'port': {'type': 'integer'}}, - 'required': ['Address', 'port'], - 'type': 'object'}, - 'InstanceInfo': {'additionalProperties': False, - 'properties': {'characteristics': {'$ref': '#/definitions/HardwareCharacteristics'}, - 'charm-profiles': {'items': {'type': 'string'}, - 'type': 'array'}, - 'instance-id': {'type': 'string'}, - 'network-config': {'items': {'$ref': '#/definitions/NetworkConfig'}, - 'type': 'array'}, - 'nonce': {'type': 'string'}, - 'tag': {'type': 'string'}, - 'volume-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/VolumeAttachmentInfo'}}, - 'type': 'object'}, - 'volumes': {'items': {'$ref': '#/definitions/Volume'}, - 'type': 'array'}}, - 'required': ['tag', - 'instance-id', - 'nonce', - 'characteristics', - 'volumes', - 'volume-attachments', - 'network-config', - 'charm-profiles'], - 'type': 'object'}, - 'InstancesInfo': {'additionalProperties': False, - 'properties': {'machines': {'items': {'$ref': '#/definitions/InstanceInfo'}, - 'type': 'array'}}, - 'required': ['machines'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachineContainers': {'additionalProperties': False, - 'properties': {'container-types': {'items': {'type': 'string'}, - 'type': 'array'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['machine-tag', - 'container-types'], - 'type': 'object'}, - 'MachineContainersParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/MachineContainers'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'MachineNetworkConfigResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'items': {'$ref': '#/definitions/NetworkConfig'}, - 'type': 'array'}}, - 'required': ['info'], - 'type': 'object'}, - 'MachineNetworkConfigResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MachineNetworkConfigResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'NetworkConfig': {'additionalProperties': False, - 'properties': {'address': {'type': 'string'}, - 'cidr': {'type': 'string'}, - 'config-type': {'type': 'string'}, - 'device-index': {'type': 'integer'}, - 'disabled': {'type': 'boolean'}, - 'dns-search-domains': {'items': {'type': 'string'}, - 'type': 'array'}, - 'dns-servers': {'items': {'type': 'string'}, - 'type': 'array'}, - 'gateway-address': {'type': 'string'}, - 'interface-name': {'type': 'string'}, - 'interface-type': {'type': 'string'}, - 'is-default-gateway': {'type': 'boolean'}, - 'mac-address': {'type': 'string'}, - 'mtu': {'type': 'integer'}, - 'no-auto-start': {'type': 'boolean'}, - 'parent-interface-name': {'type': 'string'}, - 'provider-address-id': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'provider-subnet-id': {'type': 'string'}, - 'provider-vlan-id': {'type': 'string'}, - 'routes': {'items': {'$ref': '#/definitions/NetworkRoute'}, - 'type': 'array'}, - 'vlan-tag': {'type': 'integer'}}, - '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'], - 'type': 'object'}, - 'NetworkRoute': {'additionalProperties': False, - 'properties': {'destination-cidr': {'type': 'string'}, - 'gateway-ip': {'type': 'string'}, - 'metric': {'type': 'integer'}}, - 'required': ['destination-cidr', - 'gateway-ip', - 'metric'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'Number': {'additionalProperties': False, - 'properties': {'Build': {'type': 'integer'}, - 'Major': {'type': 'integer'}, - 'Minor': {'type': 'integer'}, - 'Patch': {'type': 'integer'}, - 'Tag': {'type': 'string'}}, - 'required': ['Major', - 'Minor', - 'Tag', - 'Patch', - 'Build'], - 'type': 'object'}, - 'ProfileChangeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'new-profile-name': {'type': 'string'}, - 'old-profile-name': {'type': 'string'}, - 'profile': {'$ref': '#/definitions/CharmLXDProfile'}, - 'subordinate': {'type': 'boolean'}}, - 'type': 'object'}, - 'ProfileChangeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ProfileChangeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ProvisioningInfo': {'additionalProperties': False, - 'properties': {'charm-lxd-profiles': {'items': {'type': 'string'}, - 'type': 'array'}, - 'cloudinit-userdata': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'controller-config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'image-metadata': {'items': {'$ref': '#/definitions/CloudImageMetadata'}, - 'type': 'array'}, - 'jobs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'placement': {'type': 'string'}, - 'series': {'type': 'string'}, - 'subnets-to-zones': {'patternProperties': {'.*': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'volume-attachments': {'items': {'$ref': '#/definitions/VolumeAttachmentParams'}, - 'type': 'array'}, - 'volumes': {'items': {'$ref': '#/definitions/VolumeParams'}, - 'type': 'array'}}, - 'required': ['constraints', - 'series', - 'placement', - 'jobs'], - 'type': 'object'}, - 'ProvisioningInfoResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/ProvisioningInfo'}}, - 'required': ['result'], - 'type': 'object'}, - 'ProvisioningInfoResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ProvisioningInfoResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SetMachineNetworkConfig': {'additionalProperties': False, - 'properties': {'config': {'items': {'$ref': '#/definitions/NetworkConfig'}, - 'type': 'array'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'config'], - 'type': 'object'}, - 'SetProfileArg': {'additionalProperties': False, - 'properties': {'entity': {'$ref': '#/definitions/Entity'}, - 'profiles': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['entity', 'profiles'], - 'type': 'object'}, - 'SetProfileArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/SetProfileArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'SetProfileUpgradeCompleteArg': {'additionalProperties': False, - 'properties': {'entity': {'$ref': '#/definitions/Entity'}, - 'message': {'type': 'string'}}, - 'required': ['entity', - 'message'], - 'type': 'object'}, - 'SetProfileUpgradeCompleteArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/SetProfileUpgradeCompleteArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Settings': {'additionalProperties': False, - 'properties': {'AutoNoProxy': {'type': 'string'}, - 'Ftp': {'type': 'string'}, - 'Http': {'type': 'string'}, - 'Https': {'type': 'string'}, - 'NoProxy': {'type': 'string'}}, - 'required': ['Http', - 'Https', - 'Ftp', - 'NoProxy', - 'AutoNoProxy'], - 'type': 'object'}, - 'StatusResult': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'error': {'$ref': '#/definitions/Error'}, - 'id': {'type': 'string'}, - 'info': {'type': 'string'}, - 'life': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['id', - 'life', - 'status', - 'info', - 'data', - 'since'], - 'type': 'object'}, - 'StatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Tools': {'additionalProperties': False, - 'properties': {'sha256': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'url': {'type': 'string'}, - 'version': {'$ref': '#/definitions/Binary'}}, - 'required': ['version', 'url', 'size'], - 'type': 'object'}, - 'ToolsResult': {'additionalProperties': False, - 'properties': {'disable-ssl-hostname-verification': {'type': 'boolean'}, - 'error': {'$ref': '#/definitions/Error'}, - 'tools': {'items': {'$ref': '#/definitions/Tools'}, - 'type': 'array'}}, - 'required': ['tools', - 'disable-ssl-hostname-verification'], - 'type': 'object'}, - 'ToolsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ToolsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UpdateBehavior': {'additionalProperties': False, - 'properties': {'enable-os-refresh-update': {'type': 'boolean'}, - 'enable-os-upgrade': {'type': 'boolean'}}, - 'required': ['enable-os-refresh-update', - 'enable-os-upgrade'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Volume': {'additionalProperties': False, - 'properties': {'info': {'$ref': '#/definitions/VolumeInfo'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', 'info'], - 'type': 'object'}, - 'VolumeAttachmentInfo': {'additionalProperties': False, - 'properties': {'bus-address': {'type': 'string'}, - 'device-link': {'type': 'string'}, - 'device-name': {'type': 'string'}, - 'plan-info': {'$ref': '#/definitions/VolumeAttachmentPlanInfo'}, - 'read-only': {'type': 'boolean'}}, - 'type': 'object'}, - 'VolumeAttachmentParams': {'additionalProperties': False, - 'properties': {'instance-id': {'type': 'string'}, - 'machine-tag': {'type': 'string'}, - 'provider': {'type': 'string'}, - 'read-only': {'type': 'boolean'}, - 'volume-id': {'type': 'string'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', - 'machine-tag', - 'provider'], - 'type': 'object'}, - 'VolumeAttachmentPlanInfo': {'additionalProperties': False, - 'properties': {'device-attributes': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'device-type': {'type': 'string'}}, - 'type': 'object'}, - 'VolumeInfo': {'additionalProperties': False, - 'properties': {'hardware-id': {'type': 'string'}, - 'persistent': {'type': 'boolean'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'volume-id': {'type': 'string'}, - 'wwn': {'type': 'string'}}, - 'required': ['volume-id', 'size', 'persistent'], - 'type': 'object'}, - 'VolumeParams': {'additionalProperties': False, - 'properties': {'attachment': {'$ref': '#/definitions/VolumeAttachmentParams'}, - 'attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'provider': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'tags': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'volume-tag': {'type': 'string'}}, - 'required': ['volume-tag', - 'size', - 'provider'], - 'type': 'object'}, - 'WatchContainer': {'additionalProperties': False, - 'properties': {'container-type': {'type': 'string'}, - 'machine-tag': {'type': 'string'}}, - 'required': ['machine-tag', - 'container-type'], - 'type': 'object'}, - 'WatchContainers': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/WatchContainer'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}}, - 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, - 'type': 'object'}, - 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, - 'type': 'object'}, - 'AvailabilityZone': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, - 'type': 'object'}, - 'CharmProfileChangeInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ProfileChangeResults'}}, - 'type': 'object'}, - 'Constraints': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ConstraintsResults'}}, - 'type': 'object'}, - 'ContainerConfig': {'properties': {'Result': {'$ref': '#/definitions/ContainerConfig'}}, - 'type': 'object'}, - 'ContainerManagerConfig': {'properties': {'Params': {'$ref': '#/definitions/ContainerManagerConfigParams'}, - 'Result': {'$ref': '#/definitions/ContainerManagerConfig'}}, - 'type': 'object'}, - 'ControllerAPIInfoForModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ControllerAPIInfoResults'}}, - 'type': 'object'}, - 'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}}, - 'type': 'object'}, - 'DistributionGroup': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/DistributionGroupResults'}}, - 'type': 'object'}, - 'DistributionGroupByMachineId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsResults'}}, - 'type': 'object'}, - 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'FindTools': {'properties': {'Params': {'$ref': '#/definitions/FindToolsParams'}, - 'Result': {'$ref': '#/definitions/FindToolsResult'}}, - 'type': 'object'}, - 'GetContainerInterfaceInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachineNetworkConfigResults'}}, - 'type': 'object'}, - 'GetContainerProfileInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ContainerProfileResults'}}, - 'type': 'object'}, - 'HostChangesForContainers': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/HostNetworkChangeResults'}}, - 'type': 'object'}, - 'InstanceId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'InstanceStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StatusResults'}}, - 'type': 'object'}, - 'KeepInstance': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/BoolResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'MachinesWithTransientErrors': {'properties': {'Result': {'$ref': '#/definitions/StatusResults'}}, - 'type': 'object'}, - 'MarkMachinesForRemoval': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'PrepareContainerInterfaceInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachineNetworkConfigResults'}}, - 'type': 'object'}, - 'ProvisioningInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ProvisioningInfoResults'}}, - 'type': 'object'}, - 'ReleaseContainerAddresses': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Remove': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RemoveUpgradeCharmProfileData': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Series': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'SetCharmProfiles': {'properties': {'Params': {'$ref': '#/definitions/SetProfileArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetHostMachineNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/SetMachineNetworkConfig'}}, - 'type': 'object'}, - 'SetInstanceInfo': {'properties': {'Params': {'$ref': '#/definitions/InstancesInfo'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetInstanceStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetObservedNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/SetMachineNetworkConfig'}}, - 'type': 'object'}, - 'SetPasswords': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetProviderNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetSupportedContainers': {'properties': {'Params': {'$ref': '#/definitions/MachineContainersParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetUpgradeCharmProfileComplete': {'properties': {'Params': {'$ref': '#/definitions/SetProfileUpgradeCompleteArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'StateAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, - 'type': 'object'}, - 'Status': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StatusResults'}}, - 'type': 'object'}, - 'Tools': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ToolsResults'}}, - 'type': 'object'}, - 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchAllContainers': {'properties': {'Params': {'$ref': '#/definitions/WatchContainers'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchContainers': {'properties': {'Params': {'$ref': '#/definitions/WatchContainers'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchContainersCharmProfiles': {'properties': {'Params': {'$ref': '#/definitions/WatchContainers'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchMachineErrorRetry': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchModelMachines': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}, - 'WatchModelMachinesCharmProfiles': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringsResult) - async def APIAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='APIAddresses', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(APIHostPortsResult) - async def APIHostPorts(self): - ''' - - Returns -> typing.Sequence[~HostPort] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='APIHostPorts', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def AvailabilityZone(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='AvailabilityZone', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BytesResult) - async def CACert(self): - ''' - - Returns -> typing.Sequence[int] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='CACert', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ProfileChangeResults) - async def CharmProfileChangeInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ProfileChangeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='CharmProfileChangeInfo', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ConstraintsResults) - async def Constraints(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ConstraintsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Constraints', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ContainerConfig) - async def ContainerConfig(self): - ''' - - Returns -> typing.Union[_ForwardRef('UpdateBehavior'), str, _ForwardRef('Settings'), bool] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ContainerConfig', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ContainerManagerConfig) - async def ContainerManagerConfig(self, type_): - ''' - type_ : str - Returns -> typing.Mapping[str, str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ContainerManagerConfig', - version=7, - params=_params) - _params['type'] = type_ - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerAPIInfoResults) - async def ControllerAPIInfoForModels(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ControllerAPIInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ControllerAPIInfoForModels', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ControllerConfigResult) - async def ControllerConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ControllerConfig', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DistributionGroupResults) - async def DistributionGroup(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~DistributionGroupResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='DistributionGroup', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsResults) - async def DistributionGroupByMachineId(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='DistributionGroupByMachineId', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnsureDead(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='EnsureDead', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FindToolsResult) - async def FindTools(self, arch, major, minor, number, series): - ''' - arch : str - major : int - minor : int - number : Number - series : str - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[~Tools]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='FindTools', - version=7, - params=_params) - _params['arch'] = arch - _params['major'] = major - _params['minor'] = minor - _params['number'] = number - _params['series'] = series - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachineNetworkConfigResults) - async def GetContainerInterfaceInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachineNetworkConfigResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='GetContainerInterfaceInfo', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ContainerProfileResults) - async def GetContainerProfileInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ContainerProfileResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='GetContainerProfileInfo', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(HostNetworkChangeResults) - async def HostChangesForContainers(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~HostNetworkChange] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='HostChangesForContainers', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def InstanceId(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='InstanceId', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusResults) - async def InstanceStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='InstanceStatus', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BoolResults) - async def KeepInstance(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~BoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='KeepInstance', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Life', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusResults) - async def MachinesWithTransientErrors(self): - ''' - - Returns -> typing.Sequence[~StatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='MachinesWithTransientErrors', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def MarkMachinesForRemoval(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='MarkMachinesForRemoval', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ModelConfig', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ModelUUID(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ModelUUID', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachineNetworkConfigResults) - async def PrepareContainerInterfaceInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachineNetworkConfigResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='PrepareContainerInterfaceInfo', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ProvisioningInfoResults) - async def ProvisioningInfo(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ProvisioningInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ProvisioningInfo', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ReleaseContainerAddresses(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='ReleaseContainerAddresses', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Remove(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Remove', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RemoveUpgradeCharmProfileData(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='RemoveUpgradeCharmProfileData', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def Series(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Series', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetCharmProfiles(self, args): - ''' - args : typing.Sequence[~SetProfileArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetCharmProfiles', - version=7, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetHostMachineNetworkConfig(self, config, tag): - ''' - config : typing.Sequence[~NetworkConfig] - tag : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetHostMachineNetworkConfig', - version=7, - params=_params) - _params['config'] = config - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetInstanceInfo(self, machines): - ''' - machines : typing.Sequence[~InstanceInfo] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetInstanceInfo', - version=7, - params=_params) - _params['machines'] = machines - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetInstanceStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetInstanceStatus', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetObservedNetworkConfig(self, config, tag): - ''' - config : typing.Sequence[~NetworkConfig] - tag : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetObservedNetworkConfig', - version=7, - params=_params) - _params['config'] = config - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetPasswords(self, changes): - ''' - changes : typing.Sequence[~EntityPassword] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetPasswords', - version=7, - params=_params) - _params['changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetProviderNetworkConfig(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetProviderNetworkConfig', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetStatus', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetSupportedContainers(self, params): - ''' - params : typing.Sequence[~MachineContainers] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetSupportedContainers', - version=7, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetUpgradeCharmProfileComplete(self, args): - ''' - args : typing.Sequence[~SetProfileUpgradeCompleteArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='SetUpgradeCharmProfileComplete', - version=7, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsResult) - async def StateAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='StateAddresses', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusResults) - async def Status(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Status', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ToolsResults) - async def Tools(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ToolsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='Tools', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='UpdateStatus', - version=7, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchAPIHostPorts(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchAPIHostPorts', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchAllContainers(self, params): - ''' - params : typing.Sequence[~WatchContainer] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchAllContainers', - version=7, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchContainers(self, params): - ''' - params : typing.Sequence[~WatchContainer] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchContainers', - version=7, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchContainersCharmProfiles(self, params): - ''' - params : typing.Sequence[~WatchContainer] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchContainersCharmProfiles', - version=7, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchForModelConfigChanges', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchMachineErrorRetry(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchMachineErrorRetry', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchModelMachines(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchModelMachines', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResult) - async def WatchModelMachinesCharmProfiles(self): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Provisioner', - request='WatchModelMachinesCharmProfiles', - version=7, - params=_params) - - reply = await self.rpc(msg) - return reply - - diff --git a/modules/libjuju/juju/client/_client8.py b/modules/libjuju/juju/client/_client8.py deleted file mode 100644 index 35d3caf..0000000 --- a/modules/libjuju/juju/client/_client8.py +++ /dev/null @@ -1,1278 +0,0 @@ -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. - -from juju.client.facade import Type, ReturnMapping -from juju.client._definitions import * - - -class ApplicationFacade(Type): - name = 'Application' - version = 8 - schema = {'definitions': {'AddApplicationUnits': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'attach-storage': {'items': {'type': 'string'}, - 'type': 'array'}, - 'num-units': {'type': 'integer'}, - 'placement': {'items': {'$ref': '#/definitions/Placement'}, - 'type': 'array'}, - 'policy': {'type': 'string'}}, - 'required': ['application', - 'num-units', - 'placement'], - 'type': 'object'}, - 'AddApplicationUnitsResults': {'additionalProperties': False, - 'properties': {'units': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['units'], - 'type': 'object'}, - 'AddRelation': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'type': 'string'}, - 'type': 'array'}, - 'via-cidrs': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'AddRelationResults': {'additionalProperties': False, - 'properties': {'endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, - 'type': 'object'}}, - 'required': ['endpoints'], - 'type': 'object'}, - 'ApplicationCharmRelations': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationCharmRelationsResults': {'additionalProperties': False, - 'properties': {'charm-relations': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['charm-relations'], - 'type': 'object'}, - 'ApplicationConfigSet': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['application', 'config'], - 'type': 'object'}, - 'ApplicationConfigSetArgs': {'additionalProperties': False, - 'properties': {'Args': {'items': {'$ref': '#/definitions/ApplicationConfigSet'}, - 'type': 'array'}}, - 'required': ['Args'], - 'type': 'object'}, - 'ApplicationConfigUnsetArgs': {'additionalProperties': False, - 'properties': {'Args': {'items': {'$ref': '#/definitions/ApplicationUnset'}, - 'type': 'array'}}, - 'required': ['Args'], - 'type': 'object'}, - 'ApplicationConstraint': {'additionalProperties': False, - 'properties': {'constraints': {'$ref': '#/definitions/Value'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['constraints'], - 'type': 'object'}, - 'ApplicationDeploy': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'attach-storage': {'items': {'type': 'string'}, - 'type': 'array'}, - 'channel': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'config-yaml': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'devices': {'patternProperties': {'.*': {'$ref': '#/definitions/Constraints'}}, - 'type': 'object'}, - 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'num-units': {'type': 'integer'}, - 'placement': {'items': {'$ref': '#/definitions/Placement'}, - 'type': 'array'}, - 'policy': {'type': 'string'}, - 'resources': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'series': {'type': 'string'}, - 'storage': {'patternProperties': {'.*': {'$ref': '#/definitions/Constraints'}}, - 'type': 'object'}}, - 'required': ['application', - 'series', - 'charm-url', - 'channel', - 'num-units', - 'config-yaml', - 'constraints'], - 'type': 'object'}, - 'ApplicationDestroy': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationExpose': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationGet': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationGetConfigResults': {'additionalProperties': False, - 'properties': {'Results': {'items': {'$ref': '#/definitions/ConfigResult'}, - 'type': 'array'}}, - 'required': ['Results'], - 'type': 'object'}, - 'ApplicationGetConstraintsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationConstraint'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ApplicationGetResults': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'application-config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'charm': {'type': 'string'}, - 'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'series': {'type': 'string'}}, - 'required': ['application', - 'charm', - 'config', - 'constraints', - 'series'], - 'type': 'object'}, - 'ApplicationMetricCredential': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'metrics-credentials': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['application', - 'metrics-credentials'], - 'type': 'object'}, - 'ApplicationMetricCredentials': {'additionalProperties': False, - 'properties': {'creds': {'items': {'$ref': '#/definitions/ApplicationMetricCredential'}, - 'type': 'array'}}, - 'required': ['creds'], - 'type': 'object'}, - 'ApplicationOfferDetails': {'additionalProperties': False, - 'properties': {'application-description': {'type': 'string'}, - 'bindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'}, - 'type': 'array'}, - 'offer-name': {'type': 'string'}, - 'offer-url': {'type': 'string'}, - 'offer-uuid': {'type': 'string'}, - 'source-model-tag': {'type': 'string'}, - 'spaces': {'items': {'$ref': '#/definitions/RemoteSpace'}, - 'type': 'array'}, - 'users': {'items': {'$ref': '#/definitions/OfferUserDetails'}, - 'type': 'array'}}, - 'required': ['source-model-tag', - 'offer-uuid', - 'offer-url', - 'offer-name', - 'application-description'], - 'type': 'object'}, - 'ApplicationSet': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'options': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['application', 'options'], - 'type': 'object'}, - 'ApplicationSetCharm': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'channel': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'config-settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'config-settings-yaml': {'type': 'string'}, - 'force': {'type': 'boolean'}, - 'force-series': {'type': 'boolean'}, - 'force-units': {'type': 'boolean'}, - 'resource-ids': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'storage-constraints': {'patternProperties': {'.*': {'$ref': '#/definitions/StorageConstraints'}}, - 'type': 'object'}}, - 'required': ['application', - 'charm-url', - 'channel', - 'force', - 'force-units', - 'force-series'], - 'type': 'object'}, - 'ApplicationSetCharmProfile': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'charm-url': {'type': 'string'}}, - 'required': ['application', - 'charm-url'], - 'type': 'object'}, - 'ApplicationUnexpose': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}}, - 'required': ['application'], - 'type': 'object'}, - 'ApplicationUnset': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'options': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['application', 'options'], - 'type': 'object'}, - 'ApplicationUpdate': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'charm-url': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}, - 'force': {'type': 'boolean'}, - 'force-charm-url': {'type': 'boolean'}, - 'force-series': {'type': 'boolean'}, - 'min-units': {'type': 'integer'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'settings-yaml': {'type': 'string'}}, - 'required': ['application', - 'charm-url', - 'force-charm-url', - 'force-series', - 'force', - 'settings-yaml'], - 'type': 'object'}, - 'ApplicationsDeploy': {'additionalProperties': False, - 'properties': {'applications': {'items': {'$ref': '#/definitions/ApplicationDeploy'}, - 'type': 'array'}}, - 'required': ['applications'], - 'type': 'object'}, - 'CharmRelation': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'optional': {'type': 'boolean'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'optional', - 'limit', - 'scope'], - 'type': 'object'}, - 'ConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['config'], - 'type': 'object'}, - 'Constraints': {'additionalProperties': False, - 'properties': {'Count': {'type': 'integer'}, - 'Pool': {'type': 'string'}, - 'Size': {'type': 'integer'}}, - 'required': ['Pool', 'Size', 'Count'], - 'type': 'object'}, - 'ConsumeApplicationArg': {'additionalProperties': False, - 'properties': {'ApplicationOfferDetails': {'$ref': '#/definitions/ApplicationOfferDetails'}, - 'application-alias': {'type': 'string'}, - 'external-controller': {'$ref': '#/definitions/ExternalControllerInfo'}, - 'macaroon': {'$ref': '#/definitions/Macaroon'}}, - 'required': ['ApplicationOfferDetails'], - 'type': 'object'}, - 'ConsumeApplicationArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/ConsumeApplicationArg'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyApplicationInfo': {'additionalProperties': False, - 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'destroyed-units': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyApplicationParams': {'additionalProperties': False, - 'properties': {'application-tag': {'type': 'string'}, - 'destroy-storage': {'type': 'boolean'}}, - 'required': ['application-tag'], - 'type': 'object'}, - 'DestroyApplicationResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'$ref': '#/definitions/DestroyApplicationInfo'}}, - 'type': 'object'}, - 'DestroyApplicationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyApplicationResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyApplicationUnits': {'additionalProperties': False, - 'properties': {'unit-names': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['unit-names'], - 'type': 'object'}, - 'DestroyApplicationsParams': {'additionalProperties': False, - 'properties': {'applications': {'items': {'$ref': '#/definitions/DestroyApplicationParams'}, - 'type': 'array'}}, - 'required': ['applications'], - 'type': 'object'}, - 'DestroyConsumedApplicationParams': {'additionalProperties': False, - 'properties': {'application-tag': {'type': 'string'}}, - 'required': ['application-tag'], - 'type': 'object'}, - 'DestroyConsumedApplicationsParams': {'additionalProperties': False, - 'properties': {'applications': {'items': {'$ref': '#/definitions/DestroyConsumedApplicationParams'}, - 'type': 'array'}}, - 'required': ['applications'], - 'type': 'object'}, - 'DestroyRelation': {'additionalProperties': False, - 'properties': {'endpoints': {'items': {'type': 'string'}, - 'type': 'array'}, - 'relation-id': {'type': 'integer'}}, - 'required': ['relation-id'], - 'type': 'object'}, - 'DestroyUnitInfo': {'additionalProperties': False, - 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}, - 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyUnitParams': {'additionalProperties': False, - 'properties': {'destroy-storage': {'type': 'boolean'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['unit-tag'], - 'type': 'object'}, - 'DestroyUnitResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'$ref': '#/definitions/DestroyUnitInfo'}}, - 'type': 'object'}, - 'DestroyUnitResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyUnitResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'DestroyUnitsParams': {'additionalProperties': False, - 'properties': {'units': {'items': {'$ref': '#/definitions/DestroyUnitParams'}, - 'type': 'array'}}, - 'required': ['units'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ExternalControllerInfo': {'additionalProperties': False, - 'properties': {'addrs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'ca-cert': {'type': 'string'}, - 'controller-alias': {'type': 'string'}, - 'controller-tag': {'type': 'string'}}, - 'required': ['controller-tag', - 'controller-alias', - 'addrs', - 'ca-cert'], - 'type': 'object'}, - 'LXDProfileUpgradeMessages': {'additionalProperties': False, - 'properties': {'application': {'$ref': '#/definitions/Entity'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['application', - 'watcher-id'], - 'type': 'object'}, - 'LXDProfileUpgradeMessagesResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'message': {'type': 'string'}, - 'unit-name': {'type': 'string'}}, - 'required': ['unit-name', - 'message'], - 'type': 'object'}, - 'LXDProfileUpgradeMessagesResults': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/LXDProfileUpgradeMessagesResult'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'OfferUserDetails': {'additionalProperties': False, - 'properties': {'access': {'type': 'string'}, - 'display-name': {'type': 'string'}, - 'user': {'type': 'string'}}, - 'required': ['user', - 'display-name', - 'access'], - 'type': 'object'}, - 'Placement': {'additionalProperties': False, - 'properties': {'directive': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['scope', 'directive'], - 'type': 'object'}, - 'RelationSuspendedArg': {'additionalProperties': False, - 'properties': {'message': {'type': 'string'}, - 'relation-id': {'type': 'integer'}, - 'suspended': {'type': 'boolean'}}, - 'required': ['relation-id', - 'message', - 'suspended'], - 'type': 'object'}, - 'RelationSuspendedArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/RelationSuspendedArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'RemoteEndpoint': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'role': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'limit'], - 'type': 'object'}, - 'RemoteSpace': {'additionalProperties': False, - 'properties': {'cloud-type': {'type': 'string'}, - 'name': {'type': 'string'}, - 'provider-attributes': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'provider-id': {'type': 'string'}, - 'subnets': {'items': {'$ref': '#/definitions/Subnet'}, - 'type': 'array'}}, - 'required': ['cloud-type', - 'name', - 'provider-id', - 'provider-attributes', - 'subnets'], - 'type': 'object'}, - 'ScaleApplicationInfo': {'additionalProperties': False, - 'properties': {'num-units': {'type': 'integer'}}, - 'required': ['num-units'], - 'type': 'object'}, - 'ScaleApplicationParams': {'additionalProperties': False, - 'properties': {'application-tag': {'type': 'string'}, - 'scale': {'type': 'integer'}, - 'scale-change': {'type': 'integer'}}, - 'required': ['application-tag', - 'scale'], - 'type': 'object'}, - 'ScaleApplicationResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'info': {'$ref': '#/definitions/ScaleApplicationInfo'}}, - 'type': 'object'}, - 'ScaleApplicationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ScaleApplicationResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ScaleApplicationsParams': {'additionalProperties': False, - 'properties': {'applications': {'items': {'$ref': '#/definitions/ScaleApplicationParams'}, - 'type': 'array'}}, - 'required': ['applications'], - 'type': 'object'}, - 'SetConstraints': {'additionalProperties': False, - 'properties': {'application': {'type': 'string'}, - 'constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['application', 'constraints'], - 'type': 'object'}, - 'StorageConstraints': {'additionalProperties': False, - 'properties': {'count': {'type': 'integer'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'Subnet': {'additionalProperties': False, - 'properties': {'cidr': {'type': 'string'}, - 'life': {'type': 'string'}, - 'provider-id': {'type': 'string'}, - 'provider-network-id': {'type': 'string'}, - 'provider-space-id': {'type': 'string'}, - 'space-tag': {'type': 'string'}, - 'status': {'type': 'string'}, - 'vlan-tag': {'type': 'integer'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['cidr', - 'vlan-tag', - 'life', - 'space-tag', - 'zones'], - 'type': 'object'}, - 'UnitsResolved': {'additionalProperties': False, - 'properties': {'all': {'type': 'boolean'}, - 'retry': {'type': 'boolean'}, - 'tags': {'$ref': '#/definitions/Entities'}}, - 'type': 'object'}, - 'UpdateSeriesArg': {'additionalProperties': False, - 'properties': {'force': {'type': 'boolean'}, - 'series': {'type': 'string'}, - 'tag': {'$ref': '#/definitions/Entity'}}, - 'required': ['tag', 'force', 'series'], - 'type': 'object'}, - 'UpdateSeriesArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/UpdateSeriesArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - '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': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}, - 'zones': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'AddRelation': {'properties': {'Params': {'$ref': '#/definitions/AddRelation'}, - 'Result': {'$ref': '#/definitions/AddRelationResults'}}, - 'type': 'object'}, - 'AddUnits': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationUnits'}, - 'Result': {'$ref': '#/definitions/AddApplicationUnitsResults'}}, - 'type': 'object'}, - 'CharmConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ApplicationGetConfigResults'}}, - 'type': 'object'}, - 'CharmRelations': {'properties': {'Params': {'$ref': '#/definitions/ApplicationCharmRelations'}, - 'Result': {'$ref': '#/definitions/ApplicationCharmRelationsResults'}}, - 'type': 'object'}, - 'Consume': {'properties': {'Params': {'$ref': '#/definitions/ConsumeApplicationArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Deploy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationsDeploy'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationDestroy'}}, - 'type': 'object'}, - 'DestroyApplication': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationsParams'}, - 'Result': {'$ref': '#/definitions/DestroyApplicationResults'}}, - 'type': 'object'}, - 'DestroyConsumedApplications': {'properties': {'Params': {'$ref': '#/definitions/DestroyConsumedApplicationsParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'DestroyRelation': {'properties': {'Params': {'$ref': '#/definitions/DestroyRelation'}}, - 'type': 'object'}, - 'DestroyUnit': {'properties': {'Params': {'$ref': '#/definitions/DestroyUnitsParams'}, - 'Result': {'$ref': '#/definitions/DestroyUnitResults'}}, - 'type': 'object'}, - 'DestroyUnits': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationUnits'}}, - 'type': 'object'}, - 'Expose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationExpose'}}, - 'type': 'object'}, - 'Get': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, - 'Result': {'$ref': '#/definitions/ApplicationGetResults'}}, - 'type': 'object'}, - 'GetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, - 'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'GetConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ApplicationGetConfigResults'}}, - 'type': 'object'}, - 'GetConstraints': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ApplicationGetConstraintsResults'}}, - 'type': 'object'}, - 'GetLXDProfileUpgradeMessages': {'properties': {'Params': {'$ref': '#/definitions/LXDProfileUpgradeMessages'}, - 'Result': {'$ref': '#/definitions/LXDProfileUpgradeMessagesResults'}}, - 'type': 'object'}, - 'ResolveUnitErrors': {'properties': {'Params': {'$ref': '#/definitions/UnitsResolved'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ScaleApplications': {'properties': {'Params': {'$ref': '#/definitions/ScaleApplicationsParams'}, - 'Result': {'$ref': '#/definitions/ScaleApplicationResults'}}, - 'type': 'object'}, - 'Set': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSet'}}, - 'type': 'object'}, - 'SetApplicationsConfig': {'properties': {'Params': {'$ref': '#/definitions/ApplicationConfigSetArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetCharm': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSetCharm'}}, - 'type': 'object'}, - 'SetCharmProfile': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSetCharmProfile'}}, - 'type': 'object'}, - 'SetConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, - 'type': 'object'}, - 'SetMetricCredentials': {'properties': {'Params': {'$ref': '#/definitions/ApplicationMetricCredentials'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetRelationsSuspended': {'properties': {'Params': {'$ref': '#/definitions/RelationSuspendedArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Unexpose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnexpose'}}, - 'type': 'object'}, - 'Unset': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnset'}}, - 'type': 'object'}, - 'UnsetApplicationsConfig': {'properties': {'Params': {'$ref': '#/definitions/ApplicationConfigUnsetArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Update': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUpdate'}}, - 'type': 'object'}, - 'UpdateApplicationSeries': {'properties': {'Params': {'$ref': '#/definitions/UpdateSeriesArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchLXDProfileUpgradeNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entity'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddRelationResults) - async def AddRelation(self, endpoints): - ''' - endpoints : typing.Sequence[str] - Returns -> typing.Mapping[str, ~CharmRelation] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='AddRelation', - version=8, - params=_params) - _params['endpoints'] = endpoints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddApplicationUnitsResults) - async def AddUnits(self, application, num_units, placement): - ''' - application : str - num_units : int - placement : typing.Sequence[~Placement] - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='AddUnits', - version=8, - params=_params) - _params['application'] = application - _params['num-units'] = num_units - _params['placement'] = placement - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationGetConfigResults) - async def CharmConfig(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ConfigResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='CharmConfig', - version=8, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationCharmRelationsResults) - async def CharmRelations(self, application): - ''' - application : str - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='CharmRelations', - version=8, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Consume(self, args): - ''' - args : typing.Sequence[~ConsumeApplicationArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Consume', - version=8, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Deploy(self, applications): - ''' - applications : typing.Sequence[~ApplicationDeploy] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Deploy', - version=8, - params=_params) - _params['applications'] = applications - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Destroy(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Destroy', - version=8, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DestroyApplicationResults) - async def DestroyApplication(self, applications): - ''' - applications : typing.Sequence[~DestroyApplicationParams] - Returns -> typing.Sequence[~DestroyApplicationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyApplication', - version=8, - params=_params) - _params['applications'] = applications - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DestroyConsumedApplications(self, applications): - ''' - applications : typing.Sequence[~DestroyConsumedApplicationParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyConsumedApplications', - version=8, - params=_params) - _params['applications'] = applications - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyRelation(self, endpoints): - ''' - endpoints : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyRelation', - version=8, - params=_params) - _params['endpoints'] = endpoints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(DestroyUnitResults) - async def DestroyUnit(self, units): - ''' - units : typing.Sequence[~DestroyUnitParams] - Returns -> typing.Sequence[~DestroyUnitResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyUnit', - version=8, - params=_params) - _params['units'] = units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def DestroyUnits(self, unit_names): - ''' - unit_names : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='DestroyUnits', - version=8, - params=_params) - _params['unit-names'] = unit_names - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Expose(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Expose', - version=8, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationGetResults) - async def Get(self, application): - ''' - application : str - Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Get', - version=8, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def GetCharmURL(self, application): - ''' - application : str - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetCharmURL', - version=8, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationGetConfigResults) - async def GetConfig(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ConfigResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetConfig', - version=8, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationGetConstraintsResults) - async def GetConstraints(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ApplicationConstraint] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetConstraints', - version=8, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LXDProfileUpgradeMessagesResults) - async def GetLXDProfileUpgradeMessages(self, application, watcher_id): - ''' - application : Entity - watcher_id : str - Returns -> typing.Sequence[~LXDProfileUpgradeMessagesResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='GetLXDProfileUpgradeMessages', - version=8, - params=_params) - _params['application'] = application - _params['watcher-id'] = watcher_id - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ResolveUnitErrors(self, all_, retry, tags): - ''' - all_ : bool - retry : bool - tags : Entities - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='ResolveUnitErrors', - version=8, - params=_params) - _params['all'] = all_ - _params['retry'] = retry - _params['tags'] = tags - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ScaleApplicationResults) - async def ScaleApplications(self, applications): - ''' - applications : typing.Sequence[~ScaleApplicationParams] - Returns -> typing.Sequence[~ScaleApplicationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='ScaleApplications', - version=8, - params=_params) - _params['applications'] = applications - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Set(self, application, options): - ''' - application : str - options : typing.Mapping[str, str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Set', - version=8, - params=_params) - _params['application'] = application - _params['options'] = options - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetApplicationsConfig(self, args): - ''' - args : typing.Sequence[~ApplicationConfigSet] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetApplicationsConfig', - version=8, - params=_params) - _params['Args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetCharm(self, application, channel, charm_url, config_settings, config_settings_yaml, force_series, force_units, resource_ids, storage_constraints): - ''' - application : str - channel : str - charm_url : str - config_settings : typing.Mapping[str, str] - config_settings_yaml : str - force_series : bool - force_units : bool - resource_ids : typing.Mapping[str, str] - storage_constraints : typing.Mapping[str, ~StorageConstraints] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetCharm', - version=8, - params=_params) - _params['application'] = application - _params['channel'] = channel - _params['charm-url'] = charm_url - _params['config-settings'] = config_settings - _params['config-settings-yaml'] = config_settings_yaml - _params['force-series'] = force_series - _params['force-units'] = force_units - _params['resource-ids'] = resource_ids - _params['storage-constraints'] = storage_constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetCharmProfile(self, application, charm_url): - ''' - application : str - charm_url : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetCharmProfile', - version=8, - params=_params) - _params['application'] = application - _params['charm-url'] = charm_url - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def SetConstraints(self, application, constraints): - ''' - application : str - constraints : Value - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetConstraints', - version=8, - params=_params) - _params['application'] = application - _params['constraints'] = constraints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetMetricCredentials(self, creds): - ''' - creds : typing.Sequence[~ApplicationMetricCredential] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetMetricCredentials', - version=8, - params=_params) - _params['creds'] = creds - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetRelationsSuspended(self, args): - ''' - args : typing.Sequence[~RelationSuspendedArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='SetRelationsSuspended', - version=8, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Unexpose(self, application): - ''' - application : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Unexpose', - version=8, - params=_params) - _params['application'] = application - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Unset(self, application, options): - ''' - application : str - options : typing.Sequence[str] - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Unset', - version=8, - params=_params) - _params['application'] = application - _params['options'] = options - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UnsetApplicationsConfig(self, args): - ''' - args : typing.Sequence[~ApplicationUnset] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='UnsetApplicationsConfig', - version=8, - params=_params) - _params['Args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Update(self, application, charm_url, constraints, force_charm_url, force_series, min_units, settings, settings_yaml): - ''' - application : str - charm_url : str - constraints : Value - force_charm_url : bool - force_series : bool - min_units : int - settings : typing.Mapping[str, str] - settings_yaml : str - Returns -> None - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='Update', - version=8, - params=_params) - _params['application'] = application - _params['charm-url'] = charm_url - _params['constraints'] = constraints - _params['force-charm-url'] = force_charm_url - _params['force-series'] = force_series - _params['min-units'] = min_units - _params['settings'] = settings - _params['settings-yaml'] = settings_yaml - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateApplicationSeries(self, args): - ''' - args : typing.Sequence[~UpdateSeriesArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='UpdateApplicationSeries', - version=8, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchLXDProfileUpgradeNotifications(self, tag): - ''' - tag : str - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Application', - request='WatchLXDProfileUpgradeNotifications', - version=8, - params=_params) - _params['tag'] = tag - reply = await self.rpc(msg) - return reply - - diff --git a/modules/libjuju/juju/client/_client9.py b/modules/libjuju/juju/client/_client9.py deleted file mode 100644 index d87dd8f..0000000 --- a/modules/libjuju/juju/client/_client9.py +++ /dev/null @@ -1,2385 +0,0 @@ -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. - -from juju.client.facade import Type, ReturnMapping -from juju.client._definitions import * - - -class UniterFacade(Type): - name = 'Uniter' - version = 9 - schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, - 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, - 'type': 'array'}, - 'type': 'array'}}, - 'required': ['servers'], - 'type': 'object'}, - 'Action': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'parameters': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'receiver': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'receiver', 'name'], - 'type': 'object'}, - 'ActionExecutionResult': {'additionalProperties': False, - 'properties': {'action-tag': {'type': 'string'}, - 'message': {'type': 'string'}, - 'results': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'status': {'type': 'string'}}, - 'required': ['action-tag', 'status'], - 'type': 'object'}, - 'ActionExecutionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ActionExecutionResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'ActionResult': {'additionalProperties': False, - 'properties': {'action': {'$ref': '#/definitions/Action'}, - 'completed': {'format': 'date-time', - 'type': 'string'}, - 'enqueued': {'format': 'date-time', - 'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'message': {'type': 'string'}, - 'output': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'started': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'type': 'object'}, - 'ActionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Address': {'additionalProperties': False, - 'properties': {'scope': {'type': 'string'}, - 'space-name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['value', 'type', 'scope'], - 'type': 'object'}, - 'ApplicationStatusResult': {'additionalProperties': False, - 'properties': {'application': {'$ref': '#/definitions/StatusResult'}, - 'error': {'$ref': '#/definitions/Error'}, - 'units': {'patternProperties': {'.*': {'$ref': '#/definitions/StatusResult'}}, - 'type': 'object'}}, - 'required': ['application', - 'units'], - 'type': 'object'}, - 'ApplicationStatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationStatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'BoolResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'boolean'}}, - 'required': ['result'], - 'type': 'object'}, - 'BoolResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'CharmRelation': {'additionalProperties': False, - 'properties': {'interface': {'type': 'string'}, - 'limit': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'optional': {'type': 'boolean'}, - 'role': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['name', - 'role', - 'interface', - 'optional', - 'limit', - 'scope'], - 'type': 'object'}, - 'CharmURL': {'additionalProperties': False, - 'properties': {'url': {'type': 'string'}}, - 'required': ['url'], - 'type': 'object'}, - 'CharmURLs': {'additionalProperties': False, - 'properties': {'urls': {'items': {'$ref': '#/definitions/CharmURL'}, - 'type': 'array'}}, - 'required': ['urls'], - 'type': 'object'}, - 'CloudCredential': {'additionalProperties': False, - 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'auth-type': {'type': 'string'}, - 'redacted': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['auth-type'], - 'type': 'object'}, - 'CloudSpec': {'additionalProperties': False, - 'properties': {'cacertificates': {'items': {'type': 'string'}, - 'type': 'array'}, - 'credential': {'$ref': '#/definitions/CloudCredential'}, - 'endpoint': {'type': 'string'}, - 'identity-endpoint': {'type': 'string'}, - 'name': {'type': 'string'}, - 'region': {'type': 'string'}, - 'storage-endpoint': {'type': 'string'}, - 'type': {'type': 'string'}}, - 'required': ['type', 'name'], - 'type': 'object'}, - 'CloudSpecResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/CloudSpec'}}, - 'type': 'object'}, - 'ConfigSettingsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'settings': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['settings'], - 'type': 'object'}, - 'ConfigSettingsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ConfigSettingsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Endpoint': {'additionalProperties': False, - 'properties': {'application-name': {'type': 'string'}, - 'relation': {'$ref': '#/definitions/CharmRelation'}}, - 'required': ['application-name', 'relation'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesCharmURL': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityCharmURL'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'EntitiesPortRanges': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityPortRange'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'EntityCharmURL': {'additionalProperties': False, - 'properties': {'charm-url': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'charm-url'], - 'type': 'object'}, - 'EntityPortRange': {'additionalProperties': False, - 'properties': {'from-port': {'type': 'integer'}, - 'protocol': {'type': 'string'}, - 'tag': {'type': 'string'}, - 'to-port': {'type': 'integer'}}, - 'required': ['tag', - 'protocol', - 'from-port', - 'to-port'], - 'type': 'object'}, - 'EntityStatusArgs': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'info': {'type': 'string'}, - 'status': {'type': 'string'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', - 'status', - 'info', - 'data'], - 'type': 'object'}, - 'EntityString': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['tag', 'value'], - 'type': 'object'}, - 'EntityWorkloadVersion': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}, - 'workload-version': {'type': 'string'}}, - 'required': ['tag', - 'workload-version'], - 'type': 'object'}, - 'EntityWorkloadVersions': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityWorkloadVersion'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'info': {'$ref': '#/definitions/ErrorInfo'}, - 'message': {'type': 'string'}}, - 'required': ['message', 'code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'macaroon-path': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}}, - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GetLeadershipSettingsBulkResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/GetLeadershipSettingsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GetLeadershipSettingsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['settings'], - 'type': 'object'}, - 'GoalState': {'additionalProperties': False, - 'properties': {'relations': {'patternProperties': {'.*': {'patternProperties': {'.*': {'$ref': '#/definitions/GoalStateStatus'}}, - 'type': 'object'}}, - 'type': 'object'}, - 'units': {'patternProperties': {'.*': {'$ref': '#/definitions/GoalStateStatus'}}, - 'type': 'object'}}, - 'required': ['units', 'relations'], - 'type': 'object'}, - 'GoalStateResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/GoalState'}}, - 'required': ['result', 'error'], - 'type': 'object'}, - 'GoalStateResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/GoalStateResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'GoalStateStatus': {'additionalProperties': False, - 'properties': {'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['status', 'since'], - 'type': 'object'}, - 'HostPort': {'additionalProperties': False, - 'properties': {'Address': {'$ref': '#/definitions/Address'}, - 'port': {'type': 'integer'}}, - 'required': ['Address', 'port'], - 'type': 'object'}, - 'IntResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'integer'}}, - 'required': ['result'], - 'type': 'object'}, - 'IntResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/IntResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'InterfaceAddress': {'additionalProperties': False, - 'properties': {'cidr': {'type': 'string'}, - 'hostname': {'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['hostname', 'value', 'cidr'], - 'type': 'object'}, - 'LifeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'life': {'type': 'string'}}, - 'required': ['life'], - 'type': 'object'}, - 'LifeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'MachinePortRange': {'additionalProperties': False, - 'properties': {'port-range': {'$ref': '#/definitions/PortRange'}, - 'relation-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['unit-tag', - 'relation-tag', - 'port-range'], - 'type': 'object'}, - 'MachinePortsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'ports': {'items': {'$ref': '#/definitions/MachinePortRange'}, - 'type': 'array'}}, - 'required': ['ports'], - 'type': 'object'}, - 'MachinePortsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MachinePortsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'MergeLeadershipSettingsBulkParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/MergeLeadershipSettingsParam'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'MergeLeadershipSettingsParam': {'additionalProperties': False, - 'properties': {'application-tag': {'type': 'string'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['settings'], - 'type': 'object'}, - 'MeterStatusResult': {'additionalProperties': False, - 'properties': {'code': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}, - 'info': {'type': 'string'}}, - 'required': ['code', 'info'], - 'type': 'object'}, - 'MeterStatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/MeterStatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'Metric': {'additionalProperties': False, - 'properties': {'key': {'type': 'string'}, - 'labels': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'time': {'format': 'date-time', - 'type': 'string'}, - 'value': {'type': 'string'}}, - 'required': ['key', 'value', 'time'], - 'type': 'object'}, - 'MetricBatch': {'additionalProperties': False, - 'properties': {'charm-url': {'type': 'string'}, - 'created': {'format': 'date-time', - 'type': 'string'}, - 'metrics': {'items': {'$ref': '#/definitions/Metric'}, - 'type': 'array'}, - 'uuid': {'type': 'string'}}, - 'required': ['uuid', - 'charm-url', - 'created', - 'metrics'], - 'type': 'object'}, - 'MetricBatchParam': {'additionalProperties': False, - 'properties': {'batch': {'$ref': '#/definitions/MetricBatch'}, - 'tag': {'type': 'string'}}, - 'required': ['tag', 'batch'], - 'type': 'object'}, - 'MetricBatchParams': {'additionalProperties': False, - 'properties': {'batches': {'items': {'$ref': '#/definitions/MetricBatchParam'}, - 'type': 'array'}}, - 'required': ['batches'], - 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], - 'type': 'object'}, - 'ModelResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'name': {'type': 'string'}, - 'type': {'type': 'string'}, - 'uuid': {'type': 'string'}}, - 'required': ['name', 'uuid', 'type'], - 'type': 'object'}, - 'NetworkInfo': {'additionalProperties': False, - 'properties': {'addresses': {'items': {'$ref': '#/definitions/InterfaceAddress'}, - 'type': 'array'}, - 'interface-name': {'type': 'string'}, - 'mac-address': {'type': 'string'}}, - 'required': ['mac-address', - 'interface-name', - 'addresses'], - 'type': 'object'}, - 'NetworkInfoParams': {'additionalProperties': False, - 'properties': {'bindings': {'items': {'type': 'string'}, - 'type': 'array'}, - 'relation-id': {'type': 'integer'}, - 'unit': {'type': 'string'}}, - 'required': ['unit', 'bindings'], - 'type': 'object'}, - 'NetworkInfoResult': {'additionalProperties': False, - 'properties': {'bind-addresses': {'items': {'$ref': '#/definitions/NetworkInfo'}, - 'type': 'array'}, - 'egress-subnets': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'ingress-addresses': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'NetworkInfoResults': {'additionalProperties': False, - 'properties': {'results': {'patternProperties': {'.*': {'$ref': '#/definitions/NetworkInfoResult'}}, - 'type': 'object'}}, - 'required': ['results'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'NotifyWatcherId': {'type': 'string'}, - 'error': {'$ref': '#/definitions/Error'}}, - 'required': ['NotifyWatcherId'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'PortRange': {'additionalProperties': False, - 'properties': {'from-port': {'type': 'integer'}, - 'protocol': {'type': 'string'}, - 'to-port': {'type': 'integer'}}, - 'required': ['from-port', 'to-port', 'protocol'], - 'type': 'object'}, - 'RelationIds': {'additionalProperties': False, - 'properties': {'relation-ids': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['relation-ids'], - 'type': 'object'}, - 'RelationResult': {'additionalProperties': False, - 'properties': {'bool': {'type': 'boolean'}, - 'endpoint': {'$ref': '#/definitions/Endpoint'}, - 'error': {'$ref': '#/definitions/Error'}, - 'id': {'type': 'integer'}, - 'key': {'type': 'string'}, - 'life': {'type': 'string'}, - 'other-application': {'type': 'string'}}, - 'required': ['life', - 'id', - 'key', - 'endpoint'], - 'type': 'object'}, - 'RelationResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RelationResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RelationStatusArg': {'additionalProperties': False, - 'properties': {'message': {'type': 'string'}, - 'relation-id': {'type': 'integer'}, - 'status': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['unit-tag', - 'relation-id', - 'status', - 'message'], - 'type': 'object'}, - 'RelationStatusArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/RelationStatusArg'}, - 'type': 'array'}}, - 'required': ['args'], - 'type': 'object'}, - 'RelationUnit': {'additionalProperties': False, - 'properties': {'relation': {'type': 'string'}, - 'unit': {'type': 'string'}}, - 'required': ['relation', 'unit'], - 'type': 'object'}, - 'RelationUnitPair': {'additionalProperties': False, - 'properties': {'local-unit': {'type': 'string'}, - 'relation': {'type': 'string'}, - 'remote-unit': {'type': 'string'}}, - 'required': ['relation', - 'local-unit', - 'remote-unit'], - 'type': 'object'}, - 'RelationUnitPairs': {'additionalProperties': False, - 'properties': {'relation-unit-pairs': {'items': {'$ref': '#/definitions/RelationUnitPair'}, - 'type': 'array'}}, - 'required': ['relation-unit-pairs'], - 'type': 'object'}, - 'RelationUnitSettings': {'additionalProperties': False, - 'properties': {'relation': {'type': 'string'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'unit': {'type': 'string'}}, - 'required': ['relation', - 'unit', - 'settings'], - 'type': 'object'}, - 'RelationUnitStatus': {'additionalProperties': False, - 'properties': {'in-scope': {'type': 'boolean'}, - 'relation-tag': {'type': 'string'}, - 'suspended': {'type': 'boolean'}}, - 'required': ['relation-tag', - 'in-scope', - 'suspended'], - 'type': 'object'}, - 'RelationUnitStatusResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'results': {'items': {'$ref': '#/definitions/RelationUnitStatus'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RelationUnitStatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RelationUnitStatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'RelationUnits': {'additionalProperties': False, - 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnit'}, - 'type': 'array'}}, - 'required': ['relation-units'], - 'type': 'object'}, - 'RelationUnitsChange': {'additionalProperties': False, - 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}}, - 'type': 'object'}, - 'departed': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['changed'], - 'type': 'object'}, - 'RelationUnitsSettings': {'additionalProperties': False, - 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnitSettings'}, - 'type': 'array'}}, - 'required': ['relation-units'], - 'type': 'object'}, - 'RelationUnitsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'$ref': '#/definitions/RelationUnitsChange'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id', - 'changes'], - 'type': 'object'}, - 'RelationUnitsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RelationUnitsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'ResolvedModeResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'mode': {'type': 'string'}}, - 'required': ['mode'], - 'type': 'object'}, - 'ResolvedModeResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ResolvedModeResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'SetPodSpecParams': {'additionalProperties': False, - 'properties': {'specs': {'items': {'$ref': '#/definitions/EntityString'}, - 'type': 'array'}}, - 'required': ['specs'], - 'type': 'object'}, - 'SetStatus': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, - 'SettingsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'settings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}}, - 'required': ['settings'], - 'type': 'object'}, - 'SettingsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/SettingsResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StatusResult': {'additionalProperties': False, - 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'error': {'$ref': '#/definitions/Error'}, - 'id': {'type': 'string'}, - 'info': {'type': 'string'}, - 'life': {'type': 'string'}, - 'since': {'format': 'date-time', - 'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['id', - 'life', - 'status', - 'info', - 'data', - 'since'], - 'type': 'object'}, - 'StatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StatusResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StorageAddParams': {'additionalProperties': False, - 'properties': {'name': {'type': 'string'}, - 'storage': {'$ref': '#/definitions/StorageConstraints'}, - 'unit': {'type': 'string'}}, - 'required': ['unit', 'name', 'storage'], - 'type': 'object'}, - 'StorageAttachment': {'additionalProperties': False, - 'properties': {'kind': {'type': 'integer'}, - 'life': {'type': 'string'}, - 'location': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'storage-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'owner-tag', - 'unit-tag', - 'kind', - 'location', - 'life'], - 'type': 'object'}, - 'StorageAttachmentId': {'additionalProperties': False, - 'properties': {'storage-tag': {'type': 'string'}, - 'unit-tag': {'type': 'string'}}, - 'required': ['storage-tag', - 'unit-tag'], - 'type': 'object'}, - 'StorageAttachmentIds': {'additionalProperties': False, - 'properties': {'ids': {'items': {'$ref': '#/definitions/StorageAttachmentId'}, - 'type': 'array'}}, - 'required': ['ids'], - 'type': 'object'}, - 'StorageAttachmentIdsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/StorageAttachmentIds'}}, - 'required': ['result'], - 'type': 'object'}, - 'StorageAttachmentIdsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StorageAttachmentIdsResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageAttachmentResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'$ref': '#/definitions/StorageAttachment'}}, - 'required': ['result'], - 'type': 'object'}, - 'StorageAttachmentResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StorageAttachmentResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StorageConstraints': {'additionalProperties': False, - 'properties': {'count': {'type': 'integer'}, - 'pool': {'type': 'string'}, - 'size': {'type': 'integer'}}, - 'type': 'object'}, - 'StoragesAddParams': {'additionalProperties': False, - 'properties': {'storages': {'items': {'$ref': '#/definitions/StorageAddParams'}, - 'type': 'array'}}, - 'required': ['storages'], - 'type': 'object'}, - 'StringBoolResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'ok': {'type': 'boolean'}, - 'result': {'type': 'string'}}, - 'required': ['result', 'ok'], - 'type': 'object'}, - 'StringBoolResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringBoolResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'required': ['result'], - 'type': 'object'}, - 'StringResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'StringsResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'error': {'$ref': '#/definitions/Error'}, - 'watcher-id': {'type': 'string'}}, - 'required': ['watcher-id'], - 'type': 'object'}, - 'StringsWatchResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, - 'type': 'array'}}, - 'required': ['results'], - 'type': 'object'}, - 'UnitRefreshResult': {'additionalProperties': False, - 'properties': {'Error': {'$ref': '#/definitions/Error'}, - 'Life': {'type': 'string'}, - 'Resolved': {'type': 'string'}}, - 'required': ['Life', - 'Resolved', - 'Error'], - 'type': 'object'}, - 'UnitRefreshResults': {'additionalProperties': False, - 'properties': {'Results': {'items': {'$ref': '#/definitions/UnitRefreshResult'}, - 'type': 'array'}}, - 'required': ['Results'], - 'type': 'object'}, - 'UnitSettings': {'additionalProperties': False, - 'properties': {'version': {'type': 'integer'}}, - 'required': ['version'], - 'type': 'object'}, - 'UpgradeSeriesStatusParam': {'additionalProperties': False, - 'properties': {'entity': {'$ref': '#/definitions/Entity'}, - 'message': {'type': 'string'}, - 'status': {'type': 'string'}}, - 'required': ['entity', - 'status', - 'message'], - 'type': 'object'}, - 'UpgradeSeriesStatusParams': {'additionalProperties': False, - 'properties': {'params': {'items': {'$ref': '#/definitions/UpgradeSeriesStatusParam'}, - 'type': 'array'}}, - 'required': ['params'], - 'type': 'object'}, - 'UpgradeSeriesStatusResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'status': {'type': 'string'}}, - 'type': 'object'}, - 'UpgradeSeriesStatusResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/UpgradeSeriesStatusResult'}, - 'type': 'array'}}, - 'type': 'object'}}, - 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, - 'type': 'object'}, - 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, - 'type': 'object'}, - 'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'AddMetricBatches': {'properties': {'Params': {'$ref': '#/definitions/MetricBatchParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'AddUnitStorage': {'properties': {'Params': {'$ref': '#/definitions/StoragesAddParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'AllMachinePorts': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MachinePortsResults'}}, - 'type': 'object'}, - 'ApplicationStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ApplicationStatusResults'}}, - 'type': 'object'}, - 'AssignedMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'AvailabilityZone': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'BeginActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'CharmArchiveSha256': {'properties': {'Params': {'$ref': '#/definitions/CharmURLs'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'CharmModifiedVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/IntResults'}}, - 'type': 'object'}, - 'CharmURL': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringBoolResults'}}, - 'type': 'object'}, - 'ClearResolved': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ClosePorts': {'properties': {'Params': {'$ref': '#/definitions/EntitiesPortRanges'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'CloudSpec': {'properties': {'Result': {'$ref': '#/definitions/CloudSpecResult'}}, - 'type': 'object'}, - 'ConfigSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ConfigSettingsResults'}}, - 'type': 'object'}, - 'CurrentModel': {'properties': {'Result': {'$ref': '#/definitions/ModelResult'}}, - 'type': 'object'}, - 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'DestroyAllSubordinates': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'DestroyUnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'EnterScope': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'FinishActions': {'properties': {'Params': {'$ref': '#/definitions/ActionExecutionResults'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'GetMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/MeterStatusResults'}}, - 'type': 'object'}, - 'GetPrincipal': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringBoolResults'}}, - 'type': 'object'}, - 'GoalStates': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/GoalStateResults'}}, - 'type': 'object'}, - 'HasSubordinates': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/BoolResults'}}, - 'type': 'object'}, - 'LeaveScope': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'Merge': {'properties': {'Params': {'$ref': '#/definitions/MergeLeadershipSettingsBulkParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'NetworkInfo': {'properties': {'Params': {'$ref': '#/definitions/NetworkInfoParams'}, - 'Result': {'$ref': '#/definitions/NetworkInfoResults'}}, - 'type': 'object'}, - 'OpenPorts': {'properties': {'Params': {'$ref': '#/definitions/EntitiesPortRanges'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'ProviderType': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'Read': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/GetLeadershipSettingsBulkResults'}}, - 'type': 'object'}, - 'ReadRemoteSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnitPairs'}, - 'Result': {'$ref': '#/definitions/SettingsResults'}}, - 'type': 'object'}, - 'ReadSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/SettingsResults'}}, - 'type': 'object'}, - 'Refresh': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/UnitRefreshResults'}}, - 'type': 'object'}, - 'Relation': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/RelationResults'}}, - 'type': 'object'}, - 'RelationById': {'properties': {'Params': {'$ref': '#/definitions/RelationIds'}, - 'Result': {'$ref': '#/definitions/RelationResults'}}, - 'type': 'object'}, - 'RelationsStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/RelationUnitStatusResults'}}, - 'type': 'object'}, - 'RemoveStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'RequestReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Resolved': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ResolvedModeResults'}}, - 'type': 'object'}, - 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'SetAgentStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetApplicationStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/EntitiesCharmURL'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetPodSpec': {'properties': {'Params': {'$ref': '#/definitions/SetPodSpecParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetRelationStatus': {'properties': {'Params': {'$ref': '#/definitions/RelationStatusArgs'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetUnitStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetUpgradeSeriesUnitStatus': {'properties': {'Params': {'$ref': '#/definitions/UpgradeSeriesStatusParams'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'SetWorkloadVersion': {'properties': {'Params': {'$ref': '#/definitions/EntityWorkloadVersions'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'StorageAttachmentLife': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/LifeResults'}}, - 'type': 'object'}, - 'StorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/StorageAttachmentResults'}}, - 'type': 'object'}, - 'UnitStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StatusResults'}}, - 'type': 'object'}, - 'UnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StorageAttachmentIdsResults'}}, - 'type': 'object'}, - 'UpdateSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnitsSettings'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'UpgradeSeriesUnitStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/UpgradeSeriesStatusResults'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchActionNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchConfigSettingsHash': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchLeadershipSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchRelationUnits': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, - 'Result': {'$ref': '#/definitions/RelationUnitsWatchResults'}}, - 'type': 'object'}, - 'WatchStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WatchTrustConfigSettingsHash': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchUnitAddressesHash': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchUnitRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchUnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, - 'WatchUpgradeSeriesNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}, - 'WorkloadVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(StringsResult) - async def APIAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='APIAddresses', - version=9, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(APIHostPortsResult) - async def APIHostPorts(self): - ''' - - Returns -> typing.Sequence[~HostPort] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='APIHostPorts', - version=9, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ActionResults) - async def Actions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Actions', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def AddMetricBatches(self, batches): - ''' - batches : typing.Sequence[~MetricBatchParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AddMetricBatches', - version=9, - params=_params) - _params['batches'] = batches - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def AddUnitStorage(self, storages): - ''' - storages : typing.Sequence[~StorageAddParams] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AddUnitStorage', - version=9, - params=_params) - _params['storages'] = storages - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MachinePortsResults) - async def AllMachinePorts(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachinePortsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AllMachinePorts', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ApplicationStatusResults) - async def ApplicationStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ApplicationStatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ApplicationStatus', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def AssignedMachine(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AssignedMachine', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def AvailabilityZone(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='AvailabilityZone', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def BeginActions(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='BeginActions', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def CharmArchiveSha256(self, urls): - ''' - urls : typing.Sequence[~CharmURL] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CharmArchiveSha256', - version=9, - params=_params) - _params['urls'] = urls - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(IntResults) - async def CharmModifiedVersion(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~IntResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CharmModifiedVersion', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringBoolResults) - async def CharmURL(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringBoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CharmURL', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ClearResolved(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ClearResolved', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def ClosePorts(self, entities): - ''' - entities : typing.Sequence[~EntityPortRange] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ClosePorts', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(CloudSpecResult) - async def CloudSpec(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CloudSpec', - version=9, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ConfigSettingsResults) - async def ConfigSettings(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ConfigSettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ConfigSettings', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelResult) - async def CurrentModel(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='CurrentModel', - version=9, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Destroy(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Destroy', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DestroyAllSubordinates(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='DestroyAllSubordinates', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def DestroyUnitStorageAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='DestroyUnitStorageAttachments', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnsureDead(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='EnsureDead', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def EnterScope(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='EnterScope', - version=9, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def FinishActions(self, results): - ''' - results : typing.Sequence[~ActionExecutionResult] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='FinishActions', - version=9, - params=_params) - _params['results'] = results - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(MeterStatusResults) - async def GetMeterStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MeterStatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='GetMeterStatus', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringBoolResults) - async def GetPrincipal(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringBoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='GetPrincipal', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(GoalStateResults) - async def GoalStates(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~GoalStateResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='GoalStates', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(BoolResults) - async def HasSubordinates(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~BoolResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='HasSubordinates', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def LeaveScope(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='LeaveScope', - version=9, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Life', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Merge(self, params): - ''' - params : typing.Sequence[~MergeLeadershipSettingsParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Merge', - version=9, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ModelConfig', - version=9, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ModelUUID(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ModelUUID', - version=9, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NetworkInfoResults) - async def NetworkInfo(self, bindings, unit): - ''' - bindings : typing.Sequence[str] - unit : str - Returns -> typing.Mapping[str, ~NetworkInfoResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='NetworkInfo', - version=9, - params=_params) - _params['bindings'] = bindings - _params['unit'] = unit - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def OpenPorts(self, entities): - ''' - entities : typing.Sequence[~EntityPortRange] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='OpenPorts', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def PrivateAddress(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='PrivateAddress', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def ProviderType(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ProviderType', - version=9, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def PublicAddress(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='PublicAddress', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(GetLeadershipSettingsBulkResults) - async def Read(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~GetLeadershipSettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Read', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SettingsResults) - async def ReadRemoteSettings(self, relation_unit_pairs): - ''' - relation_unit_pairs : typing.Sequence[~RelationUnitPair] - Returns -> typing.Sequence[~SettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ReadRemoteSettings', - version=9, - params=_params) - _params['relation-unit-pairs'] = relation_unit_pairs - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SettingsResults) - async def ReadSettings(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~SettingsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='ReadSettings', - version=9, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UnitRefreshResults) - async def Refresh(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~UnitRefreshResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Refresh', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationResults) - async def Relation(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~RelationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Relation', - version=9, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationResults) - async def RelationById(self, relation_ids): - ''' - relation_ids : typing.Sequence[int] - Returns -> typing.Sequence[~RelationResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='RelationById', - version=9, - params=_params) - _params['relation-ids'] = relation_ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationUnitStatusResults) - async def RelationsStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~RelationUnitStatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='RelationsStatus', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RemoveStorageAttachments(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='RemoveStorageAttachments', - version=9, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def RequestReboot(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='RequestReboot', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ResolvedModeResults) - async def Resolved(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ResolvedModeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Resolved', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResult) - async def SLALevel(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SLALevel', - version=9, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetAgentStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetAgentStatus', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetApplicationStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetApplicationStatus', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetCharmURL(self, entities): - ''' - entities : typing.Sequence[~EntityCharmURL] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetCharmURL', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetPodSpec(self, specs): - ''' - specs : typing.Sequence[~EntityString] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetPodSpec', - version=9, - params=_params) - _params['specs'] = specs - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetRelationStatus(self, args): - ''' - args : typing.Sequence[~RelationStatusArg] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetRelationStatus', - version=9, - params=_params) - _params['args'] = args - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetStatus', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetUnitStatus(self, entities): - ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetUnitStatus', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetUpgradeSeriesUnitStatus(self, params): - ''' - params : typing.Sequence[~UpgradeSeriesStatusParam] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetUpgradeSeriesUnitStatus', - version=9, - params=_params) - _params['params'] = params - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetWorkloadVersion(self, entities): - ''' - entities : typing.Sequence[~EntityWorkloadVersion] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='SetWorkloadVersion', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(LifeResults) - async def StorageAttachmentLife(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~LifeResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='StorageAttachmentLife', - version=9, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StorageAttachmentResults) - async def StorageAttachments(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~StorageAttachmentResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='StorageAttachments', - version=9, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StatusResults) - async def UnitStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='UnitStatus', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StorageAttachmentIdsResults) - async def UnitStorageAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StorageAttachmentIdsResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='UnitStorageAttachments', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def UpdateSettings(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnitSettings] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='UpdateSettings', - version=9, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(UpgradeSeriesStatusResults) - async def UpgradeSeriesUnitStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~UpgradeSeriesStatusResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='UpgradeSeriesUnitStatus', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def Watch(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='Watch', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchAPIHostPorts(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchAPIHostPorts', - version=9, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchActionNotifications(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchActionNotifications', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchConfigSettingsHash(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchConfigSettingsHash', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): - ''' - - Returns -> typing.Union[str, _ForwardRef('Error')] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchForModelConfigChanges', - version=9, - params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchLeadershipSettings(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchLeadershipSettings', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchMeterStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchMeterStatus', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(RelationUnitsWatchResults) - async def WatchRelationUnits(self, relation_units): - ''' - relation_units : typing.Sequence[~RelationUnit] - Returns -> typing.Sequence[~RelationUnitsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchRelationUnits', - version=9, - params=_params) - _params['relation-units'] = relation_units - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchStorageAttachments(self, ids): - ''' - ids : typing.Sequence[~StorageAttachmentId] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchStorageAttachments', - version=9, - params=_params) - _params['ids'] = ids - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchTrustConfigSettingsHash(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchTrustConfigSettingsHash', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchUnitAddressesHash(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchUnitAddressesHash', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchUnitRelations(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchUnitRelations', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchUnitStorageAttachments(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchUnitStorageAttachments', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(NotifyWatchResults) - async def WatchUpgradeSeriesNotifications(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WatchUpgradeSeriesNotifications', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def WorkloadVersion(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Uniter', - request='WorkloadVersion', - version=9, - params=_params) - _params['entities'] = entities - reply = await self.rpc(msg) - return reply - - diff --git a/modules/libjuju/juju/client/_definitions.py b/modules/libjuju/juju/client/_definitions.py deleted file mode 100644 index 2d25e39..0000000 --- a/modules/libjuju/juju/client/_definitions.py +++ /dev/null @@ -1,11058 +0,0 @@ -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. - -from juju.client.facade import ReturnMapping, Type - - -class APIHostPortsResult(Type): - _toSchema = {'servers': 'servers'} - _toPy = {'servers': 'servers'} - def __init__(self, servers=None, **unknown_fields): - ''' - servers : typing.Sequence[~HostPort] - ''' - self.servers = [HostPort.from_json(o) for o in servers or []] - - - -class Action(Type): - _toSchema = {'name': 'name', 'parameters': 'parameters', 'receiver': 'receiver', 'tag': 'tag'} - _toPy = {'name': 'name', 'parameters': 'parameters', 'receiver': 'receiver', 'tag': 'tag'} - def __init__(self, name=None, parameters=None, receiver=None, tag=None, **unknown_fields): - ''' - name : str - parameters : typing.Mapping[str, typing.Any] - receiver : str - tag : str - ''' - self.name = name - self.parameters = parameters - self.receiver = receiver - self.tag = tag - - - -class ActionExecutionResult(Type): - _toSchema = {'action_tag': 'action-tag', 'message': 'message', 'results': 'results', 'status': 'status'} - _toPy = {'action-tag': 'action_tag', 'message': 'message', 'results': 'results', 'status': 'status'} - def __init__(self, action_tag=None, message=None, results=None, status=None, **unknown_fields): - ''' - action_tag : str - message : str - results : typing.Mapping[str, typing.Any] - status : str - ''' - self.action_tag = action_tag - self.message = message - self.results = results - self.status = status - - - -class ActionExecutionResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ActionExecutionResult] - ''' - self.results = [ActionExecutionResult.from_json(o) for o in results or []] - - - -class ActionPruneArgs(Type): - _toSchema = {'max_history_mb': 'max-history-mb', 'max_history_time': 'max-history-time'} - _toPy = {'max-history-mb': 'max_history_mb', 'max-history-time': 'max_history_time'} - def __init__(self, max_history_mb=None, max_history_time=None, **unknown_fields): - ''' - max_history_mb : int - max_history_time : int - ''' - self.max_history_mb = max_history_mb - self.max_history_time = max_history_time - - - -class ActionResult(Type): - _toSchema = {'action': 'action', 'completed': 'completed', 'enqueued': 'enqueued', 'error': 'error', 'message': 'message', 'output': 'output', 'started': 'started', 'status': 'status'} - _toPy = {'action': 'action', 'completed': 'completed', 'enqueued': 'enqueued', 'error': 'error', 'message': 'message', 'output': 'output', 'started': 'started', 'status': 'status'} - def __init__(self, action=None, completed=None, enqueued=None, error=None, message=None, output=None, started=None, status=None, **unknown_fields): - ''' - action : Action - completed : str - enqueued : str - error : Error - message : str - output : typing.Mapping[str, typing.Any] - started : str - status : str - ''' - self.action = Action.from_json(action) if action else None - self.completed = completed - self.enqueued = enqueued - self.error = Error.from_json(error) if error else None - self.message = message - self.output = output - self.started = started - self.status = status - - - -class ActionResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ActionResult] - ''' - self.results = [ActionResult.from_json(o) for o in results or []] - - - -class ActionSpec(Type): - _toSchema = {'description': 'description', 'params': 'params'} - _toPy = {'description': 'description', 'params': 'params'} - def __init__(self, description=None, params=None, **unknown_fields): - ''' - description : str - params : typing.Mapping[str, typing.Any] - ''' - self.description = description - self.params = params - - - -class Actions(Type): - _toSchema = {'actions': 'actions'} - _toPy = {'actions': 'actions'} - def __init__(self, actions=None, **unknown_fields): - ''' - actions : typing.Sequence[~Action] - ''' - self.actions = [Action.from_json(o) for o in actions or []] - - - -class ActionsByName(Type): - _toSchema = {'actions': 'actions', 'error': 'error', 'name': 'name'} - _toPy = {'actions': 'actions', 'error': 'error', 'name': 'name'} - def __init__(self, actions=None, error=None, name=None, **unknown_fields): - ''' - actions : typing.Sequence[~ActionResult] - error : Error - name : str - ''' - self.actions = [ActionResult.from_json(o) for o in actions or []] - self.error = Error.from_json(error) if error else None - self.name = name - - - -class ActionsByNames(Type): - _toSchema = {'actions': 'actions'} - _toPy = {'actions': 'actions'} - def __init__(self, actions=None, **unknown_fields): - ''' - actions : typing.Sequence[~ActionsByName] - ''' - self.actions = [ActionsByName.from_json(o) for o in actions or []] - - - -class ActionsByReceiver(Type): - _toSchema = {'actions': 'actions', 'error': 'error', 'receiver': 'receiver'} - _toPy = {'actions': 'actions', 'error': 'error', 'receiver': 'receiver'} - def __init__(self, actions=None, error=None, receiver=None, **unknown_fields): - ''' - actions : typing.Sequence[~ActionResult] - error : Error - receiver : str - ''' - self.actions = [ActionResult.from_json(o) for o in actions or []] - self.error = Error.from_json(error) if error else None - self.receiver = receiver - - - -class ActionsByReceivers(Type): - _toSchema = {'actions': 'actions'} - _toPy = {'actions': 'actions'} - def __init__(self, actions=None, **unknown_fields): - ''' - actions : typing.Sequence[~ActionsByReceiver] - ''' - self.actions = [ActionsByReceiver.from_json(o) for o in actions or []] - - - -class AddApplicationOffer(Type): - _toSchema = {'application_description': 'application-description', 'application_name': 'application-name', 'endpoints': 'endpoints', 'model_tag': 'model-tag', 'offer_name': 'offer-name'} - _toPy = {'application-description': 'application_description', 'application-name': 'application_name', 'endpoints': 'endpoints', 'model-tag': 'model_tag', 'offer-name': 'offer_name'} - def __init__(self, application_description=None, application_name=None, endpoints=None, model_tag=None, offer_name=None, **unknown_fields): - ''' - application_description : str - application_name : str - endpoints : typing.Mapping[str, str] - model_tag : str - offer_name : str - ''' - self.application_description = application_description - self.application_name = application_name - self.endpoints = endpoints - self.model_tag = model_tag - self.offer_name = offer_name - - - -class AddApplicationOffers(Type): - _toSchema = {'offers': 'Offers'} - _toPy = {'Offers': 'offers'} - def __init__(self, offers=None, **unknown_fields): - ''' - offers : typing.Sequence[~AddApplicationOffer] - ''' - self.offers = [AddApplicationOffer.from_json(o) for o in offers or []] - - - -class AddApplicationUnits(Type): - _toSchema = {'application': 'application', 'num_units': 'num-units', 'placement': 'placement'} - _toPy = {'application': 'application', 'num-units': 'num_units', 'placement': 'placement'} - def __init__(self, application=None, num_units=None, placement=None, **unknown_fields): - ''' - application : str - num_units : int - placement : typing.Sequence[~Placement] - ''' - self.application = application - self.num_units = num_units - self.placement = [Placement.from_json(o) for o in placement or []] - - - -class AddApplicationUnitsResults(Type): - _toSchema = {'units': 'units'} - _toPy = {'units': 'units'} - def __init__(self, units=None, **unknown_fields): - ''' - units : typing.Sequence[str] - ''' - self.units = units - - - -class AddCharm(Type): - _toSchema = {'channel': 'channel', 'url': 'url'} - _toPy = {'channel': 'channel', 'url': 'url'} - def __init__(self, channel=None, url=None, **unknown_fields): - ''' - channel : str - url : str - ''' - self.channel = channel - self.url = url - - - -class AddCharmWithAuthorization(Type): - _toSchema = {'channel': 'channel', 'macaroon': 'macaroon', 'url': 'url'} - _toPy = {'channel': 'channel', 'macaroon': 'macaroon', 'url': 'url'} - def __init__(self, channel=None, macaroon=None, url=None, **unknown_fields): - ''' - channel : str - macaroon : Macaroon - url : str - ''' - self.channel = channel - self.macaroon = Macaroon.from_json(macaroon) if macaroon else None - self.url = url - - - -class AddCloudArgs(Type): - _toSchema = {'cloud': 'cloud', 'name': 'name'} - _toPy = {'cloud': 'cloud', 'name': 'name'} - def __init__(self, cloud=None, name=None, **unknown_fields): - ''' - cloud : Cloud - name : str - ''' - self.cloud = Cloud.from_json(cloud) if cloud else None - self.name = name - - - -class AddMachineParams(Type): - _toSchema = {'addresses': 'addresses', 'constraints': 'constraints', 'container_type': 'container-type', 'disks': 'disks', 'hardware_characteristics': 'hardware-characteristics', 'instance_id': 'instance-id', 'jobs': 'jobs', 'nonce': 'nonce', 'parent_id': 'parent-id', 'placement': 'placement', 'series': 'series'} - _toPy = {'addresses': 'addresses', 'constraints': 'constraints', 'container-type': 'container_type', 'disks': 'disks', 'hardware-characteristics': 'hardware_characteristics', 'instance-id': 'instance_id', 'jobs': 'jobs', 'nonce': 'nonce', 'parent-id': 'parent_id', 'placement': 'placement', 'series': 'series'} - def __init__(self, addresses=None, constraints=None, container_type=None, disks=None, hardware_characteristics=None, instance_id=None, jobs=None, nonce=None, parent_id=None, placement=None, series=None, **unknown_fields): - ''' - addresses : typing.Sequence[~Address] - constraints : Value - container_type : str - disks : typing.Sequence[~Constraints] - hardware_characteristics : HardwareCharacteristics - instance_id : str - jobs : typing.Sequence[str] - nonce : str - parent_id : str - placement : Placement - series : str - ''' - self.addresses = [Address.from_json(o) for o in addresses or []] - self.constraints = Value.from_json(constraints) if constraints else None - self.container_type = container_type - self.disks = [Constraints.from_json(o) for o in disks or []] - self.hardware_characteristics = HardwareCharacteristics.from_json(hardware_characteristics) if hardware_characteristics else None - self.instance_id = instance_id - self.jobs = jobs - self.nonce = nonce - self.parent_id = parent_id - self.placement = Placement.from_json(placement) if placement else None - self.series = series - - - -class AddMachines(Type): - _toSchema = {'params': 'params'} - _toPy = {'params': 'params'} - def __init__(self, params=None, **unknown_fields): - ''' - params : typing.Sequence[~AddMachineParams] - ''' - self.params = [AddMachineParams.from_json(o) for o in params or []] - - - -class AddMachinesResult(Type): - _toSchema = {'error': 'error', 'machine': 'machine'} - _toPy = {'error': 'error', 'machine': 'machine'} - def __init__(self, error=None, machine=None, **unknown_fields): - ''' - error : Error - machine : str - ''' - self.error = Error.from_json(error) if error else None - self.machine = machine - - - -class AddMachinesResults(Type): - _toSchema = {'machines': 'machines'} - _toPy = {'machines': 'machines'} - def __init__(self, machines=None, **unknown_fields): - ''' - machines : typing.Sequence[~AddMachinesResult] - ''' - self.machines = [AddMachinesResult.from_json(o) for o in machines or []] - - - -class AddPendingResourcesArgs(Type): - _toSchema = {'addcharmwithauthorization': 'AddCharmWithAuthorization', 'entity': 'Entity', 'resources': 'Resources'} - _toPy = {'AddCharmWithAuthorization': 'addcharmwithauthorization', 'Entity': 'entity', 'Resources': 'resources'} - def __init__(self, addcharmwithauthorization=None, entity=None, resources=None, **unknown_fields): - ''' - addcharmwithauthorization : AddCharmWithAuthorization - entity : Entity - resources : typing.Sequence[~CharmResource] - ''' - self.addcharmwithauthorization = AddCharmWithAuthorization.from_json(addcharmwithauthorization) if addcharmwithauthorization else None - self.entity = Entity.from_json(entity) if entity else None - self.resources = [CharmResource.from_json(o) for o in resources or []] - - - -class AddPendingResourcesResult(Type): - _toSchema = {'errorresult': 'ErrorResult', 'pending_ids': 'pending-ids'} - _toPy = {'ErrorResult': 'errorresult', 'pending-ids': 'pending_ids'} - def __init__(self, errorresult=None, pending_ids=None, **unknown_fields): - ''' - errorresult : ErrorResult - pending_ids : typing.Sequence[str] - ''' - self.errorresult = ErrorResult.from_json(errorresult) if errorresult else None - self.pending_ids = pending_ids - - - -class AddRelation(Type): - _toSchema = {'endpoints': 'endpoints'} - _toPy = {'endpoints': 'endpoints'} - def __init__(self, endpoints=None, **unknown_fields): - ''' - endpoints : typing.Sequence[str] - ''' - self.endpoints = endpoints - - - -class AddRelationResults(Type): - _toSchema = {'endpoints': 'endpoints'} - _toPy = {'endpoints': 'endpoints'} - def __init__(self, endpoints=None, **unknown_fields): - ''' - endpoints : typing.Mapping[str, ~CharmRelation] - ''' - self.endpoints = endpoints - - - -class AddStorageDetails(Type): - _toSchema = {'storage_tags': 'storage-tags'} - _toPy = {'storage-tags': 'storage_tags'} - def __init__(self, storage_tags=None, **unknown_fields): - ''' - storage_tags : typing.Sequence[str] - ''' - self.storage_tags = storage_tags - - - -class AddStorageResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : AddStorageDetails - ''' - self.error = Error.from_json(error) if error else None - self.result = AddStorageDetails.from_json(result) if result else None - - - -class AddStorageResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~AddStorageResult] - ''' - self.results = [AddStorageResult.from_json(o) for o in results or []] - - - -class AddSubnetParams(Type): - _toSchema = {'space_tag': 'space-tag', 'subnet_provider_id': 'subnet-provider-id', 'subnet_tag': 'subnet-tag', 'zones': 'zones'} - _toPy = {'space-tag': 'space_tag', 'subnet-provider-id': 'subnet_provider_id', 'subnet-tag': 'subnet_tag', 'zones': 'zones'} - def __init__(self, space_tag=None, subnet_provider_id=None, subnet_tag=None, zones=None, **unknown_fields): - ''' - space_tag : str - subnet_provider_id : str - subnet_tag : str - zones : typing.Sequence[str] - ''' - self.space_tag = space_tag - self.subnet_provider_id = subnet_provider_id - self.subnet_tag = subnet_tag - self.zones = zones - - - -class AddSubnetsParams(Type): - _toSchema = {'subnets': 'subnets'} - _toPy = {'subnets': 'subnets'} - def __init__(self, subnets=None, **unknown_fields): - ''' - subnets : typing.Sequence[~AddSubnetParams] - ''' - self.subnets = [AddSubnetParams.from_json(o) for o in subnets or []] - - - -class AddUser(Type): - _toSchema = {'display_name': 'display-name', 'password': 'password', 'username': 'username'} - _toPy = {'display-name': 'display_name', 'password': 'password', 'username': 'username'} - def __init__(self, display_name=None, password=None, username=None, **unknown_fields): - ''' - display_name : str - password : str - username : str - ''' - self.display_name = display_name - self.password = password - self.username = username - - - -class AddUserResult(Type): - _toSchema = {'error': 'error', 'secret_key': 'secret-key', 'tag': 'tag'} - _toPy = {'error': 'error', 'secret-key': 'secret_key', 'tag': 'tag'} - def __init__(self, error=None, secret_key=None, tag=None, **unknown_fields): - ''' - error : Error - secret_key : typing.Sequence[int] - tag : str - ''' - self.error = Error.from_json(error) if error else None - self.secret_key = secret_key - self.tag = tag - - - -class AddUserResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~AddUserResult] - ''' - self.results = [AddUserResult.from_json(o) for o in results or []] - - - -class AddUsers(Type): - _toSchema = {'users': 'users'} - _toPy = {'users': 'users'} - def __init__(self, users=None, **unknown_fields): - ''' - users : typing.Sequence[~AddUser] - ''' - self.users = [AddUser.from_json(o) for o in users or []] - - - -class Address(Type): - _toSchema = {'scope': 'scope', 'space_name': 'space-name', 'type_': 'type', 'value': 'value'} - _toPy = {'scope': 'scope', 'space-name': 'space_name', 'type': 'type_', 'value': 'value'} - def __init__(self, scope=None, space_name=None, type_=None, value=None, **unknown_fields): - ''' - scope : str - space_name : str - type_ : str - value : str - ''' - self.scope = scope - self.space_name = space_name - self.type_ = type_ - self.value = value - - - -class AdoptResourcesArgs(Type): - _toSchema = {'model_tag': 'model-tag', 'source_controller_version': 'source-controller-version'} - _toPy = {'model-tag': 'model_tag', 'source-controller-version': 'source_controller_version'} - def __init__(self, model_tag=None, source_controller_version=None, **unknown_fields): - ''' - model_tag : str - source_controller_version : Number - ''' - self.model_tag = model_tag - self.source_controller_version = Number.from_json(source_controller_version) if source_controller_version else None - - - -class AgentGetEntitiesResult(Type): - _toSchema = {'container_type': 'container-type', 'error': 'error', 'jobs': 'jobs', 'life': 'life'} - _toPy = {'container-type': 'container_type', 'error': 'error', 'jobs': 'jobs', 'life': 'life'} - def __init__(self, container_type=None, error=None, jobs=None, life=None, **unknown_fields): - ''' - container_type : str - error : Error - jobs : typing.Sequence[str] - life : str - ''' - self.container_type = container_type - self.error = Error.from_json(error) if error else None - self.jobs = jobs - self.life = life - - - -class AgentGetEntitiesResults(Type): - _toSchema = {'entities': 'entities'} - _toPy = {'entities': 'entities'} - def __init__(self, entities=None, **unknown_fields): - ''' - entities : typing.Sequence[~AgentGetEntitiesResult] - ''' - self.entities = [AgentGetEntitiesResult.from_json(o) for o in entities or []] - - - -class AgentVersionResult(Type): - _toSchema = {'version': 'version'} - _toPy = {'version': 'version'} - def __init__(self, version=None, **unknown_fields): - ''' - version : Number - ''' - self.version = Number.from_json(version) if version else None - - - -class AllWatcherId(Type): - _toSchema = {'watcher_id': 'watcher-id'} - _toPy = {'watcher-id': 'watcher_id'} - def __init__(self, watcher_id=None, **unknown_fields): - ''' - watcher_id : str - ''' - self.watcher_id = watcher_id - - - -class AllWatcherNextResults(Type): - _toSchema = {'deltas': 'deltas'} - _toPy = {'deltas': 'deltas'} - def __init__(self, deltas=None, **unknown_fields): - ''' - deltas : typing.Sequence[~Delta] - ''' - self.deltas = [Delta.from_json(o) for o in deltas or []] - - - -class AnnotationsGetResult(Type): - _toSchema = {'annotations': 'annotations', 'entity': 'entity', 'error': 'error'} - _toPy = {'annotations': 'annotations', 'entity': 'entity', 'error': 'error'} - def __init__(self, annotations=None, entity=None, error=None, **unknown_fields): - ''' - annotations : typing.Mapping[str, str] - entity : str - error : ErrorResult - ''' - self.annotations = annotations - self.entity = entity - self.error = ErrorResult.from_json(error) if error else None - - - -class AnnotationsGetResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~AnnotationsGetResult] - ''' - self.results = [AnnotationsGetResult.from_json(o) for o in results or []] - - - -class AnnotationsSet(Type): - _toSchema = {'annotations': 'annotations'} - _toPy = {'annotations': 'annotations'} - def __init__(self, annotations=None, **unknown_fields): - ''' - annotations : typing.Sequence[~EntityAnnotations] - ''' - self.annotations = [EntityAnnotations.from_json(o) for o in annotations or []] - - - -class ApplicationCharm(Type): - _toSchema = {'charm_modified_version': 'charm-modified-version', 'force_upgrade': 'force-upgrade', 'sha256': 'sha256', 'url': 'url'} - _toPy = {'charm-modified-version': 'charm_modified_version', 'force-upgrade': 'force_upgrade', 'sha256': 'sha256', 'url': 'url'} - def __init__(self, charm_modified_version=None, force_upgrade=None, sha256=None, url=None, **unknown_fields): - ''' - charm_modified_version : int - force_upgrade : bool - sha256 : str - url : str - ''' - self.charm_modified_version = charm_modified_version - self.force_upgrade = force_upgrade - self.sha256 = sha256 - self.url = url - - - -class ApplicationCharmActionsResult(Type): - _toSchema = {'actions': 'actions', 'application_tag': 'application-tag', 'error': 'error'} - _toPy = {'actions': 'actions', 'application-tag': 'application_tag', 'error': 'error'} - def __init__(self, actions=None, application_tag=None, error=None, **unknown_fields): - ''' - actions : typing.Mapping[str, ~ActionSpec] - application_tag : str - error : Error - ''' - self.actions = actions - self.application_tag = application_tag - self.error = Error.from_json(error) if error else None - - - -class ApplicationCharmRelations(Type): - _toSchema = {'application': 'application'} - _toPy = {'application': 'application'} - def __init__(self, application=None, **unknown_fields): - ''' - application : str - ''' - self.application = application - - - -class ApplicationCharmRelationsResults(Type): - _toSchema = {'charm_relations': 'charm-relations'} - _toPy = {'charm-relations': 'charm_relations'} - def __init__(self, charm_relations=None, **unknown_fields): - ''' - charm_relations : typing.Sequence[str] - ''' - self.charm_relations = charm_relations - - - -class ApplicationCharmResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : ApplicationCharm - ''' - self.error = Error.from_json(error) if error else None - self.result = ApplicationCharm.from_json(result) if result else None - - - -class ApplicationCharmResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ApplicationCharmResult] - ''' - self.results = [ApplicationCharmResult.from_json(o) for o in results or []] - - - -class ApplicationConfigSet(Type): - _toSchema = {'application': 'application', 'config': 'config'} - _toPy = {'application': 'application', 'config': 'config'} - def __init__(self, application=None, config=None, **unknown_fields): - ''' - application : str - config : typing.Mapping[str, str] - ''' - self.application = application - self.config = config - - - -class ApplicationConfigSetArgs(Type): - _toSchema = {'args': 'Args'} - _toPy = {'Args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~ApplicationConfigSet] - ''' - self.args = [ApplicationConfigSet.from_json(o) for o in args or []] - - - -class ApplicationConfigUnsetArgs(Type): - _toSchema = {'args': 'Args'} - _toPy = {'Args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~ApplicationUnset] - ''' - self.args = [ApplicationUnset.from_json(o) for o in args or []] - - - -class ApplicationConstraint(Type): - _toSchema = {'constraints': 'constraints', 'error': 'error'} - _toPy = {'constraints': 'constraints', 'error': 'error'} - def __init__(self, constraints=None, error=None, **unknown_fields): - ''' - constraints : Value - error : Error - ''' - self.constraints = Value.from_json(constraints) if constraints else None - self.error = Error.from_json(error) if error else None - - - -class ApplicationDeploy(Type): - _toSchema = {'application': 'application', 'attach_storage': 'attach-storage', 'channel': 'channel', 'charm_url': 'charm-url', 'config': 'config', 'config_yaml': 'config-yaml', 'constraints': 'constraints', 'devices': 'devices', 'endpoint_bindings': 'endpoint-bindings', 'num_units': 'num-units', 'placement': 'placement', 'policy': 'policy', 'resources': 'resources', 'series': 'series', 'storage': 'storage'} - _toPy = {'application': 'application', 'attach-storage': 'attach_storage', 'channel': 'channel', 'charm-url': 'charm_url', 'config': 'config', 'config-yaml': 'config_yaml', 'constraints': 'constraints', 'devices': 'devices', 'endpoint-bindings': 'endpoint_bindings', 'num-units': 'num_units', 'placement': 'placement', 'policy': 'policy', 'resources': 'resources', 'series': 'series', 'storage': 'storage'} - def __init__(self, application=None, attach_storage=None, channel=None, charm_url=None, config=None, config_yaml=None, constraints=None, devices=None, endpoint_bindings=None, num_units=None, placement=None, policy=None, resources=None, series=None, storage=None, **unknown_fields): - ''' - application : str - attach_storage : typing.Sequence[str] - channel : str - charm_url : str - config : typing.Mapping[str, str] - config_yaml : str - constraints : Value - devices : typing.Mapping[str, ~Constraints] - endpoint_bindings : typing.Mapping[str, str] - num_units : int - placement : typing.Sequence[~Placement] - policy : str - resources : typing.Mapping[str, str] - series : str - storage : typing.Mapping[str, ~Constraints] - ''' - self.application = application - self.attach_storage = attach_storage - self.channel = channel - self.charm_url = charm_url - self.config = config - self.config_yaml = config_yaml - self.constraints = Value.from_json(constraints) if constraints else None - self.devices = devices - self.endpoint_bindings = endpoint_bindings - self.num_units = num_units - self.placement = [Placement.from_json(o) for o in placement or []] - self.policy = policy - self.resources = resources - self.series = series - self.storage = storage - - - -class ApplicationDestroy(Type): - _toSchema = {'application': 'application'} - _toPy = {'application': 'application'} - def __init__(self, application=None, **unknown_fields): - ''' - application : str - ''' - self.application = application - - - -class ApplicationExpose(Type): - _toSchema = {'application': 'application'} - _toPy = {'application': 'application'} - def __init__(self, application=None, **unknown_fields): - ''' - application : str - ''' - self.application = application - - - -class ApplicationGet(Type): - _toSchema = {'application': 'application'} - _toPy = {'application': 'application'} - def __init__(self, application=None, **unknown_fields): - ''' - application : str - ''' - self.application = application - - - -class ApplicationGetConfigResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ConfigResult] - ''' - self.results = [ConfigResult.from_json(o) for o in results or []] - - - -class ApplicationGetConstraintsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ApplicationConstraint] - ''' - self.results = [ApplicationConstraint.from_json(o) for o in results or []] - - - -class ApplicationGetResults(Type): - _toSchema = {'application': 'application', 'charm': 'charm', 'config': 'config', 'constraints': 'constraints', 'series': 'series'} - _toPy = {'application': 'application', 'charm': 'charm', 'config': 'config', 'constraints': 'constraints', 'series': 'series'} - def __init__(self, application=None, charm=None, config=None, constraints=None, series=None, **unknown_fields): - ''' - application : str - charm : str - config : typing.Mapping[str, typing.Any] - constraints : Value - series : str - ''' - self.application = application - self.charm = charm - self.config = config - self.constraints = Value.from_json(constraints) if constraints else None - self.series = series - - - -class ApplicationMetricCredential(Type): - _toSchema = {'application': 'application', 'metrics_credentials': 'metrics-credentials'} - _toPy = {'application': 'application', 'metrics-credentials': 'metrics_credentials'} - def __init__(self, application=None, metrics_credentials=None, **unknown_fields): - ''' - application : str - metrics_credentials : typing.Sequence[int] - ''' - self.application = application - self.metrics_credentials = metrics_credentials - - - -class ApplicationMetricCredentials(Type): - _toSchema = {'creds': 'creds'} - _toPy = {'creds': 'creds'} - def __init__(self, creds=None, **unknown_fields): - ''' - creds : typing.Sequence[~ApplicationMetricCredential] - ''' - self.creds = [ApplicationMetricCredential.from_json(o) for o in creds or []] - - - -class ApplicationOffer(Type): - _toSchema = {'access': 'access', 'application_description': 'application-description', 'bindings': 'bindings', 'endpoints': 'endpoints', 'offer_name': 'offer-name', 'offer_url': 'offer-url', 'source_model_tag': 'source-model-tag', 'spaces': 'spaces'} - _toPy = {'access': 'access', 'application-description': 'application_description', 'bindings': 'bindings', 'endpoints': 'endpoints', 'offer-name': 'offer_name', 'offer-url': 'offer_url', 'source-model-tag': 'source_model_tag', 'spaces': 'spaces'} - def __init__(self, access=None, application_description=None, bindings=None, endpoints=None, offer_name=None, offer_url=None, source_model_tag=None, spaces=None, **unknown_fields): - ''' - access : str - application_description : str - bindings : typing.Mapping[str, str] - endpoints : typing.Sequence[~RemoteEndpoint] - offer_name : str - offer_url : str - source_model_tag : str - spaces : typing.Sequence[~RemoteSpace] - ''' - self.access = access - self.application_description = application_description - self.bindings = bindings - self.endpoints = [RemoteEndpoint.from_json(o) for o in endpoints or []] - self.offer_name = offer_name - self.offer_url = offer_url - self.source_model_tag = source_model_tag - self.spaces = [RemoteSpace.from_json(o) for o in spaces or []] - - - -class ApplicationOfferAdminDetails(Type): - _toSchema = {'application_name': 'application-name', 'applicationofferdetails': 'ApplicationOfferDetails', 'charm_url': 'charm-url', 'connections': 'connections'} - _toPy = {'ApplicationOfferDetails': 'applicationofferdetails', 'application-name': 'application_name', 'charm-url': 'charm_url', 'connections': 'connections'} - def __init__(self, applicationofferdetails=None, application_name=None, charm_url=None, connections=None, **unknown_fields): - ''' - applicationofferdetails : ApplicationOfferDetails - application_name : str - charm_url : str - connections : typing.Sequence[~OfferConnection] - ''' - self.applicationofferdetails = ApplicationOfferDetails.from_json(applicationofferdetails) if applicationofferdetails else None - self.application_name = application_name - self.charm_url = charm_url - self.connections = [OfferConnection.from_json(o) for o in connections or []] - - - -class ApplicationOfferDetails(Type): - _toSchema = {'application_description': 'application-description', 'bindings': 'bindings', 'endpoints': 'endpoints', 'offer_name': 'offer-name', 'offer_url': 'offer-url', 'offer_uuid': 'offer-uuid', 'source_model_tag': 'source-model-tag', 'spaces': 'spaces', 'users': 'users'} - _toPy = {'application-description': 'application_description', 'bindings': 'bindings', 'endpoints': 'endpoints', 'offer-name': 'offer_name', 'offer-url': 'offer_url', 'offer-uuid': 'offer_uuid', 'source-model-tag': 'source_model_tag', 'spaces': 'spaces', 'users': 'users'} - def __init__(self, application_description=None, bindings=None, endpoints=None, offer_name=None, offer_url=None, offer_uuid=None, source_model_tag=None, spaces=None, users=None, **unknown_fields): - ''' - application_description : str - bindings : typing.Mapping[str, str] - endpoints : typing.Sequence[~RemoteEndpoint] - offer_name : str - offer_url : str - offer_uuid : str - source_model_tag : str - spaces : typing.Sequence[~RemoteSpace] - users : typing.Sequence[~OfferUserDetails] - ''' - self.application_description = application_description - self.bindings = bindings - self.endpoints = [RemoteEndpoint.from_json(o) for o in endpoints or []] - self.offer_name = offer_name - self.offer_url = offer_url - self.offer_uuid = offer_uuid - self.source_model_tag = source_model_tag - self.spaces = [RemoteSpace.from_json(o) for o in spaces or []] - self.users = [OfferUserDetails.from_json(o) for o in users or []] - - - -class ApplicationOfferResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : ApplicationOfferAdminDetails - ''' - self.error = Error.from_json(error) if error else None - self.result = ApplicationOfferAdminDetails.from_json(result) if result else None - - - -class ApplicationOfferStatus(Type): - _toSchema = {'active_connected_count': 'active-connected-count', 'application_name': 'application-name', 'charm': 'charm', 'endpoints': 'endpoints', 'err': 'err', 'offer_name': 'offer-name', 'total_connected_count': 'total-connected-count'} - _toPy = {'active-connected-count': 'active_connected_count', 'application-name': 'application_name', 'charm': 'charm', 'endpoints': 'endpoints', 'err': 'err', 'offer-name': 'offer_name', 'total-connected-count': 'total_connected_count'} - def __init__(self, active_connected_count=None, application_name=None, charm=None, endpoints=None, err=None, offer_name=None, total_connected_count=None, **unknown_fields): - ''' - active_connected_count : int - application_name : str - charm : str - endpoints : typing.Mapping[str, ~RemoteEndpoint] - err : typing.Mapping[str, typing.Any] - offer_name : str - total_connected_count : int - ''' - self.active_connected_count = active_connected_count - self.application_name = application_name - self.charm = charm - self.endpoints = endpoints - self.err = err - self.offer_name = offer_name - self.total_connected_count = total_connected_count - - - -class ApplicationOffersResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ApplicationOfferResult] - ''' - self.results = [ApplicationOfferResult.from_json(o) for o in results or []] - - - -class ApplicationRelationsChange(Type): - _toSchema = {'changed': 'changed', 'removed': 'removed'} - _toPy = {'changed': 'changed', 'removed': 'removed'} - def __init__(self, changed=None, removed=None, **unknown_fields): - ''' - changed : typing.Sequence[~RelationChange] - removed : typing.Sequence[int] - ''' - self.changed = [RelationChange.from_json(o) for o in changed or []] - self.removed = removed - - - -class ApplicationRelationsWatchResult(Type): - _toSchema = {'applicationrelationswatcherid': 'ApplicationRelationsWatcherId', 'changes': 'changes', 'error': 'error'} - _toPy = {'ApplicationRelationsWatcherId': 'applicationrelationswatcherid', 'changes': 'changes', 'error': 'error'} - def __init__(self, applicationrelationswatcherid=None, changes=None, error=None, **unknown_fields): - ''' - applicationrelationswatcherid : str - changes : ApplicationRelationsChange - error : Error - ''' - self.applicationrelationswatcherid = applicationrelationswatcherid - self.changes = ApplicationRelationsChange.from_json(changes) if changes else None - self.error = Error.from_json(error) if error else None - - - -class ApplicationSet(Type): - _toSchema = {'application': 'application', 'options': 'options'} - _toPy = {'application': 'application', 'options': 'options'} - def __init__(self, application=None, options=None, **unknown_fields): - ''' - application : str - options : typing.Mapping[str, str] - ''' - self.application = application - self.options = options - - - -class ApplicationSetCharm(Type): - _toSchema = {'application': 'application', 'channel': 'channel', 'charm_url': 'charm-url', 'config_settings': 'config-settings', 'config_settings_yaml': 'config-settings-yaml', 'force_series': 'force-series', 'force_units': 'force-units', 'resource_ids': 'resource-ids', 'storage_constraints': 'storage-constraints'} - _toPy = {'application': 'application', 'channel': 'channel', 'charm-url': 'charm_url', 'config-settings': 'config_settings', 'config-settings-yaml': 'config_settings_yaml', 'force-series': 'force_series', 'force-units': 'force_units', 'resource-ids': 'resource_ids', 'storage-constraints': 'storage_constraints'} - def __init__(self, application=None, channel=None, charm_url=None, config_settings=None, config_settings_yaml=None, force_series=None, force_units=None, resource_ids=None, storage_constraints=None, **unknown_fields): - ''' - application : str - channel : str - charm_url : str - config_settings : typing.Mapping[str, str] - config_settings_yaml : str - force_series : bool - force_units : bool - resource_ids : typing.Mapping[str, str] - storage_constraints : typing.Mapping[str, ~StorageConstraints] - ''' - self.application = application - self.channel = channel - self.charm_url = charm_url - self.config_settings = config_settings - self.config_settings_yaml = config_settings_yaml - self.force_series = force_series - self.force_units = force_units - self.resource_ids = resource_ids - self.storage_constraints = storage_constraints - - - -class ApplicationSetCharmProfile(Type): - _toSchema = {'application': 'application', 'charm_url': 'charm-url'} - _toPy = {'application': 'application', 'charm-url': 'charm_url'} - def __init__(self, application=None, charm_url=None, **unknown_fields): - ''' - application : str - charm_url : str - ''' - self.application = application - self.charm_url = charm_url - - - -class ApplicationStatus(Type): - _toSchema = {'can_upgrade_to': 'can-upgrade-to', 'charm': 'charm', 'err': 'err', 'exposed': 'exposed', 'life': 'life', 'meter_statuses': 'meter-statuses', 'relations': 'relations', 'series': 'series', 'status': 'status', 'subordinate_to': 'subordinate-to', 'units': 'units', 'workload_version': 'workload-version'} - _toPy = {'can-upgrade-to': 'can_upgrade_to', 'charm': 'charm', 'err': 'err', 'exposed': 'exposed', 'life': 'life', 'meter-statuses': 'meter_statuses', 'relations': 'relations', 'series': 'series', 'status': 'status', 'subordinate-to': 'subordinate_to', 'units': 'units', 'workload-version': 'workload_version'} - def __init__(self, can_upgrade_to=None, charm=None, err=None, exposed=None, life=None, meter_statuses=None, relations=None, series=None, status=None, subordinate_to=None, units=None, workload_version=None, **unknown_fields): - ''' - can_upgrade_to : str - charm : str - err : typing.Mapping[str, typing.Any] - exposed : bool - life : str - meter_statuses : typing.Mapping[str, ~MeterStatus] - relations : typing.Sequence[str] - series : str - status : DetailedStatus - subordinate_to : typing.Sequence[str] - units : typing.Mapping[str, ~UnitStatus] - workload_version : str - ''' - self.can_upgrade_to = can_upgrade_to - self.charm = charm - self.err = err - self.exposed = exposed - self.life = life - self.meter_statuses = meter_statuses - self.relations = relations - self.series = series - self.status = DetailedStatus.from_json(status) if status else None - self.subordinate_to = subordinate_to - self.units = units - self.workload_version = workload_version - - - -class ApplicationStatusResult(Type): - _toSchema = {'application': 'application', 'error': 'error', 'units': 'units'} - _toPy = {'application': 'application', 'error': 'error', 'units': 'units'} - def __init__(self, application=None, error=None, units=None, **unknown_fields): - ''' - application : StatusResult - error : Error - units : typing.Mapping[str, ~StatusResult] - ''' - self.application = StatusResult.from_json(application) if application else None - self.error = Error.from_json(error) if error else None - self.units = units - - - -class ApplicationStatusResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ApplicationStatusResult] - ''' - self.results = [ApplicationStatusResult.from_json(o) for o in results or []] - - - -class ApplicationTag(Type): - _toSchema = {'name': 'Name'} - _toPy = {'Name': 'name'} - def __init__(self, name=None, **unknown_fields): - ''' - name : str - ''' - self.name = name - - - -class ApplicationURLs(Type): - _toSchema = {'application_urls': 'application-urls'} - _toPy = {'application-urls': 'application_urls'} - def __init__(self, application_urls=None, **unknown_fields): - ''' - application_urls : typing.Sequence[str] - ''' - self.application_urls = application_urls - - - -class ApplicationUnexpose(Type): - _toSchema = {'application': 'application'} - _toPy = {'application': 'application'} - def __init__(self, application=None, **unknown_fields): - ''' - application : str - ''' - self.application = application - - - -class ApplicationUnitParams(Type): - _toSchema = {'address': 'address', 'data': 'data', 'filesystem_info': 'filesystem-info', 'info': 'info', 'ports': 'ports', 'provider_id': 'provider-id', 'status': 'status', 'unit_tag': 'unit-tag'} - _toPy = {'address': 'address', 'data': 'data', 'filesystem-info': 'filesystem_info', 'info': 'info', 'ports': 'ports', 'provider-id': 'provider_id', 'status': 'status', 'unit-tag': 'unit_tag'} - def __init__(self, address=None, data=None, filesystem_info=None, info=None, ports=None, provider_id=None, status=None, unit_tag=None, **unknown_fields): - ''' - address : str - data : typing.Mapping[str, typing.Any] - filesystem_info : typing.Sequence[~KubernetesFilesystemInfo] - info : str - ports : typing.Sequence[str] - provider_id : str - status : str - unit_tag : str - ''' - self.address = address - self.data = data - self.filesystem_info = [KubernetesFilesystemInfo.from_json(o) for o in filesystem_info or []] - self.info = info - self.ports = ports - self.provider_id = provider_id - self.status = status - self.unit_tag = unit_tag - - - -class ApplicationUnset(Type): - _toSchema = {'application': 'application', 'options': 'options'} - _toPy = {'application': 'application', 'options': 'options'} - def __init__(self, application=None, options=None, **unknown_fields): - ''' - application : str - options : typing.Sequence[str] - ''' - self.application = application - self.options = options - - - -class ApplicationUpdate(Type): - _toSchema = {'application': 'application', 'charm_url': 'charm-url', 'constraints': 'constraints', 'force_charm_url': 'force-charm-url', 'force_series': 'force-series', 'min_units': 'min-units', 'settings': 'settings', 'settings_yaml': 'settings-yaml'} - _toPy = {'application': 'application', 'charm-url': 'charm_url', 'constraints': 'constraints', 'force-charm-url': 'force_charm_url', 'force-series': 'force_series', 'min-units': 'min_units', 'settings': 'settings', 'settings-yaml': 'settings_yaml'} - def __init__(self, application=None, charm_url=None, constraints=None, force_charm_url=None, force_series=None, min_units=None, settings=None, settings_yaml=None, **unknown_fields): - ''' - application : str - charm_url : str - constraints : Value - force_charm_url : bool - force_series : bool - min_units : int - settings : typing.Mapping[str, str] - settings_yaml : str - ''' - self.application = application - self.charm_url = charm_url - self.constraints = Value.from_json(constraints) if constraints else None - self.force_charm_url = force_charm_url - self.force_series = force_series - self.min_units = min_units - self.settings = settings - self.settings_yaml = settings_yaml - - - -class ApplicationsCharmActionsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ApplicationCharmActionsResult] - ''' - self.results = [ApplicationCharmActionsResult.from_json(o) for o in results or []] - - - -class ApplicationsDeploy(Type): - _toSchema = {'applications': 'applications'} - _toPy = {'applications': 'applications'} - def __init__(self, applications=None, **unknown_fields): - ''' - applications : typing.Sequence[~ApplicationDeploy] - ''' - self.applications = [ApplicationDeploy.from_json(o) for o in applications or []] - - - -class BackupsCreateArgs(Type): - _toSchema = {'notes': 'notes'} - _toPy = {'notes': 'notes'} - def __init__(self, notes=None, **unknown_fields): - ''' - notes : str - ''' - self.notes = notes - - - -class BackupsInfoArgs(Type): - _toSchema = {'id_': 'id'} - _toPy = {'id': 'id_'} - def __init__(self, id_=None, **unknown_fields): - ''' - id_ : str - ''' - self.id_ = id_ - - - -class BackupsListArgs(Type): - _toSchema = {} - _toPy = {} - def __init__(self, **unknown_fields): - ''' - - ''' - pass - - - -class BackupsListResult(Type): - _toSchema = {'list_': 'list'} - _toPy = {'list': 'list_'} - def __init__(self, list_=None, **unknown_fields): - ''' - list_ : typing.Sequence[~BackupsMetadataResult] - ''' - self.list_ = [BackupsMetadataResult.from_json(o) for o in list_ or []] - - - -class BackupsMetadataResult(Type): - _toSchema = {'ca_cert': 'ca-cert', 'ca_private_key': 'ca-private-key', 'checksum': 'checksum', 'checksum_format': 'checksum-format', 'finished': 'finished', 'hostname': 'hostname', 'id_': 'id', 'machine': 'machine', 'model': 'model', 'notes': 'notes', 'series': 'series', 'size': 'size', 'started': 'started', 'stored': 'stored', 'version': 'version'} - _toPy = {'ca-cert': 'ca_cert', 'ca-private-key': 'ca_private_key', 'checksum': 'checksum', 'checksum-format': 'checksum_format', 'finished': 'finished', 'hostname': 'hostname', 'id': 'id_', 'machine': 'machine', 'model': 'model', 'notes': 'notes', 'series': 'series', 'size': 'size', 'started': 'started', 'stored': 'stored', 'version': 'version'} - def __init__(self, ca_cert=None, ca_private_key=None, checksum=None, checksum_format=None, finished=None, hostname=None, id_=None, machine=None, model=None, notes=None, series=None, size=None, started=None, stored=None, version=None, **unknown_fields): - ''' - ca_cert : str - ca_private_key : str - checksum : str - checksum_format : str - finished : str - hostname : str - id_ : str - machine : str - model : str - notes : str - series : str - size : int - started : str - stored : str - version : Number - ''' - self.ca_cert = ca_cert - self.ca_private_key = ca_private_key - self.checksum = checksum - self.checksum_format = checksum_format - self.finished = finished - self.hostname = hostname - self.id_ = id_ - self.machine = machine - self.model = model - self.notes = notes - self.series = series - self.size = size - self.started = started - self.stored = stored - self.version = Number.from_json(version) if version else None - - - -class BackupsRemoveArgs(Type): - _toSchema = {'id_': 'id'} - _toPy = {'id': 'id_'} - def __init__(self, id_=None, **unknown_fields): - ''' - id_ : str - ''' - self.id_ = id_ - - - -class Binary(Type): - _toSchema = {'arch': 'Arch', 'number': 'Number', 'series': 'Series'} - _toPy = {'Arch': 'arch', 'Number': 'number', 'Series': 'series'} - def __init__(self, arch=None, number=None, series=None, **unknown_fields): - ''' - arch : str - number : Number - series : str - ''' - self.arch = arch - self.number = Number.from_json(number) if number else None - self.series = series - - - -class Block(Type): - _toSchema = {'id_': 'id', 'message': 'message', 'tag': 'tag', 'type_': 'type'} - _toPy = {'id': 'id_', 'message': 'message', 'tag': 'tag', 'type': 'type_'} - def __init__(self, id_=None, message=None, tag=None, type_=None, **unknown_fields): - ''' - id_ : str - message : str - tag : str - type_ : str - ''' - self.id_ = id_ - self.message = message - self.tag = tag - self.type_ = type_ - - - -class BlockDevice(Type): - _toSchema = {'busaddress': 'BusAddress', 'devicelinks': 'DeviceLinks', 'devicename': 'DeviceName', 'filesystemtype': 'FilesystemType', 'hardwareid': 'HardwareId', 'inuse': 'InUse', 'label': 'Label', 'mountpoint': 'MountPoint', 'size': 'Size', 'uuid': 'UUID'} - _toPy = {'BusAddress': 'busaddress', 'DeviceLinks': 'devicelinks', 'DeviceName': 'devicename', 'FilesystemType': 'filesystemtype', 'HardwareId': 'hardwareid', 'InUse': 'inuse', 'Label': 'label', 'MountPoint': 'mountpoint', 'Size': 'size', 'UUID': 'uuid'} - def __init__(self, busaddress=None, devicelinks=None, devicename=None, filesystemtype=None, hardwareid=None, inuse=None, label=None, mountpoint=None, size=None, uuid=None, **unknown_fields): - ''' - busaddress : str - devicelinks : typing.Sequence[str] - devicename : str - filesystemtype : str - hardwareid : str - inuse : bool - label : str - mountpoint : str - size : int - uuid : str - ''' - self.busaddress = busaddress - self.devicelinks = devicelinks - self.devicename = devicename - self.filesystemtype = filesystemtype - self.hardwareid = hardwareid - self.inuse = inuse - self.label = label - self.mountpoint = mountpoint - self.size = size - self.uuid = uuid - - - -class BlockDeviceResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : BlockDevice - ''' - self.error = Error.from_json(error) if error else None - self.result = BlockDevice.from_json(result) if result else None - - - -class BlockDeviceResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~BlockDeviceResult] - ''' - self.results = [BlockDeviceResult.from_json(o) for o in results or []] - - - -class BlockResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : Block - ''' - self.error = Error.from_json(error) if error else None - self.result = Block.from_json(result) if result else None - - - -class BlockResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~BlockResult] - ''' - self.results = [BlockResult.from_json(o) for o in results or []] - - - -class BlockSwitchParams(Type): - _toSchema = {'message': 'message', 'type_': 'type'} - _toPy = {'message': 'message', 'type': 'type_'} - def __init__(self, message=None, type_=None, **unknown_fields): - ''' - message : str - type_ : str - ''' - self.message = message - self.type_ = type_ - - - -class BoolResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : bool - ''' - self.error = Error.from_json(error) if error else None - self.result = result - - - -class BoolResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~BoolResult] - ''' - self.results = [BoolResult.from_json(o) for o in results or []] - - - -class BulkImportStorageParams(Type): - _toSchema = {'storage': 'storage'} - _toPy = {'storage': 'storage'} - def __init__(self, storage=None, **unknown_fields): - ''' - storage : typing.Sequence[~ImportStorageParams] - ''' - self.storage = [ImportStorageParams.from_json(o) for o in storage or []] - - - -class BundleChange(Type): - _toSchema = {'args': 'args', 'id_': 'id', 'method': 'method', 'requires': 'requires'} - _toPy = {'args': 'args', 'id': 'id_', 'method': 'method', 'requires': 'requires'} - def __init__(self, args=None, id_=None, method=None, requires=None, **unknown_fields): - ''' - args : typing.Sequence[typing.Any] - id_ : str - method : str - requires : typing.Sequence[str] - ''' - self.args = args - self.id_ = id_ - self.method = method - self.requires = requires - - - -class BundleChangesParams(Type): - _toSchema = {'yaml': 'yaml'} - _toPy = {'yaml': 'yaml'} - def __init__(self, yaml=None, **unknown_fields): - ''' - yaml : str - ''' - self.yaml = yaml - - - -class BundleChangesResults(Type): - _toSchema = {'changes': 'changes', 'errors': 'errors'} - _toPy = {'changes': 'changes', 'errors': 'errors'} - def __init__(self, changes=None, errors=None, **unknown_fields): - ''' - changes : typing.Sequence[~BundleChange] - errors : typing.Sequence[str] - ''' - self.changes = [BundleChange.from_json(o) for o in changes or []] - self.errors = errors - - - -class BytesResult(Type): - _toSchema = {'result': 'result'} - _toPy = {'result': 'result'} - def __init__(self, result=None, **unknown_fields): - ''' - result : typing.Sequence[int] - ''' - self.result = result - - - -class ChangeModelCredentialParams(Type): - _toSchema = {'credential_tag': 'credential-tag', 'model_tag': 'model-tag'} - _toPy = {'credential-tag': 'credential_tag', 'model-tag': 'model_tag'} - def __init__(self, credential_tag=None, model_tag=None, **unknown_fields): - ''' - credential_tag : str - model_tag : str - ''' - self.credential_tag = credential_tag - self.model_tag = model_tag - - - -class ChangeModelCredentialsParams(Type): - _toSchema = {'model_credentials': 'model-credentials'} - _toPy = {'model-credentials': 'model_credentials'} - def __init__(self, model_credentials=None, **unknown_fields): - ''' - model_credentials : typing.Sequence[~ChangeModelCredentialParams] - ''' - self.model_credentials = [ChangeModelCredentialParams.from_json(o) for o in model_credentials or []] - - - -class CharmActionSpec(Type): - _toSchema = {'description': 'description', 'params': 'params'} - _toPy = {'description': 'description', 'params': 'params'} - def __init__(self, description=None, params=None, **unknown_fields): - ''' - description : str - params : typing.Mapping[str, typing.Any] - ''' - self.description = description - self.params = params - - - -class CharmActions(Type): - _toSchema = {'specs': 'specs'} - _toPy = {'specs': 'specs'} - def __init__(self, specs=None, **unknown_fields): - ''' - specs : typing.Mapping[str, ~CharmActionSpec] - ''' - self.specs = specs - - - -class CharmDevice(Type): - _toSchema = {'countmax': 'CountMax', 'countmin': 'CountMin', 'description': 'Description', 'name': 'Name', 'type_': 'Type'} - _toPy = {'CountMax': 'countmax', 'CountMin': 'countmin', 'Description': 'description', 'Name': 'name', 'Type': 'type_'} - def __init__(self, countmax=None, countmin=None, description=None, name=None, type_=None, **unknown_fields): - ''' - countmax : int - countmin : int - description : str - name : str - type_ : str - ''' - self.countmax = countmax - self.countmin = countmin - self.description = description - self.name = name - self.type_ = type_ - - - -class CharmInfo(Type): - _toSchema = {'actions': 'actions', 'config': 'config', 'meta': 'meta', 'metrics': 'metrics', 'revision': 'revision', 'url': 'url'} - _toPy = {'actions': 'actions', 'config': 'config', 'meta': 'meta', 'metrics': 'metrics', 'revision': 'revision', 'url': 'url'} - def __init__(self, actions=None, config=None, meta=None, metrics=None, revision=None, url=None, **unknown_fields): - ''' - actions : CharmActions - config : typing.Mapping[str, ~CharmOption] - meta : CharmMeta - metrics : CharmMetrics - revision : int - url : str - ''' - self.actions = CharmActions.from_json(actions) if actions else None - self.config = config - self.meta = CharmMeta.from_json(meta) if meta else None - self.metrics = CharmMetrics.from_json(metrics) if metrics else None - self.revision = revision - self.url = url - - - -class CharmLXDProfile(Type): - _toSchema = {'config': 'config', 'description': 'description', 'devices': 'devices'} - _toPy = {'config': 'config', 'description': 'description', 'devices': 'devices'} - def __init__(self, config=None, description=None, devices=None, **unknown_fields): - ''' - config : typing.Mapping[str, str] - description : str - devices : typing.Mapping[str, typing.Any] - ''' - self.config = config - self.description = description - self.devices = devices - - - -class CharmMeta(Type): - _toSchema = {'categories': 'categories', 'description': 'description', 'extra_bindings': 'extra-bindings', 'min_juju_version': 'min-juju-version', 'name': 'name', 'payload_classes': 'payload-classes', 'peers': 'peers', 'provides': 'provides', 'requires': 'requires', 'resources': 'resources', 'series': 'series', 'storage': 'storage', 'subordinate': 'subordinate', 'summary': 'summary', 'tags': 'tags', 'terms': 'terms'} - _toPy = {'categories': 'categories', 'description': 'description', 'extra-bindings': 'extra_bindings', 'min-juju-version': 'min_juju_version', 'name': 'name', 'payload-classes': 'payload_classes', 'peers': 'peers', 'provides': 'provides', 'requires': 'requires', 'resources': 'resources', 'series': 'series', 'storage': 'storage', 'subordinate': 'subordinate', 'summary': 'summary', 'tags': 'tags', 'terms': 'terms'} - def __init__(self, categories=None, description=None, extra_bindings=None, min_juju_version=None, name=None, payload_classes=None, peers=None, provides=None, requires=None, resources=None, series=None, storage=None, subordinate=None, summary=None, tags=None, terms=None, **unknown_fields): - ''' - categories : typing.Sequence[str] - description : str - extra_bindings : typing.Mapping[str, str] - min_juju_version : str - name : str - payload_classes : typing.Mapping[str, ~CharmPayloadClass] - peers : typing.Mapping[str, ~CharmRelation] - provides : typing.Mapping[str, ~CharmRelation] - requires : typing.Mapping[str, ~CharmRelation] - resources : typing.Mapping[str, ~CharmResourceMeta] - series : typing.Sequence[str] - storage : typing.Mapping[str, ~CharmStorage] - subordinate : bool - summary : str - tags : typing.Sequence[str] - terms : typing.Sequence[str] - ''' - self.categories = categories - self.description = description - self.extra_bindings = extra_bindings - self.min_juju_version = min_juju_version - self.name = name - self.payload_classes = payload_classes - self.peers = peers - self.provides = provides - self.requires = requires - self.resources = resources - self.series = series - self.storage = storage - self.subordinate = subordinate - self.summary = summary - self.tags = tags - self.terms = terms - - - -class CharmMetric(Type): - _toSchema = {'description': 'description', 'type_': 'type'} - _toPy = {'description': 'description', 'type': 'type_'} - def __init__(self, description=None, type_=None, **unknown_fields): - ''' - description : str - type_ : str - ''' - self.description = description - self.type_ = type_ - - - -class CharmMetrics(Type): - _toSchema = {'metrics': 'metrics', 'plan': 'plan'} - _toPy = {'metrics': 'metrics', 'plan': 'plan'} - def __init__(self, metrics=None, plan=None, **unknown_fields): - ''' - metrics : typing.Mapping[str, ~CharmMetric] - plan : CharmPlan - ''' - self.metrics = metrics - self.plan = CharmPlan.from_json(plan) if plan else None - - - -class CharmOption(Type): - _toSchema = {'default': 'default', 'description': 'description', 'type_': 'type'} - _toPy = {'default': 'default', 'description': 'description', 'type': 'type_'} - def __init__(self, default=None, description=None, type_=None, **unknown_fields): - ''' - default : typing.Mapping[str, typing.Any] - description : str - type_ : str - ''' - self.default = default - self.description = description - self.type_ = type_ - - - -class CharmPayloadClass(Type): - _toSchema = {'name': 'name', 'type_': 'type'} - _toPy = {'name': 'name', 'type': 'type_'} - def __init__(self, name=None, type_=None, **unknown_fields): - ''' - name : str - type_ : str - ''' - self.name = name - self.type_ = type_ - - - -class CharmPlan(Type): - _toSchema = {'required': 'required'} - _toPy = {'required': 'required'} - def __init__(self, required=None, **unknown_fields): - ''' - required : bool - ''' - self.required = required - - - -class CharmRelation(Type): - _toSchema = {'interface': 'interface', 'limit': 'limit', 'name': 'name', 'optional': 'optional', 'role': 'role', 'scope': 'scope'} - _toPy = {'interface': 'interface', 'limit': 'limit', 'name': 'name', 'optional': 'optional', 'role': 'role', 'scope': 'scope'} - def __init__(self, interface=None, limit=None, name=None, optional=None, role=None, scope=None, **unknown_fields): - ''' - interface : str - limit : int - name : str - optional : bool - role : str - scope : str - ''' - self.interface = interface - self.limit = limit - self.name = name - self.optional = optional - self.role = role - self.scope = scope - - - -class CharmResource(Type): - _toSchema = {'description': 'description', 'fingerprint': 'fingerprint', 'name': 'name', 'origin': 'origin', 'path': 'path', 'revision': 'revision', 'size': 'size', 'type_': 'type'} - _toPy = {'description': 'description', 'fingerprint': 'fingerprint', 'name': 'name', 'origin': 'origin', 'path': 'path', 'revision': 'revision', 'size': 'size', 'type': 'type_'} - def __init__(self, description=None, fingerprint=None, name=None, origin=None, path=None, revision=None, size=None, type_=None, **unknown_fields): - ''' - description : str - fingerprint : typing.Sequence[int] - name : str - origin : str - path : str - revision : int - size : int - type_ : str - ''' - self.description = description - self.fingerprint = fingerprint - self.name = name - self.origin = origin - self.path = path - self.revision = revision - self.size = size - self.type_ = type_ - - - -class CharmResourceMeta(Type): - _toSchema = {'description': 'description', 'name': 'name', 'path': 'path', 'type_': 'type'} - _toPy = {'description': 'description', 'name': 'name', 'path': 'path', 'type': 'type_'} - def __init__(self, description=None, name=None, path=None, type_=None, **unknown_fields): - ''' - description : str - name : str - path : str - type_ : str - ''' - self.description = description - self.name = name - self.path = path - self.type_ = type_ - - - -class CharmStorage(Type): - _toSchema = {'count_max': 'count-max', 'count_min': 'count-min', 'description': 'description', 'location': 'location', 'minimum_size': 'minimum-size', 'name': 'name', 'properties': 'properties', 'read_only': 'read-only', 'shared': 'shared', 'type_': 'type'} - _toPy = {'count-max': 'count_max', 'count-min': 'count_min', 'description': 'description', 'location': 'location', 'minimum-size': 'minimum_size', 'name': 'name', 'properties': 'properties', 'read-only': 'read_only', 'shared': 'shared', 'type': 'type_'} - def __init__(self, count_max=None, count_min=None, description=None, location=None, minimum_size=None, name=None, properties=None, read_only=None, shared=None, type_=None, **unknown_fields): - ''' - count_max : int - count_min : int - description : str - location : str - minimum_size : int - name : str - properties : typing.Sequence[str] - read_only : bool - shared : bool - type_ : str - ''' - self.count_max = count_max - self.count_min = count_min - self.description = description - self.location = location - self.minimum_size = minimum_size - self.name = name - self.properties = properties - self.read_only = read_only - self.shared = shared - self.type_ = type_ - - - -class CharmURL(Type): - _toSchema = {'url': 'url'} - _toPy = {'url': 'url'} - def __init__(self, url=None, **unknown_fields): - ''' - url : str - ''' - self.url = url - - - -class CharmURLs(Type): - _toSchema = {'urls': 'urls'} - _toPy = {'urls': 'urls'} - def __init__(self, urls=None, **unknown_fields): - ''' - urls : typing.Sequence[~CharmURL] - ''' - self.urls = [CharmURL.from_json(o) for o in urls or []] - - - -class CharmsList(Type): - _toSchema = {'names': 'names'} - _toPy = {'names': 'names'} - def __init__(self, names=None, **unknown_fields): - ''' - names : typing.Sequence[str] - ''' - self.names = names - - - -class CharmsListResult(Type): - _toSchema = {'charm_urls': 'charm-urls'} - _toPy = {'charm-urls': 'charm_urls'} - def __init__(self, charm_urls=None, **unknown_fields): - ''' - charm_urls : typing.Sequence[str] - ''' - self.charm_urls = charm_urls - - - -class ClaimLeadershipBulkParams(Type): - _toSchema = {'params': 'params'} - _toPy = {'params': 'params'} - def __init__(self, params=None, **unknown_fields): - ''' - params : typing.Sequence[~ClaimLeadershipParams] - ''' - self.params = [ClaimLeadershipParams.from_json(o) for o in params or []] - - - -class ClaimLeadershipBulkResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ErrorResult] - ''' - self.results = [ErrorResult.from_json(o) for o in results or []] - - - -class ClaimLeadershipParams(Type): - _toSchema = {'application_tag': 'application-tag', 'duration': 'duration', 'unit_tag': 'unit-tag'} - _toPy = {'application-tag': 'application_tag', 'duration': 'duration', 'unit-tag': 'unit_tag'} - def __init__(self, application_tag=None, duration=None, unit_tag=None, **unknown_fields): - ''' - application_tag : str - duration : float - unit_tag : str - ''' - self.application_tag = application_tag - self.duration = duration - self.unit_tag = unit_tag - - - -class Cloud(Type): - _toSchema = {'auth_types': 'auth-types', 'endpoint': 'endpoint', 'identity_endpoint': 'identity-endpoint', 'regions': 'regions', 'storage_endpoint': 'storage-endpoint', 'type_': 'type'} - _toPy = {'auth-types': 'auth_types', 'endpoint': 'endpoint', 'identity-endpoint': 'identity_endpoint', 'regions': 'regions', 'storage-endpoint': 'storage_endpoint', 'type': 'type_'} - def __init__(self, auth_types=None, endpoint=None, identity_endpoint=None, regions=None, storage_endpoint=None, type_=None, **unknown_fields): - ''' - auth_types : typing.Sequence[str] - endpoint : str - identity_endpoint : str - regions : typing.Sequence[~CloudRegion] - storage_endpoint : str - type_ : str - ''' - self.auth_types = auth_types - self.endpoint = endpoint - self.identity_endpoint = identity_endpoint - self.regions = [CloudRegion.from_json(o) for o in regions or []] - self.storage_endpoint = storage_endpoint - self.type_ = type_ - - - -class CloudCredential(Type): - _toSchema = {'attrs': 'attrs', 'auth_type': 'auth-type', 'redacted': 'redacted'} - _toPy = {'attrs': 'attrs', 'auth-type': 'auth_type', 'redacted': 'redacted'} - def __init__(self, attrs=None, auth_type=None, redacted=None, **unknown_fields): - ''' - attrs : typing.Mapping[str, str] - auth_type : str - redacted : typing.Sequence[str] - ''' - self.attrs = attrs - self.auth_type = auth_type - self.redacted = redacted - - - -class CloudCredentialArg(Type): - _toSchema = {'cloud_name': 'cloud-name', 'credential_name': 'credential-name'} - _toPy = {'cloud-name': 'cloud_name', 'credential-name': 'credential_name'} - def __init__(self, cloud_name=None, credential_name=None, **unknown_fields): - ''' - cloud_name : str - credential_name : str - ''' - self.cloud_name = cloud_name - self.credential_name = credential_name - - - -class CloudCredentialArgs(Type): - _toSchema = {'credentials': 'credentials', 'include_secrets': 'include-secrets'} - _toPy = {'credentials': 'credentials', 'include-secrets': 'include_secrets'} - def __init__(self, credentials=None, include_secrets=None, **unknown_fields): - ''' - credentials : typing.Sequence[~CloudCredentialArg] - include_secrets : bool - ''' - self.credentials = [CloudCredentialArg.from_json(o) for o in credentials or []] - self.include_secrets = include_secrets - - - -class CloudCredentialResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : CloudCredential - ''' - self.error = Error.from_json(error) if error else None - self.result = CloudCredential.from_json(result) if result else None - - - -class CloudCredentialResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~CloudCredentialResult] - ''' - self.results = [CloudCredentialResult.from_json(o) for o in results or []] - - - -class CloudDetails(Type): - _toSchema = {'auth_types': 'auth-types', 'endpoint': 'endpoint', 'identity_endpoint': 'identity-endpoint', 'regions': 'regions', 'storage_endpoint': 'storage-endpoint', 'type_': 'type'} - _toPy = {'auth-types': 'auth_types', 'endpoint': 'endpoint', 'identity-endpoint': 'identity_endpoint', 'regions': 'regions', 'storage-endpoint': 'storage_endpoint', 'type': 'type_'} - def __init__(self, auth_types=None, endpoint=None, identity_endpoint=None, regions=None, storage_endpoint=None, type_=None, **unknown_fields): - ''' - auth_types : typing.Sequence[str] - endpoint : str - identity_endpoint : str - regions : typing.Sequence[~CloudRegion] - storage_endpoint : str - type_ : str - ''' - self.auth_types = auth_types - self.endpoint = endpoint - self.identity_endpoint = identity_endpoint - self.regions = [CloudRegion.from_json(o) for o in regions or []] - self.storage_endpoint = storage_endpoint - self.type_ = type_ - - - -class CloudImageMetadata(Type): - _toSchema = {'arch': 'arch', 'image_id': 'image-id', 'priority': 'priority', 'region': 'region', 'root_storage_size': 'root-storage-size', 'root_storage_type': 'root-storage-type', 'series': 'series', 'source': 'source', 'stream': 'stream', 'version': 'version', 'virt_type': 'virt-type'} - _toPy = {'arch': 'arch', 'image-id': 'image_id', 'priority': 'priority', 'region': 'region', 'root-storage-size': 'root_storage_size', 'root-storage-type': 'root_storage_type', 'series': 'series', 'source': 'source', 'stream': 'stream', 'version': 'version', 'virt-type': 'virt_type'} - def __init__(self, arch=None, image_id=None, priority=None, region=None, root_storage_size=None, root_storage_type=None, series=None, source=None, stream=None, version=None, virt_type=None, **unknown_fields): - ''' - arch : str - image_id : str - priority : int - region : str - root_storage_size : int - root_storage_type : str - series : str - source : str - stream : str - version : str - virt_type : str - ''' - self.arch = arch - self.image_id = image_id - self.priority = priority - self.region = region - self.root_storage_size = root_storage_size - self.root_storage_type = root_storage_type - self.series = series - self.source = source - self.stream = stream - self.version = version - self.virt_type = virt_type - - - -class CloudImageMetadataList(Type): - _toSchema = {'metadata': 'metadata'} - _toPy = {'metadata': 'metadata'} - def __init__(self, metadata=None, **unknown_fields): - ''' - metadata : typing.Sequence[~CloudImageMetadata] - ''' - self.metadata = [CloudImageMetadata.from_json(o) for o in metadata or []] - - - -class CloudInfo(Type): - _toSchema = {'clouddetails': 'CloudDetails', 'users': 'users'} - _toPy = {'CloudDetails': 'clouddetails', 'users': 'users'} - def __init__(self, clouddetails=None, users=None, **unknown_fields): - ''' - clouddetails : CloudDetails - users : typing.Sequence[~CloudUserInfo] - ''' - self.clouddetails = CloudDetails.from_json(clouddetails) if clouddetails else None - self.users = [CloudUserInfo.from_json(o) for o in users or []] - - - -class CloudInfoResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : CloudInfo - ''' - self.error = Error.from_json(error) if error else None - self.result = CloudInfo.from_json(result) if result else None - - - -class CloudInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~CloudInfoResult] - ''' - self.results = [CloudInfoResult.from_json(o) for o in results or []] - - - -class CloudInstanceTypesConstraint(Type): - _toSchema = {'cloud_tag': 'cloud-tag', 'constraints': 'constraints', 'region': 'region'} - _toPy = {'cloud-tag': 'cloud_tag', 'constraints': 'constraints', 'region': 'region'} - def __init__(self, cloud_tag=None, constraints=None, region=None, **unknown_fields): - ''' - cloud_tag : str - constraints : Value - region : str - ''' - self.cloud_tag = cloud_tag - self.constraints = Value.from_json(constraints) if constraints else None - self.region = region - - - -class CloudInstanceTypesConstraints(Type): - _toSchema = {'constraints': 'constraints'} - _toPy = {'constraints': 'constraints'} - def __init__(self, constraints=None, **unknown_fields): - ''' - constraints : typing.Sequence[~CloudInstanceTypesConstraint] - ''' - self.constraints = [CloudInstanceTypesConstraint.from_json(o) for o in constraints or []] - - - -class CloudRegion(Type): - _toSchema = {'endpoint': 'endpoint', 'identity_endpoint': 'identity-endpoint', 'name': 'name', 'storage_endpoint': 'storage-endpoint'} - _toPy = {'endpoint': 'endpoint', 'identity-endpoint': 'identity_endpoint', 'name': 'name', 'storage-endpoint': 'storage_endpoint'} - def __init__(self, endpoint=None, identity_endpoint=None, name=None, storage_endpoint=None, **unknown_fields): - ''' - endpoint : str - identity_endpoint : str - name : str - storage_endpoint : str - ''' - self.endpoint = endpoint - self.identity_endpoint = identity_endpoint - self.name = name - self.storage_endpoint = storage_endpoint - - - -class CloudResult(Type): - _toSchema = {'cloud': 'cloud', 'error': 'error'} - _toPy = {'cloud': 'cloud', 'error': 'error'} - def __init__(self, cloud=None, error=None, **unknown_fields): - ''' - cloud : Cloud - error : Error - ''' - self.cloud = Cloud.from_json(cloud) if cloud else None - self.error = Error.from_json(error) if error else None - - - -class CloudResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~CloudResult] - ''' - self.results = [CloudResult.from_json(o) for o in results or []] - - - -class CloudSpec(Type): - _toSchema = {'credential': 'credential', 'endpoint': 'endpoint', 'identity_endpoint': 'identity-endpoint', 'name': 'name', 'region': 'region', 'storage_endpoint': 'storage-endpoint', 'type_': 'type'} - _toPy = {'credential': 'credential', 'endpoint': 'endpoint', 'identity-endpoint': 'identity_endpoint', 'name': 'name', 'region': 'region', 'storage-endpoint': 'storage_endpoint', 'type': 'type_'} - def __init__(self, credential=None, endpoint=None, identity_endpoint=None, name=None, region=None, storage_endpoint=None, type_=None, **unknown_fields): - ''' - credential : CloudCredential - endpoint : str - identity_endpoint : str - name : str - region : str - storage_endpoint : str - type_ : str - ''' - self.credential = CloudCredential.from_json(credential) if credential else None - self.endpoint = endpoint - self.identity_endpoint = identity_endpoint - self.name = name - self.region = region - self.storage_endpoint = storage_endpoint - self.type_ = type_ - - - -class CloudSpecResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : CloudSpec - ''' - self.error = Error.from_json(error) if error else None - self.result = CloudSpec.from_json(result) if result else None - - - -class CloudSpecResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~CloudSpecResult] - ''' - self.results = [CloudSpecResult.from_json(o) for o in results or []] - - - -class CloudUserInfo(Type): - _toSchema = {'access': 'access', 'display_name': 'display-name', 'user': 'user'} - _toPy = {'access': 'access', 'display-name': 'display_name', 'user': 'user'} - def __init__(self, access=None, display_name=None, user=None, **unknown_fields): - ''' - access : str - display_name : str - user : str - ''' - self.access = access - self.display_name = display_name - self.user = user - - - -class CloudsResult(Type): - _toSchema = {'clouds': 'clouds'} - _toPy = {'clouds': 'clouds'} - def __init__(self, clouds=None, **unknown_fields): - ''' - clouds : typing.Mapping[str, ~Cloud] - ''' - self.clouds = clouds - - - -class ConfigResult(Type): - _toSchema = {'config': 'config', 'error': 'error'} - _toPy = {'config': 'config', 'error': 'error'} - def __init__(self, config=None, error=None, **unknown_fields): - ''' - config : typing.Mapping[str, typing.Any] - error : Error - ''' - self.config = config - self.error = Error.from_json(error) if error else None - - - -class ConfigSettingsResult(Type): - _toSchema = {'error': 'error', 'settings': 'settings'} - _toPy = {'error': 'error', 'settings': 'settings'} - def __init__(self, error=None, settings=None, **unknown_fields): - ''' - error : Error - settings : typing.Mapping[str, typing.Any] - ''' - self.error = Error.from_json(error) if error else None - self.settings = settings - - - -class ConfigSettingsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ConfigSettingsResult] - ''' - self.results = [ConfigSettingsResult.from_json(o) for o in results or []] - - - -class ConfigValue(Type): - _toSchema = {'source': 'source', 'value': 'value'} - _toPy = {'source': 'source', 'value': 'value'} - def __init__(self, source=None, value=None, **unknown_fields): - ''' - source : str - value : typing.Mapping[str, typing.Any] - ''' - self.source = source - self.value = value - - - -class Constraints(Type): - _toSchema = {'count': 'Count', 'pool': 'Pool', 'size': 'Size'} - _toPy = {'Count': 'count', 'Pool': 'pool', 'Size': 'size'} - def __init__(self, count=None, pool=None, size=None, **unknown_fields): - ''' - count : int - pool : str - size : int - ''' - self.count = count - self.pool = pool - self.size = size - - - -class ConstraintsResult(Type): - _toSchema = {'constraints': 'constraints', 'error': 'error'} - _toPy = {'constraints': 'constraints', 'error': 'error'} - def __init__(self, constraints=None, error=None, **unknown_fields): - ''' - constraints : Value - error : Error - ''' - self.constraints = Value.from_json(constraints) if constraints else None - self.error = Error.from_json(error) if error else None - - - -class ConstraintsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ConstraintsResult] - ''' - self.results = [ConstraintsResult.from_json(o) for o in results or []] - - - -class ConsumeApplicationArg(Type): - _toSchema = {'application_alias': 'application-alias', 'application_url': 'application-url'} - _toPy = {'application-alias': 'application_alias', 'application-url': 'application_url'} - def __init__(self, application_alias=None, application_url=None, **unknown_fields): - ''' - application_alias : str - application_url : str - ''' - self.application_alias = application_alias - self.application_url = application_url - - - -class ConsumeApplicationArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~ConsumeApplicationArg] - ''' - self.args = [ConsumeApplicationArg.from_json(o) for o in args or []] - - - -class ConsumeApplicationResult(Type): - _toSchema = {'error': 'error', 'local_name': 'local-name'} - _toPy = {'error': 'error', 'local-name': 'local_name'} - def __init__(self, error=None, local_name=None, **unknown_fields): - ''' - error : Error - local_name : str - ''' - self.error = Error.from_json(error) if error else None - self.local_name = local_name - - - -class ConsumeApplicationResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ConsumeApplicationResult] - ''' - self.results = [ConsumeApplicationResult.from_json(o) for o in results or []] - - - -class ConsumeOfferDetails(Type): - _toSchema = {'external_controller': 'external-controller', 'macaroon': 'macaroon', 'offer': 'offer'} - _toPy = {'external-controller': 'external_controller', 'macaroon': 'macaroon', 'offer': 'offer'} - def __init__(self, external_controller=None, macaroon=None, offer=None, **unknown_fields): - ''' - external_controller : ExternalControllerInfo - macaroon : Macaroon - offer : ApplicationOfferDetails - ''' - self.external_controller = ExternalControllerInfo.from_json(external_controller) if external_controller else None - self.macaroon = Macaroon.from_json(macaroon) if macaroon else None - self.offer = ApplicationOfferDetails.from_json(offer) if offer else None - - - -class ConsumeOfferDetailsResult(Type): - _toSchema = {'consumeofferdetails': 'ConsumeOfferDetails', 'error': 'error'} - _toPy = {'ConsumeOfferDetails': 'consumeofferdetails', 'error': 'error'} - def __init__(self, consumeofferdetails=None, error=None, **unknown_fields): - ''' - consumeofferdetails : ConsumeOfferDetails - error : Error - ''' - self.consumeofferdetails = ConsumeOfferDetails.from_json(consumeofferdetails) if consumeofferdetails else None - self.error = Error.from_json(error) if error else None - - - -class ConsumeOfferDetailsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ConsumeOfferDetailsResult] - ''' - self.results = [ConsumeOfferDetailsResult.from_json(o) for o in results or []] - - - -class ContainerConfig(Type): - _toSchema = {'apt_mirror': 'apt-mirror', 'apt_proxy': 'apt-proxy', 'authorized_keys': 'authorized-keys', 'provider_type': 'provider-type', 'proxy': 'proxy', 'ssl_hostname_verification': 'ssl-hostname-verification', 'updatebehavior': 'UpdateBehavior'} - _toPy = {'UpdateBehavior': 'updatebehavior', 'apt-mirror': 'apt_mirror', 'apt-proxy': 'apt_proxy', 'authorized-keys': 'authorized_keys', 'provider-type': 'provider_type', 'proxy': 'proxy', 'ssl-hostname-verification': 'ssl_hostname_verification'} - def __init__(self, updatebehavior=None, apt_mirror=None, apt_proxy=None, authorized_keys=None, provider_type=None, proxy=None, ssl_hostname_verification=None, **unknown_fields): - ''' - updatebehavior : UpdateBehavior - apt_mirror : str - apt_proxy : Settings - authorized_keys : str - provider_type : str - proxy : Settings - ssl_hostname_verification : bool - ''' - self.updatebehavior = UpdateBehavior.from_json(updatebehavior) if updatebehavior else None - self.apt_mirror = apt_mirror - self.apt_proxy = Settings.from_json(apt_proxy) if apt_proxy else None - self.authorized_keys = authorized_keys - self.provider_type = provider_type - self.proxy = Settings.from_json(proxy) if proxy else None - self.ssl_hostname_verification = ssl_hostname_verification - - - -class ContainerLXDProfile(Type): - _toSchema = {'name': 'name', 'profile': 'profile'} - _toPy = {'name': 'name', 'profile': 'profile'} - def __init__(self, name=None, profile=None, **unknown_fields): - ''' - name : str - profile : CharmLXDProfile - ''' - self.name = name - self.profile = CharmLXDProfile.from_json(profile) if profile else None - - - -class ContainerManagerConfig(Type): - _toSchema = {'config': 'config'} - _toPy = {'config': 'config'} - def __init__(self, config=None, **unknown_fields): - ''' - config : typing.Mapping[str, str] - ''' - self.config = config - - - -class ContainerManagerConfigParams(Type): - _toSchema = {'type_': 'type'} - _toPy = {'type': 'type_'} - def __init__(self, type_=None, **unknown_fields): - ''' - type_ : str - ''' - self.type_ = type_ - - - -class ContainerProfileResult(Type): - _toSchema = {'error': 'error', 'lxd_profiles': 'lxd-profiles'} - _toPy = {'error': 'error', 'lxd-profiles': 'lxd_profiles'} - def __init__(self, error=None, lxd_profiles=None, **unknown_fields): - ''' - error : Error - lxd_profiles : typing.Sequence[~ContainerLXDProfile] - ''' - self.error = Error.from_json(error) if error else None - self.lxd_profiles = [ContainerLXDProfile.from_json(o) for o in lxd_profiles or []] - - - -class ContainerProfileResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ContainerProfileResult] - ''' - self.results = [ContainerProfileResult.from_json(o) for o in results or []] - - - -class ControllerAPIInfoResult(Type): - _toSchema = {'addresses': 'addresses', 'cacert': 'cacert', 'error': 'error'} - _toPy = {'addresses': 'addresses', 'cacert': 'cacert', 'error': 'error'} - def __init__(self, addresses=None, cacert=None, error=None, **unknown_fields): - ''' - addresses : typing.Sequence[str] - cacert : str - error : Error - ''' - self.addresses = addresses - self.cacert = cacert - self.error = Error.from_json(error) if error else None - - - -class ControllerAPIInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ControllerAPIInfoResult] - ''' - self.results = [ControllerAPIInfoResult.from_json(o) for o in results or []] - - - -class ControllerConfigResult(Type): - _toSchema = {'config': 'config'} - _toPy = {'config': 'config'} - def __init__(self, config=None, **unknown_fields): - ''' - config : typing.Mapping[str, typing.Any] - ''' - self.config = config - - - -class ControllerConfigSet(Type): - _toSchema = {'config': 'config'} - _toPy = {'config': 'config'} - def __init__(self, config=None, **unknown_fields): - ''' - config : typing.Mapping[str, typing.Any] - ''' - self.config = config - - - -class ControllerCredentialInfo(Type): - _toSchema = {'content': 'content', 'models': 'models'} - _toPy = {'content': 'content', 'models': 'models'} - def __init__(self, content=None, models=None, **unknown_fields): - ''' - content : CredentialContent - models : typing.Sequence[~ModelAccess] - ''' - self.content = CredentialContent.from_json(content) if content else None - self.models = [ModelAccess.from_json(o) for o in models or []] - - - -class ControllersChangeResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : ControllersChanges - ''' - self.error = Error.from_json(error) if error else None - self.result = ControllersChanges.from_json(result) if result else None - - - -class ControllersChangeResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ControllersChangeResult] - ''' - self.results = [ControllersChangeResult.from_json(o) for o in results or []] - - - -class ControllersChanges(Type): - _toSchema = {'added': 'added', 'converted': 'converted', 'demoted': 'demoted', 'maintained': 'maintained', 'promoted': 'promoted', 'removed': 'removed'} - _toPy = {'added': 'added', 'converted': 'converted', 'demoted': 'demoted', 'maintained': 'maintained', 'promoted': 'promoted', 'removed': 'removed'} - def __init__(self, added=None, converted=None, demoted=None, maintained=None, promoted=None, removed=None, **unknown_fields): - ''' - added : typing.Sequence[str] - converted : typing.Sequence[str] - demoted : typing.Sequence[str] - maintained : typing.Sequence[str] - promoted : typing.Sequence[str] - removed : typing.Sequence[str] - ''' - self.added = added - self.converted = converted - self.demoted = demoted - self.maintained = maintained - self.promoted = promoted - self.removed = removed - - - -class ControllersSpec(Type): - _toSchema = {'constraints': 'constraints', 'num_controllers': 'num-controllers', 'placement': 'placement', 'series': 'series'} - _toPy = {'constraints': 'constraints', 'num-controllers': 'num_controllers', 'placement': 'placement', 'series': 'series'} - def __init__(self, constraints=None, num_controllers=None, placement=None, series=None, **unknown_fields): - ''' - constraints : Value - num_controllers : int - placement : typing.Sequence[str] - series : str - ''' - self.constraints = Value.from_json(constraints) if constraints else None - self.num_controllers = num_controllers - self.placement = placement - self.series = series - - - -class ControllersSpecs(Type): - _toSchema = {'specs': 'specs'} - _toPy = {'specs': 'specs'} - def __init__(self, specs=None, **unknown_fields): - ''' - specs : typing.Sequence[~ControllersSpec] - ''' - self.specs = [ControllersSpec.from_json(o) for o in specs or []] - - - -class CreateSpaceParams(Type): - _toSchema = {'provider_id': 'provider-id', 'public': 'public', 'space_tag': 'space-tag', 'subnet_tags': 'subnet-tags'} - _toPy = {'provider-id': 'provider_id', 'public': 'public', 'space-tag': 'space_tag', 'subnet-tags': 'subnet_tags'} - def __init__(self, provider_id=None, public=None, space_tag=None, subnet_tags=None, **unknown_fields): - ''' - provider_id : str - public : bool - space_tag : str - subnet_tags : typing.Sequence[str] - ''' - self.provider_id = provider_id - self.public = public - self.space_tag = space_tag - self.subnet_tags = subnet_tags - - - -class CreateSpacesParams(Type): - _toSchema = {'spaces': 'spaces'} - _toPy = {'spaces': 'spaces'} - def __init__(self, spaces=None, **unknown_fields): - ''' - spaces : typing.Sequence[~CreateSpaceParams] - ''' - self.spaces = [CreateSpaceParams.from_json(o) for o in spaces or []] - - - -class CredentialContent(Type): - _toSchema = {'attrs': 'attrs', 'auth_type': 'auth-type', 'cloud': 'cloud', 'name': 'name'} - _toPy = {'attrs': 'attrs', 'auth-type': 'auth_type', 'cloud': 'cloud', 'name': 'name'} - def __init__(self, attrs=None, auth_type=None, cloud=None, name=None, **unknown_fields): - ''' - attrs : typing.Mapping[str, str] - auth_type : str - cloud : str - name : str - ''' - self.attrs = attrs - self.auth_type = auth_type - self.cloud = cloud - self.name = name - - - -class CredentialContentResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : ControllerCredentialInfo - ''' - self.error = Error.from_json(error) if error else None - self.result = ControllerCredentialInfo.from_json(result) if result else None - - - -class CredentialContentResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~CredentialContentResult] - ''' - self.results = [CredentialContentResult.from_json(o) for o in results or []] - - - -class Delta(Type): - _toSchema = {'entity': 'entity', 'removed': 'removed'} - _toPy = {'entity': 'entity', 'removed': 'removed'} - def __init__(self, entity=None, removed=None, **unknown_fields): - ''' - entity : typing.Mapping[str, typing.Any] - removed : bool - ''' - self.entity = entity - self.removed = removed - - - -class DeployerConnectionValues(Type): - _toSchema = {'api_addresses': 'api-addresses', 'state_addresses': 'state-addresses'} - _toPy = {'api-addresses': 'api_addresses', 'state-addresses': 'state_addresses'} - def __init__(self, api_addresses=None, state_addresses=None, **unknown_fields): - ''' - api_addresses : typing.Sequence[str] - state_addresses : typing.Sequence[str] - ''' - self.api_addresses = api_addresses - self.state_addresses = state_addresses - - - -class DestroyApplicationInfo(Type): - _toSchema = {'destroyed_storage': 'destroyed-storage', 'destroyed_units': 'destroyed-units', 'detached_storage': 'detached-storage'} - _toPy = {'destroyed-storage': 'destroyed_storage', 'destroyed-units': 'destroyed_units', 'detached-storage': 'detached_storage'} - def __init__(self, destroyed_storage=None, destroyed_units=None, detached_storage=None, **unknown_fields): - ''' - destroyed_storage : typing.Sequence[~Entity] - destroyed_units : typing.Sequence[~Entity] - detached_storage : typing.Sequence[~Entity] - ''' - self.destroyed_storage = [Entity.from_json(o) for o in destroyed_storage or []] - self.destroyed_units = [Entity.from_json(o) for o in destroyed_units or []] - self.detached_storage = [Entity.from_json(o) for o in detached_storage or []] - - - -class DestroyApplicationOffers(Type): - _toSchema = {'force': 'force', 'offer_urls': 'offer-urls'} - _toPy = {'force': 'force', 'offer-urls': 'offer_urls'} - def __init__(self, force=None, offer_urls=None, **unknown_fields): - ''' - force : bool - offer_urls : typing.Sequence[str] - ''' - self.force = force - self.offer_urls = offer_urls - - - -class DestroyApplicationParams(Type): - _toSchema = {'application_tag': 'application-tag', 'destroy_storage': 'destroy-storage'} - _toPy = {'application-tag': 'application_tag', 'destroy-storage': 'destroy_storage'} - def __init__(self, application_tag=None, destroy_storage=None, **unknown_fields): - ''' - application_tag : str - destroy_storage : bool - ''' - self.application_tag = application_tag - self.destroy_storage = destroy_storage - - - -class DestroyApplicationResult(Type): - _toSchema = {'error': 'error', 'info': 'info'} - _toPy = {'error': 'error', 'info': 'info'} - def __init__(self, error=None, info=None, **unknown_fields): - ''' - error : Error - info : DestroyApplicationInfo - ''' - self.error = Error.from_json(error) if error else None - self.info = DestroyApplicationInfo.from_json(info) if info else None - - - -class DestroyApplicationResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~DestroyApplicationResult] - ''' - self.results = [DestroyApplicationResult.from_json(o) for o in results or []] - - - -class DestroyApplicationUnits(Type): - _toSchema = {'unit_names': 'unit-names'} - _toPy = {'unit-names': 'unit_names'} - def __init__(self, unit_names=None, **unknown_fields): - ''' - unit_names : typing.Sequence[str] - ''' - self.unit_names = unit_names - - - -class DestroyApplicationsParams(Type): - _toSchema = {'applications': 'applications'} - _toPy = {'applications': 'applications'} - def __init__(self, applications=None, **unknown_fields): - ''' - applications : typing.Sequence[~DestroyApplicationParams] - ''' - self.applications = [DestroyApplicationParams.from_json(o) for o in applications or []] - - - -class DestroyConsumedApplicationParams(Type): - _toSchema = {'application_tag': 'application-tag'} - _toPy = {'application-tag': 'application_tag'} - def __init__(self, application_tag=None, **unknown_fields): - ''' - application_tag : str - ''' - self.application_tag = application_tag - - - -class DestroyConsumedApplicationsParams(Type): - _toSchema = {'applications': 'applications'} - _toPy = {'applications': 'applications'} - def __init__(self, applications=None, **unknown_fields): - ''' - applications : typing.Sequence[~DestroyConsumedApplicationParams] - ''' - self.applications = [DestroyConsumedApplicationParams.from_json(o) for o in applications or []] - - - -class DestroyControllerArgs(Type): - _toSchema = {'destroy_models': 'destroy-models'} - _toPy = {'destroy-models': 'destroy_models'} - def __init__(self, destroy_models=None, **unknown_fields): - ''' - destroy_models : bool - ''' - self.destroy_models = destroy_models - - - -class DestroyMachineInfo(Type): - _toSchema = {'destroyed_storage': 'destroyed-storage', 'destroyed_units': 'destroyed-units', 'detached_storage': 'detached-storage'} - _toPy = {'destroyed-storage': 'destroyed_storage', 'destroyed-units': 'destroyed_units', 'detached-storage': 'detached_storage'} - def __init__(self, destroyed_storage=None, destroyed_units=None, detached_storage=None, **unknown_fields): - ''' - destroyed_storage : typing.Sequence[~Entity] - destroyed_units : typing.Sequence[~Entity] - detached_storage : typing.Sequence[~Entity] - ''' - self.destroyed_storage = [Entity.from_json(o) for o in destroyed_storage or []] - self.destroyed_units = [Entity.from_json(o) for o in destroyed_units or []] - self.detached_storage = [Entity.from_json(o) for o in detached_storage or []] - - - -class DestroyMachineResult(Type): - _toSchema = {'error': 'error', 'info': 'info'} - _toPy = {'error': 'error', 'info': 'info'} - def __init__(self, error=None, info=None, **unknown_fields): - ''' - error : Error - info : DestroyMachineInfo - ''' - self.error = Error.from_json(error) if error else None - self.info = DestroyMachineInfo.from_json(info) if info else None - - - -class DestroyMachineResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~DestroyMachineResult] - ''' - self.results = [DestroyMachineResult.from_json(o) for o in results or []] - - - -class DestroyMachines(Type): - _toSchema = {'force': 'force', 'machine_names': 'machine-names'} - _toPy = {'force': 'force', 'machine-names': 'machine_names'} - def __init__(self, force=None, machine_names=None, **unknown_fields): - ''' - force : bool - machine_names : typing.Sequence[str] - ''' - self.force = force - self.machine_names = machine_names - - - -class DestroyMachinesParams(Type): - _toSchema = {'force': 'force', 'keep': 'keep', 'machine_tags': 'machine-tags'} - _toPy = {'force': 'force', 'keep': 'keep', 'machine-tags': 'machine_tags'} - def __init__(self, force=None, keep=None, machine_tags=None, **unknown_fields): - ''' - force : bool - keep : bool - machine_tags : typing.Sequence[str] - ''' - self.force = force - self.keep = keep - self.machine_tags = machine_tags - - - -class DestroyModelParams(Type): - _toSchema = {'destroy_storage': 'destroy-storage', 'model_tag': 'model-tag'} - _toPy = {'destroy-storage': 'destroy_storage', 'model-tag': 'model_tag'} - def __init__(self, destroy_storage=None, model_tag=None, **unknown_fields): - ''' - destroy_storage : bool - model_tag : str - ''' - self.destroy_storage = destroy_storage - self.model_tag = model_tag - - - -class DestroyModelsParams(Type): - _toSchema = {'models': 'models'} - _toPy = {'models': 'models'} - def __init__(self, models=None, **unknown_fields): - ''' - models : typing.Sequence[~DestroyModelParams] - ''' - self.models = [DestroyModelParams.from_json(o) for o in models or []] - - - -class DestroyRelation(Type): - _toSchema = {'endpoints': 'endpoints'} - _toPy = {'endpoints': 'endpoints'} - def __init__(self, endpoints=None, **unknown_fields): - ''' - endpoints : typing.Sequence[str] - ''' - self.endpoints = endpoints - - - -class DestroyUnitInfo(Type): - _toSchema = {'destroyed_storage': 'destroyed-storage', 'detached_storage': 'detached-storage'} - _toPy = {'destroyed-storage': 'destroyed_storage', 'detached-storage': 'detached_storage'} - def __init__(self, destroyed_storage=None, detached_storage=None, **unknown_fields): - ''' - destroyed_storage : typing.Sequence[~Entity] - detached_storage : typing.Sequence[~Entity] - ''' - self.destroyed_storage = [Entity.from_json(o) for o in destroyed_storage or []] - self.detached_storage = [Entity.from_json(o) for o in detached_storage or []] - - - -class DestroyUnitParams(Type): - _toSchema = {'destroy_storage': 'destroy-storage', 'unit_tag': 'unit-tag'} - _toPy = {'destroy-storage': 'destroy_storage', 'unit-tag': 'unit_tag'} - def __init__(self, destroy_storage=None, unit_tag=None, **unknown_fields): - ''' - destroy_storage : bool - unit_tag : str - ''' - self.destroy_storage = destroy_storage - self.unit_tag = unit_tag - - - -class DestroyUnitResult(Type): - _toSchema = {'error': 'error', 'info': 'info'} - _toPy = {'error': 'error', 'info': 'info'} - def __init__(self, error=None, info=None, **unknown_fields): - ''' - error : Error - info : DestroyUnitInfo - ''' - self.error = Error.from_json(error) if error else None - self.info = DestroyUnitInfo.from_json(info) if info else None - - - -class DestroyUnitResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~DestroyUnitResult] - ''' - self.results = [DestroyUnitResult.from_json(o) for o in results or []] - - - -class DestroyUnitsParams(Type): - _toSchema = {'units': 'units'} - _toPy = {'units': 'units'} - def __init__(self, units=None, **unknown_fields): - ''' - units : typing.Sequence[~DestroyUnitParams] - ''' - self.units = [DestroyUnitParams.from_json(o) for o in units or []] - - - -class DetailedStatus(Type): - _toSchema = {'data': 'data', 'err': 'err', 'info': 'info', 'kind': 'kind', 'life': 'life', 'since': 'since', 'status': 'status', 'version': 'version'} - _toPy = {'data': 'data', 'err': 'err', 'info': 'info', 'kind': 'kind', 'life': 'life', 'since': 'since', 'status': 'status', 'version': 'version'} - def __init__(self, data=None, err=None, info=None, kind=None, life=None, since=None, status=None, version=None, **unknown_fields): - ''' - data : typing.Mapping[str, typing.Any] - err : typing.Mapping[str, typing.Any] - info : str - kind : str - life : str - since : str - status : str - version : str - ''' - self.data = data - self.err = err - self.info = info - self.kind = kind - self.life = life - self.since = since - self.status = status - self.version = version - - - -class DeviceBridgeInfo(Type): - _toSchema = {'bridge_name': 'bridge-name', 'host_device_name': 'host-device-name'} - _toPy = {'bridge-name': 'bridge_name', 'host-device-name': 'host_device_name'} - def __init__(self, bridge_name=None, host_device_name=None, **unknown_fields): - ''' - bridge_name : str - host_device_name : str - ''' - self.bridge_name = bridge_name - self.host_device_name = host_device_name - - - -class DiscoverSpacesResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ProviderSpace] - ''' - self.results = [ProviderSpace.from_json(o) for o in results or []] - - - -class DistributionGroupResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : typing.Sequence[str] - ''' - self.error = Error.from_json(error) if error else None - self.result = result - - - -class DistributionGroupResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~DistributionGroupResult] - ''' - self.results = [DistributionGroupResult.from_json(o) for o in results or []] - - - -class DumpModelRequest(Type): - _toSchema = {'entities': 'entities', 'simplified': 'simplified'} - _toPy = {'entities': 'entities', 'simplified': 'simplified'} - def __init__(self, entities=None, simplified=None, **unknown_fields): - ''' - entities : typing.Sequence[~Entity] - simplified : bool - ''' - self.entities = [Entity.from_json(o) for o in entities or []] - self.simplified = simplified - - - -class Endpoint(Type): - _toSchema = {'application_name': 'application-name', 'relation': 'relation'} - _toPy = {'application-name': 'application_name', 'relation': 'relation'} - def __init__(self, application_name=None, relation=None, **unknown_fields): - ''' - application_name : str - relation : CharmRelation - ''' - self.application_name = application_name - self.relation = CharmRelation.from_json(relation) if relation else None - - - -class EndpointFilterAttributes(Type): - _toSchema = {'interface': 'interface', 'name': 'name', 'role': 'role'} - _toPy = {'interface': 'interface', 'name': 'name', 'role': 'role'} - def __init__(self, interface=None, name=None, role=None, **unknown_fields): - ''' - interface : str - name : str - role : str - ''' - self.interface = interface - self.name = name - self.role = role - - - -class EndpointStatus(Type): - _toSchema = {'application': 'application', 'name': 'name', 'role': 'role', 'subordinate': 'subordinate'} - _toPy = {'application': 'application', 'name': 'name', 'role': 'role', 'subordinate': 'subordinate'} - def __init__(self, application=None, name=None, role=None, subordinate=None, **unknown_fields): - ''' - application : str - name : str - role : str - subordinate : bool - ''' - self.application = application - self.name = name - self.role = role - self.subordinate = subordinate - - - -class Entities(Type): - _toSchema = {'entities': 'entities'} - _toPy = {'entities': 'entities'} - def __init__(self, entities=None, **unknown_fields): - ''' - entities : typing.Sequence[~Entity] - ''' - self.entities = [Entity.from_json(o) for o in entities or []] - - - -class EntitiesCharmURL(Type): - _toSchema = {'entities': 'entities'} - _toPy = {'entities': 'entities'} - def __init__(self, entities=None, **unknown_fields): - ''' - entities : typing.Sequence[~EntityCharmURL] - ''' - self.entities = [EntityCharmURL.from_json(o) for o in entities or []] - - - -class EntitiesPortRanges(Type): - _toSchema = {'entities': 'entities'} - _toPy = {'entities': 'entities'} - def __init__(self, entities=None, **unknown_fields): - ''' - entities : typing.Sequence[~EntityPortRange] - ''' - self.entities = [EntityPortRange.from_json(o) for o in entities or []] - - - -class EntitiesResult(Type): - _toSchema = {'entities': 'entities', 'error': 'error'} - _toPy = {'entities': 'entities', 'error': 'error'} - def __init__(self, entities=None, error=None, **unknown_fields): - ''' - entities : typing.Sequence[~Entity] - error : Error - ''' - self.entities = [Entity.from_json(o) for o in entities or []] - self.error = Error.from_json(error) if error else None - - - -class EntitiesResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~EntitiesResult] - ''' - self.results = [EntitiesResult.from_json(o) for o in results or []] - - - -class EntitiesVersion(Type): - _toSchema = {'agent_tools': 'agent-tools'} - _toPy = {'agent-tools': 'agent_tools'} - def __init__(self, agent_tools=None, **unknown_fields): - ''' - agent_tools : typing.Sequence[~EntityVersion] - ''' - self.agent_tools = [EntityVersion.from_json(o) for o in agent_tools or []] - - - -class EntitiesWatchResult(Type): - _toSchema = {'changes': 'changes', 'error': 'error', 'watcher_id': 'watcher-id'} - _toPy = {'changes': 'changes', 'error': 'error', 'watcher-id': 'watcher_id'} - def __init__(self, changes=None, error=None, watcher_id=None, **unknown_fields): - ''' - changes : typing.Sequence[str] - error : Error - watcher_id : str - ''' - self.changes = changes - self.error = Error.from_json(error) if error else None - self.watcher_id = watcher_id - - - -class Entity(Type): - _toSchema = {'tag': 'tag'} - _toPy = {'tag': 'tag'} - def __init__(self, tag=None, **unknown_fields): - ''' - tag : str - ''' - self.tag = tag - - - -class EntityAnnotations(Type): - _toSchema = {'annotations': 'annotations', 'entity': 'entity'} - _toPy = {'annotations': 'annotations', 'entity': 'entity'} - def __init__(self, annotations=None, entity=None, **unknown_fields): - ''' - annotations : typing.Mapping[str, str] - entity : str - ''' - self.annotations = annotations - self.entity = entity - - - -class EntityCharmURL(Type): - _toSchema = {'charm_url': 'charm-url', 'tag': 'tag'} - _toPy = {'charm-url': 'charm_url', 'tag': 'tag'} - def __init__(self, charm_url=None, tag=None, **unknown_fields): - ''' - charm_url : str - tag : str - ''' - self.charm_url = charm_url - self.tag = tag - - - -class EntityMacaroonArg(Type): - _toSchema = {'macaroon': 'macaroon', 'tag': 'tag'} - _toPy = {'macaroon': 'macaroon', 'tag': 'tag'} - def __init__(self, macaroon=None, tag=None, **unknown_fields): - ''' - macaroon : Macaroon - tag : str - ''' - self.macaroon = Macaroon.from_json(macaroon) if macaroon else None - self.tag = tag - - - -class EntityMacaroonArgs(Type): - _toSchema = {'args': 'Args'} - _toPy = {'Args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~EntityMacaroonArg] - ''' - self.args = [EntityMacaroonArg.from_json(o) for o in args or []] - - - -class EntityMetrics(Type): - _toSchema = {'error': 'error', 'metrics': 'metrics'} - _toPy = {'error': 'error', 'metrics': 'metrics'} - def __init__(self, error=None, metrics=None, **unknown_fields): - ''' - error : Error - metrics : typing.Sequence[~MetricResult] - ''' - self.error = Error.from_json(error) if error else None - self.metrics = [MetricResult.from_json(o) for o in metrics or []] - - - -class EntityPassword(Type): - _toSchema = {'password': 'password', 'tag': 'tag'} - _toPy = {'password': 'password', 'tag': 'tag'} - def __init__(self, password=None, tag=None, **unknown_fields): - ''' - password : str - tag : str - ''' - self.password = password - self.tag = tag - - - -class EntityPasswords(Type): - _toSchema = {'changes': 'changes'} - _toPy = {'changes': 'changes'} - def __init__(self, changes=None, **unknown_fields): - ''' - changes : typing.Sequence[~EntityPassword] - ''' - self.changes = [EntityPassword.from_json(o) for o in changes or []] - - - -class EntityPortRange(Type): - _toSchema = {'from_port': 'from-port', 'protocol': 'protocol', 'tag': 'tag', 'to_port': 'to-port'} - _toPy = {'from-port': 'from_port', 'protocol': 'protocol', 'tag': 'tag', 'to-port': 'to_port'} - def __init__(self, from_port=None, protocol=None, tag=None, to_port=None, **unknown_fields): - ''' - from_port : int - protocol : str - tag : str - to_port : int - ''' - self.from_port = from_port - self.protocol = protocol - self.tag = tag - self.to_port = to_port - - - -class EntityStatus(Type): - _toSchema = {'data': 'data', 'info': 'info', 'since': 'since', 'status': 'status'} - _toPy = {'data': 'data', 'info': 'info', 'since': 'since', 'status': 'status'} - def __init__(self, data=None, info=None, since=None, status=None, **unknown_fields): - ''' - data : typing.Mapping[str, typing.Any] - info : str - since : str - status : str - ''' - self.data = data - self.info = info - self.since = since - self.status = status - - - -class EntityStatusArgs(Type): - _toSchema = {'data': 'data', 'info': 'info', 'status': 'status', 'tag': 'tag'} - _toPy = {'data': 'data', 'info': 'info', 'status': 'status', 'tag': 'tag'} - def __init__(self, data=None, info=None, status=None, tag=None, **unknown_fields): - ''' - data : typing.Mapping[str, typing.Any] - info : str - status : str - tag : str - ''' - self.data = data - self.info = info - self.status = status - self.tag = tag - - - -class EntityString(Type): - _toSchema = {'tag': 'tag', 'value': 'value'} - _toPy = {'tag': 'tag', 'value': 'value'} - def __init__(self, tag=None, value=None, **unknown_fields): - ''' - tag : str - value : str - ''' - self.tag = tag - self.value = value - - - -class EntityVersion(Type): - _toSchema = {'tag': 'tag', 'tools': 'tools'} - _toPy = {'tag': 'tag', 'tools': 'tools'} - def __init__(self, tag=None, tools=None, **unknown_fields): - ''' - tag : str - tools : Version - ''' - self.tag = tag - self.tools = Version.from_json(tools) if tools else None - - - -class EntityWorkloadVersion(Type): - _toSchema = {'tag': 'tag', 'workload_version': 'workload-version'} - _toPy = {'tag': 'tag', 'workload-version': 'workload_version'} - def __init__(self, tag=None, workload_version=None, **unknown_fields): - ''' - tag : str - workload_version : str - ''' - self.tag = tag - self.workload_version = workload_version - - - -class EntityWorkloadVersions(Type): - _toSchema = {'entities': 'entities'} - _toPy = {'entities': 'entities'} - def __init__(self, entities=None, **unknown_fields): - ''' - entities : typing.Sequence[~EntityWorkloadVersion] - ''' - self.entities = [EntityWorkloadVersion.from_json(o) for o in entities or []] - - - -class EnvListArgs(Type): - _toSchema = {'patterns': 'patterns'} - _toPy = {'patterns': 'patterns'} - def __init__(self, patterns=None, **unknown_fields): - ''' - patterns : typing.Sequence[str] - ''' - self.patterns = patterns - - - -class EnvListResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~Payload] - ''' - self.results = [Payload.from_json(o) for o in results or []] - - - -class Error(Type): - _toSchema = {'code': 'code', 'info': 'info', 'message': 'message'} - _toPy = {'code': 'code', 'info': 'info', 'message': 'message'} - def __init__(self, code=None, info=None, message=None, **unknown_fields): - ''' - code : str - info : ErrorInfo - message : str - ''' - self.code = code - self.info = ErrorInfo.from_json(info) if info else None - self.message = message - - - -class ErrorInfo(Type): - _toSchema = {'macaroon': 'macaroon', 'macaroon_path': 'macaroon-path'} - _toPy = {'macaroon': 'macaroon', 'macaroon-path': 'macaroon_path'} - def __init__(self, macaroon=None, macaroon_path=None, **unknown_fields): - ''' - macaroon : Macaroon - macaroon_path : str - ''' - self.macaroon = Macaroon.from_json(macaroon) if macaroon else None - self.macaroon_path = macaroon_path - - - -class ErrorResult(Type): - _toSchema = {'error': 'error'} - _toPy = {'error': 'error'} - def __init__(self, error=None, **unknown_fields): - ''' - error : Error - ''' - self.error = Error.from_json(error) if error else None - - - -class ErrorResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ErrorResult] - ''' - self.results = [ErrorResult.from_json(o) for o in results or []] - - - -class ExternalControllerInfo(Type): - _toSchema = {'addrs': 'addrs', 'ca_cert': 'ca-cert', 'controller_alias': 'controller-alias', 'controller_tag': 'controller-tag'} - _toPy = {'addrs': 'addrs', 'ca-cert': 'ca_cert', 'controller-alias': 'controller_alias', 'controller-tag': 'controller_tag'} - def __init__(self, addrs=None, ca_cert=None, controller_alias=None, controller_tag=None, **unknown_fields): - ''' - addrs : typing.Sequence[str] - ca_cert : str - controller_alias : str - controller_tag : str - ''' - self.addrs = addrs - self.ca_cert = ca_cert - self.controller_alias = controller_alias - self.controller_tag = controller_tag - - - -class ExternalControllerInfoResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : ExternalControllerInfo - ''' - self.error = Error.from_json(error) if error else None - self.result = ExternalControllerInfo.from_json(result) if result else None - - - -class ExternalControllerInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ExternalControllerInfoResult] - ''' - self.results = [ExternalControllerInfoResult.from_json(o) for o in results or []] - - - -class FanConfigEntry(Type): - _toSchema = {'overlay': 'overlay', 'underlay': 'underlay'} - _toPy = {'overlay': 'overlay', 'underlay': 'underlay'} - def __init__(self, overlay=None, underlay=None, **unknown_fields): - ''' - overlay : str - underlay : str - ''' - self.overlay = overlay - self.underlay = underlay - - - -class FanConfigResult(Type): - _toSchema = {'fans': 'fans'} - _toPy = {'fans': 'fans'} - def __init__(self, fans=None, **unknown_fields): - ''' - fans : typing.Sequence[~FanConfigEntry] - ''' - self.fans = [FanConfigEntry.from_json(o) for o in fans or []] - - - -class Filesystem(Type): - _toSchema = {'filesystem_tag': 'filesystem-tag', 'info': 'info', 'volume_tag': 'volume-tag'} - _toPy = {'filesystem-tag': 'filesystem_tag', 'info': 'info', 'volume-tag': 'volume_tag'} - def __init__(self, filesystem_tag=None, info=None, volume_tag=None, **unknown_fields): - ''' - filesystem_tag : str - info : FilesystemInfo - volume_tag : str - ''' - self.filesystem_tag = filesystem_tag - self.info = FilesystemInfo.from_json(info) if info else None - self.volume_tag = volume_tag - - - -class FilesystemAttachment(Type): - _toSchema = {'filesystem_tag': 'filesystem-tag', 'info': 'info', 'machine_tag': 'machine-tag'} - _toPy = {'filesystem-tag': 'filesystem_tag', 'info': 'info', 'machine-tag': 'machine_tag'} - def __init__(self, filesystem_tag=None, info=None, machine_tag=None, **unknown_fields): - ''' - filesystem_tag : str - info : FilesystemAttachmentInfo - machine_tag : str - ''' - self.filesystem_tag = filesystem_tag - self.info = FilesystemAttachmentInfo.from_json(info) if info else None - self.machine_tag = machine_tag - - - -class FilesystemAttachmentDetails(Type): - _toSchema = {'filesystemattachmentinfo': 'FilesystemAttachmentInfo', 'life': 'life'} - _toPy = {'FilesystemAttachmentInfo': 'filesystemattachmentinfo', 'life': 'life'} - def __init__(self, filesystemattachmentinfo=None, life=None, **unknown_fields): - ''' - filesystemattachmentinfo : FilesystemAttachmentInfo - life : str - ''' - self.filesystemattachmentinfo = FilesystemAttachmentInfo.from_json(filesystemattachmentinfo) if filesystemattachmentinfo else None - self.life = life - - - -class FilesystemAttachmentInfo(Type): - _toSchema = {'mount_point': 'mount-point', 'read_only': 'read-only'} - _toPy = {'mount-point': 'mount_point', 'read-only': 'read_only'} - def __init__(self, mount_point=None, read_only=None, **unknown_fields): - ''' - mount_point : str - read_only : bool - ''' - self.mount_point = mount_point - self.read_only = read_only - - - -class FilesystemAttachmentParams(Type): - _toSchema = {'filesystem_id': 'filesystem-id', 'filesystem_tag': 'filesystem-tag', 'instance_id': 'instance-id', 'machine_tag': 'machine-tag', 'mount_point': 'mount-point', 'provider': 'provider', 'read_only': 'read-only'} - _toPy = {'filesystem-id': 'filesystem_id', 'filesystem-tag': 'filesystem_tag', 'instance-id': 'instance_id', 'machine-tag': 'machine_tag', 'mount-point': 'mount_point', 'provider': 'provider', 'read-only': 'read_only'} - def __init__(self, filesystem_id=None, filesystem_tag=None, instance_id=None, machine_tag=None, mount_point=None, provider=None, read_only=None, **unknown_fields): - ''' - filesystem_id : str - filesystem_tag : str - instance_id : str - machine_tag : str - mount_point : str - provider : str - read_only : bool - ''' - self.filesystem_id = filesystem_id - self.filesystem_tag = filesystem_tag - self.instance_id = instance_id - self.machine_tag = machine_tag - self.mount_point = mount_point - self.provider = provider - self.read_only = read_only - - - -class FilesystemAttachmentParamsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : FilesystemAttachmentParams - ''' - self.error = Error.from_json(error) if error else None - self.result = FilesystemAttachmentParams.from_json(result) if result else None - - - -class FilesystemAttachmentParamsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~FilesystemAttachmentParamsResult] - ''' - self.results = [FilesystemAttachmentParamsResult.from_json(o) for o in results or []] - - - -class FilesystemAttachmentResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : FilesystemAttachment - ''' - self.error = Error.from_json(error) if error else None - self.result = FilesystemAttachment.from_json(result) if result else None - - - -class FilesystemAttachmentResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~FilesystemAttachmentResult] - ''' - self.results = [FilesystemAttachmentResult.from_json(o) for o in results or []] - - - -class FilesystemAttachments(Type): - _toSchema = {'filesystem_attachments': 'filesystem-attachments'} - _toPy = {'filesystem-attachments': 'filesystem_attachments'} - def __init__(self, filesystem_attachments=None, **unknown_fields): - ''' - filesystem_attachments : typing.Sequence[~FilesystemAttachment] - ''' - self.filesystem_attachments = [FilesystemAttachment.from_json(o) for o in filesystem_attachments or []] - - - -class FilesystemDetails(Type): - _toSchema = {'filesystem_tag': 'filesystem-tag', 'info': 'info', 'machine_attachments': 'machine-attachments', 'status': 'status', 'storage': 'storage', 'volume_tag': 'volume-tag'} - _toPy = {'filesystem-tag': 'filesystem_tag', 'info': 'info', 'machine-attachments': 'machine_attachments', 'status': 'status', 'storage': 'storage', 'volume-tag': 'volume_tag'} - def __init__(self, filesystem_tag=None, info=None, machine_attachments=None, status=None, storage=None, volume_tag=None, **unknown_fields): - ''' - filesystem_tag : str - info : FilesystemInfo - machine_attachments : typing.Mapping[str, ~FilesystemAttachmentInfo] - status : EntityStatus - storage : StorageDetails - volume_tag : str - ''' - self.filesystem_tag = filesystem_tag - self.info = FilesystemInfo.from_json(info) if info else None - self.machine_attachments = machine_attachments - self.status = EntityStatus.from_json(status) if status else None - self.storage = StorageDetails.from_json(storage) if storage else None - self.volume_tag = volume_tag - - - -class FilesystemDetailsListResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : typing.Sequence[~FilesystemDetails] - ''' - self.error = Error.from_json(error) if error else None - self.result = [FilesystemDetails.from_json(o) for o in result or []] - - - -class FilesystemDetailsListResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~FilesystemDetailsListResult] - ''' - self.results = [FilesystemDetailsListResult.from_json(o) for o in results or []] - - - -class FilesystemFilter(Type): - _toSchema = {'machines': 'machines'} - _toPy = {'machines': 'machines'} - def __init__(self, machines=None, **unknown_fields): - ''' - machines : typing.Sequence[str] - ''' - self.machines = machines - - - -class FilesystemFilters(Type): - _toSchema = {'filters': 'filters'} - _toPy = {'filters': 'filters'} - def __init__(self, filters=None, **unknown_fields): - ''' - filters : typing.Sequence[~FilesystemFilter] - ''' - self.filters = [FilesystemFilter.from_json(o) for o in filters or []] - - - -class FilesystemInfo(Type): - _toSchema = {'filesystem_id': 'filesystem-id', 'size': 'size'} - _toPy = {'filesystem-id': 'filesystem_id', 'size': 'size'} - def __init__(self, filesystem_id=None, size=None, **unknown_fields): - ''' - filesystem_id : str - size : int - ''' - self.filesystem_id = filesystem_id - self.size = size - - - -class FilesystemParams(Type): - _toSchema = {'attachment': 'attachment', 'attributes': 'attributes', 'filesystem_tag': 'filesystem-tag', 'provider': 'provider', 'size': 'size', 'tags': 'tags', 'volume_tag': 'volume-tag'} - _toPy = {'attachment': 'attachment', 'attributes': 'attributes', 'filesystem-tag': 'filesystem_tag', 'provider': 'provider', 'size': 'size', 'tags': 'tags', 'volume-tag': 'volume_tag'} - def __init__(self, attachment=None, attributes=None, filesystem_tag=None, provider=None, size=None, tags=None, volume_tag=None, **unknown_fields): - ''' - attachment : FilesystemAttachmentParams - attributes : typing.Mapping[str, typing.Any] - filesystem_tag : str - provider : str - size : int - tags : typing.Mapping[str, str] - volume_tag : str - ''' - self.attachment = FilesystemAttachmentParams.from_json(attachment) if attachment else None - self.attributes = attributes - self.filesystem_tag = filesystem_tag - self.provider = provider - self.size = size - self.tags = tags - self.volume_tag = volume_tag - - - -class FilesystemParamsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : FilesystemParams - ''' - self.error = Error.from_json(error) if error else None - self.result = FilesystemParams.from_json(result) if result else None - - - -class FilesystemParamsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~FilesystemParamsResult] - ''' - self.results = [FilesystemParamsResult.from_json(o) for o in results or []] - - - -class FilesystemResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : Filesystem - ''' - self.error = Error.from_json(error) if error else None - self.result = Filesystem.from_json(result) if result else None - - - -class FilesystemResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~FilesystemResult] - ''' - self.results = [FilesystemResult.from_json(o) for o in results or []] - - - -class Filesystems(Type): - _toSchema = {'filesystems': 'filesystems'} - _toPy = {'filesystems': 'filesystems'} - def __init__(self, filesystems=None, **unknown_fields): - ''' - filesystems : typing.Sequence[~Filesystem] - ''' - self.filesystems = [Filesystem.from_json(o) for o in filesystems or []] - - - -class FindActionsByNames(Type): - _toSchema = {'names': 'names'} - _toPy = {'names': 'names'} - def __init__(self, names=None, **unknown_fields): - ''' - names : typing.Sequence[str] - ''' - self.names = names - - - -class FindTags(Type): - _toSchema = {'prefixes': 'prefixes'} - _toPy = {'prefixes': 'prefixes'} - def __init__(self, prefixes=None, **unknown_fields): - ''' - prefixes : typing.Sequence[str] - ''' - self.prefixes = prefixes - - - -class FindTagsResults(Type): - _toSchema = {'matches': 'matches'} - _toPy = {'matches': 'matches'} - def __init__(self, matches=None, **unknown_fields): - ''' - matches : typing.Sequence[~Entity] - ''' - self.matches = [Entity.from_json(o) for o in matches or []] - - - -class FindToolsParams(Type): - _toSchema = {'arch': 'arch', 'major': 'major', 'minor': 'minor', 'number': 'number', 'series': 'series'} - _toPy = {'arch': 'arch', 'major': 'major', 'minor': 'minor', 'number': 'number', 'series': 'series'} - def __init__(self, arch=None, major=None, minor=None, number=None, series=None, **unknown_fields): - ''' - arch : str - major : int - minor : int - number : Number - series : str - ''' - self.arch = arch - self.major = major - self.minor = minor - self.number = Number.from_json(number) if number else None - self.series = series - - - -class FindToolsResult(Type): - _toSchema = {'error': 'error', 'list_': 'list'} - _toPy = {'error': 'error', 'list': 'list_'} - def __init__(self, error=None, list_=None, **unknown_fields): - ''' - error : Error - list_ : typing.Sequence[~Tools] - ''' - self.error = Error.from_json(error) if error else None - self.list_ = [Tools.from_json(o) for o in list_ or []] - - - -class FirewallRule(Type): - _toSchema = {'known_service': 'known-service', 'whitelist_cidrs': 'whitelist-cidrs'} - _toPy = {'known-service': 'known_service', 'whitelist-cidrs': 'whitelist_cidrs'} - def __init__(self, known_service=None, whitelist_cidrs=None, **unknown_fields): - ''' - known_service : str - whitelist_cidrs : typing.Sequence[str] - ''' - self.known_service = known_service - self.whitelist_cidrs = whitelist_cidrs - - - -class FirewallRuleArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~FirewallRule] - ''' - self.args = [FirewallRule.from_json(o) for o in args or []] - - - -class FullStatus(Type): - _toSchema = {'applications': 'applications', 'controller_timestamp': 'controller-timestamp', 'machines': 'machines', 'model': 'model', 'offers': 'offers', 'relations': 'relations', 'remote_applications': 'remote-applications'} - _toPy = {'applications': 'applications', 'controller-timestamp': 'controller_timestamp', 'machines': 'machines', 'model': 'model', 'offers': 'offers', 'relations': 'relations', 'remote-applications': 'remote_applications'} - def __init__(self, applications=None, controller_timestamp=None, machines=None, model=None, offers=None, relations=None, remote_applications=None, **unknown_fields): - ''' - applications : typing.Mapping[str, ~ApplicationStatus] - controller_timestamp : str - machines : typing.Mapping[str, ~MachineStatus] - model : ModelStatusInfo - offers : typing.Mapping[str, ~ApplicationOfferStatus] - relations : typing.Sequence[~RelationStatus] - remote_applications : typing.Mapping[str, ~RemoteApplicationStatus] - ''' - self.applications = applications - self.controller_timestamp = controller_timestamp - self.machines = machines - self.model = ModelStatusInfo.from_json(model) if model else None - self.offers = offers - self.relations = [RelationStatus.from_json(o) for o in relations or []] - self.remote_applications = remote_applications - - - -class GetApplicationConstraints(Type): - _toSchema = {'application': 'application'} - _toPy = {'application': 'application'} - def __init__(self, application=None, **unknown_fields): - ''' - application : str - ''' - self.application = application - - - -class GetConstraintsResults(Type): - _toSchema = {'constraints': 'constraints'} - _toPy = {'constraints': 'constraints'} - def __init__(self, constraints=None, **unknown_fields): - ''' - constraints : Value - ''' - self.constraints = Value.from_json(constraints) if constraints else None - - - -class GetLeadershipSettingsBulkResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~GetLeadershipSettingsResult] - ''' - self.results = [GetLeadershipSettingsResult.from_json(o) for o in results or []] - - - -class GetLeadershipSettingsResult(Type): - _toSchema = {'error': 'error', 'settings': 'settings'} - _toPy = {'error': 'error', 'settings': 'settings'} - def __init__(self, error=None, settings=None, **unknown_fields): - ''' - error : Error - settings : typing.Mapping[str, str] - ''' - self.error = Error.from_json(error) if error else None - self.settings = settings - - - -class GetTokenArg(Type): - _toSchema = {'tag': 'tag'} - _toPy = {'tag': 'tag'} - def __init__(self, tag=None, **unknown_fields): - ''' - tag : str - ''' - self.tag = tag - - - -class GetTokenArgs(Type): - _toSchema = {'args': 'Args'} - _toPy = {'Args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~GetTokenArg] - ''' - self.args = [GetTokenArg.from_json(o) for o in args or []] - - - -class GoalState(Type): - _toSchema = {'relations': 'relations', 'units': 'units'} - _toPy = {'relations': 'relations', 'units': 'units'} - def __init__(self, relations=None, units=None, **unknown_fields): - ''' - relations : typing.Mapping[str, typing.Any] - units : typing.Mapping[str, ~GoalStateStatus] - ''' - self.relations = relations - self.units = units - - - -class GoalStateResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : GoalState - ''' - self.error = Error.from_json(error) if error else None - self.result = GoalState.from_json(result) if result else None - - - -class GoalStateResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~GoalStateResult] - ''' - self.results = [GoalStateResult.from_json(o) for o in results or []] - - - -class GoalStateStatus(Type): - _toSchema = {'since': 'since', 'status': 'status'} - _toPy = {'since': 'since', 'status': 'status'} - def __init__(self, since=None, status=None, **unknown_fields): - ''' - since : str - status : str - ''' - self.since = since - self.status = status - - - -class HAMember(Type): - _toSchema = {'public_address': 'public-address', 'series': 'series', 'tag': 'tag'} - _toPy = {'public-address': 'public_address', 'series': 'series', 'tag': 'tag'} - def __init__(self, public_address=None, series=None, tag=None, **unknown_fields): - ''' - public_address : Address - series : str - tag : str - ''' - self.public_address = Address.from_json(public_address) if public_address else None - self.series = series - self.tag = tag - - - -class HardwareCharacteristics(Type): - _toSchema = {'arch': 'arch', 'availability_zone': 'availability-zone', 'cpu_cores': 'cpu-cores', 'cpu_power': 'cpu-power', 'mem': 'mem', 'root_disk': 'root-disk', 'tags': 'tags'} - _toPy = {'arch': 'arch', 'availability-zone': 'availability_zone', 'cpu-cores': 'cpu_cores', 'cpu-power': 'cpu_power', 'mem': 'mem', 'root-disk': 'root_disk', 'tags': 'tags'} - def __init__(self, arch=None, availability_zone=None, cpu_cores=None, cpu_power=None, mem=None, root_disk=None, tags=None, **unknown_fields): - ''' - arch : str - availability_zone : str - cpu_cores : int - cpu_power : int - mem : int - root_disk : int - tags : typing.Sequence[str] - ''' - self.arch = arch - self.availability_zone = availability_zone - self.cpu_cores = cpu_cores - self.cpu_power = cpu_power - self.mem = mem - self.root_disk = root_disk - self.tags = tags - - - -class History(Type): - _toSchema = {'error': 'error', 'statuses': 'statuses'} - _toPy = {'error': 'error', 'statuses': 'statuses'} - def __init__(self, error=None, statuses=None, **unknown_fields): - ''' - error : Error - statuses : typing.Sequence[~DetailedStatus] - ''' - self.error = Error.from_json(error) if error else None - self.statuses = [DetailedStatus.from_json(o) for o in statuses or []] - - - -class HostNetworkChange(Type): - _toSchema = {'error': 'error', 'new_bridges': 'new-bridges', 'reconfigure_delay': 'reconfigure-delay'} - _toPy = {'error': 'error', 'new-bridges': 'new_bridges', 'reconfigure-delay': 'reconfigure_delay'} - def __init__(self, error=None, new_bridges=None, reconfigure_delay=None, **unknown_fields): - ''' - error : Error - new_bridges : typing.Sequence[~DeviceBridgeInfo] - reconfigure_delay : int - ''' - self.error = Error.from_json(error) if error else None - self.new_bridges = [DeviceBridgeInfo.from_json(o) for o in new_bridges or []] - self.reconfigure_delay = reconfigure_delay - - - -class HostNetworkChangeResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~HostNetworkChange] - ''' - self.results = [HostNetworkChange.from_json(o) for o in results or []] - - - -class HostPort(Type): - _toSchema = {'address': 'Address', 'port': 'port'} - _toPy = {'Address': 'address', 'port': 'port'} - def __init__(self, address=None, port=None, **unknown_fields): - ''' - address : Address - port : int - ''' - self.address = Address.from_json(address) if address else None - self.port = port - - - -class HostedModelConfig(Type): - _toSchema = {'cloud_spec': 'cloud-spec', 'config': 'config', 'error': 'error', 'name': 'name', 'owner': 'owner'} - _toPy = {'cloud-spec': 'cloud_spec', 'config': 'config', 'error': 'error', 'name': 'name', 'owner': 'owner'} - def __init__(self, cloud_spec=None, config=None, error=None, name=None, owner=None, **unknown_fields): - ''' - cloud_spec : CloudSpec - config : typing.Mapping[str, typing.Any] - error : Error - name : str - owner : str - ''' - self.cloud_spec = CloudSpec.from_json(cloud_spec) if cloud_spec else None - self.config = config - self.error = Error.from_json(error) if error else None - self.name = name - self.owner = owner - - - -class HostedModelConfigsResults(Type): - _toSchema = {'models': 'models'} - _toPy = {'models': 'models'} - def __init__(self, models=None, **unknown_fields): - ''' - models : typing.Sequence[~HostedModelConfig] - ''' - self.models = [HostedModelConfig.from_json(o) for o in models or []] - - - -class ImageFilterParams(Type): - _toSchema = {'images': 'images'} - _toPy = {'images': 'images'} - def __init__(self, images=None, **unknown_fields): - ''' - images : typing.Sequence[~ImageSpec] - ''' - self.images = [ImageSpec.from_json(o) for o in images or []] - - - -class ImageMetadata(Type): - _toSchema = {'arch': 'arch', 'created': 'created', 'kind': 'kind', 'series': 'series', 'url': 'url'} - _toPy = {'arch': 'arch', 'created': 'created', 'kind': 'kind', 'series': 'series', 'url': 'url'} - def __init__(self, arch=None, created=None, kind=None, series=None, url=None, **unknown_fields): - ''' - arch : str - created : str - kind : str - series : str - url : str - ''' - self.arch = arch - self.created = created - self.kind = kind - self.series = series - self.url = url - - - -class ImageMetadataFilter(Type): - _toSchema = {'arches': 'arches', 'region': 'region', 'root_storage_type': 'root-storage-type', 'series': 'series', 'stream': 'stream', 'virt_type': 'virt-type'} - _toPy = {'arches': 'arches', 'region': 'region', 'root-storage-type': 'root_storage_type', 'series': 'series', 'stream': 'stream', 'virt-type': 'virt_type'} - def __init__(self, arches=None, region=None, root_storage_type=None, series=None, stream=None, virt_type=None, **unknown_fields): - ''' - arches : typing.Sequence[str] - region : str - root_storage_type : str - series : typing.Sequence[str] - stream : str - virt_type : str - ''' - self.arches = arches - self.region = region - self.root_storage_type = root_storage_type - self.series = series - self.stream = stream - self.virt_type = virt_type - - - -class ImageSpec(Type): - _toSchema = {'arch': 'arch', 'kind': 'kind', 'series': 'series'} - _toPy = {'arch': 'arch', 'kind': 'kind', 'series': 'series'} - def __init__(self, arch=None, kind=None, series=None, **unknown_fields): - ''' - arch : str - kind : str - series : str - ''' - self.arch = arch - self.kind = kind - self.series = series - - - -class ImportStorageDetails(Type): - _toSchema = {'storage_tag': 'storage-tag'} - _toPy = {'storage-tag': 'storage_tag'} - def __init__(self, storage_tag=None, **unknown_fields): - ''' - storage_tag : str - ''' - self.storage_tag = storage_tag - - - -class ImportStorageParams(Type): - _toSchema = {'kind': 'kind', 'pool': 'pool', 'provider_id': 'provider-id', 'storage_name': 'storage-name'} - _toPy = {'kind': 'kind', 'pool': 'pool', 'provider-id': 'provider_id', 'storage-name': 'storage_name'} - def __init__(self, kind=None, pool=None, provider_id=None, storage_name=None, **unknown_fields): - ''' - kind : int - pool : str - provider_id : str - storage_name : str - ''' - self.kind = kind - self.pool = pool - self.provider_id = provider_id - self.storage_name = storage_name - - - -class ImportStorageResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : ImportStorageDetails - ''' - self.error = Error.from_json(error) if error else None - self.result = ImportStorageDetails.from_json(result) if result else None - - - -class ImportStorageResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ImportStorageResult] - ''' - self.results = [ImportStorageResult.from_json(o) for o in results or []] - - - -class IngressNetworksChangeEvent(Type): - _toSchema = {'application_token': 'application-token', 'ingress_required': 'ingress-required', 'macaroons': 'macaroons', 'networks': 'networks', 'relation_token': 'relation-token'} - _toPy = {'application-token': 'application_token', 'ingress-required': 'ingress_required', 'macaroons': 'macaroons', 'networks': 'networks', 'relation-token': 'relation_token'} - def __init__(self, application_token=None, ingress_required=None, macaroons=None, networks=None, relation_token=None, **unknown_fields): - ''' - application_token : str - ingress_required : bool - macaroons : typing.Sequence[~Macaroon] - networks : typing.Sequence[str] - relation_token : str - ''' - self.application_token = application_token - self.ingress_required = ingress_required - self.macaroons = [Macaroon.from_json(o) for o in macaroons or []] - self.networks = networks - self.relation_token = relation_token - - - -class IngressNetworksChanges(Type): - _toSchema = {'changes': 'changes'} - _toPy = {'changes': 'changes'} - def __init__(self, changes=None, **unknown_fields): - ''' - changes : typing.Sequence[~IngressNetworksChangeEvent] - ''' - self.changes = [IngressNetworksChangeEvent.from_json(o) for o in changes or []] - - - -class InitiateMigrationArgs(Type): - _toSchema = {'specs': 'specs'} - _toPy = {'specs': 'specs'} - def __init__(self, specs=None, **unknown_fields): - ''' - specs : typing.Sequence[~MigrationSpec] - ''' - self.specs = [MigrationSpec.from_json(o) for o in specs or []] - - - -class InitiateMigrationResult(Type): - _toSchema = {'error': 'error', 'migration_id': 'migration-id', 'model_tag': 'model-tag'} - _toPy = {'error': 'error', 'migration-id': 'migration_id', 'model-tag': 'model_tag'} - def __init__(self, error=None, migration_id=None, model_tag=None, **unknown_fields): - ''' - error : Error - migration_id : str - model_tag : str - ''' - self.error = Error.from_json(error) if error else None - self.migration_id = migration_id - self.model_tag = model_tag - - - -class InitiateMigrationResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~InitiateMigrationResult] - ''' - self.results = [InitiateMigrationResult.from_json(o) for o in results or []] - - - -class InstanceInfo(Type): - _toSchema = {'characteristics': 'characteristics', 'instance_id': 'instance-id', 'network_config': 'network-config', 'nonce': 'nonce', 'tag': 'tag', 'volume_attachments': 'volume-attachments', 'volumes': 'volumes'} - _toPy = {'characteristics': 'characteristics', 'instance-id': 'instance_id', 'network-config': 'network_config', 'nonce': 'nonce', 'tag': 'tag', 'volume-attachments': 'volume_attachments', 'volumes': 'volumes'} - def __init__(self, characteristics=None, instance_id=None, network_config=None, nonce=None, tag=None, volume_attachments=None, volumes=None, **unknown_fields): - ''' - characteristics : HardwareCharacteristics - instance_id : str - network_config : typing.Sequence[~NetworkConfig] - nonce : str - tag : str - volume_attachments : typing.Mapping[str, ~VolumeAttachmentInfo] - volumes : typing.Sequence[~Volume] - ''' - self.characteristics = HardwareCharacteristics.from_json(characteristics) if characteristics else None - self.instance_id = instance_id - self.network_config = [NetworkConfig.from_json(o) for o in network_config or []] - self.nonce = nonce - self.tag = tag - self.volume_attachments = volume_attachments - self.volumes = [Volume.from_json(o) for o in volumes or []] - - - -class InstanceType(Type): - _toSchema = {'arches': 'arches', 'cost': 'cost', 'cpu_cores': 'cpu-cores', 'deprecated': 'deprecated', 'memory': 'memory', 'name': 'name', 'root_disk': 'root-disk', 'virt_type': 'virt-type'} - _toPy = {'arches': 'arches', 'cost': 'cost', 'cpu-cores': 'cpu_cores', 'deprecated': 'deprecated', 'memory': 'memory', 'name': 'name', 'root-disk': 'root_disk', 'virt-type': 'virt_type'} - def __init__(self, arches=None, cost=None, cpu_cores=None, deprecated=None, memory=None, name=None, root_disk=None, virt_type=None, **unknown_fields): - ''' - arches : typing.Sequence[str] - cost : int - cpu_cores : int - deprecated : bool - memory : int - name : str - root_disk : int - virt_type : str - ''' - self.arches = arches - self.cost = cost - self.cpu_cores = cpu_cores - self.deprecated = deprecated - self.memory = memory - self.name = name - self.root_disk = root_disk - self.virt_type = virt_type - - - -class InstanceTypesResult(Type): - _toSchema = {'cost_currency': 'cost-currency', 'cost_divisor': 'cost-divisor', 'cost_unit': 'cost-unit', 'error': 'error', 'instance_types': 'instance-types'} - _toPy = {'cost-currency': 'cost_currency', 'cost-divisor': 'cost_divisor', 'cost-unit': 'cost_unit', 'error': 'error', 'instance-types': 'instance_types'} - def __init__(self, cost_currency=None, cost_divisor=None, cost_unit=None, error=None, instance_types=None, **unknown_fields): - ''' - cost_currency : str - cost_divisor : int - cost_unit : str - error : Error - instance_types : typing.Sequence[~InstanceType] - ''' - self.cost_currency = cost_currency - self.cost_divisor = cost_divisor - self.cost_unit = cost_unit - self.error = Error.from_json(error) if error else None - self.instance_types = [InstanceType.from_json(o) for o in instance_types or []] - - - -class InstanceTypesResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~InstanceTypesResult] - ''' - self.results = [InstanceTypesResult.from_json(o) for o in results or []] - - - -class InstancesInfo(Type): - _toSchema = {'machines': 'machines'} - _toPy = {'machines': 'machines'} - def __init__(self, machines=None, **unknown_fields): - ''' - machines : typing.Sequence[~InstanceInfo] - ''' - self.machines = [InstanceInfo.from_json(o) for o in machines or []] - - - -class IntResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : int - ''' - self.error = Error.from_json(error) if error else None - self.result = result - - - -class IntResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~IntResult] - ''' - self.results = [IntResult.from_json(o) for o in results or []] - - - -class InterfaceAddress(Type): - _toSchema = {'cidr': 'cidr', 'value': 'value'} - _toPy = {'cidr': 'cidr', 'value': 'value'} - def __init__(self, cidr=None, value=None, **unknown_fields): - ''' - cidr : str - value : str - ''' - self.cidr = cidr - self.value = value - - - -class InvalidateCredentialArg(Type): - _toSchema = {'reason': 'reason'} - _toPy = {'reason': 'reason'} - def __init__(self, reason=None, **unknown_fields): - ''' - reason : str - ''' - self.reason = reason - - - -class IsMasterResult(Type): - _toSchema = {'master': 'master'} - _toPy = {'master': 'master'} - def __init__(self, master=None, **unknown_fields): - ''' - master : bool - ''' - self.master = master - - - -class IsMeteredResult(Type): - _toSchema = {'metered': 'metered'} - _toPy = {'metered': 'metered'} - def __init__(self, metered=None, **unknown_fields): - ''' - metered : bool - ''' - self.metered = metered - - - -class JobsResult(Type): - _toSchema = {'error': 'error', 'jobs': 'jobs'} - _toPy = {'error': 'error', 'jobs': 'jobs'} - def __init__(self, error=None, jobs=None, **unknown_fields): - ''' - error : Error - jobs : typing.Sequence[str] - ''' - self.error = Error.from_json(error) if error else None - self.jobs = jobs - - - -class JobsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~JobsResult] - ''' - self.results = [JobsResult.from_json(o) for o in results or []] - - - -class KnownServiceArgs(Type): - _toSchema = {'known_services': 'known-services'} - _toPy = {'known-services': 'known_services'} - def __init__(self, known_services=None, **unknown_fields): - ''' - known_services : typing.Sequence[str] - ''' - self.known_services = known_services - - - -class KubernetesDeviceParams(Type): - _toSchema = {'attributes': 'Attributes', 'count': 'Count', 'type_': 'Type'} - _toPy = {'Attributes': 'attributes', 'Count': 'count', 'Type': 'type_'} - def __init__(self, attributes=None, count=None, type_=None, **unknown_fields): - ''' - attributes : typing.Mapping[str, str] - count : int - type_ : str - ''' - self.attributes = attributes - self.count = count - self.type_ = type_ - - - -class KubernetesFilesystemAttachmentParams(Type): - _toSchema = {'mount_point': 'mount-point', 'provider': 'provider', 'read_only': 'read-only'} - _toPy = {'mount-point': 'mount_point', 'provider': 'provider', 'read-only': 'read_only'} - def __init__(self, mount_point=None, provider=None, read_only=None, **unknown_fields): - ''' - mount_point : str - provider : str - read_only : bool - ''' - self.mount_point = mount_point - self.provider = provider - self.read_only = read_only - - - -class KubernetesFilesystemInfo(Type): - _toSchema = {'data': 'data', 'filesystem_id': 'filesystem-id', 'info': 'info', 'mount_point': 'mount-point', 'pool': 'pool', 'read_only': 'read-only', 'size': 'size', 'status': 'status', 'storagename': 'storagename', 'volume': 'volume'} - _toPy = {'data': 'data', 'filesystem-id': 'filesystem_id', 'info': 'info', 'mount-point': 'mount_point', 'pool': 'pool', 'read-only': 'read_only', 'size': 'size', 'status': 'status', 'storagename': 'storagename', 'volume': 'volume'} - def __init__(self, data=None, filesystem_id=None, info=None, mount_point=None, pool=None, read_only=None, size=None, status=None, storagename=None, volume=None, **unknown_fields): - ''' - data : typing.Mapping[str, typing.Any] - filesystem_id : str - info : str - mount_point : str - pool : str - read_only : bool - size : int - status : str - storagename : str - volume : KubernetesVolumeInfo - ''' - self.data = data - self.filesystem_id = filesystem_id - self.info = info - self.mount_point = mount_point - self.pool = pool - self.read_only = read_only - self.size = size - self.status = status - self.storagename = storagename - self.volume = KubernetesVolumeInfo.from_json(volume) if volume else None - - - -class KubernetesFilesystemParams(Type): - _toSchema = {'attachment': 'attachment', 'attributes': 'attributes', 'provider': 'provider', 'size': 'size', 'storagename': 'storagename', 'tags': 'tags'} - _toPy = {'attachment': 'attachment', 'attributes': 'attributes', 'provider': 'provider', 'size': 'size', 'storagename': 'storagename', 'tags': 'tags'} - def __init__(self, attachment=None, attributes=None, provider=None, size=None, storagename=None, tags=None, **unknown_fields): - ''' - attachment : KubernetesFilesystemAttachmentParams - attributes : typing.Mapping[str, typing.Any] - provider : str - size : int - storagename : str - tags : typing.Mapping[str, str] - ''' - self.attachment = KubernetesFilesystemAttachmentParams.from_json(attachment) if attachment else None - self.attributes = attributes - self.provider = provider - self.size = size - self.storagename = storagename - self.tags = tags - - - -class KubernetesProvisioningInfo(Type): - _toSchema = {'constraints': 'constraints', 'devices': 'devices', 'filesystems': 'filesystems', 'placement': 'placement', 'pod_spec': 'pod-spec', 'tags': 'tags', 'volumes': 'volumes'} - _toPy = {'constraints': 'constraints', 'devices': 'devices', 'filesystems': 'filesystems', 'placement': 'placement', 'pod-spec': 'pod_spec', 'tags': 'tags', 'volumes': 'volumes'} - def __init__(self, constraints=None, devices=None, filesystems=None, placement=None, pod_spec=None, tags=None, volumes=None, **unknown_fields): - ''' - constraints : Value - devices : typing.Sequence[~KubernetesDeviceParams] - filesystems : typing.Sequence[~KubernetesFilesystemParams] - placement : str - pod_spec : str - tags : typing.Mapping[str, str] - volumes : typing.Sequence[~KubernetesVolumeParams] - ''' - self.constraints = Value.from_json(constraints) if constraints else None - self.devices = [KubernetesDeviceParams.from_json(o) for o in devices or []] - self.filesystems = [KubernetesFilesystemParams.from_json(o) for o in filesystems or []] - self.placement = placement - self.pod_spec = pod_spec - self.tags = tags - self.volumes = [KubernetesVolumeParams.from_json(o) for o in volumes or []] - - - -class KubernetesProvisioningInfoResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : KubernetesProvisioningInfo - ''' - self.error = Error.from_json(error) if error else None - self.result = KubernetesProvisioningInfo.from_json(result) if result else None - - - -class KubernetesProvisioningInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~KubernetesProvisioningInfoResult] - ''' - self.results = [KubernetesProvisioningInfoResult.from_json(o) for o in results or []] - - - -class KubernetesVolumeAttachmentParams(Type): - _toSchema = {'provider': 'provider', 'read_only': 'read-only'} - _toPy = {'provider': 'provider', 'read-only': 'read_only'} - def __init__(self, provider=None, read_only=None, **unknown_fields): - ''' - provider : str - read_only : bool - ''' - self.provider = provider - self.read_only = read_only - - - -class KubernetesVolumeInfo(Type): - _toSchema = {'data': 'data', 'info': 'info', 'persistent': 'persistent', 'pool': 'pool', 'size': 'size', 'status': 'status', 'volume_id': 'volume-id'} - _toPy = {'data': 'data', 'info': 'info', 'persistent': 'persistent', 'pool': 'pool', 'size': 'size', 'status': 'status', 'volume-id': 'volume_id'} - def __init__(self, data=None, info=None, persistent=None, pool=None, size=None, status=None, volume_id=None, **unknown_fields): - ''' - data : typing.Mapping[str, typing.Any] - info : str - persistent : bool - pool : str - size : int - status : str - volume_id : str - ''' - self.data = data - self.info = info - self.persistent = persistent - self.pool = pool - self.size = size - self.status = status - self.volume_id = volume_id - - - -class KubernetesVolumeParams(Type): - _toSchema = {'attachment': 'attachment', 'attributes': 'attributes', 'provider': 'provider', 'size': 'size', 'storagename': 'storagename', 'tags': 'tags'} - _toPy = {'attachment': 'attachment', 'attributes': 'attributes', 'provider': 'provider', 'size': 'size', 'storagename': 'storagename', 'tags': 'tags'} - def __init__(self, attachment=None, attributes=None, provider=None, size=None, storagename=None, tags=None, **unknown_fields): - ''' - attachment : KubernetesVolumeAttachmentParams - attributes : typing.Mapping[str, typing.Any] - provider : str - size : int - storagename : str - tags : typing.Mapping[str, str] - ''' - self.attachment = KubernetesVolumeAttachmentParams.from_json(attachment) if attachment else None - self.attributes = attributes - self.provider = provider - self.size = size - self.storagename = storagename - self.tags = tags - - - -class LXDProfile(Type): - _toSchema = {'config': 'config', 'description': 'description', 'devices': 'devices'} - _toPy = {'config': 'config', 'description': 'description', 'devices': 'devices'} - def __init__(self, config=None, description=None, devices=None, **unknown_fields): - ''' - config : typing.Mapping[str, str] - description : str - devices : typing.Mapping[str, typing.Any] - ''' - self.config = config - self.description = description - self.devices = devices - - - -class LXDProfileUpgradeMessages(Type): - _toSchema = {'application': 'application', 'watcher_id': 'watcher-id'} - _toPy = {'application': 'application', 'watcher-id': 'watcher_id'} - def __init__(self, application=None, watcher_id=None, **unknown_fields): - ''' - application : Entity - watcher_id : str - ''' - self.application = Entity.from_json(application) if application else None - self.watcher_id = watcher_id - - - -class LXDProfileUpgradeMessagesResult(Type): - _toSchema = {'error': 'error', 'message': 'message', 'unit_name': 'unit-name'} - _toPy = {'error': 'error', 'message': 'message', 'unit-name': 'unit_name'} - def __init__(self, error=None, message=None, unit_name=None, **unknown_fields): - ''' - error : Error - message : str - unit_name : str - ''' - self.error = Error.from_json(error) if error else None - self.message = message - self.unit_name = unit_name - - - -class LXDProfileUpgradeMessagesResults(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~LXDProfileUpgradeMessagesResult] - ''' - self.args = [LXDProfileUpgradeMessagesResult.from_json(o) for o in args or []] - - - -class LifeResult(Type): - _toSchema = {'error': 'error', 'life': 'life'} - _toPy = {'error': 'error', 'life': 'life'} - def __init__(self, error=None, life=None, **unknown_fields): - ''' - error : Error - life : str - ''' - self.error = Error.from_json(error) if error else None - self.life = life - - - -class LifeResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~LifeResult] - ''' - self.results = [LifeResult.from_json(o) for o in results or []] - - - -class ListCloudImageMetadataResult(Type): - _toSchema = {'result': 'result'} - _toPy = {'result': 'result'} - def __init__(self, result=None, **unknown_fields): - ''' - result : typing.Sequence[~CloudImageMetadata] - ''' - self.result = [CloudImageMetadata.from_json(o) for o in result or []] - - - -class ListCloudInfo(Type): - _toSchema = {'clouddetails': 'CloudDetails', 'user_access': 'user-access'} - _toPy = {'CloudDetails': 'clouddetails', 'user-access': 'user_access'} - def __init__(self, clouddetails=None, user_access=None, **unknown_fields): - ''' - clouddetails : CloudDetails - user_access : str - ''' - self.clouddetails = CloudDetails.from_json(clouddetails) if clouddetails else None - self.user_access = user_access - - - -class ListCloudInfoResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : ListCloudInfo - ''' - self.error = Error.from_json(error) if error else None - self.result = ListCloudInfo.from_json(result) if result else None - - - -class ListCloudInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ListCloudInfoResult] - ''' - self.results = [ListCloudInfoResult.from_json(o) for o in results or []] - - - -class ListCloudsRequest(Type): - _toSchema = {'all_': 'all', 'user_tag': 'user-tag'} - _toPy = {'all': 'all_', 'user-tag': 'user_tag'} - def __init__(self, all_=None, user_tag=None, **unknown_fields): - ''' - all_ : bool - user_tag : str - ''' - self.all_ = all_ - self.user_tag = user_tag - - - -class ListFirewallRulesResults(Type): - _toSchema = {'rules': 'Rules'} - _toPy = {'Rules': 'rules'} - def __init__(self, rules=None, **unknown_fields): - ''' - rules : typing.Sequence[~FirewallRule] - ''' - self.rules = [FirewallRule.from_json(o) for o in rules or []] - - - -class ListImageResult(Type): - _toSchema = {'result': 'result'} - _toPy = {'result': 'result'} - def __init__(self, result=None, **unknown_fields): - ''' - result : typing.Sequence[~ImageMetadata] - ''' - self.result = [ImageMetadata.from_json(o) for o in result or []] - - - -class ListResourcesArgs(Type): - _toSchema = {'entities': 'entities'} - _toPy = {'entities': 'entities'} - def __init__(self, entities=None, **unknown_fields): - ''' - entities : typing.Sequence[~Entity] - ''' - self.entities = [Entity.from_json(o) for o in entities or []] - - - -class ListSSHKeys(Type): - _toSchema = {'entities': 'entities', 'mode': 'mode'} - _toPy = {'entities': 'entities', 'mode': 'mode'} - def __init__(self, entities=None, mode=None, **unknown_fields): - ''' - entities : Entities - mode : bool - ''' - self.entities = Entities.from_json(entities) if entities else None - self.mode = mode - - - -class ListSpacesResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~Space] - ''' - self.results = [Space.from_json(o) for o in results or []] - - - -class ListSubnetsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~Subnet] - ''' - self.results = [Subnet.from_json(o) for o in results or []] - - - -class ListUnitResourcesArgs(Type): - _toSchema = {'resource_names': 'resource-names'} - _toPy = {'resource-names': 'resource_names'} - def __init__(self, resource_names=None, **unknown_fields): - ''' - resource_names : typing.Sequence[str] - ''' - self.resource_names = resource_names - - - -class LogForwardingGetLastSentParams(Type): - _toSchema = {'ids': 'ids'} - _toPy = {'ids': 'ids'} - def __init__(self, ids=None, **unknown_fields): - ''' - ids : typing.Sequence[~LogForwardingID] - ''' - self.ids = [LogForwardingID.from_json(o) for o in ids or []] - - - -class LogForwardingGetLastSentResult(Type): - _toSchema = {'err': 'err', 'record_id': 'record-id', 'record_timestamp': 'record-timestamp'} - _toPy = {'err': 'err', 'record-id': 'record_id', 'record-timestamp': 'record_timestamp'} - def __init__(self, err=None, record_id=None, record_timestamp=None, **unknown_fields): - ''' - err : Error - record_id : int - record_timestamp : int - ''' - self.err = Error.from_json(err) if err else None - self.record_id = record_id - self.record_timestamp = record_timestamp - - - -class LogForwardingGetLastSentResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~LogForwardingGetLastSentResult] - ''' - self.results = [LogForwardingGetLastSentResult.from_json(o) for o in results or []] - - - -class LogForwardingID(Type): - _toSchema = {'model': 'model', 'sink': 'sink'} - _toPy = {'model': 'model', 'sink': 'sink'} - def __init__(self, model=None, sink=None, **unknown_fields): - ''' - model : str - sink : str - ''' - self.model = model - self.sink = sink - - - -class LogForwardingSetLastSentParam(Type): - _toSchema = {'logforwardingid': 'LogForwardingID', 'record_id': 'record-id', 'record_timestamp': 'record-timestamp'} - _toPy = {'LogForwardingID': 'logforwardingid', 'record-id': 'record_id', 'record-timestamp': 'record_timestamp'} - def __init__(self, logforwardingid=None, record_id=None, record_timestamp=None, **unknown_fields): - ''' - logforwardingid : LogForwardingID - record_id : int - record_timestamp : int - ''' - self.logforwardingid = LogForwardingID.from_json(logforwardingid) if logforwardingid else None - self.record_id = record_id - self.record_timestamp = record_timestamp - - - -class LogForwardingSetLastSentParams(Type): - _toSchema = {'params': 'params'} - _toPy = {'params': 'params'} - def __init__(self, params=None, **unknown_fields): - ''' - params : typing.Sequence[~LogForwardingSetLastSentParam] - ''' - self.params = [LogForwardingSetLastSentParam.from_json(o) for o in params or []] - - - -class LookUpArg(Type): - _toSchema = {'id_': 'id', 'name': 'name'} - _toPy = {'id': 'id_', 'name': 'name'} - def __init__(self, id_=None, name=None, **unknown_fields): - ''' - id_ : str - name : str - ''' - self.id_ = id_ - self.name = name - - - -class LookUpArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~LookUpArg] - ''' - self.args = [LookUpArg.from_json(o) for o in args or []] - - - -class LookUpPayloadArg(Type): - _toSchema = {'id_': 'id', 'name': 'name'} - _toPy = {'id': 'id_', 'name': 'name'} - def __init__(self, id_=None, name=None, **unknown_fields): - ''' - id_ : str - name : str - ''' - self.id_ = id_ - self.name = name - - - -class LookUpPayloadArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~LookUpPayloadArg] - ''' - self.args = [LookUpPayloadArg.from_json(o) for o in args or []] - - - -class Macaroon(Type): - _toSchema = {} - _toPy = {} - def __init__(self, **unknown_fields): - ''' - - ''' - pass - - - -class MacaroonResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : Macaroon - ''' - self.error = Error.from_json(error) if error else None - self.result = Macaroon.from_json(result) if result else None - - - -class MacaroonResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~MacaroonResult] - ''' - self.results = [MacaroonResult.from_json(o) for o in results or []] - - - -class MachineAddresses(Type): - _toSchema = {'addresses': 'addresses', 'tag': 'tag'} - _toPy = {'addresses': 'addresses', 'tag': 'tag'} - def __init__(self, addresses=None, tag=None, **unknown_fields): - ''' - addresses : typing.Sequence[~Address] - tag : str - ''' - self.addresses = [Address.from_json(o) for o in addresses or []] - self.tag = tag - - - -class MachineAddressesResult(Type): - _toSchema = {'addresses': 'addresses', 'error': 'error'} - _toPy = {'addresses': 'addresses', 'error': 'error'} - def __init__(self, addresses=None, error=None, **unknown_fields): - ''' - addresses : typing.Sequence[~Address] - error : Error - ''' - self.addresses = [Address.from_json(o) for o in addresses or []] - self.error = Error.from_json(error) if error else None - - - -class MachineAddressesResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~MachineAddressesResult] - ''' - self.results = [MachineAddressesResult.from_json(o) for o in results or []] - - - -class MachineBlockDevices(Type): - _toSchema = {'block_devices': 'block-devices', 'machine': 'machine'} - _toPy = {'block-devices': 'block_devices', 'machine': 'machine'} - def __init__(self, block_devices=None, machine=None, **unknown_fields): - ''' - block_devices : typing.Sequence[~BlockDevice] - machine : str - ''' - self.block_devices = [BlockDevice.from_json(o) for o in block_devices or []] - self.machine = machine - - - -class MachineContainers(Type): - _toSchema = {'container_types': 'container-types', 'machine_tag': 'machine-tag'} - _toPy = {'container-types': 'container_types', 'machine-tag': 'machine_tag'} - def __init__(self, container_types=None, machine_tag=None, **unknown_fields): - ''' - container_types : typing.Sequence[str] - machine_tag : str - ''' - self.container_types = container_types - self.machine_tag = machine_tag - - - -class MachineContainersParams(Type): - _toSchema = {'params': 'params'} - _toPy = {'params': 'params'} - def __init__(self, params=None, **unknown_fields): - ''' - params : typing.Sequence[~MachineContainers] - ''' - self.params = [MachineContainers.from_json(o) for o in params or []] - - - -class MachineHardware(Type): - _toSchema = {'arch': 'arch', 'availability_zone': 'availability-zone', 'cores': 'cores', 'cpu_power': 'cpu-power', 'mem': 'mem', 'root_disk': 'root-disk', 'tags': 'tags'} - _toPy = {'arch': 'arch', 'availability-zone': 'availability_zone', 'cores': 'cores', 'cpu-power': 'cpu_power', 'mem': 'mem', 'root-disk': 'root_disk', 'tags': 'tags'} - def __init__(self, arch=None, availability_zone=None, cores=None, cpu_power=None, mem=None, root_disk=None, tags=None, **unknown_fields): - ''' - arch : str - availability_zone : str - cores : int - cpu_power : int - mem : int - root_disk : int - tags : typing.Sequence[str] - ''' - self.arch = arch - self.availability_zone = availability_zone - self.cores = cores - self.cpu_power = cpu_power - self.mem = mem - self.root_disk = root_disk - self.tags = tags - - - -class MachineNetworkConfigResult(Type): - _toSchema = {'error': 'error', 'info': 'info'} - _toPy = {'error': 'error', 'info': 'info'} - def __init__(self, error=None, info=None, **unknown_fields): - ''' - error : Error - info : typing.Sequence[~NetworkConfig] - ''' - self.error = Error.from_json(error) if error else None - self.info = [NetworkConfig.from_json(o) for o in info or []] - - - -class MachineNetworkConfigResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~MachineNetworkConfigResult] - ''' - self.results = [MachineNetworkConfigResult.from_json(o) for o in results or []] - - - -class MachinePortRange(Type): - _toSchema = {'port_range': 'port-range', 'relation_tag': 'relation-tag', 'unit_tag': 'unit-tag'} - _toPy = {'port-range': 'port_range', 'relation-tag': 'relation_tag', 'unit-tag': 'unit_tag'} - def __init__(self, port_range=None, relation_tag=None, unit_tag=None, **unknown_fields): - ''' - port_range : PortRange - relation_tag : str - unit_tag : str - ''' - self.port_range = PortRange.from_json(port_range) if port_range else None - self.relation_tag = relation_tag - self.unit_tag = unit_tag - - - -class MachinePorts(Type): - _toSchema = {'machine_tag': 'machine-tag', 'subnet_tag': 'subnet-tag'} - _toPy = {'machine-tag': 'machine_tag', 'subnet-tag': 'subnet_tag'} - def __init__(self, machine_tag=None, subnet_tag=None, **unknown_fields): - ''' - machine_tag : str - subnet_tag : str - ''' - self.machine_tag = machine_tag - self.subnet_tag = subnet_tag - - - -class MachinePortsParams(Type): - _toSchema = {'params': 'params'} - _toPy = {'params': 'params'} - def __init__(self, params=None, **unknown_fields): - ''' - params : typing.Sequence[~MachinePorts] - ''' - self.params = [MachinePorts.from_json(o) for o in params or []] - - - -class MachinePortsResult(Type): - _toSchema = {'error': 'error', 'ports': 'ports'} - _toPy = {'error': 'error', 'ports': 'ports'} - def __init__(self, error=None, ports=None, **unknown_fields): - ''' - error : Error - ports : typing.Sequence[~MachinePortRange] - ''' - self.error = Error.from_json(error) if error else None - self.ports = [MachinePortRange.from_json(o) for o in ports or []] - - - -class MachinePortsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~MachinePortsResult] - ''' - self.results = [MachinePortsResult.from_json(o) for o in results or []] - - - -class MachineStatus(Type): - _toSchema = {'agent_status': 'agent-status', 'containers': 'containers', 'dns_name': 'dns-name', 'hardware': 'hardware', 'has_vote': 'has-vote', 'id_': 'id', 'instance_id': 'instance-id', 'instance_status': 'instance-status', 'ip_addresses': 'ip-addresses', 'jobs': 'jobs', 'series': 'series', 'wants_vote': 'wants-vote'} - _toPy = {'agent-status': 'agent_status', 'containers': 'containers', 'dns-name': 'dns_name', 'hardware': 'hardware', 'has-vote': 'has_vote', 'id': 'id_', 'instance-id': 'instance_id', 'instance-status': 'instance_status', 'ip-addresses': 'ip_addresses', 'jobs': 'jobs', 'series': 'series', 'wants-vote': 'wants_vote'} - def __init__(self, agent_status=None, containers=None, dns_name=None, hardware=None, has_vote=None, id_=None, instance_id=None, instance_status=None, ip_addresses=None, jobs=None, series=None, wants_vote=None, **unknown_fields): - ''' - agent_status : DetailedStatus - containers : typing.Mapping[str, ~MachineStatus] - dns_name : str - hardware : str - has_vote : bool - id_ : str - instance_id : str - instance_status : DetailedStatus - ip_addresses : typing.Sequence[str] - jobs : typing.Sequence[str] - series : str - wants_vote : bool - ''' - self.agent_status = DetailedStatus.from_json(agent_status) if agent_status else None - self.containers = containers - self.dns_name = dns_name - self.hardware = hardware - self.has_vote = has_vote - self.id_ = id_ - self.instance_id = instance_id - self.instance_status = DetailedStatus.from_json(instance_status) if instance_status else None - self.ip_addresses = ip_addresses - self.jobs = jobs - self.series = series - self.wants_vote = wants_vote - - - -class MachineStorageId(Type): - _toSchema = {'attachment_tag': 'attachment-tag', 'machine_tag': 'machine-tag'} - _toPy = {'attachment-tag': 'attachment_tag', 'machine-tag': 'machine_tag'} - def __init__(self, attachment_tag=None, machine_tag=None, **unknown_fields): - ''' - attachment_tag : str - machine_tag : str - ''' - self.attachment_tag = attachment_tag - self.machine_tag = machine_tag - - - -class MachineStorageIds(Type): - _toSchema = {'ids': 'ids'} - _toPy = {'ids': 'ids'} - def __init__(self, ids=None, **unknown_fields): - ''' - ids : typing.Sequence[~MachineStorageId] - ''' - self.ids = [MachineStorageId.from_json(o) for o in ids or []] - - - -class MachineStorageIdsWatchResult(Type): - _toSchema = {'changes': 'changes', 'error': 'error', 'watcher_id': 'watcher-id'} - _toPy = {'changes': 'changes', 'error': 'error', 'watcher-id': 'watcher_id'} - def __init__(self, changes=None, error=None, watcher_id=None, **unknown_fields): - ''' - changes : typing.Sequence[~MachineStorageId] - error : Error - watcher_id : str - ''' - self.changes = [MachineStorageId.from_json(o) for o in changes or []] - self.error = Error.from_json(error) if error else None - self.watcher_id = watcher_id - - - -class MachineStorageIdsWatchResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~MachineStorageIdsWatchResult] - ''' - self.results = [MachineStorageIdsWatchResult.from_json(o) for o in results or []] - - - -class MapResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : typing.Mapping[str, typing.Any] - ''' - self.error = Error.from_json(error) if error else None - self.result = result - - - -class MapResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~MapResult] - ''' - self.results = [MapResult.from_json(o) for o in results or []] - - - -class MasterMigrationStatus(Type): - _toSchema = {'migration_id': 'migration-id', 'phase': 'phase', 'phase_changed_time': 'phase-changed-time', 'spec': 'spec'} - _toPy = {'migration-id': 'migration_id', 'phase': 'phase', 'phase-changed-time': 'phase_changed_time', 'spec': 'spec'} - def __init__(self, migration_id=None, phase=None, phase_changed_time=None, spec=None, **unknown_fields): - ''' - migration_id : str - phase : str - phase_changed_time : str - spec : MigrationSpec - ''' - self.migration_id = migration_id - self.phase = phase - self.phase_changed_time = phase_changed_time - self.spec = MigrationSpec.from_json(spec) if spec else None - - - -class Member(Type): - _toSchema = {'address': 'Address', 'arbiter': 'Arbiter', 'buildindexes': 'BuildIndexes', 'hidden': 'Hidden', 'id_': 'Id', 'priority': 'Priority', 'slavedelay': 'SlaveDelay', 'tags': 'Tags', 'votes': 'Votes'} - _toPy = {'Address': 'address', 'Arbiter': 'arbiter', 'BuildIndexes': 'buildindexes', 'Hidden': 'hidden', 'Id': 'id_', 'Priority': 'priority', 'SlaveDelay': 'slavedelay', 'Tags': 'tags', 'Votes': 'votes'} - def __init__(self, address=None, arbiter=None, buildindexes=None, hidden=None, id_=None, priority=None, slavedelay=None, tags=None, votes=None, **unknown_fields): - ''' - address : str - arbiter : bool - buildindexes : bool - hidden : bool - id_ : int - priority : float - slavedelay : int - tags : typing.Mapping[str, str] - votes : int - ''' - self.address = address - self.arbiter = arbiter - self.buildindexes = buildindexes - self.hidden = hidden - self.id_ = id_ - self.priority = priority - self.slavedelay = slavedelay - self.tags = tags - self.votes = votes - - - -class MergeLeadershipSettingsBulkParams(Type): - _toSchema = {'params': 'params'} - _toPy = {'params': 'params'} - def __init__(self, params=None, **unknown_fields): - ''' - params : typing.Sequence[~MergeLeadershipSettingsParam] - ''' - self.params = [MergeLeadershipSettingsParam.from_json(o) for o in params or []] - - - -class MergeLeadershipSettingsParam(Type): - _toSchema = {'application_tag': 'application-tag', 'settings': 'settings'} - _toPy = {'application-tag': 'application_tag', 'settings': 'settings'} - def __init__(self, application_tag=None, settings=None, **unknown_fields): - ''' - application_tag : str - settings : typing.Mapping[str, str] - ''' - self.application_tag = application_tag - self.settings = settings - - - -class MetadataImageIds(Type): - _toSchema = {'image_ids': 'image-ids'} - _toPy = {'image-ids': 'image_ids'} - def __init__(self, image_ids=None, **unknown_fields): - ''' - image_ids : typing.Sequence[str] - ''' - self.image_ids = image_ids - - - -class MetadataSaveParams(Type): - _toSchema = {'metadata': 'metadata'} - _toPy = {'metadata': 'metadata'} - def __init__(self, metadata=None, **unknown_fields): - ''' - metadata : typing.Sequence[~CloudImageMetadataList] - ''' - self.metadata = [CloudImageMetadataList.from_json(o) for o in metadata or []] - - - -class MeterStatus(Type): - _toSchema = {'color': 'color', 'message': 'message'} - _toPy = {'color': 'color', 'message': 'message'} - def __init__(self, color=None, message=None, **unknown_fields): - ''' - color : str - message : str - ''' - self.color = color - self.message = message - - - -class MeterStatusParam(Type): - _toSchema = {'code': 'code', 'info': 'info', 'tag': 'tag'} - _toPy = {'code': 'code', 'info': 'info', 'tag': 'tag'} - def __init__(self, code=None, info=None, tag=None, **unknown_fields): - ''' - code : str - info : str - tag : str - ''' - self.code = code - self.info = info - self.tag = tag - - - -class MeterStatusParams(Type): - _toSchema = {'statues': 'statues'} - _toPy = {'statues': 'statues'} - def __init__(self, statues=None, **unknown_fields): - ''' - statues : typing.Sequence[~MeterStatusParam] - ''' - self.statues = [MeterStatusParam.from_json(o) for o in statues or []] - - - -class MeterStatusResult(Type): - _toSchema = {'code': 'code', 'error': 'error', 'info': 'info'} - _toPy = {'code': 'code', 'error': 'error', 'info': 'info'} - def __init__(self, code=None, error=None, info=None, **unknown_fields): - ''' - code : str - error : Error - info : str - ''' - self.code = code - self.error = Error.from_json(error) if error else None - self.info = info - - - -class MeterStatusResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~MeterStatusResult] - ''' - self.results = [MeterStatusResult.from_json(o) for o in results or []] - - - -class Metric(Type): - _toSchema = {'key': 'key', 'time': 'time', 'value': 'value'} - _toPy = {'key': 'key', 'time': 'time', 'value': 'value'} - def __init__(self, key=None, time=None, value=None, **unknown_fields): - ''' - key : str - time : str - value : str - ''' - self.key = key - self.time = time - self.value = value - - - -class MetricBatch(Type): - _toSchema = {'charm_url': 'charm-url', 'created': 'created', 'metrics': 'metrics', 'uuid': 'uuid'} - _toPy = {'charm-url': 'charm_url', 'created': 'created', 'metrics': 'metrics', 'uuid': 'uuid'} - def __init__(self, charm_url=None, created=None, metrics=None, uuid=None, **unknown_fields): - ''' - charm_url : str - created : str - metrics : typing.Sequence[~Metric] - uuid : str - ''' - self.charm_url = charm_url - self.created = created - self.metrics = [Metric.from_json(o) for o in metrics or []] - self.uuid = uuid - - - -class MetricBatchParam(Type): - _toSchema = {'batch': 'batch', 'tag': 'tag'} - _toPy = {'batch': 'batch', 'tag': 'tag'} - def __init__(self, batch=None, tag=None, **unknown_fields): - ''' - batch : MetricBatch - tag : str - ''' - self.batch = MetricBatch.from_json(batch) if batch else None - self.tag = tag - - - -class MetricBatchParams(Type): - _toSchema = {'batches': 'batches'} - _toPy = {'batches': 'batches'} - def __init__(self, batches=None, **unknown_fields): - ''' - batches : typing.Sequence[~MetricBatchParam] - ''' - self.batches = [MetricBatchParam.from_json(o) for o in batches or []] - - - -class MetricResult(Type): - _toSchema = {'key': 'key', 'time': 'time', 'unit': 'unit', 'value': 'value'} - _toPy = {'key': 'key', 'time': 'time', 'unit': 'unit', 'value': 'value'} - def __init__(self, key=None, time=None, unit=None, value=None, **unknown_fields): - ''' - key : str - time : str - unit : str - value : str - ''' - self.key = key - self.time = time - self.unit = unit - self.value = value - - - -class MetricResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~EntityMetrics] - ''' - self.results = [EntityMetrics.from_json(o) for o in results or []] - - - -class MigrationModelInfo(Type): - _toSchema = {'agent_version': 'agent-version', 'name': 'name', 'owner_tag': 'owner-tag', 'uuid': 'uuid'} - _toPy = {'agent-version': 'agent_version', 'name': 'name', 'owner-tag': 'owner_tag', 'uuid': 'uuid'} - def __init__(self, agent_version=None, name=None, owner_tag=None, uuid=None, **unknown_fields): - ''' - agent_version : Number - name : str - owner_tag : str - uuid : str - ''' - self.agent_version = Number.from_json(agent_version) if agent_version else None - self.name = name - self.owner_tag = owner_tag - self.uuid = uuid - - - -class MigrationSpec(Type): - _toSchema = {'external_control': 'external-control', 'model_tag': 'model-tag', 'skip_initial_prechecks': 'skip-initial-prechecks', 'target_info': 'target-info'} - _toPy = {'external-control': 'external_control', 'model-tag': 'model_tag', 'skip-initial-prechecks': 'skip_initial_prechecks', 'target-info': 'target_info'} - def __init__(self, external_control=None, model_tag=None, skip_initial_prechecks=None, target_info=None, **unknown_fields): - ''' - external_control : bool - model_tag : str - skip_initial_prechecks : bool - target_info : MigrationTargetInfo - ''' - self.external_control = external_control - self.model_tag = model_tag - self.skip_initial_prechecks = skip_initial_prechecks - self.target_info = MigrationTargetInfo.from_json(target_info) if target_info else None - - - -class MigrationStatus(Type): - _toSchema = {'attempt': 'attempt', 'external_control': 'external-control', 'migration_id': 'migration-id', 'phase': 'phase', 'source_api_addrs': 'source-api-addrs', 'source_ca_cert': 'source-ca-cert', 'target_api_addrs': 'target-api-addrs', 'target_ca_cert': 'target-ca-cert'} - _toPy = {'attempt': 'attempt', 'external-control': 'external_control', 'migration-id': 'migration_id', 'phase': 'phase', 'source-api-addrs': 'source_api_addrs', 'source-ca-cert': 'source_ca_cert', 'target-api-addrs': 'target_api_addrs', 'target-ca-cert': 'target_ca_cert'} - def __init__(self, attempt=None, external_control=None, migration_id=None, phase=None, source_api_addrs=None, source_ca_cert=None, target_api_addrs=None, target_ca_cert=None, **unknown_fields): - ''' - attempt : int - external_control : bool - migration_id : str - phase : str - source_api_addrs : typing.Sequence[str] - source_ca_cert : str - target_api_addrs : typing.Sequence[str] - target_ca_cert : str - ''' - self.attempt = attempt - self.external_control = external_control - self.migration_id = migration_id - self.phase = phase - self.source_api_addrs = source_api_addrs - self.source_ca_cert = source_ca_cert - self.target_api_addrs = target_api_addrs - self.target_ca_cert = target_ca_cert - - - -class MigrationTargetInfo(Type): - _toSchema = {'addrs': 'addrs', 'auth_tag': 'auth-tag', 'ca_cert': 'ca-cert', 'controller_tag': 'controller-tag', 'macaroons': 'macaroons', 'password': 'password'} - _toPy = {'addrs': 'addrs', 'auth-tag': 'auth_tag', 'ca-cert': 'ca_cert', 'controller-tag': 'controller_tag', 'macaroons': 'macaroons', 'password': 'password'} - def __init__(self, addrs=None, auth_tag=None, ca_cert=None, controller_tag=None, macaroons=None, password=None, **unknown_fields): - ''' - addrs : typing.Sequence[str] - auth_tag : str - ca_cert : str - controller_tag : str - macaroons : str - password : str - ''' - self.addrs = addrs - self.auth_tag = auth_tag - self.ca_cert = ca_cert - self.controller_tag = controller_tag - self.macaroons = macaroons - self.password = password - - - -class MinionReport(Type): - _toSchema = {'migration_id': 'migration-id', 'phase': 'phase', 'success': 'success'} - _toPy = {'migration-id': 'migration_id', 'phase': 'phase', 'success': 'success'} - def __init__(self, migration_id=None, phase=None, success=None, **unknown_fields): - ''' - migration_id : str - phase : str - success : bool - ''' - self.migration_id = migration_id - self.phase = phase - self.success = success - - - -class MinionReports(Type): - _toSchema = {'failed': 'failed', 'migration_id': 'migration-id', 'phase': 'phase', 'success_count': 'success-count', 'unknown_count': 'unknown-count', 'unknown_sample': 'unknown-sample'} - _toPy = {'failed': 'failed', 'migration-id': 'migration_id', 'phase': 'phase', 'success-count': 'success_count', 'unknown-count': 'unknown_count', 'unknown-sample': 'unknown_sample'} - def __init__(self, failed=None, migration_id=None, phase=None, success_count=None, unknown_count=None, unknown_sample=None, **unknown_fields): - ''' - failed : typing.Sequence[str] - migration_id : str - phase : str - success_count : int - unknown_count : int - unknown_sample : typing.Sequence[str] - ''' - self.failed = failed - self.migration_id = migration_id - self.phase = phase - self.success_count = success_count - self.unknown_count = unknown_count - self.unknown_sample = unknown_sample - - - -class Model(Type): - _toSchema = {'name': 'name', 'owner_tag': 'owner-tag', 'uuid': 'uuid'} - _toPy = {'name': 'name', 'owner-tag': 'owner_tag', 'uuid': 'uuid'} - def __init__(self, name=None, owner_tag=None, uuid=None, **unknown_fields): - ''' - name : str - owner_tag : str - uuid : str - ''' - self.name = name - self.owner_tag = owner_tag - self.uuid = uuid - - - -class ModelAccess(Type): - _toSchema = {'access': 'access', 'model': 'model'} - _toPy = {'access': 'access', 'model': 'model'} - def __init__(self, access=None, model=None, **unknown_fields): - ''' - access : str - model : str - ''' - self.access = access - self.model = model - - - -class ModelArgs(Type): - _toSchema = {'model_tag': 'model-tag'} - _toPy = {'model-tag': 'model_tag'} - def __init__(self, model_tag=None, **unknown_fields): - ''' - model_tag : str - ''' - self.model_tag = model_tag - - - -class ModelBlockInfo(Type): - _toSchema = {'blocks': 'blocks', 'model_uuid': 'model-uuid', 'name': 'name', 'owner_tag': 'owner-tag'} - _toPy = {'blocks': 'blocks', 'model-uuid': 'model_uuid', 'name': 'name', 'owner-tag': 'owner_tag'} - def __init__(self, blocks=None, model_uuid=None, name=None, owner_tag=None, **unknown_fields): - ''' - blocks : typing.Sequence[str] - model_uuid : str - name : str - owner_tag : str - ''' - self.blocks = blocks - self.model_uuid = model_uuid - self.name = name - self.owner_tag = owner_tag - - - -class ModelBlockInfoList(Type): - _toSchema = {'models': 'models'} - _toPy = {'models': 'models'} - def __init__(self, models=None, **unknown_fields): - ''' - models : typing.Sequence[~ModelBlockInfo] - ''' - self.models = [ModelBlockInfo.from_json(o) for o in models or []] - - - -class ModelConfigResult(Type): - _toSchema = {'config': 'config'} - _toPy = {'config': 'config'} - def __init__(self, config=None, **unknown_fields): - ''' - config : typing.Mapping[str, typing.Any] - ''' - self.config = config - - - -class ModelConfigResults(Type): - _toSchema = {'config': 'config'} - _toPy = {'config': 'config'} - def __init__(self, config=None, **unknown_fields): - ''' - config : typing.Mapping[str, ~ConfigValue] - ''' - self.config = config - - - -class ModelCreateArgs(Type): - _toSchema = {'cloud_tag': 'cloud-tag', 'config': 'config', 'credential': 'credential', 'name': 'name', 'owner_tag': 'owner-tag', 'region': 'region'} - _toPy = {'cloud-tag': 'cloud_tag', 'config': 'config', 'credential': 'credential', 'name': 'name', 'owner-tag': 'owner_tag', 'region': 'region'} - def __init__(self, cloud_tag=None, config=None, credential=None, name=None, owner_tag=None, region=None, **unknown_fields): - ''' - cloud_tag : str - config : typing.Mapping[str, typing.Any] - credential : str - name : str - owner_tag : str - region : str - ''' - self.cloud_tag = cloud_tag - self.config = config - self.credential = credential - self.name = name - self.owner_tag = owner_tag - self.region = region - - - -class ModelCredential(Type): - _toSchema = {'credential_tag': 'credential-tag', 'exists': 'exists', 'model_tag': 'model-tag', 'valid': 'valid'} - _toPy = {'credential-tag': 'credential_tag', 'exists': 'exists', 'model-tag': 'model_tag', 'valid': 'valid'} - def __init__(self, credential_tag=None, exists=None, model_tag=None, valid=None, **unknown_fields): - ''' - credential_tag : str - exists : bool - model_tag : str - valid : bool - ''' - self.credential_tag = credential_tag - self.exists = exists - self.model_tag = model_tag - self.valid = valid - - - -class ModelDefaultValues(Type): - _toSchema = {'cloud_region': 'cloud-region', 'cloud_tag': 'cloud-tag', 'config': 'config'} - _toPy = {'cloud-region': 'cloud_region', 'cloud-tag': 'cloud_tag', 'config': 'config'} - def __init__(self, cloud_region=None, cloud_tag=None, config=None, **unknown_fields): - ''' - cloud_region : str - cloud_tag : str - config : typing.Mapping[str, typing.Any] - ''' - self.cloud_region = cloud_region - self.cloud_tag = cloud_tag - self.config = config - - - -class ModelDefaults(Type): - _toSchema = {'controller': 'controller', 'default': 'default', 'regions': 'regions'} - _toPy = {'controller': 'controller', 'default': 'default', 'regions': 'regions'} - def __init__(self, controller=None, default=None, regions=None, **unknown_fields): - ''' - controller : typing.Mapping[str, typing.Any] - default : typing.Mapping[str, typing.Any] - regions : typing.Sequence[~RegionDefaults] - ''' - self.controller = controller - self.default = default - self.regions = [RegionDefaults.from_json(o) for o in regions or []] - - - -class ModelDefaultsResult(Type): - _toSchema = {'config': 'config'} - _toPy = {'config': 'config'} - def __init__(self, config=None, **unknown_fields): - ''' - config : typing.Mapping[str, ~ModelDefaults] - ''' - self.config = config - - - -class ModelEntityCount(Type): - _toSchema = {'count': 'count', 'entity': 'entity'} - _toPy = {'count': 'count', 'entity': 'entity'} - def __init__(self, count=None, entity=None, **unknown_fields): - ''' - count : int - entity : str - ''' - self.count = count - self.entity = entity - - - -class ModelFilesystemInfo(Type): - _toSchema = {'detachable': 'detachable', 'id_': 'id', 'message': 'message', 'provider_id': 'provider-id', 'status': 'status'} - _toPy = {'detachable': 'detachable', 'id': 'id_', 'message': 'message', 'provider-id': 'provider_id', 'status': 'status'} - def __init__(self, detachable=None, id_=None, message=None, provider_id=None, status=None, **unknown_fields): - ''' - detachable : bool - id_ : str - message : str - provider_id : str - status : str - ''' - self.detachable = detachable - self.id_ = id_ - self.message = message - self.provider_id = provider_id - self.status = status - - - -class ModelInfo(Type): - _toSchema = {'agent_version': 'agent-version', 'cloud_credential_tag': 'cloud-credential-tag', 'cloud_region': 'cloud-region', 'cloud_tag': 'cloud-tag', 'controller_uuid': 'controller-uuid', 'default_series': 'default-series', 'life': 'life', 'machines': 'machines', 'migration': 'migration', 'name': 'name', 'owner_tag': 'owner-tag', 'provider_type': 'provider-type', 'sla': 'sla', 'status': 'status', 'type_': 'type', 'users': 'users', 'uuid': 'uuid'} - _toPy = {'agent-version': 'agent_version', 'cloud-credential-tag': 'cloud_credential_tag', 'cloud-region': 'cloud_region', 'cloud-tag': 'cloud_tag', 'controller-uuid': 'controller_uuid', 'default-series': 'default_series', 'life': 'life', 'machines': 'machines', 'migration': 'migration', 'name': 'name', 'owner-tag': 'owner_tag', 'provider-type': 'provider_type', 'sla': 'sla', 'status': 'status', 'type': 'type_', 'users': 'users', 'uuid': 'uuid'} - def __init__(self, agent_version=None, cloud_credential_tag=None, cloud_region=None, cloud_tag=None, controller_uuid=None, default_series=None, life=None, machines=None, migration=None, name=None, owner_tag=None, provider_type=None, sla=None, status=None, type_=None, users=None, uuid=None, **unknown_fields): - ''' - agent_version : Number - cloud_credential_tag : str - cloud_region : str - cloud_tag : str - controller_uuid : str - default_series : str - life : str - machines : typing.Sequence[~ModelMachineInfo] - migration : ModelMigrationStatus - name : str - owner_tag : str - provider_type : str - sla : ModelSLAInfo - status : EntityStatus - type_ : str - users : typing.Sequence[~ModelUserInfo] - uuid : str - ''' - self.agent_version = Number.from_json(agent_version) if agent_version else None - self.cloud_credential_tag = cloud_credential_tag - self.cloud_region = cloud_region - self.cloud_tag = cloud_tag - self.controller_uuid = controller_uuid - self.default_series = default_series - self.life = life - self.machines = [ModelMachineInfo.from_json(o) for o in machines or []] - self.migration = ModelMigrationStatus.from_json(migration) if migration else None - self.name = name - self.owner_tag = owner_tag - self.provider_type = provider_type - self.sla = ModelSLAInfo.from_json(sla) if sla else None - self.status = EntityStatus.from_json(status) if status else None - self.type_ = type_ - self.users = [ModelUserInfo.from_json(o) for o in users or []] - self.uuid = uuid - - - -class ModelInfoResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : ModelInfo - ''' - self.error = Error.from_json(error) if error else None - self.result = ModelInfo.from_json(result) if result else None - - - -class ModelInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ModelInfoResult] - ''' - self.results = [ModelInfoResult.from_json(o) for o in results or []] - - - -class ModelInstanceTypesConstraint(Type): - _toSchema = {'value': 'value'} - _toPy = {'value': 'value'} - def __init__(self, value=None, **unknown_fields): - ''' - value : Value - ''' - self.value = Value.from_json(value) if value else None - - - -class ModelInstanceTypesConstraints(Type): - _toSchema = {'constraints': 'constraints'} - _toPy = {'constraints': 'constraints'} - def __init__(self, constraints=None, **unknown_fields): - ''' - constraints : typing.Sequence[~ModelInstanceTypesConstraint] - ''' - self.constraints = [ModelInstanceTypesConstraint.from_json(o) for o in constraints or []] - - - -class ModelMachineInfo(Type): - _toSchema = {'hardware': 'hardware', 'has_vote': 'has-vote', 'id_': 'id', 'instance_id': 'instance-id', 'status': 'status', 'wants_vote': 'wants-vote'} - _toPy = {'hardware': 'hardware', 'has-vote': 'has_vote', 'id': 'id_', 'instance-id': 'instance_id', 'status': 'status', 'wants-vote': 'wants_vote'} - def __init__(self, hardware=None, has_vote=None, id_=None, instance_id=None, status=None, wants_vote=None, **unknown_fields): - ''' - hardware : MachineHardware - has_vote : bool - id_ : str - instance_id : str - status : str - wants_vote : bool - ''' - self.hardware = MachineHardware.from_json(hardware) if hardware else None - self.has_vote = has_vote - self.id_ = id_ - self.instance_id = instance_id - self.status = status - self.wants_vote = wants_vote - - - -class ModelMigrationStatus(Type): - _toSchema = {'end': 'end', 'start': 'start', 'status': 'status'} - _toPy = {'end': 'end', 'start': 'start', 'status': 'status'} - def __init__(self, end=None, start=None, status=None, **unknown_fields): - ''' - end : str - start : str - status : str - ''' - self.end = end - self.start = start - self.status = status - - - -class ModelResult(Type): - _toSchema = {'error': 'error', 'name': 'name', 'uuid': 'uuid'} - _toPy = {'error': 'error', 'name': 'name', 'uuid': 'uuid'} - def __init__(self, error=None, name=None, uuid=None, **unknown_fields): - ''' - error : Error - name : str - uuid : str - ''' - self.error = Error.from_json(error) if error else None - self.name = name - self.uuid = uuid - - - -class ModelSLA(Type): - _toSchema = {'creds': 'creds', 'level': 'level'} - _toPy = {'creds': 'creds', 'level': 'level'} - def __init__(self, creds=None, level=None, **unknown_fields): - ''' - creds : typing.Sequence[int] - level : str - ''' - self.creds = creds - self.level = level - - - -class ModelSLAInfo(Type): - _toSchema = {'level': 'level', 'owner': 'owner'} - _toPy = {'level': 'level', 'owner': 'owner'} - def __init__(self, level=None, owner=None, **unknown_fields): - ''' - level : str - owner : str - ''' - self.level = level - self.owner = owner - - - -class ModelSequencesResult(Type): - _toSchema = {'sequences': 'sequences'} - _toPy = {'sequences': 'sequences'} - def __init__(self, sequences=None, **unknown_fields): - ''' - sequences : typing.Mapping[str, int] - ''' - self.sequences = sequences - - - -class ModelSet(Type): - _toSchema = {'config': 'config'} - _toPy = {'config': 'config'} - def __init__(self, config=None, **unknown_fields): - ''' - config : typing.Mapping[str, typing.Any] - ''' - self.config = config - - - -class ModelStatus(Type): - _toSchema = {'application_count': 'application-count', 'hosted_machine_count': 'hosted-machine-count', 'life': 'life', 'machines': 'machines', 'model_tag': 'model-tag', 'owner_tag': 'owner-tag'} - _toPy = {'application-count': 'application_count', 'hosted-machine-count': 'hosted_machine_count', 'life': 'life', 'machines': 'machines', 'model-tag': 'model_tag', 'owner-tag': 'owner_tag'} - def __init__(self, application_count=None, hosted_machine_count=None, life=None, machines=None, model_tag=None, owner_tag=None, **unknown_fields): - ''' - application_count : int - hosted_machine_count : int - life : str - machines : typing.Sequence[~ModelMachineInfo] - model_tag : str - owner_tag : str - ''' - self.application_count = application_count - self.hosted_machine_count = hosted_machine_count - self.life = life - self.machines = [ModelMachineInfo.from_json(o) for o in machines or []] - self.model_tag = model_tag - self.owner_tag = owner_tag - - - -class ModelStatusInfo(Type): - _toSchema = {'available_version': 'available-version', 'cloud_tag': 'cloud-tag', 'meter_status': 'meter-status', 'model_status': 'model-status', 'name': 'name', 'region': 'region', 'sla': 'sla', 'type_': 'type', 'version': 'version'} - _toPy = {'available-version': 'available_version', 'cloud-tag': 'cloud_tag', 'meter-status': 'meter_status', 'model-status': 'model_status', 'name': 'name', 'region': 'region', 'sla': 'sla', 'type': 'type_', 'version': 'version'} - def __init__(self, available_version=None, cloud_tag=None, meter_status=None, model_status=None, name=None, region=None, sla=None, type_=None, version=None, **unknown_fields): - ''' - available_version : str - cloud_tag : str - meter_status : MeterStatus - model_status : DetailedStatus - name : str - region : str - sla : str - type_ : str - version : str - ''' - self.available_version = available_version - self.cloud_tag = cloud_tag - self.meter_status = MeterStatus.from_json(meter_status) if meter_status else None - self.model_status = DetailedStatus.from_json(model_status) if model_status else None - self.name = name - self.region = region - self.sla = sla - self.type_ = type_ - self.version = version - - - -class ModelStatusResults(Type): - _toSchema = {'models': 'models'} - _toPy = {'models': 'models'} - def __init__(self, models=None, **unknown_fields): - ''' - models : typing.Sequence[~ModelStatus] - ''' - self.models = [ModelStatus.from_json(o) for o in models or []] - - - -class ModelSummariesRequest(Type): - _toSchema = {'all_': 'all', 'user_tag': 'user-tag'} - _toPy = {'all': 'all_', 'user-tag': 'user_tag'} - def __init__(self, all_=None, user_tag=None, **unknown_fields): - ''' - all_ : bool - user_tag : str - ''' - self.all_ = all_ - self.user_tag = user_tag - - - -class ModelSummary(Type): - _toSchema = {'agent_version': 'agent-version', 'cloud_credential_tag': 'cloud-credential-tag', 'cloud_region': 'cloud-region', 'cloud_tag': 'cloud-tag', 'controller_uuid': 'controller-uuid', 'counts': 'counts', 'default_series': 'default-series', 'last_connection': 'last-connection', 'life': 'life', 'migration': 'migration', 'name': 'name', 'owner_tag': 'owner-tag', 'provider_type': 'provider-type', 'sla': 'sla', 'status': 'status', 'type_': 'type', 'user_access': 'user-access', 'uuid': 'uuid'} - _toPy = {'agent-version': 'agent_version', 'cloud-credential-tag': 'cloud_credential_tag', 'cloud-region': 'cloud_region', 'cloud-tag': 'cloud_tag', 'controller-uuid': 'controller_uuid', 'counts': 'counts', 'default-series': 'default_series', 'last-connection': 'last_connection', 'life': 'life', 'migration': 'migration', 'name': 'name', 'owner-tag': 'owner_tag', 'provider-type': 'provider_type', 'sla': 'sla', 'status': 'status', 'type': 'type_', 'user-access': 'user_access', 'uuid': 'uuid'} - def __init__(self, agent_version=None, cloud_credential_tag=None, cloud_region=None, cloud_tag=None, controller_uuid=None, counts=None, default_series=None, last_connection=None, life=None, migration=None, name=None, owner_tag=None, provider_type=None, sla=None, status=None, type_=None, user_access=None, uuid=None, **unknown_fields): - ''' - agent_version : Number - cloud_credential_tag : str - cloud_region : str - cloud_tag : str - controller_uuid : str - counts : typing.Sequence[~ModelEntityCount] - default_series : str - last_connection : str - life : str - migration : ModelMigrationStatus - name : str - owner_tag : str - provider_type : str - sla : ModelSLAInfo - status : EntityStatus - type_ : str - user_access : str - uuid : str - ''' - self.agent_version = Number.from_json(agent_version) if agent_version else None - self.cloud_credential_tag = cloud_credential_tag - self.cloud_region = cloud_region - self.cloud_tag = cloud_tag - self.controller_uuid = controller_uuid - self.counts = [ModelEntityCount.from_json(o) for o in counts or []] - self.default_series = default_series - self.last_connection = last_connection - self.life = life - self.migration = ModelMigrationStatus.from_json(migration) if migration else None - self.name = name - self.owner_tag = owner_tag - self.provider_type = provider_type - self.sla = ModelSLAInfo.from_json(sla) if sla else None - self.status = EntityStatus.from_json(status) if status else None - self.type_ = type_ - self.user_access = user_access - self.uuid = uuid - - - -class ModelSummaryResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : ModelSummary - ''' - self.error = Error.from_json(error) if error else None - self.result = ModelSummary.from_json(result) if result else None - - - -class ModelSummaryResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ModelSummaryResult] - ''' - self.results = [ModelSummaryResult.from_json(o) for o in results or []] - - - -class ModelTag(Type): - _toSchema = {} - _toPy = {} - def __init__(self, **unknown_fields): - ''' - - ''' - pass - - - -class ModelUnset(Type): - _toSchema = {'keys': 'keys'} - _toPy = {'keys': 'keys'} - def __init__(self, keys=None, **unknown_fields): - ''' - keys : typing.Sequence[str] - ''' - self.keys = keys - - - -class ModelUnsetKeys(Type): - _toSchema = {'cloud_region': 'cloud-region', 'cloud_tag': 'cloud-tag', 'keys': 'keys'} - _toPy = {'cloud-region': 'cloud_region', 'cloud-tag': 'cloud_tag', 'keys': 'keys'} - def __init__(self, cloud_region=None, cloud_tag=None, keys=None, **unknown_fields): - ''' - cloud_region : str - cloud_tag : str - keys : typing.Sequence[str] - ''' - self.cloud_region = cloud_region - self.cloud_tag = cloud_tag - self.keys = keys - - - -class ModelUserInfo(Type): - _toSchema = {'access': 'access', 'display_name': 'display-name', 'last_connection': 'last-connection', 'user': 'user'} - _toPy = {'access': 'access', 'display-name': 'display_name', 'last-connection': 'last_connection', 'user': 'user'} - def __init__(self, access=None, display_name=None, last_connection=None, user=None, **unknown_fields): - ''' - access : str - display_name : str - last_connection : str - user : str - ''' - self.access = access - self.display_name = display_name - self.last_connection = last_connection - self.user = user - - - -class ModelUserInfoResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : ModelUserInfo - ''' - self.error = Error.from_json(error) if error else None - self.result = ModelUserInfo.from_json(result) if result else None - - - -class ModelUserInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ModelUserInfoResult] - ''' - self.results = [ModelUserInfoResult.from_json(o) for o in results or []] - - - -class ModelVolumeInfo(Type): - _toSchema = {'detachable': 'detachable', 'id_': 'id', 'message': 'message', 'provider_id': 'provider-id', 'status': 'status'} - _toPy = {'detachable': 'detachable', 'id': 'id_', 'message': 'message', 'provider-id': 'provider_id', 'status': 'status'} - def __init__(self, detachable=None, id_=None, message=None, provider_id=None, status=None, **unknown_fields): - ''' - detachable : bool - id_ : str - message : str - provider_id : str - status : str - ''' - self.detachable = detachable - self.id_ = id_ - self.message = message - self.provider_id = provider_id - self.status = status - - - -class ModifyCloudAccess(Type): - _toSchema = {'access': 'access', 'action': 'action', 'cloud_tag': 'cloud-tag', 'user_tag': 'user-tag'} - _toPy = {'access': 'access', 'action': 'action', 'cloud-tag': 'cloud_tag', 'user-tag': 'user_tag'} - def __init__(self, access=None, action=None, cloud_tag=None, user_tag=None, **unknown_fields): - ''' - access : str - action : str - cloud_tag : str - user_tag : str - ''' - self.access = access - self.action = action - self.cloud_tag = cloud_tag - self.user_tag = user_tag - - - -class ModifyCloudAccessRequest(Type): - _toSchema = {'changes': 'changes'} - _toPy = {'changes': 'changes'} - def __init__(self, changes=None, **unknown_fields): - ''' - changes : typing.Sequence[~ModifyCloudAccess] - ''' - self.changes = [ModifyCloudAccess.from_json(o) for o in changes or []] - - - -class ModifyControllerAccess(Type): - _toSchema = {'access': 'access', 'action': 'action', 'user_tag': 'user-tag'} - _toPy = {'access': 'access', 'action': 'action', 'user-tag': 'user_tag'} - def __init__(self, access=None, action=None, user_tag=None, **unknown_fields): - ''' - access : str - action : str - user_tag : str - ''' - self.access = access - self.action = action - self.user_tag = user_tag - - - -class ModifyControllerAccessRequest(Type): - _toSchema = {'changes': 'changes'} - _toPy = {'changes': 'changes'} - def __init__(self, changes=None, **unknown_fields): - ''' - changes : typing.Sequence[~ModifyControllerAccess] - ''' - self.changes = [ModifyControllerAccess.from_json(o) for o in changes or []] - - - -class ModifyModelAccess(Type): - _toSchema = {'access': 'access', 'action': 'action', 'model_tag': 'model-tag', 'user_tag': 'user-tag'} - _toPy = {'access': 'access', 'action': 'action', 'model-tag': 'model_tag', 'user-tag': 'user_tag'} - def __init__(self, access=None, action=None, model_tag=None, user_tag=None, **unknown_fields): - ''' - access : str - action : str - model_tag : str - user_tag : str - ''' - self.access = access - self.action = action - self.model_tag = model_tag - self.user_tag = user_tag - - - -class ModifyModelAccessRequest(Type): - _toSchema = {'changes': 'changes'} - _toPy = {'changes': 'changes'} - def __init__(self, changes=None, **unknown_fields): - ''' - changes : typing.Sequence[~ModifyModelAccess] - ''' - self.changes = [ModifyModelAccess.from_json(o) for o in changes or []] - - - -class ModifyOfferAccess(Type): - _toSchema = {'access': 'access', 'action': 'action', 'offer_url': 'offer-url', 'user_tag': 'user-tag'} - _toPy = {'access': 'access', 'action': 'action', 'offer-url': 'offer_url', 'user-tag': 'user_tag'} - def __init__(self, access=None, action=None, offer_url=None, user_tag=None, **unknown_fields): - ''' - access : str - action : str - offer_url : str - user_tag : str - ''' - self.access = access - self.action = action - self.offer_url = offer_url - self.user_tag = user_tag - - - -class ModifyOfferAccessRequest(Type): - _toSchema = {'changes': 'changes'} - _toPy = {'changes': 'changes'} - def __init__(self, changes=None, **unknown_fields): - ''' - changes : typing.Sequence[~ModifyOfferAccess] - ''' - self.changes = [ModifyOfferAccess.from_json(o) for o in changes or []] - - - -class ModifyUserSSHKeys(Type): - _toSchema = {'ssh_keys': 'ssh-keys', 'user': 'user'} - _toPy = {'ssh-keys': 'ssh_keys', 'user': 'user'} - def __init__(self, ssh_keys=None, user=None, **unknown_fields): - ''' - ssh_keys : typing.Sequence[str] - user : str - ''' - self.ssh_keys = ssh_keys - self.user = user - - - -class MongoUpgradeResults(Type): - _toSchema = {'ha_members': 'ha-members', 'master': 'master', 'rs_members': 'rs-members'} - _toPy = {'ha-members': 'ha_members', 'master': 'master', 'rs-members': 'rs_members'} - def __init__(self, ha_members=None, master=None, rs_members=None, **unknown_fields): - ''' - ha_members : typing.Sequence[~HAMember] - master : HAMember - rs_members : typing.Sequence[~Member] - ''' - self.ha_members = [HAMember.from_json(o) for o in ha_members or []] - self.master = HAMember.from_json(master) if master else None - self.rs_members = [Member.from_json(o) for o in rs_members or []] - - - -class MongoVersion(Type): - _toSchema = {'engine': 'engine', 'major': 'major', 'minor': 'minor', 'patch': 'patch'} - _toPy = {'engine': 'engine', 'major': 'major', 'minor': 'minor', 'patch': 'patch'} - def __init__(self, engine=None, major=None, minor=None, patch=None, **unknown_fields): - ''' - engine : str - major : int - minor : int - patch : str - ''' - self.engine = engine - self.major = major - self.minor = minor - self.patch = patch - - - -class NetworkConfig(Type): - _toSchema = {'address': 'address', 'cidr': 'cidr', 'config_type': 'config-type', 'device_index': 'device-index', 'disabled': 'disabled', 'dns_search_domains': 'dns-search-domains', 'dns_servers': 'dns-servers', 'gateway_address': 'gateway-address', 'interface_name': 'interface-name', 'interface_type': 'interface-type', 'mac_address': 'mac-address', 'mtu': 'mtu', 'no_auto_start': 'no-auto-start', 'parent_interface_name': 'parent-interface-name', 'provider_address_id': 'provider-address-id', 'provider_id': 'provider-id', 'provider_space_id': 'provider-space-id', 'provider_subnet_id': 'provider-subnet-id', 'provider_vlan_id': 'provider-vlan-id', 'vlan_tag': 'vlan-tag'} - _toPy = {'address': 'address', 'cidr': 'cidr', 'config-type': 'config_type', 'device-index': 'device_index', 'disabled': 'disabled', 'dns-search-domains': 'dns_search_domains', 'dns-servers': 'dns_servers', 'gateway-address': 'gateway_address', 'interface-name': 'interface_name', 'interface-type': 'interface_type', 'mac-address': 'mac_address', 'mtu': 'mtu', 'no-auto-start': 'no_auto_start', 'parent-interface-name': 'parent_interface_name', 'provider-address-id': 'provider_address_id', 'provider-id': 'provider_id', 'provider-space-id': 'provider_space_id', 'provider-subnet-id': 'provider_subnet_id', 'provider-vlan-id': 'provider_vlan_id', 'vlan-tag': 'vlan_tag'} - def __init__(self, address=None, cidr=None, config_type=None, device_index=None, disabled=None, dns_search_domains=None, dns_servers=None, gateway_address=None, interface_name=None, interface_type=None, mac_address=None, mtu=None, no_auto_start=None, parent_interface_name=None, provider_address_id=None, provider_id=None, provider_space_id=None, provider_subnet_id=None, provider_vlan_id=None, vlan_tag=None, **unknown_fields): - ''' - address : str - cidr : str - config_type : str - device_index : int - disabled : bool - dns_search_domains : typing.Sequence[str] - dns_servers : typing.Sequence[str] - gateway_address : str - interface_name : str - interface_type : str - mac_address : str - mtu : int - no_auto_start : bool - parent_interface_name : str - provider_address_id : str - provider_id : str - provider_space_id : str - provider_subnet_id : str - provider_vlan_id : str - vlan_tag : int - ''' - self.address = address - self.cidr = cidr - self.config_type = config_type - self.device_index = device_index - self.disabled = disabled - self.dns_search_domains = dns_search_domains - self.dns_servers = dns_servers - self.gateway_address = gateway_address - self.interface_name = interface_name - self.interface_type = interface_type - self.mac_address = mac_address - self.mtu = mtu - self.no_auto_start = no_auto_start - self.parent_interface_name = parent_interface_name - self.provider_address_id = provider_address_id - self.provider_id = provider_id - self.provider_space_id = provider_space_id - self.provider_subnet_id = provider_subnet_id - self.provider_vlan_id = provider_vlan_id - self.vlan_tag = vlan_tag - - - -class NetworkInfo(Type): - _toSchema = {'addresses': 'addresses', 'interface_name': 'interface-name', 'mac_address': 'mac-address'} - _toPy = {'addresses': 'addresses', 'interface-name': 'interface_name', 'mac-address': 'mac_address'} - def __init__(self, addresses=None, interface_name=None, mac_address=None, **unknown_fields): - ''' - addresses : typing.Sequence[~InterfaceAddress] - interface_name : str - mac_address : str - ''' - self.addresses = [InterfaceAddress.from_json(o) for o in addresses or []] - self.interface_name = interface_name - self.mac_address = mac_address - - - -class NetworkInfoParams(Type): - _toSchema = {'bindings': 'bindings', 'unit': 'unit'} - _toPy = {'bindings': 'bindings', 'unit': 'unit'} - def __init__(self, bindings=None, unit=None, **unknown_fields): - ''' - bindings : typing.Sequence[str] - unit : str - ''' - self.bindings = bindings - self.unit = unit - - - -class NetworkInfoResult(Type): - _toSchema = {'error': 'error', 'network_info': 'network-info'} - _toPy = {'error': 'error', 'network-info': 'network_info'} - def __init__(self, error=None, network_info=None, **unknown_fields): - ''' - error : Error - network_info : typing.Sequence[~NetworkInfo] - ''' - self.error = Error.from_json(error) if error else None - self.network_info = [NetworkInfo.from_json(o) for o in network_info or []] - - - -class NetworkInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Mapping[str, ~NetworkInfoResult] - ''' - self.results = results - - - -class NetworkInterface(Type): - _toSchema = {'dns_nameservers': 'dns-nameservers', 'gateway': 'gateway', 'ip_addresses': 'ip-addresses', 'is_up': 'is-up', 'mac_address': 'mac-address', 'space': 'space'} - _toPy = {'dns-nameservers': 'dns_nameservers', 'gateway': 'gateway', 'ip-addresses': 'ip_addresses', 'is-up': 'is_up', 'mac-address': 'mac_address', 'space': 'space'} - def __init__(self, dns_nameservers=None, gateway=None, ip_addresses=None, is_up=None, mac_address=None, space=None, **unknown_fields): - ''' - dns_nameservers : typing.Sequence[str] - gateway : str - ip_addresses : typing.Sequence[str] - is_up : bool - mac_address : str - space : str - ''' - self.dns_nameservers = dns_nameservers - self.gateway = gateway - self.ip_addresses = ip_addresses - self.is_up = is_up - self.mac_address = mac_address - self.space = space - - - -class NetworkRoute(Type): - _toSchema = {'destination_cidr': 'destination-cidr', 'gateway_ip': 'gateway-ip', 'metric': 'metric'} - _toPy = {'destination-cidr': 'destination_cidr', 'gateway-ip': 'gateway_ip', 'metric': 'metric'} - def __init__(self, destination_cidr=None, gateway_ip=None, metric=None, **unknown_fields): - ''' - destination_cidr : str - gateway_ip : str - metric : int - ''' - self.destination_cidr = destination_cidr - self.gateway_ip = gateway_ip - self.metric = metric - - - -class NotifyWatchResult(Type): - _toSchema = {'error': 'error', 'notifywatcherid': 'NotifyWatcherId'} - _toPy = {'NotifyWatcherId': 'notifywatcherid', 'error': 'error'} - def __init__(self, notifywatcherid=None, error=None, **unknown_fields): - ''' - notifywatcherid : str - error : Error - ''' - self.notifywatcherid = notifywatcherid - self.error = Error.from_json(error) if error else None - - - -class NotifyWatchResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~NotifyWatchResult] - ''' - self.results = [NotifyWatchResult.from_json(o) for o in results or []] - - - -class Number(Type): - _toSchema = {'build': 'Build', 'major': 'Major', 'minor': 'Minor', 'patch': 'Patch', 'tag': 'Tag'} - _toPy = {'Build': 'build', 'Major': 'major', 'Minor': 'minor', 'Patch': 'patch', 'Tag': 'tag'} - def __init__(self, build=None, major=None, minor=None, patch=None, tag=None, **unknown_fields): - ''' - build : int - major : int - minor : int - patch : int - tag : str - ''' - self.build = build - self.major = major - self.minor = minor - self.patch = patch - self.tag = tag - - - -class OfferArg(Type): - _toSchema = {'macaroons': 'macaroons', 'offer_uuid': 'offer-uuid'} - _toPy = {'macaroons': 'macaroons', 'offer-uuid': 'offer_uuid'} - def __init__(self, macaroons=None, offer_uuid=None, **unknown_fields): - ''' - macaroons : typing.Sequence[~Macaroon] - offer_uuid : str - ''' - self.macaroons = [Macaroon.from_json(o) for o in macaroons or []] - self.offer_uuid = offer_uuid - - - -class OfferArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~OfferArg] - ''' - self.args = [OfferArg.from_json(o) for o in args or []] - - - -class OfferConnection(Type): - _toSchema = {'endpoint': 'endpoint', 'ingress_subnets': 'ingress-subnets', 'relation_id': 'relation-id', 'source_model_tag': 'source-model-tag', 'status': 'status', 'username': 'username'} - _toPy = {'endpoint': 'endpoint', 'ingress-subnets': 'ingress_subnets', 'relation-id': 'relation_id', 'source-model-tag': 'source_model_tag', 'status': 'status', 'username': 'username'} - def __init__(self, endpoint=None, ingress_subnets=None, relation_id=None, source_model_tag=None, status=None, username=None, **unknown_fields): - ''' - endpoint : str - ingress_subnets : typing.Sequence[str] - relation_id : int - source_model_tag : str - status : EntityStatus - username : str - ''' - self.endpoint = endpoint - self.ingress_subnets = ingress_subnets - self.relation_id = relation_id - self.source_model_tag = source_model_tag - self.status = EntityStatus.from_json(status) if status else None - self.username = username - - - -class OfferFilter(Type): - _toSchema = {'allowed_users': 'allowed-users', 'application_description': 'application-description', 'application_name': 'application-name', 'application_user': 'application-user', 'connected_users': 'connected-users', 'endpoints': 'endpoints', 'model_name': 'model-name', 'offer_name': 'offer-name', 'owner_name': 'owner-name'} - _toPy = {'allowed-users': 'allowed_users', 'application-description': 'application_description', 'application-name': 'application_name', 'application-user': 'application_user', 'connected-users': 'connected_users', 'endpoints': 'endpoints', 'model-name': 'model_name', 'offer-name': 'offer_name', 'owner-name': 'owner_name'} - def __init__(self, allowed_users=None, application_description=None, application_name=None, application_user=None, connected_users=None, endpoints=None, model_name=None, offer_name=None, owner_name=None, **unknown_fields): - ''' - allowed_users : typing.Sequence[str] - application_description : str - application_name : str - application_user : str - connected_users : typing.Sequence[str] - endpoints : typing.Sequence[~EndpointFilterAttributes] - model_name : str - offer_name : str - owner_name : str - ''' - self.allowed_users = allowed_users - self.application_description = application_description - self.application_name = application_name - self.application_user = application_user - self.connected_users = connected_users - self.endpoints = [EndpointFilterAttributes.from_json(o) for o in endpoints or []] - self.model_name = model_name - self.offer_name = offer_name - self.owner_name = owner_name - - - -class OfferFilters(Type): - _toSchema = {'filters': 'Filters'} - _toPy = {'Filters': 'filters'} - def __init__(self, filters=None, **unknown_fields): - ''' - filters : typing.Sequence[~OfferFilter] - ''' - self.filters = [OfferFilter.from_json(o) for o in filters or []] - - - -class OfferStatusChange(Type): - _toSchema = {'offer_name': 'offer-name', 'status': 'status'} - _toPy = {'offer-name': 'offer_name', 'status': 'status'} - def __init__(self, offer_name=None, status=None, **unknown_fields): - ''' - offer_name : str - status : EntityStatus - ''' - self.offer_name = offer_name - self.status = EntityStatus.from_json(status) if status else None - - - -class OfferStatusWatchResult(Type): - _toSchema = {'changes': 'changes', 'error': 'error', 'watcher_id': 'watcher-id'} - _toPy = {'changes': 'changes', 'error': 'error', 'watcher-id': 'watcher_id'} - def __init__(self, changes=None, error=None, watcher_id=None, **unknown_fields): - ''' - changes : typing.Sequence[~OfferStatusChange] - error : Error - watcher_id : str - ''' - self.changes = [OfferStatusChange.from_json(o) for o in changes or []] - self.error = Error.from_json(error) if error else None - self.watcher_id = watcher_id - - - -class OfferStatusWatchResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~OfferStatusWatchResult] - ''' - self.results = [OfferStatusWatchResult.from_json(o) for o in results or []] - - - -class OfferURLs(Type): - _toSchema = {'offer_urls': 'offer-urls'} - _toPy = {'offer-urls': 'offer_urls'} - def __init__(self, offer_urls=None, **unknown_fields): - ''' - offer_urls : typing.Sequence[str] - ''' - self.offer_urls = offer_urls - - - -class OfferUserDetails(Type): - _toSchema = {'access': 'access', 'display_name': 'display-name', 'user': 'user'} - _toPy = {'access': 'access', 'display-name': 'display_name', 'user': 'user'} - def __init__(self, access=None, display_name=None, user=None, **unknown_fields): - ''' - access : str - display_name : str - user : str - ''' - self.access = access - self.display_name = display_name - self.user = user - - - -class OperatorProvisioningInfo(Type): - _toSchema = {'api_addresses': 'api-addresses', 'charm_storage': 'charm-storage', 'image_path': 'image-path', 'tags': 'tags', 'version': 'version'} - _toPy = {'api-addresses': 'api_addresses', 'charm-storage': 'charm_storage', 'image-path': 'image_path', 'tags': 'tags', 'version': 'version'} - def __init__(self, api_addresses=None, charm_storage=None, image_path=None, tags=None, version=None, **unknown_fields): - ''' - api_addresses : typing.Sequence[str] - charm_storage : KubernetesFilesystemParams - image_path : str - tags : typing.Mapping[str, str] - version : Number - ''' - self.api_addresses = api_addresses - self.charm_storage = KubernetesFilesystemParams.from_json(charm_storage) if charm_storage else None - self.image_path = image_path - self.tags = tags - self.version = Number.from_json(version) if version else None - - - -class Payload(Type): - _toSchema = {'class_': 'class', 'id_': 'id', 'labels': 'labels', 'machine': 'machine', 'status': 'status', 'type_': 'type', 'unit': 'unit'} - _toPy = {'class': 'class_', 'id': 'id_', 'labels': 'labels', 'machine': 'machine', 'status': 'status', 'type': 'type_', 'unit': 'unit'} - def __init__(self, class_=None, id_=None, labels=None, machine=None, status=None, type_=None, unit=None, **unknown_fields): - ''' - class_ : str - id_ : str - labels : typing.Sequence[str] - machine : str - status : str - type_ : str - unit : str - ''' - self.class_ = class_ - self.id_ = id_ - self.labels = labels - self.machine = machine - self.status = status - self.type_ = type_ - self.unit = unit - - - -class PayloadListArgs(Type): - _toSchema = {'patterns': 'patterns'} - _toPy = {'patterns': 'patterns'} - def __init__(self, patterns=None, **unknown_fields): - ''' - patterns : typing.Sequence[str] - ''' - self.patterns = patterns - - - -class PayloadListResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~Payload] - ''' - self.results = [Payload.from_json(o) for o in results or []] - - - -class PayloadResult(Type): - _toSchema = {'entity': 'Entity', 'error': 'error', 'not_found': 'not-found', 'payload': 'payload'} - _toPy = {'Entity': 'entity', 'error': 'error', 'not-found': 'not_found', 'payload': 'payload'} - def __init__(self, entity=None, error=None, not_found=None, payload=None, **unknown_fields): - ''' - entity : Entity - error : Error - not_found : bool - payload : Payload - ''' - self.entity = Entity.from_json(entity) if entity else None - self.error = Error.from_json(error) if error else None - self.not_found = not_found - self.payload = Payload.from_json(payload) if payload else None - - - -class PayloadResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~PayloadResult] - ''' - self.results = [PayloadResult.from_json(o) for o in results or []] - - - -class PhaseResult(Type): - _toSchema = {'error': 'error', 'phase': 'phase'} - _toPy = {'error': 'error', 'phase': 'phase'} - def __init__(self, error=None, phase=None, **unknown_fields): - ''' - error : Error - phase : str - ''' - self.error = Error.from_json(error) if error else None - self.phase = phase - - - -class PhaseResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~PhaseResult] - ''' - self.results = [PhaseResult.from_json(o) for o in results or []] - - - -class PinApplicationResult(Type): - _toSchema = {'application_name': 'application-name', 'error': 'error'} - _toPy = {'application-name': 'application_name', 'error': 'error'} - def __init__(self, application_name=None, error=None, **unknown_fields): - ''' - application_name : str - error : Error - ''' - self.application_name = application_name - self.error = Error.from_json(error) if error else None - - - -class PinApplicationsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~PinApplicationResult] - ''' - self.results = [PinApplicationResult.from_json(o) for o in results or []] - - - -class PinnedLeadershipResult(Type): - _toSchema = {'result': 'result'} - _toPy = {'result': 'result'} - def __init__(self, result=None, **unknown_fields): - ''' - result : typing.Sequence[str] - ''' - self.result = result - - - -class Placement(Type): - _toSchema = {'directive': 'directive', 'scope': 'scope'} - _toPy = {'directive': 'directive', 'scope': 'scope'} - def __init__(self, directive=None, scope=None, **unknown_fields): - ''' - directive : str - scope : str - ''' - self.directive = directive - self.scope = scope - - - -class PortRange(Type): - _toSchema = {'from_port': 'from-port', 'protocol': 'protocol', 'to_port': 'to-port'} - _toPy = {'from-port': 'from_port', 'protocol': 'protocol', 'to-port': 'to_port'} - def __init__(self, from_port=None, protocol=None, to_port=None, **unknown_fields): - ''' - from_port : int - protocol : str - to_port : int - ''' - self.from_port = from_port - self.protocol = protocol - self.to_port = to_port - - - -class PrivateAddress(Type): - _toSchema = {'target': 'target'} - _toPy = {'target': 'target'} - def __init__(self, target=None, **unknown_fields): - ''' - target : str - ''' - self.target = target - - - -class PrivateAddressResults(Type): - _toSchema = {'private_address': 'private-address'} - _toPy = {'private-address': 'private_address'} - def __init__(self, private_address=None, **unknown_fields): - ''' - private_address : str - ''' - self.private_address = private_address - - - -class ProfileChangeResult(Type): - _toSchema = {'error': 'error', 'new_profile_name': 'new-profile-name', 'old_profile_name': 'old-profile-name', 'profile': 'profile', 'subordinate': 'subordinate'} - _toPy = {'error': 'error', 'new-profile-name': 'new_profile_name', 'old-profile-name': 'old_profile_name', 'profile': 'profile', 'subordinate': 'subordinate'} - def __init__(self, error=None, new_profile_name=None, old_profile_name=None, profile=None, subordinate=None, **unknown_fields): - ''' - error : Error - new_profile_name : str - old_profile_name : str - profile : CharmLXDProfile - subordinate : bool - ''' - self.error = Error.from_json(error) if error else None - self.new_profile_name = new_profile_name - self.old_profile_name = old_profile_name - self.profile = CharmLXDProfile.from_json(profile) if profile else None - self.subordinate = subordinate - - - -class ProfileChangeResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ProfileChangeResult] - ''' - self.results = [ProfileChangeResult.from_json(o) for o in results or []] - - - -class ProviderInterfaceInfo(Type): - _toSchema = {'interface_name': 'interface-name', 'mac_address': 'mac-address', 'provider_id': 'provider-id'} - _toPy = {'interface-name': 'interface_name', 'mac-address': 'mac_address', 'provider-id': 'provider_id'} - def __init__(self, interface_name=None, mac_address=None, provider_id=None, **unknown_fields): - ''' - interface_name : str - mac_address : str - provider_id : str - ''' - self.interface_name = interface_name - self.mac_address = mac_address - self.provider_id = provider_id - - - -class ProviderInterfaceInfoResult(Type): - _toSchema = {'error': 'error', 'interfaces': 'interfaces', 'machine_tag': 'machine-tag'} - _toPy = {'error': 'error', 'interfaces': 'interfaces', 'machine-tag': 'machine_tag'} - def __init__(self, error=None, interfaces=None, machine_tag=None, **unknown_fields): - ''' - error : Error - interfaces : typing.Sequence[~ProviderInterfaceInfo] - machine_tag : str - ''' - self.error = Error.from_json(error) if error else None - self.interfaces = [ProviderInterfaceInfo.from_json(o) for o in interfaces or []] - self.machine_tag = machine_tag - - - -class ProviderInterfaceInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ProviderInterfaceInfoResult] - ''' - self.results = [ProviderInterfaceInfoResult.from_json(o) for o in results or []] - - - -class ProviderSpace(Type): - _toSchema = {'error': 'error', 'name': 'name', 'provider_id': 'provider-id', 'subnets': 'subnets'} - _toPy = {'error': 'error', 'name': 'name', 'provider-id': 'provider_id', 'subnets': 'subnets'} - def __init__(self, error=None, name=None, provider_id=None, subnets=None, **unknown_fields): - ''' - error : Error - name : str - provider_id : str - subnets : typing.Sequence[~Subnet] - ''' - self.error = Error.from_json(error) if error else None - self.name = name - self.provider_id = provider_id - self.subnets = [Subnet.from_json(o) for o in subnets or []] - - - -class ProvisioningInfo(Type): - _toSchema = {'constraints': 'constraints', 'controller_config': 'controller-config', 'endpoint_bindings': 'endpoint-bindings', 'image_metadata': 'image-metadata', 'jobs': 'jobs', 'placement': 'placement', 'series': 'series', 'subnets_to_zones': 'subnets-to-zones', 'tags': 'tags', 'volumes': 'volumes'} - _toPy = {'constraints': 'constraints', 'controller-config': 'controller_config', 'endpoint-bindings': 'endpoint_bindings', 'image-metadata': 'image_metadata', 'jobs': 'jobs', 'placement': 'placement', 'series': 'series', 'subnets-to-zones': 'subnets_to_zones', 'tags': 'tags', 'volumes': 'volumes'} - def __init__(self, constraints=None, controller_config=None, endpoint_bindings=None, image_metadata=None, jobs=None, placement=None, series=None, subnets_to_zones=None, tags=None, volumes=None, **unknown_fields): - ''' - constraints : Value - controller_config : typing.Mapping[str, typing.Any] - endpoint_bindings : typing.Mapping[str, str] - image_metadata : typing.Sequence[~CloudImageMetadata] - jobs : typing.Sequence[str] - placement : str - series : str - subnets_to_zones : typing.Sequence[str] - tags : typing.Mapping[str, str] - volumes : typing.Sequence[~VolumeParams] - ''' - self.constraints = Value.from_json(constraints) if constraints else None - self.controller_config = controller_config - self.endpoint_bindings = endpoint_bindings - self.image_metadata = [CloudImageMetadata.from_json(o) for o in image_metadata or []] - self.jobs = jobs - self.placement = placement - self.series = series - self.subnets_to_zones = subnets_to_zones - self.tags = tags - self.volumes = [VolumeParams.from_json(o) for o in volumes or []] - - - -class ProvisioningInfoResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : ProvisioningInfo - ''' - self.error = Error.from_json(error) if error else None - self.result = ProvisioningInfo.from_json(result) if result else None - - - -class ProvisioningInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ProvisioningInfoResult] - ''' - self.results = [ProvisioningInfoResult.from_json(o) for o in results or []] - - - -class ProvisioningScriptParams(Type): - _toSchema = {'data_dir': 'data-dir', 'disable_package_commands': 'disable-package-commands', 'machine_id': 'machine-id', 'nonce': 'nonce'} - _toPy = {'data-dir': 'data_dir', 'disable-package-commands': 'disable_package_commands', 'machine-id': 'machine_id', 'nonce': 'nonce'} - def __init__(self, data_dir=None, disable_package_commands=None, machine_id=None, nonce=None, **unknown_fields): - ''' - data_dir : str - disable_package_commands : bool - machine_id : str - nonce : str - ''' - self.data_dir = data_dir - self.disable_package_commands = disable_package_commands - self.machine_id = machine_id - self.nonce = nonce - - - -class ProvisioningScriptResult(Type): - _toSchema = {'script': 'script'} - _toPy = {'script': 'script'} - def __init__(self, script=None, **unknown_fields): - ''' - script : str - ''' - self.script = script - - - -class ProxyConfig(Type): - _toSchema = {'ftp': 'ftp', 'http': 'http', 'https': 'https', 'no_proxy': 'no-proxy'} - _toPy = {'ftp': 'ftp', 'http': 'http', 'https': 'https', 'no-proxy': 'no_proxy'} - def __init__(self, ftp=None, http=None, https=None, no_proxy=None, **unknown_fields): - ''' - ftp : str - http : str - https : str - no_proxy : str - ''' - self.ftp = ftp - self.http = http - self.https = https - self.no_proxy = no_proxy - - - -class ProxyConfigResult(Type): - _toSchema = {'apt_proxy_settings': 'apt-proxy-settings', 'error': 'error', 'proxy_settings': 'proxy-settings'} - _toPy = {'apt-proxy-settings': 'apt_proxy_settings', 'error': 'error', 'proxy-settings': 'proxy_settings'} - def __init__(self, apt_proxy_settings=None, error=None, proxy_settings=None, **unknown_fields): - ''' - apt_proxy_settings : ProxyConfig - error : Error - proxy_settings : ProxyConfig - ''' - self.apt_proxy_settings = ProxyConfig.from_json(apt_proxy_settings) if apt_proxy_settings else None - self.error = Error.from_json(error) if error else None - self.proxy_settings = ProxyConfig.from_json(proxy_settings) if proxy_settings else None - - - -class ProxyConfigResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ProxyConfigResult] - ''' - self.results = [ProxyConfigResult.from_json(o) for o in results or []] - - - -class PublicAddress(Type): - _toSchema = {'target': 'target'} - _toPy = {'target': 'target'} - def __init__(self, target=None, **unknown_fields): - ''' - target : str - ''' - self.target = target - - - -class PublicAddressResults(Type): - _toSchema = {'public_address': 'public-address'} - _toPy = {'public-address': 'public_address'} - def __init__(self, public_address=None, **unknown_fields): - ''' - public_address : str - ''' - self.public_address = public_address - - - -class QueryApplicationOffersResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ApplicationOfferAdminDetails] - ''' - self.results = [ApplicationOfferAdminDetails.from_json(o) for o in results or []] - - - -class RebootActionResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : str - ''' - self.error = Error.from_json(error) if error else None - self.result = result - - - -class RebootActionResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RebootActionResult] - ''' - self.results = [RebootActionResult.from_json(o) for o in results or []] - - - -class RegionDefaults(Type): - _toSchema = {'region_name': 'region-name', 'value': 'value'} - _toPy = {'region-name': 'region_name', 'value': 'value'} - def __init__(self, region_name=None, value=None, **unknown_fields): - ''' - region_name : str - value : typing.Mapping[str, typing.Any] - ''' - self.region_name = region_name - self.value = value - - - -class RegisterRemoteRelationArg(Type): - _toSchema = {'application_token': 'application-token', 'local_endpoint_name': 'local-endpoint-name', 'macaroons': 'macaroons', 'offer_uuid': 'offer-uuid', 'relation_token': 'relation-token', 'remote_endpoint': 'remote-endpoint', 'remote_space': 'remote-space', 'source_model_tag': 'source-model-tag'} - _toPy = {'application-token': 'application_token', 'local-endpoint-name': 'local_endpoint_name', 'macaroons': 'macaroons', 'offer-uuid': 'offer_uuid', 'relation-token': 'relation_token', 'remote-endpoint': 'remote_endpoint', 'remote-space': 'remote_space', 'source-model-tag': 'source_model_tag'} - def __init__(self, application_token=None, local_endpoint_name=None, macaroons=None, offer_uuid=None, relation_token=None, remote_endpoint=None, remote_space=None, source_model_tag=None, **unknown_fields): - ''' - application_token : str - local_endpoint_name : str - macaroons : typing.Sequence[~Macaroon] - offer_uuid : str - relation_token : str - remote_endpoint : RemoteEndpoint - remote_space : RemoteSpace - source_model_tag : str - ''' - self.application_token = application_token - self.local_endpoint_name = local_endpoint_name - self.macaroons = [Macaroon.from_json(o) for o in macaroons or []] - self.offer_uuid = offer_uuid - self.relation_token = relation_token - self.remote_endpoint = RemoteEndpoint.from_json(remote_endpoint) if remote_endpoint else None - self.remote_space = RemoteSpace.from_json(remote_space) if remote_space else None - self.source_model_tag = source_model_tag - - - -class RegisterRemoteRelationArgs(Type): - _toSchema = {'relations': 'relations'} - _toPy = {'relations': 'relations'} - def __init__(self, relations=None, **unknown_fields): - ''' - relations : typing.Sequence[~RegisterRemoteRelationArg] - ''' - self.relations = [RegisterRemoteRelationArg.from_json(o) for o in relations or []] - - - -class RegisterRemoteRelationResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : RemoteRelationDetails - ''' - self.error = Error.from_json(error) if error else None - self.result = RemoteRelationDetails.from_json(result) if result else None - - - -class RegisterRemoteRelationResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RegisterRemoteRelationResult] - ''' - self.results = [RegisterRemoteRelationResult.from_json(o) for o in results or []] - - - -class RelationChange(Type): - _toSchema = {'changedunits': 'changedunits', 'departedunits': 'departedunits', 'id_': 'id', 'life': 'life'} - _toPy = {'changedunits': 'changedunits', 'departedunits': 'departedunits', 'id': 'id_', 'life': 'life'} - def __init__(self, changedunits=None, departedunits=None, id_=None, life=None, **unknown_fields): - ''' - changedunits : typing.Mapping[str, ~RelationUnitChange] - departedunits : typing.Sequence[str] - id_ : int - life : str - ''' - self.changedunits = changedunits - self.departedunits = departedunits - self.id_ = id_ - self.life = life - - - -class RelationIds(Type): - _toSchema = {'relation_ids': 'relation-ids'} - _toPy = {'relation-ids': 'relation_ids'} - def __init__(self, relation_ids=None, **unknown_fields): - ''' - relation_ids : typing.Sequence[int] - ''' - self.relation_ids = relation_ids - - - -class RelationLifeSuspendedStatusChange(Type): - _toSchema = {'key': 'key', 'life': 'life', 'suspended': 'suspended', 'suspended_reason': 'suspended-reason'} - _toPy = {'key': 'key', 'life': 'life', 'suspended': 'suspended', 'suspended-reason': 'suspended_reason'} - def __init__(self, key=None, life=None, suspended=None, suspended_reason=None, **unknown_fields): - ''' - key : str - life : str - suspended : bool - suspended_reason : str - ''' - self.key = key - self.life = life - self.suspended = suspended - self.suspended_reason = suspended_reason - - - -class RelationLifeSuspendedStatusWatchResult(Type): - _toSchema = {'changes': 'changes', 'error': 'error', 'watcher_id': 'watcher-id'} - _toPy = {'changes': 'changes', 'error': 'error', 'watcher-id': 'watcher_id'} - def __init__(self, changes=None, error=None, watcher_id=None, **unknown_fields): - ''' - changes : typing.Sequence[~RelationLifeSuspendedStatusChange] - error : Error - watcher_id : str - ''' - self.changes = [RelationLifeSuspendedStatusChange.from_json(o) for o in changes or []] - self.error = Error.from_json(error) if error else None - self.watcher_id = watcher_id - - - -class RelationResult(Type): - _toSchema = {'endpoint': 'endpoint', 'error': 'error', 'id_': 'id', 'key': 'key', 'life': 'life'} - _toPy = {'endpoint': 'endpoint', 'error': 'error', 'id': 'id_', 'key': 'key', 'life': 'life'} - def __init__(self, endpoint=None, error=None, id_=None, key=None, life=None, **unknown_fields): - ''' - endpoint : Endpoint - error : Error - id_ : int - key : str - life : str - ''' - self.endpoint = Endpoint.from_json(endpoint) if endpoint else None - self.error = Error.from_json(error) if error else None - self.id_ = id_ - self.key = key - self.life = life - - - -class RelationResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RelationResult] - ''' - self.results = [RelationResult.from_json(o) for o in results or []] - - - -class RelationStatus(Type): - _toSchema = {'endpoints': 'endpoints', 'id_': 'id', 'interface': 'interface', 'key': 'key', 'scope': 'scope'} - _toPy = {'endpoints': 'endpoints', 'id': 'id_', 'interface': 'interface', 'key': 'key', 'scope': 'scope'} - def __init__(self, endpoints=None, id_=None, interface=None, key=None, scope=None, **unknown_fields): - ''' - endpoints : typing.Sequence[~EndpointStatus] - id_ : int - interface : str - key : str - scope : str - ''' - self.endpoints = [EndpointStatus.from_json(o) for o in endpoints or []] - self.id_ = id_ - self.interface = interface - self.key = key - self.scope = scope - - - -class RelationStatusArg(Type): - _toSchema = {'message': 'message', 'relation_id': 'relation-id', 'status': 'status', 'unit_tag': 'unit-tag'} - _toPy = {'message': 'message', 'relation-id': 'relation_id', 'status': 'status', 'unit-tag': 'unit_tag'} - def __init__(self, message=None, relation_id=None, status=None, unit_tag=None, **unknown_fields): - ''' - message : str - relation_id : int - status : str - unit_tag : str - ''' - self.message = message - self.relation_id = relation_id - self.status = status - self.unit_tag = unit_tag - - - -class RelationStatusArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~RelationStatusArg] - ''' - self.args = [RelationStatusArg.from_json(o) for o in args or []] - - - -class RelationStatusWatchResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RelationLifeSuspendedStatusWatchResult] - ''' - self.results = [RelationLifeSuspendedStatusWatchResult.from_json(o) for o in results or []] - - - -class RelationSuspendedArg(Type): - _toSchema = {'message': 'message', 'relation_id': 'relation-id', 'suspended': 'suspended'} - _toPy = {'message': 'message', 'relation-id': 'relation_id', 'suspended': 'suspended'} - def __init__(self, message=None, relation_id=None, suspended=None, **unknown_fields): - ''' - message : str - relation_id : int - suspended : bool - ''' - self.message = message - self.relation_id = relation_id - self.suspended = suspended - - - -class RelationSuspendedArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~RelationSuspendedArg] - ''' - self.args = [RelationSuspendedArg.from_json(o) for o in args or []] - - - -class RelationUnit(Type): - _toSchema = {'relation': 'relation', 'unit': 'unit'} - _toPy = {'relation': 'relation', 'unit': 'unit'} - def __init__(self, relation=None, unit=None, **unknown_fields): - ''' - relation : str - unit : str - ''' - self.relation = relation - self.unit = unit - - - -class RelationUnitChange(Type): - _toSchema = {'settings': 'settings'} - _toPy = {'settings': 'settings'} - def __init__(self, settings=None, **unknown_fields): - ''' - settings : typing.Mapping[str, typing.Any] - ''' - self.settings = settings - - - -class RelationUnitPair(Type): - _toSchema = {'local_unit': 'local-unit', 'relation': 'relation', 'remote_unit': 'remote-unit'} - _toPy = {'local-unit': 'local_unit', 'relation': 'relation', 'remote-unit': 'remote_unit'} - def __init__(self, local_unit=None, relation=None, remote_unit=None, **unknown_fields): - ''' - local_unit : str - relation : str - remote_unit : str - ''' - self.local_unit = local_unit - self.relation = relation - self.remote_unit = remote_unit - - - -class RelationUnitPairs(Type): - _toSchema = {'relation_unit_pairs': 'relation-unit-pairs'} - _toPy = {'relation-unit-pairs': 'relation_unit_pairs'} - def __init__(self, relation_unit_pairs=None, **unknown_fields): - ''' - relation_unit_pairs : typing.Sequence[~RelationUnitPair] - ''' - self.relation_unit_pairs = [RelationUnitPair.from_json(o) for o in relation_unit_pairs or []] - - - -class RelationUnitSettings(Type): - _toSchema = {'relation': 'relation', 'settings': 'settings', 'unit': 'unit'} - _toPy = {'relation': 'relation', 'settings': 'settings', 'unit': 'unit'} - def __init__(self, relation=None, settings=None, unit=None, **unknown_fields): - ''' - relation : str - settings : typing.Mapping[str, str] - unit : str - ''' - self.relation = relation - self.settings = settings - self.unit = unit - - - -class RelationUnitStatus(Type): - _toSchema = {'in_scope': 'in-scope', 'relation_tag': 'relation-tag', 'suspended': 'suspended'} - _toPy = {'in-scope': 'in_scope', 'relation-tag': 'relation_tag', 'suspended': 'suspended'} - def __init__(self, in_scope=None, relation_tag=None, suspended=None, **unknown_fields): - ''' - in_scope : bool - relation_tag : str - suspended : bool - ''' - self.in_scope = in_scope - self.relation_tag = relation_tag - self.suspended = suspended - - - -class RelationUnitStatusResult(Type): - _toSchema = {'error': 'error', 'results': 'results'} - _toPy = {'error': 'error', 'results': 'results'} - def __init__(self, error=None, results=None, **unknown_fields): - ''' - error : Error - results : typing.Sequence[~RelationUnitStatus] - ''' - self.error = Error.from_json(error) if error else None - self.results = [RelationUnitStatus.from_json(o) for o in results or []] - - - -class RelationUnitStatusResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RelationUnitStatusResult] - ''' - self.results = [RelationUnitStatusResult.from_json(o) for o in results or []] - - - -class RelationUnits(Type): - _toSchema = {'relation_units': 'relation-units'} - _toPy = {'relation-units': 'relation_units'} - def __init__(self, relation_units=None, **unknown_fields): - ''' - relation_units : typing.Sequence[~RelationUnit] - ''' - self.relation_units = [RelationUnit.from_json(o) for o in relation_units or []] - - - -class RelationUnitsChange(Type): - _toSchema = {'changed': 'changed', 'departed': 'departed'} - _toPy = {'changed': 'changed', 'departed': 'departed'} - def __init__(self, changed=None, departed=None, **unknown_fields): - ''' - changed : typing.Mapping[str, ~UnitSettings] - departed : typing.Sequence[str] - ''' - self.changed = changed - self.departed = departed - - - -class RelationUnitsSettings(Type): - _toSchema = {'relation_units': 'relation-units'} - _toPy = {'relation-units': 'relation_units'} - def __init__(self, relation_units=None, **unknown_fields): - ''' - relation_units : typing.Sequence[~RelationUnitSettings] - ''' - self.relation_units = [RelationUnitSettings.from_json(o) for o in relation_units or []] - - - -class RelationUnitsWatchResult(Type): - _toSchema = {'changes': 'changes', 'error': 'error', 'watcher_id': 'watcher-id'} - _toPy = {'changes': 'changes', 'error': 'error', 'watcher-id': 'watcher_id'} - def __init__(self, changes=None, error=None, watcher_id=None, **unknown_fields): - ''' - changes : RelationUnitsChange - error : Error - watcher_id : str - ''' - self.changes = RelationUnitsChange.from_json(changes) if changes else None - self.error = Error.from_json(error) if error else None - self.watcher_id = watcher_id - - - -class RelationUnitsWatchResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RelationUnitsWatchResult] - ''' - self.results = [RelationUnitsWatchResult.from_json(o) for o in results or []] - - - -class RemoteApplication(Type): - _toSchema = {'is_consumer_proxy': 'is-consumer-proxy', 'life': 'life', 'macaroon': 'macaroon', 'model_uuid': 'model-uuid', 'name': 'name', 'offer_uuid': 'offer-uuid', 'status': 'status'} - _toPy = {'is-consumer-proxy': 'is_consumer_proxy', 'life': 'life', 'macaroon': 'macaroon', 'model-uuid': 'model_uuid', 'name': 'name', 'offer-uuid': 'offer_uuid', 'status': 'status'} - def __init__(self, is_consumer_proxy=None, life=None, macaroon=None, model_uuid=None, name=None, offer_uuid=None, status=None, **unknown_fields): - ''' - is_consumer_proxy : bool - life : str - macaroon : Macaroon - model_uuid : str - name : str - offer_uuid : str - status : str - ''' - self.is_consumer_proxy = is_consumer_proxy - self.life = life - self.macaroon = Macaroon.from_json(macaroon) if macaroon else None - self.model_uuid = model_uuid - self.name = name - self.offer_uuid = offer_uuid - self.status = status - - - -class RemoteApplicationChange(Type): - _toSchema = {'application_tag': 'application-tag', 'life': 'life', 'relations': 'relations'} - _toPy = {'application-tag': 'application_tag', 'life': 'life', 'relations': 'relations'} - def __init__(self, application_tag=None, life=None, relations=None, **unknown_fields): - ''' - application_tag : str - life : str - relations : RemoteRelationsChange - ''' - self.application_tag = application_tag - self.life = life - self.relations = RemoteRelationsChange.from_json(relations) if relations else None - - - -class RemoteApplicationInfo(Type): - _toSchema = {'application_url': 'application-url', 'description': 'description', 'endpoints': 'endpoints', 'icon_url_path': 'icon-url-path', 'model_tag': 'model-tag', 'name': 'name', 'source_model_label': 'source-model-label'} - _toPy = {'application-url': 'application_url', 'description': 'description', 'endpoints': 'endpoints', 'icon-url-path': 'icon_url_path', 'model-tag': 'model_tag', 'name': 'name', 'source-model-label': 'source_model_label'} - def __init__(self, application_url=None, description=None, endpoints=None, icon_url_path=None, model_tag=None, name=None, source_model_label=None, **unknown_fields): - ''' - application_url : str - description : str - endpoints : typing.Sequence[~RemoteEndpoint] - icon_url_path : str - model_tag : str - name : str - source_model_label : str - ''' - self.application_url = application_url - self.description = description - self.endpoints = [RemoteEndpoint.from_json(o) for o in endpoints or []] - self.icon_url_path = icon_url_path - self.model_tag = model_tag - self.name = name - self.source_model_label = source_model_label - - - -class RemoteApplicationInfoResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : RemoteApplicationInfo - ''' - self.error = Error.from_json(error) if error else None - self.result = RemoteApplicationInfo.from_json(result) if result else None - - - -class RemoteApplicationInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RemoteApplicationInfoResult] - ''' - self.results = [RemoteApplicationInfoResult.from_json(o) for o in results or []] - - - -class RemoteApplicationResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : RemoteApplication - ''' - self.error = Error.from_json(error) if error else None - self.result = RemoteApplication.from_json(result) if result else None - - - -class RemoteApplicationResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RemoteApplicationResult] - ''' - self.results = [RemoteApplicationResult.from_json(o) for o in results or []] - - - -class RemoteApplicationStatus(Type): - _toSchema = {'application_name': 'application-name', 'application_url': 'application-url', 'endpoints': 'endpoints', 'err': 'err', 'life': 'life', 'relations': 'relations', 'status': 'status'} - _toPy = {'application-name': 'application_name', 'application-url': 'application_url', 'endpoints': 'endpoints', 'err': 'err', 'life': 'life', 'relations': 'relations', 'status': 'status'} - def __init__(self, application_name=None, application_url=None, endpoints=None, err=None, life=None, relations=None, status=None, **unknown_fields): - ''' - application_name : str - application_url : str - endpoints : typing.Sequence[~RemoteEndpoint] - err : typing.Mapping[str, typing.Any] - life : str - relations : typing.Sequence[str] - status : DetailedStatus - ''' - self.application_name = application_name - self.application_url = application_url - self.endpoints = [RemoteEndpoint.from_json(o) for o in endpoints or []] - self.err = err - self.life = life - self.relations = relations - self.status = DetailedStatus.from_json(status) if status else None - - - -class RemoteApplicationWatchResult(Type): - _toSchema = {'change': 'change', 'error': 'error', 'id_': 'id'} - _toPy = {'change': 'change', 'error': 'error', 'id': 'id_'} - def __init__(self, change=None, error=None, id_=None, **unknown_fields): - ''' - change : RemoteApplicationChange - error : Error - id_ : str - ''' - self.change = RemoteApplicationChange.from_json(change) if change else None - self.error = Error.from_json(error) if error else None - self.id_ = id_ - - - -class RemoteEndpoint(Type): - _toSchema = {'interface': 'interface', 'limit': 'limit', 'name': 'name', 'role': 'role', 'scope': 'scope'} - _toPy = {'interface': 'interface', 'limit': 'limit', 'name': 'name', 'role': 'role', 'scope': 'scope'} - def __init__(self, interface=None, limit=None, name=None, role=None, scope=None, **unknown_fields): - ''' - interface : str - limit : int - name : str - role : str - scope : str - ''' - self.interface = interface - self.limit = limit - self.name = name - self.role = role - self.scope = scope - - - -class RemoteEntityArg(Type): - _toSchema = {'macaroons': 'macaroons', 'relation_token': 'relation-token'} - _toPy = {'macaroons': 'macaroons', 'relation-token': 'relation_token'} - def __init__(self, macaroons=None, relation_token=None, **unknown_fields): - ''' - macaroons : typing.Sequence[~Macaroon] - relation_token : str - ''' - self.macaroons = [Macaroon.from_json(o) for o in macaroons or []] - self.relation_token = relation_token - - - -class RemoteEntityArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~RemoteEntityArg] - ''' - self.args = [RemoteEntityArg.from_json(o) for o in args or []] - - - -class RemoteEntityId(Type): - _toSchema = {'model_uuid': 'model-uuid', 'token': 'token'} - _toPy = {'model-uuid': 'model_uuid', 'token': 'token'} - def __init__(self, model_uuid=None, token=None, **unknown_fields): - ''' - model_uuid : str - token : str - ''' - self.model_uuid = model_uuid - self.token = token - - - -class RemoteEntityTokenArg(Type): - _toSchema = {'tag': 'tag', 'token': 'token'} - _toPy = {'tag': 'tag', 'token': 'token'} - def __init__(self, tag=None, token=None, **unknown_fields): - ''' - tag : str - token : str - ''' - self.tag = tag - self.token = token - - - -class RemoteEntityTokenArgs(Type): - _toSchema = {'args': 'Args'} - _toPy = {'Args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~RemoteEntityTokenArg] - ''' - self.args = [RemoteEntityTokenArg.from_json(o) for o in args or []] - - - -class RemoteRelation(Type): - _toSchema = {'application_name': 'application-name', 'endpoint': 'endpoint', 'id_': 'id', 'key': 'key', 'life': 'life', 'remote_application_name': 'remote-application-name', 'remote_endpoint_name': 'remote-endpoint-name', 'source_model_uuid': 'source-model-uuid', 'suspended': 'suspended'} - _toPy = {'application-name': 'application_name', 'endpoint': 'endpoint', 'id': 'id_', 'key': 'key', 'life': 'life', 'remote-application-name': 'remote_application_name', 'remote-endpoint-name': 'remote_endpoint_name', 'source-model-uuid': 'source_model_uuid', 'suspended': 'suspended'} - def __init__(self, application_name=None, endpoint=None, id_=None, key=None, life=None, remote_application_name=None, remote_endpoint_name=None, source_model_uuid=None, suspended=None, **unknown_fields): - ''' - application_name : str - endpoint : RemoteEndpoint - id_ : int - key : str - life : str - remote_application_name : str - remote_endpoint_name : str - source_model_uuid : str - suspended : bool - ''' - self.application_name = application_name - self.endpoint = RemoteEndpoint.from_json(endpoint) if endpoint else None - self.id_ = id_ - self.key = key - self.life = life - self.remote_application_name = remote_application_name - self.remote_endpoint_name = remote_endpoint_name - self.source_model_uuid = source_model_uuid - self.suspended = suspended - - - -class RemoteRelationChange(Type): - _toSchema = {'changed_units': 'changed-units', 'departed_units': 'departed-units', 'id_': 'id', 'life': 'life'} - _toPy = {'changed-units': 'changed_units', 'departed-units': 'departed_units', 'id': 'id_', 'life': 'life'} - def __init__(self, changed_units=None, departed_units=None, id_=None, life=None, **unknown_fields): - ''' - changed_units : typing.Mapping[str, ~RemoteRelationUnitChange] - departed_units : typing.Sequence[str] - id_ : int - life : str - ''' - self.changed_units = changed_units - self.departed_units = departed_units - self.id_ = id_ - self.life = life - - - -class RemoteRelationChangeEvent(Type): - _toSchema = {'application_token': 'application-token', 'changed_units': 'changed-units', 'departed_units': 'departed-units', 'force_cleanup': 'force-cleanup', 'life': 'life', 'macaroons': 'macaroons', 'relation_token': 'relation-token', 'suspended': 'suspended', 'suspended_reason': 'suspended-reason'} - _toPy = {'application-token': 'application_token', 'changed-units': 'changed_units', 'departed-units': 'departed_units', 'force-cleanup': 'force_cleanup', 'life': 'life', 'macaroons': 'macaroons', 'relation-token': 'relation_token', 'suspended': 'suspended', 'suspended-reason': 'suspended_reason'} - def __init__(self, application_token=None, changed_units=None, departed_units=None, force_cleanup=None, life=None, macaroons=None, relation_token=None, suspended=None, suspended_reason=None, **unknown_fields): - ''' - application_token : str - changed_units : typing.Sequence[~RemoteRelationUnitChange] - departed_units : typing.Sequence[int] - force_cleanup : bool - life : str - macaroons : typing.Sequence[~Macaroon] - relation_token : str - suspended : bool - suspended_reason : str - ''' - self.application_token = application_token - self.changed_units = [RemoteRelationUnitChange.from_json(o) for o in changed_units or []] - self.departed_units = departed_units - self.force_cleanup = force_cleanup - self.life = life - self.macaroons = [Macaroon.from_json(o) for o in macaroons or []] - self.relation_token = relation_token - self.suspended = suspended - self.suspended_reason = suspended_reason - - - -class RemoteRelationDetails(Type): - _toSchema = {'macaroon': 'macaroon', 'relation_token': 'relation-token'} - _toPy = {'macaroon': 'macaroon', 'relation-token': 'relation_token'} - def __init__(self, macaroon=None, relation_token=None, **unknown_fields): - ''' - macaroon : Macaroon - relation_token : str - ''' - self.macaroon = Macaroon.from_json(macaroon) if macaroon else None - self.relation_token = relation_token - - - -class RemoteRelationResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : RemoteRelation - ''' - self.error = Error.from_json(error) if error else None - self.result = RemoteRelation.from_json(result) if result else None - - - -class RemoteRelationResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RemoteRelationResult] - ''' - self.results = [RemoteRelationResult.from_json(o) for o in results or []] - - - -class RemoteRelationUnit(Type): - _toSchema = {'macaroons': 'macaroons', 'relation_token': 'relation-token', 'unit': 'unit'} - _toPy = {'macaroons': 'macaroons', 'relation-token': 'relation_token', 'unit': 'unit'} - def __init__(self, macaroons=None, relation_token=None, unit=None, **unknown_fields): - ''' - macaroons : typing.Sequence[~Macaroon] - relation_token : str - unit : str - ''' - self.macaroons = [Macaroon.from_json(o) for o in macaroons or []] - self.relation_token = relation_token - self.unit = unit - - - -class RemoteRelationUnitChange(Type): - _toSchema = {'settings': 'settings', 'unit_id': 'unit-id'} - _toPy = {'settings': 'settings', 'unit-id': 'unit_id'} - def __init__(self, settings=None, unit_id=None, **unknown_fields): - ''' - settings : typing.Mapping[str, typing.Any] - unit_id : RemoteEntityId - ''' - self.settings = settings - self.unit_id = RemoteEntityId.from_json(unit_id) if unit_id else None - - - -class RemoteRelationUnits(Type): - _toSchema = {'relation_units': 'relation-units'} - _toPy = {'relation-units': 'relation_units'} - def __init__(self, relation_units=None, **unknown_fields): - ''' - relation_units : typing.Sequence[~RemoteRelationUnit] - ''' - self.relation_units = [RemoteRelationUnit.from_json(o) for o in relation_units or []] - - - -class RemoteRelationsChange(Type): - _toSchema = {'changed': 'changed', 'initial': 'initial', 'removed': 'removed'} - _toPy = {'changed': 'changed', 'initial': 'initial', 'removed': 'removed'} - def __init__(self, changed=None, initial=None, removed=None, **unknown_fields): - ''' - changed : typing.Sequence[~RemoteRelationChange] - initial : bool - removed : typing.Sequence[int] - ''' - self.changed = [RemoteRelationChange.from_json(o) for o in changed or []] - self.initial = initial - self.removed = removed - - - -class RemoteRelationsChanges(Type): - _toSchema = {'changes': 'changes'} - _toPy = {'changes': 'changes'} - def __init__(self, changes=None, **unknown_fields): - ''' - changes : typing.Sequence[~RemoteRelationChangeEvent] - ''' - self.changes = [RemoteRelationChangeEvent.from_json(o) for o in changes or []] - - - -class RemoteRelationsWatchResult(Type): - _toSchema = {'change': 'change', 'error': 'error', 'remoterelationswatcherid': 'RemoteRelationsWatcherId'} - _toPy = {'RemoteRelationsWatcherId': 'remoterelationswatcherid', 'change': 'change', 'error': 'error'} - def __init__(self, remoterelationswatcherid=None, change=None, error=None, **unknown_fields): - ''' - remoterelationswatcherid : str - change : RemoteRelationsChange - error : Error - ''' - self.remoterelationswatcherid = remoterelationswatcherid - self.change = RemoteRelationsChange.from_json(change) if change else None - self.error = Error.from_json(error) if error else None - - - -class RemoteSpace(Type): - _toSchema = {'cloud_type': 'cloud-type', 'name': 'name', 'provider_attributes': 'provider-attributes', 'provider_id': 'provider-id', 'subnets': 'subnets'} - _toPy = {'cloud-type': 'cloud_type', 'name': 'name', 'provider-attributes': 'provider_attributes', 'provider-id': 'provider_id', 'subnets': 'subnets'} - def __init__(self, cloud_type=None, name=None, provider_attributes=None, provider_id=None, subnets=None, **unknown_fields): - ''' - cloud_type : str - name : str - provider_attributes : typing.Mapping[str, typing.Any] - provider_id : str - subnets : typing.Sequence[~Subnet] - ''' - self.cloud_type = cloud_type - self.name = name - self.provider_attributes = provider_attributes - self.provider_id = provider_id - self.subnets = [Subnet.from_json(o) for o in subnets or []] - - - -class RemoveBlocksArgs(Type): - _toSchema = {'all_': 'all'} - _toPy = {'all': 'all_'} - def __init__(self, all_=None, **unknown_fields): - ''' - all_ : bool - ''' - self.all_ = all_ - - - -class RemoveFilesystemParams(Type): - _toSchema = {'destroy': 'destroy', 'filesystem_id': 'filesystem-id', 'provider': 'provider'} - _toPy = {'destroy': 'destroy', 'filesystem-id': 'filesystem_id', 'provider': 'provider'} - def __init__(self, destroy=None, filesystem_id=None, provider=None, **unknown_fields): - ''' - destroy : bool - filesystem_id : str - provider : str - ''' - self.destroy = destroy - self.filesystem_id = filesystem_id - self.provider = provider - - - -class RemoveFilesystemParamsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : RemoveFilesystemParams - ''' - self.error = Error.from_json(error) if error else None - self.result = RemoveFilesystemParams.from_json(result) if result else None - - - -class RemoveFilesystemParamsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RemoveFilesystemParamsResult] - ''' - self.results = [RemoveFilesystemParamsResult.from_json(o) for o in results or []] - - - -class RemoveStorage(Type): - _toSchema = {'storage': 'storage'} - _toPy = {'storage': 'storage'} - def __init__(self, storage=None, **unknown_fields): - ''' - storage : typing.Sequence[~RemoveStorageInstance] - ''' - self.storage = [RemoveStorageInstance.from_json(o) for o in storage or []] - - - -class RemoveStorageInstance(Type): - _toSchema = {'destroy_attachments': 'destroy-attachments', 'destroy_storage': 'destroy-storage', 'tag': 'tag'} - _toPy = {'destroy-attachments': 'destroy_attachments', 'destroy-storage': 'destroy_storage', 'tag': 'tag'} - def __init__(self, destroy_attachments=None, destroy_storage=None, tag=None, **unknown_fields): - ''' - destroy_attachments : bool - destroy_storage : bool - tag : str - ''' - self.destroy_attachments = destroy_attachments - self.destroy_storage = destroy_storage - self.tag = tag - - - -class RemoveVolumeParams(Type): - _toSchema = {'destroy': 'destroy', 'provider': 'provider', 'volume_id': 'volume-id'} - _toPy = {'destroy': 'destroy', 'provider': 'provider', 'volume-id': 'volume_id'} - def __init__(self, destroy=None, provider=None, volume_id=None, **unknown_fields): - ''' - destroy : bool - provider : str - volume_id : str - ''' - self.destroy = destroy - self.provider = provider - self.volume_id = volume_id - - - -class RemoveVolumeParamsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : RemoveVolumeParams - ''' - self.error = Error.from_json(error) if error else None - self.result = RemoveVolumeParams.from_json(result) if result else None - - - -class RemoveVolumeParamsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RemoveVolumeParamsResult] - ''' - self.results = [RemoveVolumeParamsResult.from_json(o) for o in results or []] - - - -class ResolveCharmResult(Type): - _toSchema = {'error': 'error', 'url': 'url'} - _toPy = {'error': 'error', 'url': 'url'} - def __init__(self, error=None, url=None, **unknown_fields): - ''' - error : str - url : str - ''' - self.error = error - self.url = url - - - -class ResolveCharmResults(Type): - _toSchema = {'urls': 'urls'} - _toPy = {'urls': 'urls'} - def __init__(self, urls=None, **unknown_fields): - ''' - urls : typing.Sequence[~ResolveCharmResult] - ''' - self.urls = [ResolveCharmResult.from_json(o) for o in urls or []] - - - -class ResolveCharms(Type): - _toSchema = {'references': 'references'} - _toPy = {'references': 'references'} - def __init__(self, references=None, **unknown_fields): - ''' - references : typing.Sequence[str] - ''' - self.references = references - - - -class Resolved(Type): - _toSchema = {'retry': 'retry', 'unit_name': 'unit-name'} - _toPy = {'retry': 'retry', 'unit-name': 'unit_name'} - def __init__(self, retry=None, unit_name=None, **unknown_fields): - ''' - retry : bool - unit_name : str - ''' - self.retry = retry - self.unit_name = unit_name - - - -class ResolvedModeResult(Type): - _toSchema = {'error': 'error', 'mode': 'mode'} - _toPy = {'error': 'error', 'mode': 'mode'} - def __init__(self, error=None, mode=None, **unknown_fields): - ''' - error : Error - mode : str - ''' - self.error = Error.from_json(error) if error else None - self.mode = mode - - - -class ResolvedModeResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ResolvedModeResult] - ''' - self.results = [ResolvedModeResult.from_json(o) for o in results or []] - - - -class Resource(Type): - _toSchema = {'application': 'application', 'charmresource': 'CharmResource', 'id_': 'id', 'pending_id': 'pending-id', 'timestamp': 'timestamp', 'username': 'username'} - _toPy = {'CharmResource': 'charmresource', 'application': 'application', 'id': 'id_', 'pending-id': 'pending_id', 'timestamp': 'timestamp', 'username': 'username'} - def __init__(self, charmresource=None, application=None, id_=None, pending_id=None, timestamp=None, username=None, **unknown_fields): - ''' - charmresource : CharmResource - application : str - id_ : str - pending_id : str - timestamp : str - username : str - ''' - self.charmresource = CharmResource.from_json(charmresource) if charmresource else None - self.application = application - self.id_ = id_ - self.pending_id = pending_id - self.timestamp = timestamp - self.username = username - - - -class ResourceResult(Type): - _toSchema = {'errorresult': 'ErrorResult', 'resource': 'resource'} - _toPy = {'ErrorResult': 'errorresult', 'resource': 'resource'} - def __init__(self, errorresult=None, resource=None, **unknown_fields): - ''' - errorresult : ErrorResult - resource : Resource - ''' - self.errorresult = ErrorResult.from_json(errorresult) if errorresult else None - self.resource = Resource.from_json(resource) if resource else None - - - -class ResourcesResult(Type): - _toSchema = {'charm_store_resources': 'charm-store-resources', 'errorresult': 'ErrorResult', 'resources': 'resources', 'unit_resources': 'unit-resources'} - _toPy = {'ErrorResult': 'errorresult', 'charm-store-resources': 'charm_store_resources', 'resources': 'resources', 'unit-resources': 'unit_resources'} - def __init__(self, errorresult=None, charm_store_resources=None, resources=None, unit_resources=None, **unknown_fields): - ''' - errorresult : ErrorResult - charm_store_resources : typing.Sequence[~CharmResource] - resources : typing.Sequence[~Resource] - unit_resources : typing.Sequence[~UnitResources] - ''' - self.errorresult = ErrorResult.from_json(errorresult) if errorresult else None - self.charm_store_resources = [CharmResource.from_json(o) for o in charm_store_resources or []] - self.resources = [Resource.from_json(o) for o in resources or []] - self.unit_resources = [UnitResources.from_json(o) for o in unit_resources or []] - - - -class ResourcesResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ResourcesResult] - ''' - self.results = [ResourcesResult.from_json(o) for o in results or []] - - - -class RestoreArgs(Type): - _toSchema = {'backup_id': 'backup-id'} - _toPy = {'backup-id': 'backup_id'} - def __init__(self, backup_id=None, **unknown_fields): - ''' - backup_id : str - ''' - self.backup_id = backup_id - - - -class ResumeReplicationParams(Type): - _toSchema = {'members': 'members'} - _toPy = {'members': 'members'} - def __init__(self, members=None, **unknown_fields): - ''' - members : typing.Sequence[~Member] - ''' - self.members = [Member.from_json(o) for o in members or []] - - - -class RetryStrategy(Type): - _toSchema = {'jitter_retry_time': 'jitter-retry-time', 'max_retry_time': 'max-retry-time', 'min_retry_time': 'min-retry-time', 'retry_time_factor': 'retry-time-factor', 'should_retry': 'should-retry'} - _toPy = {'jitter-retry-time': 'jitter_retry_time', 'max-retry-time': 'max_retry_time', 'min-retry-time': 'min_retry_time', 'retry-time-factor': 'retry_time_factor', 'should-retry': 'should_retry'} - def __init__(self, jitter_retry_time=None, max_retry_time=None, min_retry_time=None, retry_time_factor=None, should_retry=None, **unknown_fields): - ''' - jitter_retry_time : bool - max_retry_time : int - min_retry_time : int - retry_time_factor : int - should_retry : bool - ''' - self.jitter_retry_time = jitter_retry_time - self.max_retry_time = max_retry_time - self.min_retry_time = min_retry_time - self.retry_time_factor = retry_time_factor - self.should_retry = should_retry - - - -class RetryStrategyResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : RetryStrategy - ''' - self.error = Error.from_json(error) if error else None - self.result = RetryStrategy.from_json(result) if result else None - - - -class RetryStrategyResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~RetryStrategyResult] - ''' - self.results = [RetryStrategyResult.from_json(o) for o in results or []] - - - -class RevokeCredentialArg(Type): - _toSchema = {'force': 'force', 'tag': 'tag'} - _toPy = {'force': 'force', 'tag': 'tag'} - def __init__(self, force=None, tag=None, **unknown_fields): - ''' - force : bool - tag : str - ''' - self.force = force - self.tag = tag - - - -class RevokeCredentialArgs(Type): - _toSchema = {'credentials': 'credentials'} - _toPy = {'credentials': 'credentials'} - def __init__(self, credentials=None, **unknown_fields): - ''' - credentials : typing.Sequence[~RevokeCredentialArg] - ''' - self.credentials = [RevokeCredentialArg.from_json(o) for o in credentials or []] - - - -class RunParams(Type): - _toSchema = {'applications': 'applications', 'commands': 'commands', 'machines': 'machines', 'timeout': 'timeout', 'units': 'units'} - _toPy = {'applications': 'applications', 'commands': 'commands', 'machines': 'machines', 'timeout': 'timeout', 'units': 'units'} - def __init__(self, applications=None, commands=None, machines=None, timeout=None, units=None, **unknown_fields): - ''' - applications : typing.Sequence[str] - commands : str - machines : typing.Sequence[str] - timeout : int - units : typing.Sequence[str] - ''' - self.applications = applications - self.commands = commands - self.machines = machines - self.timeout = timeout - self.units = units - - - -class SSHAddressResult(Type): - _toSchema = {'address': 'address', 'error': 'error'} - _toPy = {'address': 'address', 'error': 'error'} - def __init__(self, address=None, error=None, **unknown_fields): - ''' - address : str - error : Error - ''' - self.address = address - self.error = Error.from_json(error) if error else None - - - -class SSHAddressResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~SSHAddressResult] - ''' - self.results = [SSHAddressResult.from_json(o) for o in results or []] - - - -class SSHAddressesResult(Type): - _toSchema = {'addresses': 'addresses', 'error': 'error'} - _toPy = {'addresses': 'addresses', 'error': 'error'} - def __init__(self, addresses=None, error=None, **unknown_fields): - ''' - addresses : typing.Sequence[str] - error : Error - ''' - self.addresses = addresses - self.error = Error.from_json(error) if error else None - - - -class SSHAddressesResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~SSHAddressesResult] - ''' - self.results = [SSHAddressesResult.from_json(o) for o in results or []] - - - -class SSHHostKeySet(Type): - _toSchema = {'entity_keys': 'entity-keys'} - _toPy = {'entity-keys': 'entity_keys'} - def __init__(self, entity_keys=None, **unknown_fields): - ''' - entity_keys : typing.Sequence[~SSHHostKeys] - ''' - self.entity_keys = [SSHHostKeys.from_json(o) for o in entity_keys or []] - - - -class SSHHostKeys(Type): - _toSchema = {'public_keys': 'public-keys', 'tag': 'tag'} - _toPy = {'public-keys': 'public_keys', 'tag': 'tag'} - def __init__(self, public_keys=None, tag=None, **unknown_fields): - ''' - public_keys : typing.Sequence[str] - tag : str - ''' - self.public_keys = public_keys - self.tag = tag - - - -class SSHProxyResult(Type): - _toSchema = {'use_proxy': 'use-proxy'} - _toPy = {'use-proxy': 'use_proxy'} - def __init__(self, use_proxy=None, **unknown_fields): - ''' - use_proxy : bool - ''' - self.use_proxy = use_proxy - - - -class SSHPublicKeysResult(Type): - _toSchema = {'error': 'error', 'public_keys': 'public-keys'} - _toPy = {'error': 'error', 'public-keys': 'public_keys'} - def __init__(self, error=None, public_keys=None, **unknown_fields): - ''' - error : Error - public_keys : typing.Sequence[str] - ''' - self.error = Error.from_json(error) if error else None - self.public_keys = public_keys - - - -class SSHPublicKeysResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~SSHPublicKeysResult] - ''' - self.results = [SSHPublicKeysResult.from_json(o) for o in results or []] - - - -class ScaleApplicationInfo(Type): - _toSchema = {'num_units': 'num-units'} - _toPy = {'num-units': 'num_units'} - def __init__(self, num_units=None, **unknown_fields): - ''' - num_units : int - ''' - self.num_units = num_units - - - -class ScaleApplicationParams(Type): - _toSchema = {'application_tag': 'application-tag', 'scale': 'scale', 'scale_change': 'scale-change'} - _toPy = {'application-tag': 'application_tag', 'scale': 'scale', 'scale-change': 'scale_change'} - def __init__(self, application_tag=None, scale=None, scale_change=None, **unknown_fields): - ''' - application_tag : str - scale : int - scale_change : int - ''' - self.application_tag = application_tag - self.scale = scale - self.scale_change = scale_change - - - -class ScaleApplicationResult(Type): - _toSchema = {'error': 'error', 'info': 'info'} - _toPy = {'error': 'error', 'info': 'info'} - def __init__(self, error=None, info=None, **unknown_fields): - ''' - error : Error - info : ScaleApplicationInfo - ''' - self.error = Error.from_json(error) if error else None - self.info = ScaleApplicationInfo.from_json(info) if info else None - - - -class ScaleApplicationResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ScaleApplicationResult] - ''' - self.results = [ScaleApplicationResult.from_json(o) for o in results or []] - - - -class ScaleApplicationsParams(Type): - _toSchema = {'applications': 'applications'} - _toPy = {'applications': 'applications'} - def __init__(self, applications=None, **unknown_fields): - ''' - applications : typing.Sequence[~ScaleApplicationParams] - ''' - self.applications = [ScaleApplicationParams.from_json(o) for o in applications or []] - - - -class SerializedModel(Type): - _toSchema = {'bytes_': 'bytes', 'charms': 'charms', 'tools': 'tools'} - _toPy = {'bytes': 'bytes_', 'charms': 'charms', 'tools': 'tools'} - def __init__(self, bytes_=None, charms=None, tools=None, **unknown_fields): - ''' - bytes_ : typing.Sequence[int] - charms : typing.Sequence[str] - tools : typing.Sequence[~SerializedModelTools] - ''' - self.bytes_ = bytes_ - self.charms = charms - self.tools = [SerializedModelTools.from_json(o) for o in tools or []] - - - -class SerializedModelResource(Type): - _toSchema = {'application': 'application', 'application_revision': 'application-revision', 'charmstore_revision': 'charmstore-revision', 'name': 'name', 'unit_revisions': 'unit-revisions'} - _toPy = {'application': 'application', 'application-revision': 'application_revision', 'charmstore-revision': 'charmstore_revision', 'name': 'name', 'unit-revisions': 'unit_revisions'} - def __init__(self, application=None, application_revision=None, charmstore_revision=None, name=None, unit_revisions=None, **unknown_fields): - ''' - application : str - application_revision : SerializedModelResourceRevision - charmstore_revision : SerializedModelResourceRevision - name : str - unit_revisions : typing.Mapping[str, ~SerializedModelResourceRevision] - ''' - self.application = application - self.application_revision = SerializedModelResourceRevision.from_json(application_revision) if application_revision else None - self.charmstore_revision = SerializedModelResourceRevision.from_json(charmstore_revision) if charmstore_revision else None - self.name = name - self.unit_revisions = unit_revisions - - - -class SerializedModelResourceRevision(Type): - _toSchema = {'description': 'description', 'fingerprint': 'fingerprint', 'origin': 'origin', 'path': 'path', 'revision': 'revision', 'size': 'size', 'timestamp': 'timestamp', 'type_': 'type', 'username': 'username'} - _toPy = {'description': 'description', 'fingerprint': 'fingerprint', 'origin': 'origin', 'path': 'path', 'revision': 'revision', 'size': 'size', 'timestamp': 'timestamp', 'type': 'type_', 'username': 'username'} - def __init__(self, description=None, fingerprint=None, origin=None, path=None, revision=None, size=None, timestamp=None, type_=None, username=None, **unknown_fields): - ''' - description : str - fingerprint : str - origin : str - path : str - revision : int - size : int - timestamp : str - type_ : str - username : str - ''' - self.description = description - self.fingerprint = fingerprint - self.origin = origin - self.path = path - self.revision = revision - self.size = size - self.timestamp = timestamp - self.type_ = type_ - self.username = username - - - -class SerializedModelTools(Type): - _toSchema = {'uri': 'uri', 'version': 'version'} - _toPy = {'uri': 'uri', 'version': 'version'} - def __init__(self, uri=None, version=None, **unknown_fields): - ''' - uri : str - version : str - ''' - self.uri = uri - self.version = version - - - -class SetConstraints(Type): - _toSchema = {'application': 'application', 'constraints': 'constraints'} - _toPy = {'application': 'application', 'constraints': 'constraints'} - def __init__(self, application=None, constraints=None, **unknown_fields): - ''' - application : str - constraints : Value - ''' - self.application = application - self.constraints = Value.from_json(constraints) if constraints else None - - - -class SetExternalControllerInfoParams(Type): - _toSchema = {'info': 'info'} - _toPy = {'info': 'info'} - def __init__(self, info=None, **unknown_fields): - ''' - info : ExternalControllerInfo - ''' - self.info = ExternalControllerInfo.from_json(info) if info else None - - - -class SetExternalControllersInfoParams(Type): - _toSchema = {'controllers': 'controllers'} - _toPy = {'controllers': 'controllers'} - def __init__(self, controllers=None, **unknown_fields): - ''' - controllers : typing.Sequence[~SetExternalControllerInfoParams] - ''' - self.controllers = [SetExternalControllerInfoParams.from_json(o) for o in controllers or []] - - - -class SetMachineBlockDevices(Type): - _toSchema = {'machine_block_devices': 'machine-block-devices'} - _toPy = {'machine-block-devices': 'machine_block_devices'} - def __init__(self, machine_block_devices=None, **unknown_fields): - ''' - machine_block_devices : typing.Sequence[~MachineBlockDevices] - ''' - self.machine_block_devices = [MachineBlockDevices.from_json(o) for o in machine_block_devices or []] - - - -class SetMachineNetworkConfig(Type): - _toSchema = {'config': 'config', 'tag': 'tag'} - _toPy = {'config': 'config', 'tag': 'tag'} - def __init__(self, config=None, tag=None, **unknown_fields): - ''' - config : typing.Sequence[~NetworkConfig] - tag : str - ''' - self.config = [NetworkConfig.from_json(o) for o in config or []] - self.tag = tag - - - -class SetMachinesAddresses(Type): - _toSchema = {'machine_addresses': 'machine-addresses'} - _toPy = {'machine-addresses': 'machine_addresses'} - def __init__(self, machine_addresses=None, **unknown_fields): - ''' - machine_addresses : typing.Sequence[~MachineAddresses] - ''' - self.machine_addresses = [MachineAddresses.from_json(o) for o in machine_addresses or []] - - - -class SetMigrationPhaseArgs(Type): - _toSchema = {'phase': 'phase'} - _toPy = {'phase': 'phase'} - def __init__(self, phase=None, **unknown_fields): - ''' - phase : str - ''' - self.phase = phase - - - -class SetMigrationStatusMessageArgs(Type): - _toSchema = {'message': 'message'} - _toPy = {'message': 'message'} - def __init__(self, message=None, **unknown_fields): - ''' - message : str - ''' - self.message = message - - - -class SetModelAgentVersion(Type): - _toSchema = {'version': 'version'} - _toPy = {'version': 'version'} - def __init__(self, version=None, **unknown_fields): - ''' - version : Number - ''' - self.version = Number.from_json(version) if version else None - - - -class SetModelDefaults(Type): - _toSchema = {'config': 'config'} - _toPy = {'config': 'config'} - def __init__(self, config=None, **unknown_fields): - ''' - config : typing.Sequence[~ModelDefaultValues] - ''' - self.config = [ModelDefaultValues.from_json(o) for o in config or []] - - - -class SetModelEnvironVersion(Type): - _toSchema = {'model_tag': 'model-tag', 'version': 'version'} - _toPy = {'model-tag': 'model_tag', 'version': 'version'} - def __init__(self, model_tag=None, version=None, **unknown_fields): - ''' - model_tag : str - version : int - ''' - self.model_tag = model_tag - self.version = version - - - -class SetModelEnvironVersions(Type): - _toSchema = {'models': 'models'} - _toPy = {'models': 'models'} - def __init__(self, models=None, **unknown_fields): - ''' - models : typing.Sequence[~SetModelEnvironVersion] - ''' - self.models = [SetModelEnvironVersion.from_json(o) for o in models or []] - - - -class SetPayloadStatusArg(Type): - _toSchema = {'entity': 'Entity', 'status': 'status'} - _toPy = {'Entity': 'entity', 'status': 'status'} - def __init__(self, entity=None, status=None, **unknown_fields): - ''' - entity : Entity - status : str - ''' - self.entity = Entity.from_json(entity) if entity else None - self.status = status - - - -class SetPayloadStatusArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~SetPayloadStatusArg] - ''' - self.args = [SetPayloadStatusArg.from_json(o) for o in args or []] - - - -class SetPodSpecParams(Type): - _toSchema = {'specs': 'specs'} - _toPy = {'specs': 'specs'} - def __init__(self, specs=None, **unknown_fields): - ''' - specs : typing.Sequence[~EntityString] - ''' - self.specs = [EntityString.from_json(o) for o in specs or []] - - - -class SetProfileArg(Type): - _toSchema = {'entity': 'entity', 'profiles': 'profiles'} - _toPy = {'entity': 'entity', 'profiles': 'profiles'} - def __init__(self, entity=None, profiles=None, **unknown_fields): - ''' - entity : Entity - profiles : typing.Sequence[str] - ''' - self.entity = Entity.from_json(entity) if entity else None - self.profiles = profiles - - - -class SetProfileArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~SetProfileArg] - ''' - self.args = [SetProfileArg.from_json(o) for o in args or []] - - - -class SetProfileUpgradeCompleteArg(Type): - _toSchema = {'entity': 'entity', 'message': 'message'} - _toPy = {'entity': 'entity', 'message': 'message'} - def __init__(self, entity=None, message=None, **unknown_fields): - ''' - entity : Entity - message : str - ''' - self.entity = Entity.from_json(entity) if entity else None - self.message = message - - - -class SetProfileUpgradeCompleteArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~SetProfileUpgradeCompleteArg] - ''' - self.args = [SetProfileUpgradeCompleteArg.from_json(o) for o in args or []] - - - -class SetStatus(Type): - _toSchema = {'entities': 'entities'} - _toPy = {'entities': 'entities'} - def __init__(self, entities=None, **unknown_fields): - ''' - entities : typing.Sequence[~EntityStatusArgs] - ''' - self.entities = [EntityStatusArgs.from_json(o) for o in entities or []] - - - -class SetStatusArg(Type): - _toSchema = {'entity': 'Entity', 'status': 'status'} - _toPy = {'Entity': 'entity', 'status': 'status'} - def __init__(self, entity=None, status=None, **unknown_fields): - ''' - entity : Entity - status : str - ''' - self.entity = Entity.from_json(entity) if entity else None - self.status = status - - - -class SetStatusArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~SetStatusArg] - ''' - self.args = [SetStatusArg.from_json(o) for o in args or []] - - - -class Settings(Type): - _toSchema = {'ftp': 'Ftp', 'http': 'Http', 'https': 'Https', 'noproxy': 'NoProxy'} - _toPy = {'Ftp': 'ftp', 'Http': 'http', 'Https': 'https', 'NoProxy': 'noproxy'} - def __init__(self, ftp=None, http=None, https=None, noproxy=None, **unknown_fields): - ''' - ftp : str - http : str - https : str - noproxy : str - ''' - self.ftp = ftp - self.http = http - self.https = https - self.noproxy = noproxy - - - -class SettingsResult(Type): - _toSchema = {'error': 'error', 'settings': 'settings'} - _toPy = {'error': 'error', 'settings': 'settings'} - def __init__(self, error=None, settings=None, **unknown_fields): - ''' - error : Error - settings : typing.Mapping[str, str] - ''' - self.error = Error.from_json(error) if error else None - self.settings = settings - - - -class SettingsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~SettingsResult] - ''' - self.results = [SettingsResult.from_json(o) for o in results or []] - - - -class SingularClaim(Type): - _toSchema = {'controller_tag': 'controller-tag', 'duration': 'duration', 'model_tag': 'model-tag'} - _toPy = {'controller-tag': 'controller_tag', 'duration': 'duration', 'model-tag': 'model_tag'} - def __init__(self, controller_tag=None, duration=None, model_tag=None, **unknown_fields): - ''' - controller_tag : str - duration : int - model_tag : str - ''' - self.controller_tag = controller_tag - self.duration = duration - self.model_tag = model_tag - - - -class SingularClaims(Type): - _toSchema = {'claims': 'claims'} - _toPy = {'claims': 'claims'} - def __init__(self, claims=None, **unknown_fields): - ''' - claims : typing.Sequence[~SingularClaim] - ''' - self.claims = [SingularClaim.from_json(o) for o in claims or []] - - - -class Space(Type): - _toSchema = {'error': 'error', 'name': 'name', 'subnets': 'subnets'} - _toPy = {'error': 'error', 'name': 'name', 'subnets': 'subnets'} - def __init__(self, error=None, name=None, subnets=None, **unknown_fields): - ''' - error : Error - name : str - subnets : typing.Sequence[~Subnet] - ''' - self.error = Error.from_json(error) if error else None - self.name = name - self.subnets = [Subnet.from_json(o) for o in subnets or []] - - - -class SpaceResult(Type): - _toSchema = {'error': 'error', 'tag': 'tag'} - _toPy = {'error': 'error', 'tag': 'tag'} - def __init__(self, error=None, tag=None, **unknown_fields): - ''' - error : Error - tag : str - ''' - self.error = Error.from_json(error) if error else None - self.tag = tag - - - -class SpaceResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~SpaceResult] - ''' - self.results = [SpaceResult.from_json(o) for o in results or []] - - - -class StateServingInfo(Type): - _toSchema = {'api_port': 'api-port', 'ca_private_key': 'ca-private-key', 'cert': 'cert', 'private_key': 'private-key', 'shared_secret': 'shared-secret', 'state_port': 'state-port', 'system_identity': 'system-identity'} - _toPy = {'api-port': 'api_port', 'ca-private-key': 'ca_private_key', 'cert': 'cert', 'private-key': 'private_key', 'shared-secret': 'shared_secret', 'state-port': 'state_port', 'system-identity': 'system_identity'} - def __init__(self, api_port=None, ca_private_key=None, cert=None, private_key=None, shared_secret=None, state_port=None, system_identity=None, **unknown_fields): - ''' - api_port : int - ca_private_key : str - cert : str - private_key : str - shared_secret : str - state_port : int - system_identity : str - ''' - self.api_port = api_port - self.ca_private_key = ca_private_key - self.cert = cert - self.private_key = private_key - self.shared_secret = shared_secret - self.state_port = state_port - self.system_identity = system_identity - - - -class StatusHistoryFilter(Type): - _toSchema = {'date': 'date', 'delta': 'delta', 'size': 'size'} - _toPy = {'date': 'date', 'delta': 'delta', 'size': 'size'} - def __init__(self, date=None, delta=None, size=None, **unknown_fields): - ''' - date : str - delta : int - size : int - ''' - self.date = date - self.delta = delta - self.size = size - - - -class StatusHistoryPruneArgs(Type): - _toSchema = {'max_history_mb': 'max-history-mb', 'max_history_time': 'max-history-time'} - _toPy = {'max-history-mb': 'max_history_mb', 'max-history-time': 'max_history_time'} - def __init__(self, max_history_mb=None, max_history_time=None, **unknown_fields): - ''' - max_history_mb : int - max_history_time : int - ''' - self.max_history_mb = max_history_mb - self.max_history_time = max_history_time - - - -class StatusHistoryRequest(Type): - _toSchema = {'filter_': 'filter', 'historykind': 'historyKind', 'size': 'size', 'tag': 'tag'} - _toPy = {'filter': 'filter_', 'historyKind': 'historykind', 'size': 'size', 'tag': 'tag'} - def __init__(self, filter_=None, historykind=None, size=None, tag=None, **unknown_fields): - ''' - filter_ : StatusHistoryFilter - historykind : str - size : int - tag : str - ''' - self.filter_ = StatusHistoryFilter.from_json(filter_) if filter_ else None - self.historykind = historykind - self.size = size - self.tag = tag - - - -class StatusHistoryRequests(Type): - _toSchema = {'requests': 'requests'} - _toPy = {'requests': 'requests'} - def __init__(self, requests=None, **unknown_fields): - ''' - requests : typing.Sequence[~StatusHistoryRequest] - ''' - self.requests = [StatusHistoryRequest.from_json(o) for o in requests or []] - - - -class StatusHistoryResult(Type): - _toSchema = {'error': 'error', 'history': 'history'} - _toPy = {'error': 'error', 'history': 'history'} - def __init__(self, error=None, history=None, **unknown_fields): - ''' - error : Error - history : History - ''' - self.error = Error.from_json(error) if error else None - self.history = History.from_json(history) if history else None - - - -class StatusHistoryResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~StatusHistoryResult] - ''' - self.results = [StatusHistoryResult.from_json(o) for o in results or []] - - - -class StatusParams(Type): - _toSchema = {'patterns': 'patterns'} - _toPy = {'patterns': 'patterns'} - def __init__(self, patterns=None, **unknown_fields): - ''' - patterns : typing.Sequence[str] - ''' - self.patterns = patterns - - - -class StatusResult(Type): - _toSchema = {'data': 'data', 'error': 'error', 'id_': 'id', 'info': 'info', 'life': 'life', 'since': 'since', 'status': 'status'} - _toPy = {'data': 'data', 'error': 'error', 'id': 'id_', 'info': 'info', 'life': 'life', 'since': 'since', 'status': 'status'} - def __init__(self, data=None, error=None, id_=None, info=None, life=None, since=None, status=None, **unknown_fields): - ''' - data : typing.Mapping[str, typing.Any] - error : Error - id_ : str - info : str - life : str - since : str - status : str - ''' - self.data = data - self.error = Error.from_json(error) if error else None - self.id_ = id_ - self.info = info - self.life = life - self.since = since - self.status = status - - - -class StatusResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~StatusResult] - ''' - self.results = [StatusResult.from_json(o) for o in results or []] - - - -class StorageAddParams(Type): - _toSchema = {'name': 'name', 'storage': 'storage', 'unit': 'unit'} - _toPy = {'name': 'name', 'storage': 'storage', 'unit': 'unit'} - def __init__(self, name=None, storage=None, unit=None, **unknown_fields): - ''' - name : str - storage : StorageConstraints - unit : str - ''' - self.name = name - self.storage = StorageConstraints.from_json(storage) if storage else None - self.unit = unit - - - -class StorageAttachment(Type): - _toSchema = {'kind': 'kind', 'life': 'life', 'location': 'location', 'owner_tag': 'owner-tag', 'storage_tag': 'storage-tag', 'unit_tag': 'unit-tag'} - _toPy = {'kind': 'kind', 'life': 'life', 'location': 'location', 'owner-tag': 'owner_tag', 'storage-tag': 'storage_tag', 'unit-tag': 'unit_tag'} - def __init__(self, kind=None, life=None, location=None, owner_tag=None, storage_tag=None, unit_tag=None, **unknown_fields): - ''' - kind : int - life : str - location : str - owner_tag : str - storage_tag : str - unit_tag : str - ''' - self.kind = kind - self.life = life - self.location = location - self.owner_tag = owner_tag - self.storage_tag = storage_tag - self.unit_tag = unit_tag - - - -class StorageAttachmentDetails(Type): - _toSchema = {'location': 'location', 'machine_tag': 'machine-tag', 'storage_tag': 'storage-tag', 'unit_tag': 'unit-tag'} - _toPy = {'location': 'location', 'machine-tag': 'machine_tag', 'storage-tag': 'storage_tag', 'unit-tag': 'unit_tag'} - def __init__(self, location=None, machine_tag=None, storage_tag=None, unit_tag=None, **unknown_fields): - ''' - location : str - machine_tag : str - storage_tag : str - unit_tag : str - ''' - self.location = location - self.machine_tag = machine_tag - self.storage_tag = storage_tag - self.unit_tag = unit_tag - - - -class StorageAttachmentId(Type): - _toSchema = {'storage_tag': 'storage-tag', 'unit_tag': 'unit-tag'} - _toPy = {'storage-tag': 'storage_tag', 'unit-tag': 'unit_tag'} - def __init__(self, storage_tag=None, unit_tag=None, **unknown_fields): - ''' - storage_tag : str - unit_tag : str - ''' - self.storage_tag = storage_tag - self.unit_tag = unit_tag - - - -class StorageAttachmentIds(Type): - _toSchema = {'ids': 'ids'} - _toPy = {'ids': 'ids'} - def __init__(self, ids=None, **unknown_fields): - ''' - ids : typing.Sequence[~StorageAttachmentId] - ''' - self.ids = [StorageAttachmentId.from_json(o) for o in ids or []] - - - -class StorageAttachmentIdsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : StorageAttachmentIds - ''' - self.error = Error.from_json(error) if error else None - self.result = StorageAttachmentIds.from_json(result) if result else None - - - -class StorageAttachmentIdsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~StorageAttachmentIdsResult] - ''' - self.results = [StorageAttachmentIdsResult.from_json(o) for o in results or []] - - - -class StorageAttachmentResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : StorageAttachment - ''' - self.error = Error.from_json(error) if error else None - self.result = StorageAttachment.from_json(result) if result else None - - - -class StorageAttachmentResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~StorageAttachmentResult] - ''' - self.results = [StorageAttachmentResult.from_json(o) for o in results or []] - - - -class StorageConstraints(Type): - _toSchema = {'count': 'count', 'pool': 'pool', 'size': 'size'} - _toPy = {'count': 'count', 'pool': 'pool', 'size': 'size'} - def __init__(self, count=None, pool=None, size=None, **unknown_fields): - ''' - count : int - pool : str - size : int - ''' - self.count = count - self.pool = pool - self.size = size - - - -class StorageDetails(Type): - _toSchema = {'attachments': 'attachments', 'kind': 'kind', 'owner_tag': 'owner-tag', 'persistent': 'persistent', 'status': 'status', 'storage_tag': 'storage-tag'} - _toPy = {'attachments': 'attachments', 'kind': 'kind', 'owner-tag': 'owner_tag', 'persistent': 'persistent', 'status': 'status', 'storage-tag': 'storage_tag'} - def __init__(self, attachments=None, kind=None, owner_tag=None, persistent=None, status=None, storage_tag=None, **unknown_fields): - ''' - attachments : typing.Mapping[str, ~StorageAttachmentDetails] - kind : int - owner_tag : str - persistent : bool - status : EntityStatus - storage_tag : str - ''' - self.attachments = attachments - self.kind = kind - self.owner_tag = owner_tag - self.persistent = persistent - self.status = EntityStatus.from_json(status) if status else None - self.storage_tag = storage_tag - - - -class StorageDetailsListResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : typing.Sequence[~StorageDetails] - ''' - self.error = Error.from_json(error) if error else None - self.result = [StorageDetails.from_json(o) for o in result or []] - - - -class StorageDetailsListResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~StorageDetailsListResult] - ''' - self.results = [StorageDetailsListResult.from_json(o) for o in results or []] - - - -class StorageDetailsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : StorageDetails - ''' - self.error = Error.from_json(error) if error else None - self.result = StorageDetails.from_json(result) if result else None - - - -class StorageDetailsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~StorageDetailsResult] - ''' - self.results = [StorageDetailsResult.from_json(o) for o in results or []] - - - -class StorageFilter(Type): - _toSchema = {} - _toPy = {} - def __init__(self, **unknown_fields): - ''' - - ''' - pass - - - -class StorageFilters(Type): - _toSchema = {'filters': 'filters'} - _toPy = {'filters': 'filters'} - def __init__(self, filters=None, **unknown_fields): - ''' - filters : typing.Sequence[~StorageFilter] - ''' - self.filters = [StorageFilter.from_json(o) for o in filters or []] - - - -class StoragePool(Type): - _toSchema = {'attrs': 'attrs', 'name': 'name', 'provider': 'provider'} - _toPy = {'attrs': 'attrs', 'name': 'name', 'provider': 'provider'} - def __init__(self, attrs=None, name=None, provider=None, **unknown_fields): - ''' - attrs : typing.Mapping[str, typing.Any] - name : str - provider : str - ''' - self.attrs = attrs - self.name = name - self.provider = provider - - - -class StoragePoolFilter(Type): - _toSchema = {'names': 'names', 'providers': 'providers'} - _toPy = {'names': 'names', 'providers': 'providers'} - def __init__(self, names=None, providers=None, **unknown_fields): - ''' - names : typing.Sequence[str] - providers : typing.Sequence[str] - ''' - self.names = names - self.providers = providers - - - -class StoragePoolFilters(Type): - _toSchema = {'filters': 'filters'} - _toPy = {'filters': 'filters'} - def __init__(self, filters=None, **unknown_fields): - ''' - filters : typing.Sequence[~StoragePoolFilter] - ''' - self.filters = [StoragePoolFilter.from_json(o) for o in filters or []] - - - -class StoragePoolsResult(Type): - _toSchema = {'error': 'error', 'storage_pools': 'storage-pools'} - _toPy = {'error': 'error', 'storage-pools': 'storage_pools'} - def __init__(self, error=None, storage_pools=None, **unknown_fields): - ''' - error : Error - storage_pools : typing.Sequence[~StoragePool] - ''' - self.error = Error.from_json(error) if error else None - self.storage_pools = [StoragePool.from_json(o) for o in storage_pools or []] - - - -class StoragePoolsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~StoragePoolsResult] - ''' - self.results = [StoragePoolsResult.from_json(o) for o in results or []] - - - -class StoragesAddParams(Type): - _toSchema = {'storages': 'storages'} - _toPy = {'storages': 'storages'} - def __init__(self, storages=None, **unknown_fields): - ''' - storages : typing.Sequence[~StorageAddParams] - ''' - self.storages = [StorageAddParams.from_json(o) for o in storages or []] - - - -class StringBoolResult(Type): - _toSchema = {'error': 'error', 'ok': 'ok', 'result': 'result'} - _toPy = {'error': 'error', 'ok': 'ok', 'result': 'result'} - def __init__(self, error=None, ok=None, result=None, **unknown_fields): - ''' - error : Error - ok : bool - result : str - ''' - self.error = Error.from_json(error) if error else None - self.ok = ok - self.result = result - - - -class StringBoolResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~StringBoolResult] - ''' - self.results = [StringBoolResult.from_json(o) for o in results or []] - - - -class StringResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : str - ''' - self.error = Error.from_json(error) if error else None - self.result = result - - - -class StringResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~StringResult] - ''' - self.results = [StringResult.from_json(o) for o in results or []] - - - -class StringsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : typing.Sequence[str] - ''' - self.error = Error.from_json(error) if error else None - self.result = result - - - -class StringsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~StringsResult] - ''' - self.results = [StringsResult.from_json(o) for o in results or []] - - - -class StringsWatchResult(Type): - _toSchema = {'changes': 'changes', 'error': 'error', 'watcher_id': 'watcher-id'} - _toPy = {'changes': 'changes', 'error': 'error', 'watcher-id': 'watcher_id'} - def __init__(self, changes=None, error=None, watcher_id=None, **unknown_fields): - ''' - changes : typing.Sequence[str] - error : Error - watcher_id : str - ''' - self.changes = changes - self.error = Error.from_json(error) if error else None - self.watcher_id = watcher_id - - - -class StringsWatchResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~StringsWatchResult] - ''' - self.results = [StringsWatchResult.from_json(o) for o in results or []] - - - -class Subnet(Type): - _toSchema = {'cidr': 'cidr', 'life': 'life', 'provider_id': 'provider-id', 'space_tag': 'space-tag', 'status': 'status', 'vlan_tag': 'vlan-tag', 'zones': 'zones'} - _toPy = {'cidr': 'cidr', 'life': 'life', 'provider-id': 'provider_id', 'space-tag': 'space_tag', 'status': 'status', 'vlan-tag': 'vlan_tag', 'zones': 'zones'} - def __init__(self, cidr=None, life=None, provider_id=None, space_tag=None, status=None, vlan_tag=None, zones=None, **unknown_fields): - ''' - cidr : str - life : str - provider_id : str - space_tag : str - status : str - vlan_tag : int - zones : typing.Sequence[str] - ''' - self.cidr = cidr - self.life = life - self.provider_id = provider_id - self.space_tag = space_tag - self.status = status - self.vlan_tag = vlan_tag - self.zones = zones - - - -class SubnetsFilters(Type): - _toSchema = {'space_tag': 'space-tag', 'zone': 'zone'} - _toPy = {'space-tag': 'space_tag', 'zone': 'zone'} - def __init__(self, space_tag=None, zone=None, **unknown_fields): - ''' - space_tag : str - zone : str - ''' - self.space_tag = space_tag - self.zone = zone - - - -class TaggedCredential(Type): - _toSchema = {'credential': 'credential', 'tag': 'tag'} - _toPy = {'credential': 'credential', 'tag': 'tag'} - def __init__(self, credential=None, tag=None, **unknown_fields): - ''' - credential : CloudCredential - tag : str - ''' - self.credential = CloudCredential.from_json(credential) if credential else None - self.tag = tag - - - -class TaggedCredentials(Type): - _toSchema = {'credentials': 'credentials'} - _toPy = {'credentials': 'credentials'} - def __init__(self, credentials=None, **unknown_fields): - ''' - credentials : typing.Sequence[~TaggedCredential] - ''' - self.credentials = [TaggedCredential.from_json(o) for o in credentials or []] - - - -class TokenResult(Type): - _toSchema = {'error': 'error', 'token': 'token'} - _toPy = {'error': 'error', 'token': 'token'} - def __init__(self, error=None, token=None, **unknown_fields): - ''' - error : Error - token : str - ''' - self.error = Error.from_json(error) if error else None - self.token = token - - - -class TokenResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~TokenResult] - ''' - self.results = [TokenResult.from_json(o) for o in results or []] - - - -class Tools(Type): - _toSchema = {'sha256': 'sha256', 'size': 'size', 'url': 'url', 'version': 'version'} - _toPy = {'sha256': 'sha256', 'size': 'size', 'url': 'url', 'version': 'version'} - def __init__(self, sha256=None, size=None, url=None, version=None, **unknown_fields): - ''' - sha256 : str - size : int - url : str - version : Binary - ''' - self.sha256 = sha256 - self.size = size - self.url = url - self.version = Binary.from_json(version) if version else None - - - -class ToolsResult(Type): - _toSchema = {'disable_ssl_hostname_verification': 'disable-ssl-hostname-verification', 'error': 'error', 'tools': 'tools'} - _toPy = {'disable-ssl-hostname-verification': 'disable_ssl_hostname_verification', 'error': 'error', 'tools': 'tools'} - def __init__(self, disable_ssl_hostname_verification=None, error=None, tools=None, **unknown_fields): - ''' - disable_ssl_hostname_verification : bool - error : Error - tools : typing.Sequence[~Tools] - ''' - self.disable_ssl_hostname_verification = disable_ssl_hostname_verification - self.error = Error.from_json(error) if error else None - self.tools = [Tools.from_json(o) for o in tools or []] - - - -class ToolsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ToolsResult] - ''' - self.results = [ToolsResult.from_json(o) for o in results or []] - - - -class TrackArgs(Type): - _toSchema = {'payloads': 'payloads'} - _toPy = {'payloads': 'payloads'} - def __init__(self, payloads=None, **unknown_fields): - ''' - payloads : typing.Sequence[~Payload] - ''' - self.payloads = [Payload.from_json(o) for o in payloads or []] - - - -class TrackPayloadArgs(Type): - _toSchema = {'payloads': 'payloads'} - _toPy = {'payloads': 'payloads'} - def __init__(self, payloads=None, **unknown_fields): - ''' - payloads : typing.Sequence[~Payload] - ''' - self.payloads = [Payload.from_json(o) for o in payloads or []] - - - -class UndertakerModelInfo(Type): - _toSchema = {'global_name': 'global-name', 'is_system': 'is-system', 'life': 'life', 'name': 'name', 'uuid': 'uuid'} - _toPy = {'global-name': 'global_name', 'is-system': 'is_system', 'life': 'life', 'name': 'name', 'uuid': 'uuid'} - def __init__(self, global_name=None, is_system=None, life=None, name=None, uuid=None, **unknown_fields): - ''' - global_name : str - is_system : bool - life : str - name : str - uuid : str - ''' - self.global_name = global_name - self.is_system = is_system - self.life = life - self.name = name - self.uuid = uuid - - - -class UndertakerModelInfoResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : UndertakerModelInfo - ''' - self.error = Error.from_json(error) if error else None - self.result = UndertakerModelInfo.from_json(result) if result else None - - - -class UnitNetworkConfig(Type): - _toSchema = {'binding_name': 'binding-name', 'unit_tag': 'unit-tag'} - _toPy = {'binding-name': 'binding_name', 'unit-tag': 'unit_tag'} - def __init__(self, binding_name=None, unit_tag=None, **unknown_fields): - ''' - binding_name : str - unit_tag : str - ''' - self.binding_name = binding_name - self.unit_tag = unit_tag - - - -class UnitNetworkConfigResult(Type): - _toSchema = {'error': 'error', 'info': 'info'} - _toPy = {'error': 'error', 'info': 'info'} - def __init__(self, error=None, info=None, **unknown_fields): - ''' - error : Error - info : typing.Sequence[~NetworkConfig] - ''' - self.error = Error.from_json(error) if error else None - self.info = [NetworkConfig.from_json(o) for o in info or []] - - - -class UnitNetworkConfigResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~UnitNetworkConfigResult] - ''' - self.results = [UnitNetworkConfigResult.from_json(o) for o in results or []] - - - -class UnitRefreshResult(Type): - _toSchema = {'error': 'Error', 'life': 'Life', 'resolved': 'Resolved'} - _toPy = {'Error': 'error', 'Life': 'life', 'Resolved': 'resolved'} - def __init__(self, error=None, life=None, resolved=None, **unknown_fields): - ''' - error : Error - life : str - resolved : str - ''' - self.error = Error.from_json(error) if error else None - self.life = life - self.resolved = resolved - - - -class UnitRefreshResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~UnitRefreshResult] - ''' - self.results = [UnitRefreshResult.from_json(o) for o in results or []] - - - -class UnitResourceResult(Type): - _toSchema = {'errorresult': 'ErrorResult', 'resource': 'resource'} - _toPy = {'ErrorResult': 'errorresult', 'resource': 'resource'} - def __init__(self, errorresult=None, resource=None, **unknown_fields): - ''' - errorresult : ErrorResult - resource : Resource - ''' - self.errorresult = ErrorResult.from_json(errorresult) if errorresult else None - self.resource = Resource.from_json(resource) if resource else None - - - -class UnitResources(Type): - _toSchema = {'download_progress': 'download-progress', 'entity': 'Entity', 'resources': 'resources'} - _toPy = {'Entity': 'entity', 'download-progress': 'download_progress', 'resources': 'resources'} - def __init__(self, entity=None, download_progress=None, resources=None, **unknown_fields): - ''' - entity : Entity - download_progress : typing.Mapping[str, int] - resources : typing.Sequence[~Resource] - ''' - self.entity = Entity.from_json(entity) if entity else None - self.download_progress = download_progress - self.resources = [Resource.from_json(o) for o in resources or []] - - - -class UnitResourcesResult(Type): - _toSchema = {'errorresult': 'ErrorResult', 'resources': 'resources'} - _toPy = {'ErrorResult': 'errorresult', 'resources': 'resources'} - def __init__(self, errorresult=None, resources=None, **unknown_fields): - ''' - errorresult : ErrorResult - resources : typing.Sequence[~UnitResourceResult] - ''' - self.errorresult = ErrorResult.from_json(errorresult) if errorresult else None - self.resources = [UnitResourceResult.from_json(o) for o in resources or []] - - - -class UnitSettings(Type): - _toSchema = {'version': 'version'} - _toPy = {'version': 'version'} - def __init__(self, version=None, **unknown_fields): - ''' - version : int - ''' - self.version = version - - - -class UnitStatus(Type): - _toSchema = {'agent_status': 'agent-status', 'charm': 'charm', 'leader': 'leader', 'machine': 'machine', 'opened_ports': 'opened-ports', 'public_address': 'public-address', 'subordinates': 'subordinates', 'workload_status': 'workload-status', 'workload_version': 'workload-version'} - _toPy = {'agent-status': 'agent_status', 'charm': 'charm', 'leader': 'leader', 'machine': 'machine', 'opened-ports': 'opened_ports', 'public-address': 'public_address', 'subordinates': 'subordinates', 'workload-status': 'workload_status', 'workload-version': 'workload_version'} - def __init__(self, agent_status=None, charm=None, leader=None, machine=None, opened_ports=None, public_address=None, subordinates=None, workload_status=None, workload_version=None, **unknown_fields): - ''' - agent_status : DetailedStatus - charm : str - leader : bool - machine : str - opened_ports : typing.Sequence[str] - public_address : str - subordinates : typing.Mapping[str, ~UnitStatus] - workload_status : DetailedStatus - workload_version : str - ''' - self.agent_status = DetailedStatus.from_json(agent_status) if agent_status else None - self.charm = charm - self.leader = leader - self.machine = machine - self.opened_ports = opened_ports - self.public_address = public_address - self.subordinates = subordinates - self.workload_status = DetailedStatus.from_json(workload_status) if workload_status else None - self.workload_version = workload_version - - - -class UnitsNetworkConfig(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~UnitNetworkConfig] - ''' - self.args = [UnitNetworkConfig.from_json(o) for o in args or []] - - - -class UnitsResolved(Type): - _toSchema = {'all_': 'all', 'retry': 'retry', 'tags': 'tags'} - _toPy = {'all': 'all_', 'retry': 'retry', 'tags': 'tags'} - def __init__(self, all_=None, retry=None, tags=None, **unknown_fields): - ''' - all_ : bool - retry : bool - tags : Entities - ''' - self.all_ = all_ - self.retry = retry - self.tags = Entities.from_json(tags) if tags else None - - - -class UnsetModelDefaults(Type): - _toSchema = {'keys': 'keys'} - _toPy = {'keys': 'keys'} - def __init__(self, keys=None, **unknown_fields): - ''' - keys : typing.Sequence[~ModelUnsetKeys] - ''' - self.keys = [ModelUnsetKeys.from_json(o) for o in keys or []] - - - -class UpdateApplicationServiceArg(Type): - _toSchema = {'addresses': 'addresses', 'application_tag': 'application-tag', 'provider_id': 'provider-id'} - _toPy = {'addresses': 'addresses', 'application-tag': 'application_tag', 'provider-id': 'provider_id'} - def __init__(self, addresses=None, application_tag=None, provider_id=None, **unknown_fields): - ''' - addresses : typing.Sequence[~Address] - application_tag : str - provider_id : str - ''' - self.addresses = [Address.from_json(o) for o in addresses or []] - self.application_tag = application_tag - self.provider_id = provider_id - - - -class UpdateApplicationServiceArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~UpdateApplicationServiceArg] - ''' - self.args = [UpdateApplicationServiceArg.from_json(o) for o in args or []] - - - -class UpdateApplicationUnitArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~UpdateApplicationUnits] - ''' - self.args = [UpdateApplicationUnits.from_json(o) for o in args or []] - - - -class UpdateApplicationUnits(Type): - _toSchema = {'application_tag': 'application-tag', 'units': 'units'} - _toPy = {'application-tag': 'application_tag', 'units': 'units'} - def __init__(self, application_tag=None, units=None, **unknown_fields): - ''' - application_tag : str - units : typing.Sequence[~ApplicationUnitParams] - ''' - self.application_tag = application_tag - self.units = [ApplicationUnitParams.from_json(o) for o in units or []] - - - -class UpdateBehavior(Type): - _toSchema = {'enable_os_refresh_update': 'enable-os-refresh-update', 'enable_os_upgrade': 'enable-os-upgrade'} - _toPy = {'enable-os-refresh-update': 'enable_os_refresh_update', 'enable-os-upgrade': 'enable_os_upgrade'} - def __init__(self, enable_os_refresh_update=None, enable_os_upgrade=None, **unknown_fields): - ''' - enable_os_refresh_update : bool - enable_os_upgrade : bool - ''' - self.enable_os_refresh_update = enable_os_refresh_update - self.enable_os_upgrade = enable_os_upgrade - - - -class UpdateCloudCredential(Type): - _toSchema = {'credential': 'credential', 'tag': 'tag'} - _toPy = {'credential': 'credential', 'tag': 'tag'} - def __init__(self, credential=None, tag=None, **unknown_fields): - ''' - credential : CloudCredential - tag : str - ''' - self.credential = CloudCredential.from_json(credential) if credential else None - self.tag = tag - - - -class UpdateCloudCredentials(Type): - _toSchema = {'credentials': 'credentials'} - _toPy = {'credentials': 'credentials'} - def __init__(self, credentials=None, **unknown_fields): - ''' - credentials : typing.Sequence[~UpdateCloudCredential] - ''' - self.credentials = [UpdateCloudCredential.from_json(o) for o in credentials or []] - - - -class UpdateCredentialArgs(Type): - _toSchema = {'credentials': 'credentials', 'force': 'force'} - _toPy = {'credentials': 'credentials', 'force': 'force'} - def __init__(self, credentials=None, force=None, **unknown_fields): - ''' - credentials : typing.Sequence[~TaggedCredential] - force : bool - ''' - self.credentials = [TaggedCredential.from_json(o) for o in credentials or []] - self.force = force - - - -class UpdateCredentialModelResult(Type): - _toSchema = {'errors': 'errors', 'name': 'name', 'uuid': 'uuid'} - _toPy = {'errors': 'errors', 'name': 'name', 'uuid': 'uuid'} - def __init__(self, errors=None, name=None, uuid=None, **unknown_fields): - ''' - errors : typing.Sequence[~ErrorResult] - name : str - uuid : str - ''' - self.errors = [ErrorResult.from_json(o) for o in errors or []] - self.name = name - self.uuid = uuid - - - -class UpdateCredentialResult(Type): - _toSchema = {'error': 'error', 'models': 'models', 'tag': 'tag'} - _toPy = {'error': 'error', 'models': 'models', 'tag': 'tag'} - def __init__(self, error=None, models=None, tag=None, **unknown_fields): - ''' - error : Error - models : typing.Sequence[~UpdateCredentialModelResult] - tag : str - ''' - self.error = Error.from_json(error) if error else None - self.models = [UpdateCredentialModelResult.from_json(o) for o in models or []] - self.tag = tag - - - -class UpdateCredentialResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~UpdateCredentialResult] - ''' - self.results = [UpdateCredentialResult.from_json(o) for o in results or []] - - - -class UpdateSeriesArg(Type): - _toSchema = {'force': 'force', 'series': 'series', 'tag': 'tag'} - _toPy = {'force': 'force', 'series': 'series', 'tag': 'tag'} - def __init__(self, force=None, series=None, tag=None, **unknown_fields): - ''' - force : bool - series : str - tag : Entity - ''' - self.force = force - self.series = series - self.tag = Entity.from_json(tag) if tag else None - - - -class UpdateSeriesArgs(Type): - _toSchema = {'args': 'args'} - _toPy = {'args': 'args'} - def __init__(self, args=None, **unknown_fields): - ''' - args : typing.Sequence[~UpdateSeriesArg] - ''' - self.args = [UpdateSeriesArg.from_json(o) for o in args or []] - - - -class UpgradeMongoParams(Type): - _toSchema = {'target': 'target'} - _toPy = {'target': 'target'} - def __init__(self, target=None, **unknown_fields): - ''' - target : MongoVersion - ''' - self.target = MongoVersion.from_json(target) if target else None - - - -class UpgradeSeriesNotificationParam(Type): - _toSchema = {'entity': 'entity', 'watcher_id': 'watcher-id'} - _toPy = {'entity': 'entity', 'watcher-id': 'watcher_id'} - def __init__(self, entity=None, watcher_id=None, **unknown_fields): - ''' - entity : Entity - watcher_id : str - ''' - self.entity = Entity.from_json(entity) if entity else None - self.watcher_id = watcher_id - - - -class UpgradeSeriesNotificationParams(Type): - _toSchema = {'params': 'params'} - _toPy = {'params': 'params'} - def __init__(self, params=None, **unknown_fields): - ''' - params : typing.Sequence[~UpgradeSeriesNotificationParam] - ''' - self.params = [UpgradeSeriesNotificationParam.from_json(o) for o in params or []] - - - -class UpgradeSeriesStartUnitCompletionParam(Type): - _toSchema = {'entities': 'entities', 'message': 'message'} - _toPy = {'entities': 'entities', 'message': 'message'} - def __init__(self, entities=None, message=None, **unknown_fields): - ''' - entities : typing.Sequence[~Entity] - message : str - ''' - self.entities = [Entity.from_json(o) for o in entities or []] - self.message = message - - - -class UpgradeSeriesStatusParam(Type): - _toSchema = {'entity': 'entity', 'message': 'message', 'status': 'status'} - _toPy = {'entity': 'entity', 'message': 'message', 'status': 'status'} - def __init__(self, entity=None, message=None, status=None, **unknown_fields): - ''' - entity : Entity - message : str - status : str - ''' - self.entity = Entity.from_json(entity) if entity else None - self.message = message - self.status = status - - - -class UpgradeSeriesStatusParams(Type): - _toSchema = {'params': 'params'} - _toPy = {'params': 'params'} - def __init__(self, params=None, **unknown_fields): - ''' - params : typing.Sequence[~UpgradeSeriesStatusParam] - ''' - self.params = [UpgradeSeriesStatusParam.from_json(o) for o in params or []] - - - -class UpgradeSeriesStatusResult(Type): - _toSchema = {'error': 'error', 'status': 'status'} - _toPy = {'error': 'error', 'status': 'status'} - def __init__(self, error=None, status=None, **unknown_fields): - ''' - error : Error - status : str - ''' - self.error = Error.from_json(error) if error else None - self.status = status - - - -class UpgradeSeriesStatusResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~UpgradeSeriesStatusResult] - ''' - self.results = [UpgradeSeriesStatusResult.from_json(o) for o in results or []] - - - -class UpgradeSeriesUnitsResult(Type): - _toSchema = {'error': 'error', 'unit_names': 'unit-names'} - _toPy = {'error': 'error', 'unit-names': 'unit_names'} - def __init__(self, error=None, unit_names=None, **unknown_fields): - ''' - error : Error - unit_names : typing.Sequence[str] - ''' - self.error = Error.from_json(error) if error else None - self.unit_names = unit_names - - - -class UpgradeSeriesUnitsResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~UpgradeSeriesUnitsResult] - ''' - self.results = [UpgradeSeriesUnitsResult.from_json(o) for o in results or []] - - - -class UserAccess(Type): - _toSchema = {'access': 'access', 'user_tag': 'user-tag'} - _toPy = {'access': 'access', 'user-tag': 'user_tag'} - def __init__(self, access=None, user_tag=None, **unknown_fields): - ''' - access : str - user_tag : str - ''' - self.access = access - self.user_tag = user_tag - - - -class UserAccessResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : UserAccess - ''' - self.error = Error.from_json(error) if error else None - self.result = UserAccess.from_json(result) if result else None - - - -class UserAccessResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~UserAccessResult] - ''' - self.results = [UserAccessResult.from_json(o) for o in results or []] - - - -class UserCloud(Type): - _toSchema = {'cloud_tag': 'cloud-tag', 'user_tag': 'user-tag'} - _toPy = {'cloud-tag': 'cloud_tag', 'user-tag': 'user_tag'} - def __init__(self, cloud_tag=None, user_tag=None, **unknown_fields): - ''' - cloud_tag : str - user_tag : str - ''' - self.cloud_tag = cloud_tag - self.user_tag = user_tag - - - -class UserClouds(Type): - _toSchema = {'user_clouds': 'user-clouds'} - _toPy = {'user-clouds': 'user_clouds'} - def __init__(self, user_clouds=None, **unknown_fields): - ''' - user_clouds : typing.Sequence[~UserCloud] - ''' - self.user_clouds = [UserCloud.from_json(o) for o in user_clouds or []] - - - -class UserInfo(Type): - _toSchema = {'access': 'access', 'created_by': 'created-by', 'date_created': 'date-created', 'disabled': 'disabled', 'display_name': 'display-name', 'last_connection': 'last-connection', 'username': 'username'} - _toPy = {'access': 'access', 'created-by': 'created_by', 'date-created': 'date_created', 'disabled': 'disabled', 'display-name': 'display_name', 'last-connection': 'last_connection', 'username': 'username'} - def __init__(self, access=None, created_by=None, date_created=None, disabled=None, display_name=None, last_connection=None, username=None, **unknown_fields): - ''' - access : str - created_by : str - date_created : str - disabled : bool - display_name : str - last_connection : str - username : str - ''' - self.access = access - self.created_by = created_by - self.date_created = date_created - self.disabled = disabled - self.display_name = display_name - self.last_connection = last_connection - self.username = username - - - -class UserInfoRequest(Type): - _toSchema = {'entities': 'entities', 'include_disabled': 'include-disabled'} - _toPy = {'entities': 'entities', 'include-disabled': 'include_disabled'} - def __init__(self, entities=None, include_disabled=None, **unknown_fields): - ''' - entities : typing.Sequence[~Entity] - include_disabled : bool - ''' - self.entities = [Entity.from_json(o) for o in entities or []] - self.include_disabled = include_disabled - - - -class UserInfoResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : UserInfo - ''' - self.error = Error.from_json(error) if error else None - self.result = UserInfo.from_json(result) if result else None - - - -class UserInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~UserInfoResult] - ''' - self.results = [UserInfoResult.from_json(o) for o in results or []] - - - -class UserModel(Type): - _toSchema = {'last_connection': 'last-connection', 'model': 'model'} - _toPy = {'last-connection': 'last_connection', 'model': 'model'} - def __init__(self, last_connection=None, model=None, **unknown_fields): - ''' - last_connection : str - model : Model - ''' - self.last_connection = last_connection - self.model = Model.from_json(model) if model else None - - - -class UserModelList(Type): - _toSchema = {'user_models': 'user-models'} - _toPy = {'user-models': 'user_models'} - def __init__(self, user_models=None, **unknown_fields): - ''' - user_models : typing.Sequence[~UserModel] - ''' - self.user_models = [UserModel.from_json(o) for o in user_models or []] - - - -class Value(Type): - _toSchema = {'arch': 'arch', 'container': 'container', 'cores': 'cores', 'cpu_power': 'cpu-power', 'instance_type': 'instance-type', 'mem': 'mem', 'root_disk': 'root-disk', 'spaces': 'spaces', 'tags': 'tags', 'virt_type': 'virt-type'} - _toPy = {'arch': 'arch', 'container': 'container', 'cores': 'cores', 'cpu-power': 'cpu_power', 'instance-type': 'instance_type', 'mem': 'mem', 'root-disk': 'root_disk', 'spaces': 'spaces', 'tags': 'tags', 'virt-type': 'virt_type'} - def __init__(self, arch=None, container=None, cores=None, cpu_power=None, instance_type=None, mem=None, root_disk=None, spaces=None, tags=None, virt_type=None, **unknown_fields): - ''' - arch : str - container : str - cores : int - cpu_power : int - instance_type : str - mem : int - root_disk : int - spaces : typing.Sequence[str] - tags : typing.Sequence[str] - virt_type : str - ''' - self.arch = arch - self.container = container - self.cores = cores - self.cpu_power = cpu_power - self.instance_type = instance_type - self.mem = mem - self.root_disk = root_disk - self.spaces = spaces - self.tags = tags - self.virt_type = virt_type - - - -class Version(Type): - _toSchema = {'version': 'version'} - _toPy = {'version': 'version'} - def __init__(self, version=None, **unknown_fields): - ''' - version : Binary - ''' - self.version = Binary.from_json(version) if version else None - - - -class VersionResult(Type): - _toSchema = {'error': 'error', 'version': 'version'} - _toPy = {'error': 'error', 'version': 'version'} - def __init__(self, error=None, version=None, **unknown_fields): - ''' - error : Error - version : Number - ''' - self.error = Error.from_json(error) if error else None - self.version = Number.from_json(version) if version else None - - - -class VersionResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~VersionResult] - ''' - self.results = [VersionResult.from_json(o) for o in results or []] - - - -class Volume(Type): - _toSchema = {'info': 'info', 'volume_tag': 'volume-tag'} - _toPy = {'info': 'info', 'volume-tag': 'volume_tag'} - def __init__(self, info=None, volume_tag=None, **unknown_fields): - ''' - info : VolumeInfo - volume_tag : str - ''' - self.info = VolumeInfo.from_json(info) if info else None - self.volume_tag = volume_tag - - - -class VolumeAttachment(Type): - _toSchema = {'info': 'info', 'machine_tag': 'machine-tag', 'volume_tag': 'volume-tag'} - _toPy = {'info': 'info', 'machine-tag': 'machine_tag', 'volume-tag': 'volume_tag'} - def __init__(self, info=None, machine_tag=None, volume_tag=None, **unknown_fields): - ''' - info : VolumeAttachmentInfo - machine_tag : str - volume_tag : str - ''' - self.info = VolumeAttachmentInfo.from_json(info) if info else None - self.machine_tag = machine_tag - self.volume_tag = volume_tag - - - -class VolumeAttachmentDetails(Type): - _toSchema = {'life': 'life', 'volumeattachmentinfo': 'VolumeAttachmentInfo'} - _toPy = {'VolumeAttachmentInfo': 'volumeattachmentinfo', 'life': 'life'} - def __init__(self, volumeattachmentinfo=None, life=None, **unknown_fields): - ''' - volumeattachmentinfo : VolumeAttachmentInfo - life : str - ''' - self.volumeattachmentinfo = VolumeAttachmentInfo.from_json(volumeattachmentinfo) if volumeattachmentinfo else None - self.life = life - - - -class VolumeAttachmentInfo(Type): - _toSchema = {'bus_address': 'bus-address', 'device_link': 'device-link', 'device_name': 'device-name', 'read_only': 'read-only'} - _toPy = {'bus-address': 'bus_address', 'device-link': 'device_link', 'device-name': 'device_name', 'read-only': 'read_only'} - def __init__(self, bus_address=None, device_link=None, device_name=None, read_only=None, **unknown_fields): - ''' - bus_address : str - device_link : str - device_name : str - read_only : bool - ''' - self.bus_address = bus_address - self.device_link = device_link - self.device_name = device_name - self.read_only = read_only - - - -class VolumeAttachmentParams(Type): - _toSchema = {'instance_id': 'instance-id', 'machine_tag': 'machine-tag', 'provider': 'provider', 'read_only': 'read-only', 'volume_id': 'volume-id', 'volume_tag': 'volume-tag'} - _toPy = {'instance-id': 'instance_id', 'machine-tag': 'machine_tag', 'provider': 'provider', 'read-only': 'read_only', 'volume-id': 'volume_id', 'volume-tag': 'volume_tag'} - def __init__(self, instance_id=None, machine_tag=None, provider=None, read_only=None, volume_id=None, volume_tag=None, **unknown_fields): - ''' - instance_id : str - machine_tag : str - provider : str - read_only : bool - volume_id : str - volume_tag : str - ''' - self.instance_id = instance_id - self.machine_tag = machine_tag - self.provider = provider - self.read_only = read_only - self.volume_id = volume_id - self.volume_tag = volume_tag - - - -class VolumeAttachmentParamsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : VolumeAttachmentParams - ''' - self.error = Error.from_json(error) if error else None - self.result = VolumeAttachmentParams.from_json(result) if result else None - - - -class VolumeAttachmentParamsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~VolumeAttachmentParamsResult] - ''' - self.results = [VolumeAttachmentParamsResult.from_json(o) for o in results or []] - - - -class VolumeAttachmentPlan(Type): - _toSchema = {'block_device': 'block-device', 'life': 'life', 'machine_tag': 'machine-tag', 'plan_info': 'plan-info', 'volume_tag': 'volume-tag'} - _toPy = {'block-device': 'block_device', 'life': 'life', 'machine-tag': 'machine_tag', 'plan-info': 'plan_info', 'volume-tag': 'volume_tag'} - def __init__(self, block_device=None, life=None, machine_tag=None, plan_info=None, volume_tag=None, **unknown_fields): - ''' - block_device : BlockDevice - life : str - machine_tag : str - plan_info : VolumeAttachmentPlanInfo - volume_tag : str - ''' - self.block_device = BlockDevice.from_json(block_device) if block_device else None - self.life = life - self.machine_tag = machine_tag - self.plan_info = VolumeAttachmentPlanInfo.from_json(plan_info) if plan_info else None - self.volume_tag = volume_tag - - - -class VolumeAttachmentPlanInfo(Type): - _toSchema = {'device_attributes': 'device-attributes', 'device_type': 'device-type'} - _toPy = {'device-attributes': 'device_attributes', 'device-type': 'device_type'} - def __init__(self, device_attributes=None, device_type=None, **unknown_fields): - ''' - device_attributes : typing.Mapping[str, str] - device_type : str - ''' - self.device_attributes = device_attributes - self.device_type = device_type - - - -class VolumeAttachmentPlanResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : VolumeAttachmentPlan - ''' - self.error = Error.from_json(error) if error else None - self.result = VolumeAttachmentPlan.from_json(result) if result else None - - - -class VolumeAttachmentPlanResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~VolumeAttachmentPlanResult] - ''' - self.results = [VolumeAttachmentPlanResult.from_json(o) for o in results or []] - - - -class VolumeAttachmentPlans(Type): - _toSchema = {'volume_plans': 'volume-plans'} - _toPy = {'volume-plans': 'volume_plans'} - def __init__(self, volume_plans=None, **unknown_fields): - ''' - volume_plans : typing.Sequence[~VolumeAttachmentPlan] - ''' - self.volume_plans = [VolumeAttachmentPlan.from_json(o) for o in volume_plans or []] - - - -class VolumeAttachmentResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : VolumeAttachment - ''' - self.error = Error.from_json(error) if error else None - self.result = VolumeAttachment.from_json(result) if result else None - - - -class VolumeAttachmentResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~VolumeAttachmentResult] - ''' - self.results = [VolumeAttachmentResult.from_json(o) for o in results or []] - - - -class VolumeAttachments(Type): - _toSchema = {'volume_attachments': 'volume-attachments'} - _toPy = {'volume-attachments': 'volume_attachments'} - def __init__(self, volume_attachments=None, **unknown_fields): - ''' - volume_attachments : typing.Sequence[~VolumeAttachment] - ''' - self.volume_attachments = [VolumeAttachment.from_json(o) for o in volume_attachments or []] - - - -class VolumeDetails(Type): - _toSchema = {'info': 'info', 'machine_attachments': 'machine-attachments', 'status': 'status', 'storage': 'storage', 'volume_tag': 'volume-tag'} - _toPy = {'info': 'info', 'machine-attachments': 'machine_attachments', 'status': 'status', 'storage': 'storage', 'volume-tag': 'volume_tag'} - def __init__(self, info=None, machine_attachments=None, status=None, storage=None, volume_tag=None, **unknown_fields): - ''' - info : VolumeInfo - machine_attachments : typing.Mapping[str, ~VolumeAttachmentInfo] - status : EntityStatus - storage : StorageDetails - volume_tag : str - ''' - self.info = VolumeInfo.from_json(info) if info else None - self.machine_attachments = machine_attachments - self.status = EntityStatus.from_json(status) if status else None - self.storage = StorageDetails.from_json(storage) if storage else None - self.volume_tag = volume_tag - - - -class VolumeDetailsListResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : typing.Sequence[~VolumeDetails] - ''' - self.error = Error.from_json(error) if error else None - self.result = [VolumeDetails.from_json(o) for o in result or []] - - - -class VolumeDetailsListResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~VolumeDetailsListResult] - ''' - self.results = [VolumeDetailsListResult.from_json(o) for o in results or []] - - - -class VolumeFilter(Type): - _toSchema = {'machines': 'machines'} - _toPy = {'machines': 'machines'} - def __init__(self, machines=None, **unknown_fields): - ''' - machines : typing.Sequence[str] - ''' - self.machines = machines - - - -class VolumeFilters(Type): - _toSchema = {'filters': 'filters'} - _toPy = {'filters': 'filters'} - def __init__(self, filters=None, **unknown_fields): - ''' - filters : typing.Sequence[~VolumeFilter] - ''' - self.filters = [VolumeFilter.from_json(o) for o in filters or []] - - - -class VolumeInfo(Type): - _toSchema = {'hardware_id': 'hardware-id', 'persistent': 'persistent', 'size': 'size', 'volume_id': 'volume-id'} - _toPy = {'hardware-id': 'hardware_id', 'persistent': 'persistent', 'size': 'size', 'volume-id': 'volume_id'} - def __init__(self, hardware_id=None, persistent=None, size=None, volume_id=None, **unknown_fields): - ''' - hardware_id : str - persistent : bool - size : int - volume_id : str - ''' - self.hardware_id = hardware_id - self.persistent = persistent - self.size = size - self.volume_id = volume_id - - - -class VolumeParams(Type): - _toSchema = {'attachment': 'attachment', 'attributes': 'attributes', 'provider': 'provider', 'size': 'size', 'tags': 'tags', 'volume_tag': 'volume-tag'} - _toPy = {'attachment': 'attachment', 'attributes': 'attributes', 'provider': 'provider', 'size': 'size', 'tags': 'tags', 'volume-tag': 'volume_tag'} - def __init__(self, attachment=None, attributes=None, provider=None, size=None, tags=None, volume_tag=None, **unknown_fields): - ''' - attachment : VolumeAttachmentParams - attributes : typing.Mapping[str, typing.Any] - provider : str - size : int - tags : typing.Mapping[str, str] - volume_tag : str - ''' - self.attachment = VolumeAttachmentParams.from_json(attachment) if attachment else None - self.attributes = attributes - self.provider = provider - self.size = size - self.tags = tags - self.volume_tag = volume_tag - - - -class VolumeParamsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : VolumeParams - ''' - self.error = Error.from_json(error) if error else None - self.result = VolumeParams.from_json(result) if result else None - - - -class VolumeParamsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~VolumeParamsResult] - ''' - self.results = [VolumeParamsResult.from_json(o) for o in results or []] - - - -class VolumeResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None, **unknown_fields): - ''' - error : Error - result : Volume - ''' - self.error = Error.from_json(error) if error else None - self.result = Volume.from_json(result) if result else None - - - -class VolumeResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~VolumeResult] - ''' - self.results = [VolumeResult.from_json(o) for o in results or []] - - - -class Volumes(Type): - _toSchema = {'volumes': 'volumes'} - _toPy = {'volumes': 'volumes'} - def __init__(self, volumes=None, **unknown_fields): - ''' - volumes : typing.Sequence[~Volume] - ''' - self.volumes = [Volume.from_json(o) for o in volumes or []] - - - -class WatchContainer(Type): - _toSchema = {'container_type': 'container-type', 'machine_tag': 'machine-tag'} - _toPy = {'container-type': 'container_type', 'machine-tag': 'machine_tag'} - def __init__(self, container_type=None, machine_tag=None, **unknown_fields): - ''' - container_type : str - machine_tag : str - ''' - self.container_type = container_type - self.machine_tag = machine_tag - - - -class WatchContainers(Type): - _toSchema = {'params': 'params'} - _toPy = {'params': 'params'} - def __init__(self, params=None, **unknown_fields): - ''' - params : typing.Sequence[~WatchContainer] - ''' - self.params = [WatchContainer.from_json(o) for o in params or []] - - - -class ZoneResult(Type): - _toSchema = {'available': 'available', 'error': 'error', 'name': 'name'} - _toPy = {'available': 'available', 'error': 'error', 'name': 'name'} - def __init__(self, available=None, error=None, name=None, **unknown_fields): - ''' - available : bool - error : Error - name : str - ''' - self.available = available - self.error = Error.from_json(error) if error else None - self.name = name - - - -class ZoneResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): - ''' - results : typing.Sequence[~ZoneResult] - ''' - self.results = [ZoneResult.from_json(o) for o in results or []] diff --git a/modules/libjuju/juju/client/client.py b/modules/libjuju/juju/client/client.py deleted file mode 100644 index 2721d07..0000000 --- a/modules/libjuju/juju/client/client.py +++ /dev/null @@ -1,33 +0,0 @@ -'''Replace auto-generated classes with our own, where necessary. -''' - -from . import _client, _definitions, overrides # isort:skip - -for o in overrides.__all__: - if "Facade" not in o: - # Override stuff in _definitions, which is all imported - # into _client. We Monkey patch both the original class and - # the ref in _client (import shenanigans are fun!) - setattr(_definitions, o, getattr(overrides, o)) - setattr(_client, o, getattr(overrides, o)) - # We shouldn't be overriding Facades! - else: - raise ValueError( - "Cannot override a versioned Facade class -- you must patch " - "it instead.") - -for o in overrides.__patches__: - # Patch a versioned Facade. - for client_version in _client.CLIENTS.values(): - try: - c_type = getattr(client_version, o) - except AttributeError: - # Not all the _client modules may have the - # facade. That's okay -- we just skip over them. - continue - o_type = getattr(overrides, o) - for a in dir(o_type): - if not a.startswith('_'): - setattr(c_type, a, getattr(o_type, a)) - -from ._client import * # noqa, isort:skip diff --git a/modules/libjuju/juju/client/codegen.py b/modules/libjuju/juju/client/codegen.py deleted file mode 100644 index f8a792a..0000000 --- a/modules/libjuju/juju/client/codegen.py +++ /dev/null @@ -1,52 +0,0 @@ -from collections import defaultdict -from io import StringIO -from textwrap import indent - - -class CodeWriter(StringIO): - """ - Blob of text that, when used in the context of facade.py, ends up - holding the source code for a Python class and associated methods. - - """ - INDENT = " " - - CLASS = 0 - METHOD = 1 - - def write(self, msg, depth=0): - if depth: - prefix = self.INDENT * depth - msg = indent(msg, prefix) - - return super(CodeWriter, self).write(msg) - - def __str__(self): - return super(CodeWriter, self).getvalue() - - -class Capture(defaultdict): - """ - A collection of CodeWriter objects, together representing a Python - module. - - """ - - def __init__(self, default_factory=CodeWriter, *args, **kwargs): - super(Capture, self).__init__(default_factory, *args, **kwargs) - - def clear(self, name): - """ - Reset one of the keys in this class, if it exists. - - This is necessary, because we don't worry about de-duplicating - the schemas for each version of juju up front, and this gives - us a way to sort of de-duplicate on the fly, by resetting a - specific CodeWriter instance before we start to write a class - into it. - - """ - try: - del self[name] - except KeyError: - pass diff --git a/modules/libjuju/juju/client/connection.py b/modules/libjuju/juju/client/connection.py deleted file mode 100644 index f2150b7..0000000 --- a/modules/libjuju/juju/client/connection.py +++ /dev/null @@ -1,601 +0,0 @@ -import asyncio -import base64 -import json -import logging -import ssl -import urllib.request -import weakref -from concurrent.futures import CancelledError -from http.client import HTTPSConnection - -import macaroonbakery.httpbakery as httpbakery -import macaroonbakery.bakery as bakery -import websockets -from juju import errors, tag, utils -from juju.client import client -from juju.utils import IdQueue - -log = logging.getLogger('juju.client.connection') - - -class Monitor: - """ - Monitor helper class for our Connection class. - - Contains a reference to an instantiated Connection, along with a - reference to the Connection.receiver Future. Upon inspection of - these objects, this class determines whether the connection is in - an 'error', 'connected' or 'disconnected' state. - - Use this class to stay up to date on the health of a connection, - and take appropriate action if the connection errors out due to - network issues or other unexpected circumstances. - - """ - ERROR = 'error' - CONNECTED = 'connected' - DISCONNECTING = 'disconnecting' - DISCONNECTED = 'disconnected' - - def __init__(self, connection): - self.connection = weakref.ref(connection) - self.reconnecting = asyncio.Lock(loop=connection.loop) - self.close_called = asyncio.Event(loop=connection.loop) - - @property - def status(self): - """ - Determine the status of the connection and receiver, and return - ERROR, CONNECTED, or DISCONNECTED as appropriate. - - For simplicity, we only consider ourselves to be connected - after the Connection class has setup a receiver task. This - only happens after the websocket is open, and the connection - isn't usable until that receiver has been started. - - """ - connection = self.connection() - - # the connection instance was destroyed but someone kept - # a separate reference to the monitor for some reason - if not connection: - return self.DISCONNECTED - - # connection cleanly disconnected or not yet opened - if not connection.ws: - return self.DISCONNECTED - - # close called but not yet complete - if self.close_called.is_set(): - return self.DISCONNECTING - - # connection closed uncleanly (we didn't call connection.close) - stopped = connection._receiver_task.stopped.is_set() - if stopped or not connection.ws.open: - return self.ERROR - - # everything is fine! - return self.CONNECTED - - -class Connection: - """ - Usage:: - - # Connect to an arbitrary api server - client = await Connection.connect( - api_endpoint, model_uuid, username, password, cacert) - - Note: Any connection method or constructor can accept an optional `loop` - argument to override the default event loop from `asyncio.get_event_loop`. - """ - - MAX_FRAME_SIZE = 2**22 - "Maximum size for a single frame. Defaults to 4MB." - - @classmethod - async def connect( - cls, - endpoint=None, - uuid=None, - username=None, - password=None, - cacert=None, - bakery_client=None, - loop=None, - max_frame_size=None, - retries=3, - retry_backoff=10, - ): - """Connect to the websocket. - - If uuid is None, the connection will be to the controller. Otherwise it - will be to the model. - - :param str endpoint: The hostname:port of the controller to connect to. - :param str uuid: The model UUID to connect to (None for a - controller-only connection). - :param str username: The username for controller-local users (or None - to use macaroon-based login.) - :param str password: The password for controller-local users. - :param str cacert: The CA certificate of the controller - (PEM formatted). - :param httpbakery.Client bakery_client: The macaroon bakery client to - to use when performing macaroon-based login. Macaroon tokens - acquired when logging will be saved to bakery_client.cookies. - If this is None, a default bakery_client will be used. - :param asyncio.BaseEventLoop loop: The event loop to use for async - operations. - :param int max_frame_size: The maximum websocket frame size to allow. - :param int retries: When connecting or reconnecting, and all endpoints - fail, how many times to retry the connection before giving up. - :param int retry_backoff: Number of seconds to increase the wait - between connection retry attempts (a backoff of 10 with 3 retries - would wait 10s, 20s, and 30s). - """ - self = cls() - if endpoint is None: - raise ValueError('no endpoint provided') - self.uuid = uuid - if bakery_client is None: - bakery_client = httpbakery.Client() - self.bakery_client = bakery_client - if username and '@' in username and not username.endswith('@local'): - # We're trying to log in as an external user - we need to use - # macaroon authentication with no username or password. - if password is not None: - raise errors.JujuAuthError('cannot log in as external ' - 'user with a password') - username = None - self.usertag = tag.user(username) - self.password = password - self.loop = loop or asyncio.get_event_loop() - - self.__request_id__ = 0 - - # The following instance variables are initialized by the - # _connect_with_redirect method, but create them here - # as a reminder that they will exist. - self.addr = None - self.ws = None - self.endpoint = None - self.cacert = None - self.info = None - - # Create that _Task objects but don't start the tasks yet. - self._pinger_task = _Task(self._pinger, self.loop) - self._receiver_task = _Task(self._receiver, self.loop) - - self._retries = retries - self._retry_backoff = retry_backoff - - self.facades = {} - self.messages = IdQueue(loop=self.loop) - self.monitor = Monitor(connection=self) - if max_frame_size is None: - max_frame_size = self.MAX_FRAME_SIZE - self.max_frame_size = max_frame_size - await self._connect_with_redirect([(endpoint, cacert)]) - return self - - @property - def username(self): - if not self.usertag: - return None - return self.usertag[len('user-'):] - - @property - def is_open(self): - return self.monitor.status == Monitor.CONNECTED - - def _get_ssl(self, cert=None): - return ssl.create_default_context( - purpose=ssl.Purpose.CLIENT_AUTH, cadata=cert) - - async def _open(self, endpoint, cacert): - if self.uuid: - url = "wss://{}/model/{}/api".format(endpoint, self.uuid) - else: - url = "wss://{}/api".format(endpoint) - - return (await websockets.connect( - url, - ssl=self._get_ssl(cacert), - loop=self.loop, - max_size=self.max_frame_size, - ), url, endpoint, cacert) - - async def close(self): - if not self.ws: - return - self.monitor.close_called.set() - await self._pinger_task.stopped.wait() - await self._receiver_task.stopped.wait() - await self.ws.close() - self.ws = None - - async def _recv(self, request_id): - if not self.is_open: - raise websockets.exceptions.ConnectionClosed(0, 'websocket closed') - return await self.messages.get(request_id) - - async def _receiver(self): - try: - while self.is_open: - result = await utils.run_with_interrupt( - self.ws.recv(), - self.monitor.close_called, - loop=self.loop) - if self.monitor.close_called.is_set(): - break - if result is not None: - result = json.loads(result) - await self.messages.put(result['request-id'], result) - except CancelledError: - pass - except websockets.ConnectionClosed as e: - log.warning('Receiver: Connection closed, reconnecting') - await self.messages.put_all(e) - # the reconnect has to be done as a task because the receiver will - # be cancelled by the reconnect and we don't want the reconnect - # to be aborted half-way through - self.loop.create_task(self.reconnect()) - return - except Exception as e: - log.exception("Error in receiver") - # make pending listeners aware of the error - await self.messages.put_all(e) - raise - - async def _pinger(self): - ''' - A Controller can time us out if we are silent for too long. This - is especially true in JaaS, which has a fairly strict timeout. - - To prevent timing out, we send a ping every ten seconds. - - ''' - async def _do_ping(): - try: - await pinger_facade.Ping() - await asyncio.sleep(10, loop=self.loop) - except CancelledError: - pass - - pinger_facade = client.PingerFacade.from_connection(self) - try: - while True: - await utils.run_with_interrupt( - _do_ping(), - self.monitor.close_called, - loop=self.loop) - if self.monitor.close_called.is_set(): - break - except websockets.exceptions.ConnectionClosed: - # The connection has closed - we can't do anything - # more until the connection is restarted. - log.debug('ping failed because of closed connection') - pass - - async def rpc(self, msg, encoder=None): - '''Make an RPC to the API. The message is encoded as JSON - using the given encoder if any. - :param msg: Parameters for the call (will be encoded as JSON). - :param encoder: Encoder to be used when encoding the message. - :return: The result of the call. - :raises JujuAPIError: When there's an error returned. - :raises JujuError: - ''' - self.__request_id__ += 1 - msg['request-id'] = self.__request_id__ - if'params' not in msg: - msg['params'] = {} - if "version" not in msg: - msg['version'] = self.facades[msg['type']] - outgoing = json.dumps(msg, indent=2, cls=encoder) - log.debug('connection {} -> {}'.format(id(self), outgoing)) - for attempt in range(3): - if self.monitor.status == Monitor.DISCONNECTED: - # closed cleanly; shouldn't try to reconnect - raise websockets.exceptions.ConnectionClosed( - 0, 'websocket closed') - try: - await self.ws.send(outgoing) - break - except websockets.ConnectionClosed: - if attempt == 2: - raise - log.warning('RPC: Connection closed, reconnecting') - # the reconnect has to be done in a separate task because, - # if it is triggered by the pinger, then this RPC call will - # be cancelled when the pinger is cancelled by the reconnect, - # and we don't want the reconnect to be aborted halfway through - await asyncio.wait([self.reconnect()], loop=self.loop) - if self.monitor.status != Monitor.CONNECTED: - # reconnect failed; abort and shutdown - log.error('RPC: Automatic reconnect failed') - raise - result = await self._recv(msg['request-id']) - log.debug('connection {} <- {}'.format(id(self), result)) - - if not result: - return result - - if 'error' in result: - # API Error Response - raise errors.JujuAPIError(result) - - if 'response' not in result: - # This may never happen - return result - - if 'results' in result['response']: - # Check for errors in a result list. - # TODO This loses the results that might have succeeded. - # Perhaps JujuError should return all the results including - # errors, or perhaps a keyword parameter to the rpc method - # could be added to trigger this behaviour. - err_results = [] - for res in result['response']['results']: - if res.get('error', {}).get('message'): - err_results.append(res['error']['message']) - if err_results: - raise errors.JujuError(err_results) - - elif result['response'].get('error', {}).get('message'): - raise errors.JujuError(result['response']['error']['message']) - - return result - - def _http_headers(self): - """Return dictionary of http headers necessary for making an http - connection to the endpoint of this Connection. - - :return: Dictionary of headers - - """ - if not self.usertag: - return {} - - creds = u'{}:{}'.format( - self.usertag, - self.password or '' - ) - token = base64.b64encode(creds.encode()) - return { - 'Authorization': 'Basic {}'.format(token.decode()) - } - - def https_connection(self): - """Return an https connection to this Connection's endpoint. - - Returns a 3-tuple containing:: - - 1. The :class:`HTTPSConnection` instance - 2. Dictionary of auth headers to be used with the connection - 3. The root url path (str) to be used for requests. - - """ - endpoint = self.endpoint - host, remainder = endpoint.split(':', 1) - port = remainder - if '/' in remainder: - port, _ = remainder.split('/', 1) - - conn = HTTPSConnection( - host, int(port), - context=self._get_ssl(self.cacert), - ) - - path = ( - "/model/{}".format(self.uuid) - if self.uuid else "" - ) - return conn, self._http_headers(), path - - async def clone(self): - """Return a new Connection, connected to the same websocket endpoint - as this one. - - """ - return await Connection.connect(**self.connect_params()) - - def connect_params(self): - """Return a tuple of parameters suitable for passing to - Connection.connect that can be used to make a new connection - to the same controller (and model if specified. The first - element in the returned tuple holds the endpoint argument; - the other holds a dict of the keyword args. - """ - return { - 'endpoint': self.endpoint, - 'uuid': self.uuid, - 'username': self.username, - 'password': self.password, - 'cacert': self.cacert, - 'bakery_client': self.bakery_client, - 'loop': self.loop, - 'max_frame_size': self.max_frame_size, - } - - async def controller(self): - """Return a Connection to the controller at self.endpoint - """ - return await Connection.connect( - self.endpoint, - username=self.username, - password=self.password, - cacert=self.cacert, - bakery_client=self.bakery_client, - loop=self.loop, - max_frame_size=self.max_frame_size, - ) - - async def reconnect(self): - """ Force a reconnection. - """ - monitor = self.monitor - if monitor.reconnecting.locked() or monitor.close_called.is_set(): - return - async with monitor.reconnecting: - await self.close() - await self._connect_with_login([(self.endpoint, self.cacert)]) - - async def _connect(self, endpoints): - if len(endpoints) == 0: - raise errors.JujuConnectionError('no endpoints to connect to') - - async def _try_endpoint(endpoint, cacert, delay): - if delay: - await asyncio.sleep(delay) - return await self._open(endpoint, cacert) - - # Try all endpoints in parallel, with slight increasing delay (+100ms - # for each subsequent endpoint); the delay allows us to prefer the - # earlier endpoints over the latter. Use first successful connection. - tasks = [self.loop.create_task(_try_endpoint(endpoint, cacert, - 0.1 * i)) - for i, (endpoint, cacert) in enumerate(endpoints)] - for attempt in range(self._retries + 1): - for task in asyncio.as_completed(tasks, loop=self.loop): - try: - result = await task - break - except ConnectionError: - continue # ignore; try another endpoint - else: - _endpoints_str = ', '.join([endpoint - for endpoint, cacert in endpoints]) - if attempt < self._retries: - log.debug('Retrying connection to endpoints: {}; ' - 'attempt {} of {}'.format(_endpoints_str, - attempt + 1, - self._retries + 1)) - await asyncio.sleep((attempt + 1) * self._retry_backoff) - continue - else: - raise errors.JujuConnectionError( - 'Unable to connect to any endpoint: ' - '{}'.format(_endpoints_str)) - # only executed if inner loop's else did not continue - # (i.e., inner loop did break due to successful connection) - break - for task in tasks: - task.cancel() - self.ws = result[0] - self.addr = result[1] - self.endpoint = result[2] - self.cacert = result[3] - self._receiver_task.start() - log.debug("Driver connected to juju %s", self.addr) - self.monitor.close_called.clear() - - async def _connect_with_login(self, endpoints): - """Connect to the websocket. - - If uuid is None, the connection will be to the controller. Otherwise it - will be to the model. - :return: The response field of login response JSON object. - """ - success = False - try: - await self._connect(endpoints) - # It's possible that we may get several discharge-required errors, - # corresponding to different levels of authentication, so retry - # a few times. - for i in range(0, 2): - result = (await self.login())['response'] - macaroonJSON = result.get('discharge-required') - if macaroonJSON is None: - self.info = result - success = True - return result - macaroon = bakery.Macaroon.from_dict(macaroonJSON) - self.bakery_client.handle_error( - httpbakery.Error( - code=httpbakery.ERR_DISCHARGE_REQUIRED, - message=result.get('discharge-required-error'), - version=macaroon.version, - info=httpbakery.ErrorInfo( - macaroon=macaroon, - macaroon_path=result.get('macaroon-path'), - ), - ), - # note: remove the port number. - 'https://' + self.endpoint + '/', - ) - raise errors.JujuAuthError('failed to authenticate ' - 'after several attempts') - finally: - if not success: - await self.close() - - async def _connect_with_redirect(self, endpoints): - try: - login_result = await self._connect_with_login(endpoints) - except errors.JujuRedirectException as e: - login_result = await self._connect_with_login(e.endpoints) - self._build_facades(login_result.get('facades', {})) - self._pinger_task.start() - - def _build_facades(self, facades): - self.facades.clear() - for facade in facades: - self.facades[facade['name']] = facade['versions'][-1] - - async def login(self): - params = {} - params['auth-tag'] = self.usertag - if self.password: - params['credentials'] = self.password - else: - macaroons = _macaroons_for_domain(self.bakery_client.cookies, - self.endpoint) - params['macaroons'] = [[bakery.macaroon_to_dict(m) for m in ms] - for ms in macaroons] - - try: - return await self.rpc({ - "type": "Admin", - "request": "Login", - "version": 3, - "params": params, - }) - except errors.JujuAPIError as e: - if e.error_code != 'redirection required': - raise - log.info('Controller requested redirect') - # Fetch additional redirection information now so that - # we can safely close the connection after login - # fails. - redirect_info = (await self.rpc({ - "type": "Admin", - "request": "RedirectInfo", - "version": 3, - }))['response'] - raise errors.JujuRedirectException(redirect_info) from e - - -class _Task: - def __init__(self, task, loop): - self.stopped = asyncio.Event(loop=loop) - self.stopped.set() - self.task = task - self.loop = loop - - def start(self): - async def run(): - try: - return await self.task() - finally: - self.stopped.set() - self.stopped.clear() - self.loop.create_task(run()) - - -def _macaroons_for_domain(cookies, domain): - '''Return any macaroons from the given cookie jar that - apply to the given domain name.''' - req = urllib.request.Request('https://' + domain + '/') - cookies.add_cookie_header(req) - return httpbakery.extract_macaroons(req) diff --git a/modules/libjuju/juju/client/connector.py b/modules/libjuju/juju/client/connector.py deleted file mode 100644 index a30adbf..0000000 --- a/modules/libjuju/juju/client/connector.py +++ /dev/null @@ -1,156 +0,0 @@ -import asyncio -import logging -import copy - -import macaroonbakery.httpbakery as httpbakery -from juju.client.connection import Connection -from juju.client.gocookies import go_to_py_cookie, GoCookieJar -from juju.client.jujudata import FileJujuData -from juju.errors import JujuConnectionError, JujuError - -log = logging.getLogger('connector') - - -class NoConnectionException(Exception): - '''Raised by Connector when the connection method is called - and there is no current connection.''' - pass - - -class Connector: - '''This class abstracts out a reconnectable client that can connect - to controllers and models found in the Juju data files. - ''' - def __init__( - self, - loop=None, - max_frame_size=None, - bakery_client=None, - jujudata=None, - ): - '''Initialize a connector that will use the given parameters - by default when making a new connection''' - self.max_frame_size = max_frame_size - self.loop = loop or asyncio.get_event_loop() - self.bakery_client = bakery_client - self._connection = None - self.controller_name = None - self.model_name = None - self.jujudata = jujudata or FileJujuData() - - def is_connected(self): - '''Report whether there is a currently connected controller or not''' - return self._connection is not None - - def connection(self): - '''Return the current connection; raises an exception if there - is no current connection.''' - if not self.is_connected(): - raise NoConnectionException('not connected') - return self._connection - - async def connect(self, **kwargs): - """Connect to an arbitrary Juju model. - - kwargs are passed through to Connection.connect() - """ - kwargs.setdefault('loop', self.loop) - kwargs.setdefault('max_frame_size', self.max_frame_size) - kwargs.setdefault('bakery_client', self.bakery_client) - if 'macaroons' in kwargs: - if not kwargs['bakery_client']: - kwargs['bakery_client'] = httpbakery.Client() - if not kwargs['bakery_client'].cookies: - kwargs['bakery_client'].cookies = GoCookieJar() - jar = kwargs['bakery_client'].cookies - for macaroon in kwargs.pop('macaroons'): - jar.set_cookie(go_to_py_cookie(macaroon)) - self._connection = await Connection.connect(**kwargs) - - async def disconnect(self): - """Shut down the watcher task and close websockets. - """ - if self._connection: - log.debug('Closing model connection') - await self._connection.close() - self._connection = None - - async def connect_controller(self, controller_name=None): - """Connect to a controller by name. If the name is empty, it - connect to the current controller. - """ - if not controller_name: - controller_name = self.jujudata.current_controller() - if not controller_name: - raise JujuConnectionError('No current controller') - - controller = self.jujudata.controllers()[controller_name] - # TODO change Connection so we can pass all the endpoints - # instead of just the first. - endpoint = controller['api-endpoints'][0] - accounts = self.jujudata.accounts().get(controller_name, {}) - - await self.connect( - endpoint=endpoint, - uuid=None, - username=accounts.get('user'), - password=accounts.get('password'), - cacert=controller.get('ca-cert'), - bakery_client=self.bakery_client_for_controller(controller_name), - ) - self.controller_name = controller_name - - async def connect_model(self, model_name=None): - """Connect to a model by name. If either controller or model - parts of the name are empty, the current controller and/or model - will be used. - - :param str model: : - """ - - try: - controller_name, model_name = self.jujudata.parse_model(model_name) - controller = self.jujudata.controllers().get(controller_name) - except JujuError as e: - raise JujuConnectionError(e.message) from e - if controller is None: - raise JujuConnectionError('Controller {} not found'.format( - controller_name)) - # TODO change Connection so we can pass all the endpoints - # instead of just the first one. - endpoint = controller['api-endpoints'][0] - account = self.jujudata.accounts().get(controller_name, {}) - models = self.jujudata.models().get(controller_name, {}).get('models', - {}) - if model_name not in models: - raise JujuConnectionError('Model not found: {}'.format(model_name)) - - # TODO if there's no record for the required model name, connect - # to the controller to find out the model's uuid, then connect - # to that. This will let connect_model work with models that - # haven't necessarily synced with the local juju data, - # and also remove the need for base.CleanModel to - # subclass JujuData. - await self.connect( - endpoint=endpoint, - uuid=models[model_name]['uuid'], - username=account.get('user'), - password=account.get('password'), - cacert=controller.get('ca-cert'), - bakery_client=self.bakery_client_for_controller(controller_name), - ) - self.controller_name = controller_name - self.model_name = controller_name + ':' + model_name - - def bakery_client_for_controller(self, controller_name): - '''Make a copy of the bakery client with a the appropriate controller's - cookiejar in it. - ''' - bakery_client = self.bakery_client - if bakery_client: - bakery_client = copy.copy(bakery_client) - else: - bakery_client = httpbakery.Client() - bakery_client.cookies = self.jujudata.cookies_for_controller( - controller_name) - return bakery_client diff --git a/modules/libjuju/juju/client/facade.py b/modules/libjuju/juju/client/facade.py deleted file mode 100644 index ec20c38..0000000 --- a/modules/libjuju/juju/client/facade.py +++ /dev/null @@ -1,818 +0,0 @@ -import argparse -import builtins -import functools -import json -import keyword -import pprint -import re -import textwrap -import typing -from collections import defaultdict -from glob import glob -from pathlib import Path -from typing import Any, Mapping, Sequence, TypeVar, Union - -from . import codegen - -_marker = object() - -JUJU_VERSION = re.compile(r'[0-9]+\.[0-9-]+[\.\-][0-9a-z]+(\.[0-9]+)?') -# Workaround for https://bugs.launchpad.net/juju/+bug/1683906 -NAUGHTY_CLASSES = ['ClientFacade', 'Client', 'FullStatus', 'ModelStatusInfo', - 'ModelInfo', 'ApplicationDeploy'] - - -# Map basic types to Python's typing with a callable -SCHEMA_TO_PYTHON = { - 'string': str, - 'integer': int, - 'float': float, - 'number': float, - 'boolean': bool, - 'object': Any, -} - - -# Friendly warning message to stick at the top of generated files. -HEADER = """\ -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. - -""" - - -# Classes and helper functions that we'll write to _client.py -LOOKUP_FACADE = ''' -def lookup_facade(name, version): - """ - Given a facade name and version, attempt to pull that facade out - of the correct client.py file. - - """ - for _version in range(int(version), 0, -1): - try: - facade = getattr(CLIENTS[str(_version)], name) - return facade - except (KeyError, AttributeError): - continue - else: - raise ImportError("No supported version for facade: " - "{}".format(name)) - - -''' - -TYPE_FACTORY = ''' -class TypeFactory: - @classmethod - def from_connection(cls, connection): - """ - Given a connected Connection object, return an initialized and - connected instance of an API Interface matching the name of - this class. - - @param connection: initialized Connection object. - - """ - facade_name = cls.__name__ - if not facade_name.endswith('Facade'): - raise TypeError('Unexpected class name: {}'.format(facade_name)) - facade_name = facade_name[:-len('Facade')] - version = connection.facades.get(facade_name) - if version is None: - raise Exception('No facade {} in facades {}'.format(facade_name, - connection.facades)) - - c = lookup_facade(cls.__name__, version) - c = c() - c.connect(connection) - - return c - - -''' - -CLIENT_TABLE = ''' -CLIENTS = {{ - {clients} -}} - - -''' - - -class KindRegistry(dict): - def register(self, name, version, obj): - self[name] = {version: { - "object": obj, - }} - - def lookup(self, name, version=None): - """If version is omitted, max version is used""" - versions = self.get(name) - if not versions: - return None - if version: - return versions[version] - return versions[max(versions)] - - def getObj(self, name, version=None): - result = self.lookup(name, version) - if result: - obj = result["object"] - return obj - return None - - -class TypeRegistry(dict): - def get(self, name): - # Two way mapping - refname = Schema.referenceName(name) - if refname not in self: - result = TypeVar(refname) - self[refname] = result - self[result] = refname - - return self[refname] - - -_types = TypeRegistry() -_registry = KindRegistry() -CLASSES = {} -factories = codegen.Capture() - - -def booler(v): - if isinstance(v, str): - if v == "false": - return False - return bool(v) - - -def getRefType(ref): - return _types.get(ref) - - -def refType(obj): - return getRefType(obj["$ref"]) - - -def objType(obj): - kind = obj.get('type') - if not kind: - raise ValueError("%s has no type" % obj) - result = SCHEMA_TO_PYTHON.get(kind) - if not result: - raise ValueError("%s has type %s" % (obj, kind)) - return result - - -basic_types = [str, bool, int, float] - - -def name_to_py(name): - result = name.replace("-", "_") - result = result.lower() - if keyword.iskeyword(result) or result in dir(builtins): - result += "_" - return result - - -def strcast(kind, keep_builtins=False): - if (kind in basic_types or - type(kind) in basic_types) and keep_builtins is False: - return kind.__name__ - if str(kind).startswith('~'): - return str(kind)[1:] - if issubclass(kind, typing.GenericMeta): - return str(kind)[1:] - return kind - - -class Args(list): - def __init__(self, defs): - self.defs = defs - if defs: - rtypes = _registry.getObj(_types[defs]) - if len(rtypes) == 1: - if not self.do_explode(rtypes[0][1]): - for name, rtype in rtypes: - self.append((name, rtype)) - else: - for name, rtype in rtypes: - self.append((name, rtype)) - - def do_explode(self, kind): - if kind in basic_types or type(kind) is typing.TypeVar: - return False - if not issubclass(kind, (typing.Sequence, - typing.Mapping)): - self.clear() - self.extend(Args(kind)) - return True - return False - - def PyToSchemaMapping(self): - m = {} - for n, rt in self: - m[name_to_py(n)] = n - return m - - def SchemaToPyMapping(self): - m = {} - for n, tr in self: - m[n] = name_to_py(n) - return m - - def _format(self, name, rtype, typed=True): - if typed: - return "{} : {}".format( - name_to_py(name), - strcast(rtype) - ) - else: - return name_to_py(name) - - def _get_arg_str(self, typed=False, joined=", "): - if self: - parts = [] - for item in self: - parts.append(self._format(item[0], item[1], typed)) - if joined: - return joined.join(parts) - return parts - return '' - - def as_kwargs(self): - if self: - parts = [] - for item in self: - parts.append('{}=None'.format(name_to_py(item[0]))) - return ', '.join(parts) - return '' - - def typed(self): - return self._get_arg_str(True) - - def __str__(self): - return self._get_arg_str(False) - - def get_doc(self): - return self._get_arg_str(True, "\n") - - -def buildTypes(schema, capture): - INDENT = " " - for kind in sorted((k for k in _types if not isinstance(k, str)), - key=lambda x: str(x)): - name = _types[kind] - if name in capture and name not in NAUGHTY_CLASSES: - continue - args = Args(kind) - # Write Factory class for _client.py - make_factory(name) - # Write actual class - source = [""" -class {}(Type): - _toSchema = {} - _toPy = {} - def __init__(self{}{}, **unknown_fields): - ''' -{} - '''""".format( - name, - # pprint these to get stable ordering across regens - pprint.pformat(args.PyToSchemaMapping(), width=999), - pprint.pformat(args.SchemaToPyMapping(), width=999), - ", " if args else "", - args.as_kwargs(), - textwrap.indent(args.get_doc(), INDENT * 2))] - - if not args: - source.append("{}pass".format(INDENT * 2)) - else: - for arg in args: - arg_name = name_to_py(arg[0]) - arg_type = arg[1] - arg_type_name = strcast(arg_type) - if arg_type in basic_types: - source.append("{}self.{} = {}".format(INDENT * 2, - arg_name, - arg_name)) - elif type(arg_type) is typing.TypeVar: - source.append("{}self.{} = {}.from_json({}) " - "if {} else None".format(INDENT * 2, - arg_name, - arg_type_name, - arg_name, - arg_name)) - elif issubclass(arg_type, typing.Sequence): - value_type = ( - arg_type_name.__parameters__[0] - if len(arg_type_name.__parameters__) - else None - ) - if type(value_type) is typing.TypeVar: - source.append( - "{}self.{} = [{}.from_json(o) " - "for o in {} or []]".format(INDENT * 2, - arg_name, - strcast(value_type), - arg_name)) - else: - source.append("{}self.{} = {}".format(INDENT * 2, - arg_name, - arg_name)) - elif issubclass(arg_type, typing.Mapping): - value_type = ( - arg_type_name.__parameters__[1] - if len(arg_type_name.__parameters__) > 1 - else None - ) - if type(value_type) is typing.TypeVar: - source.append( - "{}self.{} = {{k: {}.from_json(v) " - "for k, v in ({} or dict()).items()}}".format( - INDENT * 2, - arg_name, - strcast(value_type), - arg_name)) - else: - source.append("{}self.{} = {}".format(INDENT * 2, - arg_name, - arg_name)) - else: - source.append("{}self.{} = {}".format(INDENT * 2, - arg_name, - arg_name)) - - source = "\n".join(source) - capture.clear(name) - capture[name].write(source) - capture[name].write("\n\n") - co = compile(source, __name__, "exec") - ns = _getns() - exec(co, ns) - cls = ns[name] - CLASSES[name] = cls - - -def retspec(defs): - # return specs - # only return 1, so if there is more than one type - # we need to include a union - # In truth there is only 1 return - # Error or the expected Type - if not defs: - return None - if defs in basic_types: - return strcast(defs, False) - rtypes = _registry.getObj(_types[defs]) - if not rtypes: - return None - if len(rtypes) > 1: - return Union[tuple([strcast(r[1], True) for r in rtypes])] - return strcast(rtypes[0][1], False) - - -def return_type(defs): - if not defs: - return None - rtypes = _registry.getObj(_types[defs]) - if not rtypes: - return None - if len(rtypes) > 1: - for n, t in rtypes: - if n == "Error": - continue - return t - return rtypes[0][1] - - -def type_anno_func(func, defs, is_result=False): - annos = {} - if not defs: - return func - rtypes = _registry.getObj(_types[defs]) - if is_result: - kn = "return" - if not rtypes: - annos[kn] = None - elif len(rtypes) > 1: - annos[kn] = Union[tuple([r[1] for r in rtypes])] - else: - annos[kn] = rtypes[0][1] - else: - for name, rtype in rtypes: - name = name_to_py(name) - annos[name] = rtype - func.__annotations__.update(annos) - return func - - -def ReturnMapping(cls): - # Annotate the method with a return Type - # so the value can be cast - def decorator(f): - @functools.wraps(f) - async def wrapper(*args, **kwargs): - nonlocal cls - reply = await f(*args, **kwargs) - if cls is None: - return reply - if 'error' in reply: - cls = CLASSES['Error'] - if issubclass(cls, typing.Sequence): - result = [] - item_cls = cls.__parameters__[0] - for item in reply: - result.append(item_cls.from_json(item)) - """ - if 'error' in item: - cls = CLASSES['Error'] - else: - cls = item_cls - result.append(cls.from_json(item)) - """ - else: - result = cls.from_json(reply['response']) - - return result - return wrapper - return decorator - - -def makeFunc(cls, name, params, result, _async=True): - INDENT = " " - args = Args(params) - assignments = [] - toschema = args.PyToSchemaMapping() - for arg in args._get_arg_str(False, False): - assignments.append("{}_params[\'{}\'] = {}".format(INDENT, - toschema[arg], - arg)) - assignments = "\n".join(assignments) - res = retspec(result) - source = """ - -@ReturnMapping({rettype}) -{_async}def {name}(self{argsep}{args}): - ''' -{docstring} - Returns -> {res} - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='{cls.name}', - request='{name}', - version={cls.version}, - params=_params) -{assignments} - reply = {_await}self.rpc(msg) - return reply - -""" - - fsource = source.format(_async="async " if _async else "", - name=name, - argsep=", " if args else "", - args=args, - res=res, - rettype=result.__name__ if result else None, - docstring=textwrap.indent(args.get_doc(), INDENT), - cls=cls, - assignments=assignments, - _await="await " if _async else "") - ns = _getns() - exec(fsource, ns) - func = ns[name] - return func, fsource - - -def buildMethods(cls, capture): - properties = cls.schema['properties'] - for methodname in sorted(properties): - method, source = _buildMethod(cls, methodname) - setattr(cls, methodname, method) - capture["{}Facade".format(cls.__name__)].write(source, depth=1) - - -def _buildMethod(cls, name): - params = None - result = None - method = cls.schema['properties'][name] - if 'properties' in method: - prop = method['properties'] - spec = prop.get('Params') - if spec: - params = _types.get(spec['$ref']) - spec = prop.get('Result') - if spec: - if '$ref' in spec: - result = _types.get(spec['$ref']) - else: - result = SCHEMA_TO_PYTHON[spec['type']] - return makeFunc(cls, name, params, result) - - -def buildFacade(schema): - cls = type(schema.name, (Type,), dict(name=schema.name, - version=schema.version, - schema=schema)) - source = """ -class {name}Facade(Type): - name = '{name}' - version = {version} - schema = {schema} - """.format(name=schema.name, - version=schema.version, - schema=textwrap.indent(pprint.pformat(schema), " ")) - return cls, source - - -class TypeEncoder(json.JSONEncoder): - def default(self, obj): - if isinstance(obj, Type): - return obj.serialize() - return json.JSONEncoder.default(self, obj) - - -class Type: - def connect(self, connection): - self.connection = connection - - async def rpc(self, msg): - result = await self.connection.rpc(msg, encoder=TypeEncoder) - return result - - @classmethod - def from_json(cls, data): - if isinstance(data, cls): - return data - if isinstance(data, str): - try: - data = json.loads(data) - except json.JSONDecodeError: - raise - d = {} - for k, v in (data or {}).items(): - d[cls._toPy.get(k, k)] = v - - try: - return cls(**d) - except TypeError: - raise - - def serialize(self): - d = {} - for attr, tgt in self._toSchema.items(): - d[tgt] = getattr(self, attr) - return d - - def to_json(self): - return json.dumps(self.serialize(), cls=TypeEncoder, sort_keys=True) - - -class Schema(dict): - def __init__(self, schema): - self.name = schema['Name'] - self.version = schema['Version'] - self.update(schema['Schema']) - - @classmethod - def referenceName(cls, ref): - if ref.startswith("#/definitions/"): - ref = ref.rsplit("/", 1)[-1] - return ref - - def resolveDefinition(self, ref): - return self['definitions'][self.referenceName(ref)] - - def deref(self, prop, name): - if not isinstance(prop, dict): - raise TypeError(prop) - if "$ref" not in prop: - return prop - - target = self.resolveDefinition(prop["$ref"]) - return target - - def buildDefinitions(self): - # here we are building the types out - # anything in definitions is a type - # but these may contain references themselves - # so we dfs to the bottom and build upwards - # when a types is already in the registry - defs = self.get('definitions') - if not defs: - return - for d, data in defs.items(): - if d in _registry and d not in NAUGHTY_CLASSES: - continue - node = self.deref(data, d) - kind = node.get("type") - if kind == "object": - result = self.buildObject(node, d) - elif kind == "array": - pass - _registry.register(d, self.version, result) - # XXX: This makes sure that the type gets added to the global - # _types dict even if no other type in the schema has a ref - # to it. - getRefType(d) - - def buildObject(self, node, name=None, d=0): - # we don't need to build types recursively here - # they are all in definitions already - # we only want to include the type reference - # which we can derive from the name - struct = [] - add = struct.append - props = node.get("properties") - pprops = node.get("patternProperties") - if props: - # Sort these so the __init__ arg list for each Type remains - # consistently ordered across regens of client.py - for p in sorted(props): - prop = props[p] - if "$ref" in prop: - add((p, refType(prop))) - else: - kind = prop['type'] - if kind == "array": - add((p, self.buildArray(prop, d + 1))) - elif kind == "object": - struct.extend(self.buildObject(prop, p, d + 1)) - else: - add((p, objType(prop))) - if pprops: - if ".*" not in pprops: - raise ValueError( - "Cannot handle actual pattern in patternProperties %s" % - pprops) - pprop = pprops[".*"] - if "$ref" in pprop: - add((name, Mapping[str, refType(pprop)])) - return struct - ppkind = pprop["type"] - if ppkind == "array": - add((name, self.buildArray(pprop, d + 1))) - else: - add((name, Mapping[str, SCHEMA_TO_PYTHON[ppkind]])) - - if not struct and node.get('additionalProperties', False): - add((name, Mapping[str, SCHEMA_TO_PYTHON['object']])) - - return struct - - def buildArray(self, obj, d=0): - # return a sequence from an array in the schema - if "$ref" in obj: - return Sequence[refType(obj)] - else: - kind = obj.get("type") - if kind and kind == "array": - items = obj['items'] - return self.buildArray(items, d + 1) - else: - return Sequence[objType(obj)] - - -def _getns(): - ns = {'Type': Type, - 'typing': typing, - 'ReturnMapping': ReturnMapping - } - # Copy our types into the globals of the method - for facade in _registry: - ns[facade] = _registry.getObj(facade) - return ns - - -def make_factory(name): - if name in factories: - del factories[name] - factories[name].write("class {}(TypeFactory):\n pass\n\n".format(name)) - - -def write_facades(captures, options): - """ - Write the Facades to the appropriate _client.py - - """ - for version in sorted(captures.keys()): - filename = "{}/_client{}.py".format(options.output_dir, version) - with open(filename, "w") as f: - f.write(HEADER) - f.write("from juju.client.facade import Type, ReturnMapping\n") - f.write("from juju.client._definitions import *\n\n") - for key in sorted( - [k for k in captures[version].keys() if "Facade" in k]): - print(captures[version][key], file=f) - - # Return the last (most recent) version for use in other routines. - return version - - -def write_definitions(captures, options, version): - """ - Write auxillary (non versioned) classes to - _definitions.py The auxillary classes currently get - written redudantly into each capture object, so we can look in - one of them -- we just use the last one from the loop above. - - """ - with open("{}/_definitions.py".format(options.output_dir), "w") as f: - f.write(HEADER) - f.write("from juju.client.facade import Type, ReturnMapping\n\n") - for key in sorted( - [k for k in captures[version].keys() if "Facade" not in k]): - print(captures[version][key], file=f) - - -def write_client(captures, options): - """ - Write the TypeFactory classes to _client.py, along with some - imports and tables so that we can look up versioned Facades. - - """ - with open("{}/_client.py".format(options.output_dir), "w") as f: - f.write(HEADER) - f.write("from juju.client._definitions import *\n\n") - clients = ", ".join("_client{}".format(v) for v in captures) - f.write("from juju.client import " + clients + "\n\n") - f.write(CLIENT_TABLE.format(clients=",\n ".join( - ['"{}": _client{}'.format(v, v) for v in captures]))) - f.write(LOOKUP_FACADE) - f.write(TYPE_FACTORY) - for key in sorted([k for k in factories.keys() if "Facade" in k]): - print(factories[key], file=f) - - -def generate_facades(options): - captures = defaultdict(codegen.Capture) - schemas = {} - for p in sorted(glob(options.schema)): - if 'latest' in p: - juju_version = 'latest' - else: - try: - juju_version = re.search(JUJU_VERSION, p).group() - except AttributeError: - print("Cannot extract a juju version from {}".format(p)) - print("Schemas must include a juju version in the filename") - raise SystemExit(1) - - new_schemas = json.loads(Path(p).read_text("utf-8")) - schemas[juju_version] = [Schema(s) for s in new_schemas] - - # Build all of the auxillary (unversioned) classes - # TODO: get rid of some of the excess trips through loops in the - # called functions. - for juju_version in sorted(schemas.keys()): - for schema in schemas[juju_version]: - schema.buildDefinitions() - buildTypes(schema, captures[schema.version]) - - # Build the Facade classes - for juju_version in sorted(schemas.keys()): - for schema in schemas[juju_version]: - cls, source = buildFacade(schema) - cls_name = "{}Facade".format(schema.name) - - captures[schema.version].clear(cls_name) - # Make the factory class for _client.py - make_factory(cls_name) - # Make the actual class - captures[schema.version][cls_name].write(source) - # Build the methods for each Facade class. - buildMethods(cls, captures[schema.version]) - # Mark this Facade class as being done for this version -- - # helps mitigate some excessive looping. - CLASSES[schema.name] = cls - - return captures - - -def setup(): - parser = argparse.ArgumentParser() - parser.add_argument("-s", "--schema", default="juju/client/schemas*") - parser.add_argument("-o", "--output_dir", default="juju/client") - options = parser.parse_args() - return options - - -def main(): - options = setup() - - # Generate some text blobs - captures = generate_facades(options) - - # ... and write them out - last_version = write_facades(captures, options) - write_definitions(captures, options, last_version) - write_client(captures, options) - - -if __name__ == '__main__': - main() diff --git a/modules/libjuju/juju/client/gocookies.py b/modules/libjuju/juju/client/gocookies.py deleted file mode 100644 index 3e48b8d..0000000 --- a/modules/libjuju/juju/client/gocookies.py +++ /dev/null @@ -1,102 +0,0 @@ -import datetime -import http.cookiejar as cookiejar -import json -import time - -import pyrfc3339 - - -class GoCookieJar(cookiejar.FileCookieJar): - '''A CookieJar implementation that reads and writes cookies - to the cookiejar format as understood by the Go package - github.com/juju/persistent-cookiejar.''' - def _really_load(self, f, filename, ignore_discard, ignore_expires): - '''Implement the _really_load method called by FileCookieJar - to implement the actual cookie loading''' - data = json.load(f) or [] - now = time.time() - for cookie in map(go_to_py_cookie, data): - if not ignore_expires and cookie.is_expired(now): - continue - self.set_cookie(cookie) - - def save(self, filename=None, ignore_discard=False, ignore_expires=False): - '''Implement the FileCookieJar abstract method.''' - if filename is None: - if self.filename is not None: - filename = self.filename - else: - raise ValueError(cookiejar.MISSING_FILENAME_TEXT) - - # TODO: obtain file lock, read contents of file, and merge with - # current content. - go_cookies = [] - now = time.time() - for cookie in self: - if not ignore_discard and cookie.discard: - continue - if not ignore_expires and cookie.is_expired(now): - continue - go_cookies.append(py_to_go_cookie(cookie)) - with open(filename, "w") as f: - f.write(json.dumps(go_cookies)) - - -def go_to_py_cookie(go_cookie): - '''Convert a Go-style JSON-unmarshaled cookie into a Python cookie''' - expires = None - if go_cookie.get('Expires') is not None: - t = pyrfc3339.parse(go_cookie['Expires']) - expires = t.timestamp() - return cookiejar.Cookie( - version=0, - name=go_cookie['Name'], - value=go_cookie['Value'], - port=None, - port_specified=False, - # Unfortunately Python cookies don't record the original - # host that the cookie came from, so we'll just use Domain - # for that purpose, and record that the domain was specified, - # even though it probably was not. This means that - # we won't correctly record the CanonicalHost entry - # when writing the cookie file after reading it. - domain=go_cookie['Domain'], - domain_specified=not go_cookie['HostOnly'], - domain_initial_dot=False, - path=go_cookie['Path'], - path_specified=True, - secure=go_cookie['Secure'], - expires=expires, - discard=False, - comment=None, - comment_url=None, - rest=None, - rfc2109=False, - ) - - -def py_to_go_cookie(py_cookie): - '''Convert a python cookie to the JSON-marshalable Go-style cookie form.''' - # TODO (perhaps): - # HttpOnly - # Creation - # LastAccess - # Updated - # not done properly: CanonicalHost. - go_cookie = { - 'Name': py_cookie.name, - 'Value': py_cookie.value, - 'Domain': py_cookie.domain, - 'HostOnly': not py_cookie.domain_specified, - 'Persistent': not py_cookie.discard, - 'Secure': py_cookie.secure, - 'CanonicalHost': py_cookie.domain, - } - if py_cookie.path_specified: - go_cookie['Path'] = py_cookie.path - if py_cookie.expires is not None: - unix_time = datetime.datetime.fromtimestamp(py_cookie.expires) - # Note: fromtimestamp bizarrely produces a time without - # a time zone, so we need to use accept_naive. - go_cookie['Expires'] = pyrfc3339.generate(unix_time, accept_naive=True) - return go_cookie diff --git a/modules/libjuju/juju/client/jujudata.py b/modules/libjuju/juju/client/jujudata.py deleted file mode 100644 index 8b844c2..0000000 --- a/modules/libjuju/juju/client/jujudata.py +++ /dev/null @@ -1,219 +0,0 @@ -import abc -import io -import os -import pathlib - -import juju.client.client as jujuclient -import yaml -from juju import tag -from juju.client.gocookies import GoCookieJar -from juju.errors import JujuError - - -class NoModelException(Exception): - pass - - -class JujuData: - __metaclass__ = abc.ABCMeta - - @abc.abstractmethod - def current_controller(self): - '''Return the current controller name''' - raise NotImplementedError() - - @abc.abstractmethod - def controllers(self): - '''Return all the currently known controllers as a dict - mapping controller name to a dict containing the - following string keys: - uuid: The UUID of the controller - api-endpoints: A list of host:port addresses for the controller. - ca-cert: the PEM-encoded CA cert of the controller (optional) - - This is compatible with the "controllers" entry in the YAML-unmarshaled data - stored in ~/.local/share/juju/controllers.yaml. - ''' - raise NotImplementedError() - - @abc.abstractmethod - def models(self): - '''Return all the currently known models as a dict - containing a key for each known controller, - each holding a dict value containing an optional "current-model" - key (the name of the current model for that controller, - if there is one), and a dict mapping fully-qualified - model names to a dict containing a "uuid" key with the - key for that model. - This is compatible with the YAML-unmarshaled data - stored in ~/.local/share/juju/models.yaml. - ''' - raise NotImplementedError() - - @abc.abstractmethod - def accounts(self): - '''Return the currently known accounts, as a dict - containing a key for each known controller, with - each value holding a dict with the following keys: - - user: The username to use when logging into the controller (str) - password: The password to use when logging into the controller (str, optional) - ''' - raise NotImplementedError() - - @abc.abstractmethod - def cookies_for_controller(self, controller_name): - '''Return the cookie jar to use when connecting to the - controller with the given name. - :return http.cookiejar.CookieJar - ''' - raise NotImplementedError() - - @abc.abstractmethod - def current_model(self, controller_name=None, model_only=False): - '''Return the current model, qualified by its controller name. - If controller_name is specified, the current model for - that controller will be returned. - If model_only is true, only the model name, not qualified by - its controller name, will be returned. - ''' - raise NotImplementedError() - - def parse_model(self, model): - """Split the given model_name into controller and model parts. - If the controller part is empty, the current controller will be used. - If the model part is empty, the current model will be used for - the controller. - The returned model name will always be qualified with a username. - :param model str: The model name to parse. - :return (str, str): The controller and model names. - """ - # TODO if model is empty, use $JUJU_MODEL environment variable. - if model and ':' in model: - # explicit controller given - controller_name, model_name = model.split(':') - else: - # use the current controller if one isn't explicitly given - controller_name = self.current_controller() - model_name = model - if not controller_name: - controller_name = self.current_controller() - if not model_name: - model_name = self.current_model(controller_name, model_only=True) - if not model_name: - raise NoModelException('no current model') - - if '/' not in model_name: - # model name doesn't include a user prefix, so add one - # by using the current user for the controller. - accounts = self.accounts().get(controller_name) - if accounts is None: - raise JujuError('No account found for controller {} '.format(controller_name)) - username = accounts.get('user') - if username is None: - raise JujuError('No username found for controller {}'.format(controller_name)) - model_name = username + "/" + model_name - - return controller_name, model_name - - -class FileJujuData(JujuData): - '''Provide access to the Juju client configuration files. - Any configuration file is read once and then cached.''' - def __init__(self): - self.path = os.environ.get('JUJU_DATA') or '~/.local/share/juju' - self.path = os.path.abspath(os.path.expanduser(self.path)) - # _loaded keeps track of the loaded YAML from - # the Juju data files so we don't need to load the same - # file many times. - self._loaded = {} - - def refresh(self): - '''Forget the cache of configuration file data''' - self._loaded = {} - - def current_controller(self): - '''Return the current controller name''' - return self._load_yaml('controllers.yaml', 'current-controller') - - def current_model(self, controller_name=None, model_only=False): - '''Return the current model, qualified by its controller name. - If controller_name is specified, the current model for - that controller will be returned. - - If model_only is true, only the model name, not qualified by - its controller name, will be returned. - ''' - # TODO respect JUJU_MODEL environment variable. - if not controller_name: - controller_name = self.current_controller() - if not controller_name: - raise JujuError('No current controller') - models = self.models()[controller_name] - if 'current-model' not in models: - return None - if model_only: - return models['current-model'] - return controller_name + ':' + models['current-model'] - - def load_credential(self, cloud, name=None): - """Load a local credential. - - :param str cloud: Name of cloud to load credentials from. - :param str name: Name of credential. If None, the default credential - will be used, if available. - :return: A CloudCredential instance, or None. - """ - try: - cloud = tag.untag('cloud-', cloud) - creds_data = self.credentials()[cloud] - if not name: - default_credential = creds_data.pop('default-credential', None) - default_region = creds_data.pop('default-region', None) # noqa - if default_credential: - name = creds_data['default-credential'] - elif len(creds_data) == 1: - name = list(creds_data)[0] - else: - return None, None - cred_data = creds_data[name] - auth_type = cred_data.pop('auth-type') - return name, jujuclient.CloudCredential( - auth_type=auth_type, - attrs=cred_data, - ) - except (KeyError, FileNotFoundError): - return None, None - - def controllers(self): - return self._load_yaml('controllers.yaml', 'controllers') - - def models(self): - return self._load_yaml('models.yaml', 'controllers') - - def accounts(self): - return self._load_yaml('accounts.yaml', 'controllers') - - def credentials(self): - return self._load_yaml('credentials.yaml', 'credentials') - - def _load_yaml(self, filename, key): - if filename in self._loaded: - # Data already exists in the cache. - return self._loaded[filename].get(key) - # TODO use the file lock like Juju does. - filepath = os.path.join(self.path, filename) - with io.open(filepath, 'rt') as f: - data = yaml.safe_load(f) - self._loaded[filename] = data - return data.get(key) - - def cookies_for_controller(self, controller_name): - f = pathlib.Path(self.path) / 'cookies' / (controller_name + '.json') - if not f.exists(): - f = pathlib.Path('~/.go-cookies').expanduser() - # TODO if neither cookie file exists, where should - # we create the cookies? - jar = GoCookieJar(str(f)) - jar.load() - return jar diff --git a/modules/libjuju/juju/client/overrides.py b/modules/libjuju/juju/client/overrides.py deleted file mode 100644 index 49ab931..0000000 --- a/modules/libjuju/juju/client/overrides.py +++ /dev/null @@ -1,365 +0,0 @@ -import re -from collections import namedtuple - -from . import _client, _definitions -from .facade import ReturnMapping, Type, TypeEncoder - -__all__ = [ - 'Delta', - 'Number', - 'Binary', - 'ConfigValue', - 'Resource', -] - -__patches__ = [ - 'ResourcesFacade', - 'AllWatcherFacade', - 'ActionFacade', -] - - -class Delta(Type): - """A single websocket delta. - - :ivar entity: The entity name, e.g. 'unit', 'application' - :vartype entity: str - - :ivar type: The delta type, e.g. 'add', 'change', 'remove' - :vartype type: str - - :ivar data: The raw delta data - :vartype data: dict - - NOTE: The 'data' variable above is being incorrectly cross-linked by a - Sphinx bug: https://github.com/sphinx-doc/sphinx/issues/2549 - - """ - _toSchema = {'deltas': 'deltas'} - _toPy = {'deltas': 'deltas'} - - def __init__(self, deltas=None): - """ - :param deltas: [str, str, object] - - """ - self.deltas = deltas - - Change = namedtuple('Change', 'entity type data') - change = Change(*self.deltas) - - self.entity = change.entity - self.type = change.type - self.data = change.data - - @classmethod - def from_json(cls, data): - return cls(deltas=data) - - -class ResourcesFacade(Type): - """Patch parts of ResourcesFacade to make it work. - """ - - @ReturnMapping(_client.AddPendingResourcesResult) - async def AddPendingResources(self, application_tag, charm_url, resources): - """Fix the calling signature of AddPendingResources. - - The ResourcesFacade doesn't conform to the standard facade pattern in - the Juju source, which leads to the schemagened code not matching up - properly with the actual calling convention in the API. There is work - planned to fix this in Juju, but we have to work around it for now. - - application_tag : str - charm_url : str - resources : typing.Sequence<+T_co>[~CharmResource]<~CharmResource> - Returns -> typing.Union[_ForwardRef('ErrorResult'), - typing.Sequence<+T_co>[str]] - """ - # map input types to rpc msg - _params = dict() - msg = dict(type='Resources', - request='AddPendingResources', - version=1, - params=_params) - _params['tag'] = application_tag - _params['url'] = charm_url - _params['resources'] = resources - reply = await self.rpc(msg) - return reply - - -class AllWatcherFacade(Type): - """ - Patch rpc method of allwatcher to add in 'id' stuff. - - """ - async def rpc(self, msg): - if not hasattr(self, 'Id'): - client = _client.ClientFacade.from_connection(self.connection) - - result = await client.WatchAll() - self.Id = result.watcher_id - - msg['Id'] = self.Id - result = await self.connection.rpc(msg, encoder=TypeEncoder) - return result - - -class ActionFacade(Type): - - class _FindTagsResults(Type): - _toSchema = {'matches': 'matches'} - _toPy = {'matches': 'matches'} - - def __init__(self, matches=None, **unknown_fields): - ''' - FindTagsResults wraps the mapping between the requested prefix and the - matching tags for each requested prefix. - - Matches map[string][]Entity `json:"matches"` - ''' - self.matches = {} - matches = matches or {} - for prefix, tags in matches.items(): - self.matches[prefix] = [_definitions.Entity.from_json(r) - for r in tags] - - @ReturnMapping(_FindTagsResults) - async def FindActionTagsByPrefix(self, prefixes): - ''' - prefixes : typing.Sequence[str] - Returns -> typing.Sequence[~Entity] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Action', - request='FindActionTagsByPrefix', - version=2, - params=_params) - _params['prefixes'] = prefixes - reply = await self.rpc(msg) - return reply - - -class Number(_definitions.Number): - """ - This type represents a semver string. - - Because it is not standard JSON, the typical from_json parsing fails and - the parsing must be handled specially. - - See https://github.com/juju/version for more info. - """ - numberPat = re.compile(r'^(\d{1,9})\.(\d{1,9})(?:\.|-([a-z]+))(\d{1,9})(\.\d{1,9})?$') # noqa - - def __init__(self, major=None, minor=None, patch=None, tag=None, - build=None, **unknown_fields): - ''' - major : int - minor : int - patch : int - tag : str - build : int - ''' - self.major = int(major or '0') - self.minor = int(minor or '0') - self.patch = int(patch or '0') - self.tag = tag or '' - self.build = int(build or '0') - - def __repr__(self): - return ''.format( - self.major, self.minor, self.patch, self.tag, self.build) - - def __str__(self): - return self.serialize() - - @property - def _cmp(self): - return (self.major, self.minor, self.tag, self.patch, self.build) - - def __eq__(self, other): - return isinstance(other, type(self)) and self._cmp == other._cmp - - def __lt__(self, other): - return self._cmp < other._cmp - - def __le__(self, other): - return self._cmp <= other._cmp - - def __gt__(self, other): - return self._cmp > other._cmp - - def __ge__(self, other): - return self._cmp >= other._cmp - - @classmethod - def from_json(cls, data): - parsed = None - if isinstance(data, cls): - return data - elif data is None: - return cls() - elif isinstance(data, dict): - parsed = data - elif isinstance(data, str): - match = cls.numberPat.match(data) - if match: - parsed = { - 'major': match.group(1), - 'minor': match.group(2), - 'tag': match.group(3), - 'patch': match.group(4), - 'build': (match.group(5)[1:] if match.group(5) - else 0), - } - if not parsed: - raise TypeError('Unable to parse Number version string: ' - '{}'.format(data)) - d = {} - for k, v in parsed.items(): - d[cls._toPy.get(k, k)] = v - - return cls(**d) - - def serialize(self): - s = "" - if not self.tag: - s = "{}.{}.{}".format(self.major, self.minor, self.patch) - else: - s = "{}.{}-{}{}".format(self.major, self.minor, self.tag, - self.patch) - if self.build: - s = "{}.{}".format(s, self.build) - return s - - def to_json(self): - return self.serialize() - - -class Binary(_definitions.Binary): - """ - This type represents a semver string with additional series and arch info. - - Because it is not standard JSON, the typical from_json parsing fails and - the parsing must be handled specially. - - See https://github.com/juju/version for more info. - """ - binaryPat = re.compile(r'^(\d{1,9})\.(\d{1,9})(?:\.|-([a-z]+))(\d{1,9})(\.\d{1,9})?-([^-]+)-([^-]+)$') # noqa - - def __init__(self, number=None, series=None, arch=None, **unknown_fields): - ''' - number : Number - series : str - arch : str - ''' - self.number = Number.from_json(number) - self.series = series - self.arch = arch - - def __repr__(self): - return ''.format( - self.number, self.series, self.arch) - - def __str__(self): - return self.serialize() - - def __eq__(self, other): - return ( - isinstance(other, type(self)) and - other.number == self.number and - other.series == self.series and - other.arch == self.arch) - - @classmethod - def from_json(cls, data): - parsed = None - if isinstance(data, cls): - return data - elif data is None: - return cls() - elif isinstance(data, dict): - parsed = data - elif isinstance(data, str): - match = cls.binaryPat.match(data) - if match: - parsed = { - 'number': { - 'major': match.group(1), - 'minor': match.group(2), - 'tag': match.group(3), - 'patch': match.group(4), - 'build': (match.group(5)[1:] if match.group(5) - else 0), - }, - 'series': match.group(6), - 'arch': match.group(7), - } - if parsed is None: - raise TypeError('Unable to parse Binary version string: ' - '{}'.format(data)) - d = {} - for k, v in parsed.items(): - d[cls._toPy.get(k, k)] = v - - return cls(**d) - - def serialize(self): - return "{}-{}-{}".format(self.number.serialize(), - self.series, self.arch) - - def to_json(self): - return self.serialize() - - -class ConfigValue(_definitions.ConfigValue): - def __repr__(self): - return '<{} source={} value={}>'.format(type(self).__name__, - repr(self.source), - repr(self.value)) - - -class Resource(Type): - _toSchema = {'application': 'application', - 'charmresource': 'CharmResource', - 'id_': 'id', - 'pending_id': 'pending-id', - 'timestamp': 'timestamp', - 'username': 'username', - 'name': 'name', - 'origin': 'origin'} - _toPy = {'CharmResource': 'charmresource', - 'application': 'application', - 'id': 'id_', - 'pending-id': 'pending_id', - 'timestamp': 'timestamp', - 'username': 'username', - 'name': 'name', - 'origin': 'origin'} - - def __init__(self, charmresource=None, application=None, id_=None, - pending_id=None, timestamp=None, username=None, name=None, - origin=None, **unknown_fields): - ''' - charmresource : CharmResource - application : str - id_ : str - pending_id : str - timestamp : str - username : str - name: str - origin : str - ''' - if charmresource: - self.charmresource = _client.CharmResource.from_json(charmresource) - else: - self.charmresource = None - self.application = application - self.id_ = id_ - self.pending_id = pending_id - self.timestamp = timestamp - self.username = username - self.name = name - self.origin = origin diff --git a/modules/libjuju/juju/client/runner.py b/modules/libjuju/juju/client/runner.py deleted file mode 100644 index 6545bc4..0000000 --- a/modules/libjuju/juju/client/runner.py +++ /dev/null @@ -1,21 +0,0 @@ - -class AsyncRunner: - async def __call__(self, facade_method, *args, **kwargs): - await self.connection.rpc(facade_method(*args, **kwargs)) - - -class ThreadedRunner: - pass - -# Methods are descriptors?? -# get is called with params -# set gets called with the result? -# This could let us fake the protocol we want -# while decoupling the protocol from the RPC and the IO/Process context - -# The problem is leaking the runtime impl details to the top levels of the API -# with async def By handling the Marshal/Unmarshal side of RPC as a protocol we -# can leave the RPC running to a specific delegate without altering the method -# signatures. This still isn't quite right though as async is co-op -# multitasking and the methods still need to know not to block or they will -# pause other execution diff --git a/modules/libjuju/juju/client/schemas-juju-2.0.0.json b/modules/libjuju/juju/client/schemas-juju-2.0.0.json deleted file mode 100644 index c53a541..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.0.0.json +++ /dev/null @@ -1,24533 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "ip-addresses", - "instance-id", - "series", - "id", - "containers", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "migration": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "CloudRegion": { - "type": "object", - "properties": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Controller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiscoverSpaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DiscoverSpacesResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "DiscoverSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ProviderSpace": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider-id", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "tools" - ] - }, - "SerializedModelTools": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "external-control": { - "type": "boolean" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "external-control", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "tools" - ] - }, - "SerializedModelTools": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EnvListArgs" - }, - "Result": { - "$ref": "#/definitions/EnvListResults" - } - } - } - }, - "definitions": { - "EnvListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "EnvListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetInstanceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InstancesInfo" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetSupportedContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineContainersParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchAllContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/WatchContainers" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/WatchContainers" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMachineErrorRetry": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "ConstraintsResult": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "ConstraintsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConstraintsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ContainerConfig": { - "type": "object", - "properties": { - "UpdateBehavior": { - "$ref": "#/definitions/UpdateBehavior" - }, - "apt-mirror": { - "type": "string" - }, - "apt-proxy": { - "$ref": "#/definitions/Settings" - }, - "authorized-keys": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "proxy": { - "$ref": "#/definitions/Settings" - }, - "ssl-hostname-verification": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "provider-type", - "authorized-keys", - "ssl-hostname-verification", - "proxy", - "apt-proxy", - "apt-mirror", - "UpdateBehavior" - ] - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ContainerManagerConfigParams": { - "type": "object", - "properties": { - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DistributionGroupResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DistributionGroupResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DistributionGroupResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "InstanceInfo": { - "type": "object", - "properties": { - "characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "network-config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "nonce": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "volume-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentInfo" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "tag", - "instance-id", - "nonce", - "characteristics", - "volumes", - "volume-attachments", - "network-config" - ] - }, - "InstancesInfo": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/InstanceInfo" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineContainers": { - "type": "object", - "properties": { - "container-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-types" - ] - }, - "MachineContainersParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineContainers" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachineNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "MachineNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "Resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "Resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - } - }, - "definitions": { - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnitsNetworkConfig" - }, - "Result": { - "$ref": "#/definitions/UnitNetworkConfigResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchApplicationRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitNetworkConfig": { - "type": "object", - "properties": { - "binding-name": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "binding-name" - ] - }, - "UnitNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "UnitNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "UnitsNetworkConfig": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.0.1.json b/modules/libjuju/juju/client/schemas-juju-2.0.1.json deleted file mode 100644 index 69db493..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.0.1.json +++ /dev/null @@ -1,24799 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationRelationsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ApplicationRelationsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "ApplicationRelationsChange": { - "type": "object", - "properties": { - "changed": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationChange" - } - }, - "removed": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false - }, - "ApplicationRelationsWatchResult": { - "type": "object", - "properties": { - "ApplicationRelationsWatcherId": { - "type": "string" - }, - "changes": { - "$ref": "#/definitions/ApplicationRelationsChange" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "ApplicationRelationsWatcherId" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationChange": { - "type": "object", - "properties": { - "changedunits": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RelationUnitChange" - } - } - }, - "departedunits": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "integer" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life" - ] - }, - "RelationUnitChange": { - "type": "object", - "properties": { - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "ip-addresses", - "instance-id", - "series", - "id", - "containers", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "migration": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "application-url": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "application-url", - "application-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "CloudRegion": { - "type": "object", - "properties": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Controller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiscoverSpaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DiscoverSpacesResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "DiscoverSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ProviderSpace": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider-id", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "tools" - ] - }, - "SerializedModelTools": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "external-control": { - "type": "boolean" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "external-control", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "tools" - ] - }, - "SerializedModelTools": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EnvListArgs" - }, - "Result": { - "$ref": "#/definitions/EnvListResults" - } - } - } - }, - "definitions": { - "EnvListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "EnvListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetInstanceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InstancesInfo" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetSupportedContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineContainersParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchAllContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/WatchContainers" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/WatchContainers" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMachineErrorRetry": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "ConstraintsResult": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "ConstraintsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConstraintsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ContainerConfig": { - "type": "object", - "properties": { - "UpdateBehavior": { - "$ref": "#/definitions/UpdateBehavior" - }, - "apt-mirror": { - "type": "string" - }, - "apt-proxy": { - "$ref": "#/definitions/Settings" - }, - "authorized-keys": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "proxy": { - "$ref": "#/definitions/Settings" - }, - "ssl-hostname-verification": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "provider-type", - "authorized-keys", - "ssl-hostname-verification", - "proxy", - "apt-proxy", - "apt-mirror", - "UpdateBehavior" - ] - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ContainerManagerConfigParams": { - "type": "object", - "properties": { - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DistributionGroupResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DistributionGroupResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DistributionGroupResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "InstanceInfo": { - "type": "object", - "properties": { - "characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "network-config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "nonce": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "volume-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentInfo" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "tag", - "instance-id", - "nonce", - "characteristics", - "volumes", - "volume-attachments", - "network-config" - ] - }, - "InstancesInfo": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/InstanceInfo" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineContainers": { - "type": "object", - "properties": { - "container-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-types" - ] - }, - "MachineContainersParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineContainers" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachineNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "MachineNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "Resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "Resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - } - }, - "definitions": { - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnitsNetworkConfig" - }, - "Result": { - "$ref": "#/definitions/UnitNetworkConfigResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchApplicationRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitNetworkConfig": { - "type": "object", - "properties": { - "binding-name": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "binding-name" - ] - }, - "UnitNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "UnitNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "UnitsNetworkConfig": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.0.2.json b/modules/libjuju/juju/client/schemas-juju-2.0.2.json deleted file mode 100644 index 69db493..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.0.2.json +++ /dev/null @@ -1,24799 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationRelationsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ApplicationRelationsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "ApplicationRelationsChange": { - "type": "object", - "properties": { - "changed": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationChange" - } - }, - "removed": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false - }, - "ApplicationRelationsWatchResult": { - "type": "object", - "properties": { - "ApplicationRelationsWatcherId": { - "type": "string" - }, - "changes": { - "$ref": "#/definitions/ApplicationRelationsChange" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "ApplicationRelationsWatcherId" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationChange": { - "type": "object", - "properties": { - "changedunits": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RelationUnitChange" - } - } - }, - "departedunits": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "integer" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life" - ] - }, - "RelationUnitChange": { - "type": "object", - "properties": { - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "ip-addresses", - "instance-id", - "series", - "id", - "containers", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "migration": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "application-url": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "application-url", - "application-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "CloudRegion": { - "type": "object", - "properties": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Controller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiscoverSpaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DiscoverSpacesResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "DiscoverSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ProviderSpace": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider-id", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "tools" - ] - }, - "SerializedModelTools": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "external-control": { - "type": "boolean" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "external-control", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "tools" - ] - }, - "SerializedModelTools": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EnvListArgs" - }, - "Result": { - "$ref": "#/definitions/EnvListResults" - } - } - } - }, - "definitions": { - "EnvListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "EnvListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetInstanceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InstancesInfo" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetSupportedContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineContainersParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchAllContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/WatchContainers" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/WatchContainers" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMachineErrorRetry": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "ConstraintsResult": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "ConstraintsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConstraintsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ContainerConfig": { - "type": "object", - "properties": { - "UpdateBehavior": { - "$ref": "#/definitions/UpdateBehavior" - }, - "apt-mirror": { - "type": "string" - }, - "apt-proxy": { - "$ref": "#/definitions/Settings" - }, - "authorized-keys": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "proxy": { - "$ref": "#/definitions/Settings" - }, - "ssl-hostname-verification": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "provider-type", - "authorized-keys", - "ssl-hostname-verification", - "proxy", - "apt-proxy", - "apt-mirror", - "UpdateBehavior" - ] - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ContainerManagerConfigParams": { - "type": "object", - "properties": { - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DistributionGroupResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DistributionGroupResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DistributionGroupResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "InstanceInfo": { - "type": "object", - "properties": { - "characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "network-config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "nonce": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "volume-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentInfo" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "tag", - "instance-id", - "nonce", - "characteristics", - "volumes", - "volume-attachments", - "network-config" - ] - }, - "InstancesInfo": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/InstanceInfo" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineContainers": { - "type": "object", - "properties": { - "container-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-types" - ] - }, - "MachineContainersParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineContainers" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachineNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "MachineNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "Resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "Resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - } - }, - "definitions": { - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnitsNetworkConfig" - }, - "Result": { - "$ref": "#/definitions/UnitNetworkConfigResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchApplicationRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitNetworkConfig": { - "type": "object", - "properties": { - "binding-name": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "binding-name" - ] - }, - "UnitNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "UnitNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "UnitsNetworkConfig": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.0.3.json b/modules/libjuju/juju/client/schemas-juju-2.0.3.json deleted file mode 100644 index 69db493..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.0.3.json +++ /dev/null @@ -1,24799 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationRelationsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ApplicationRelationsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "ApplicationRelationsChange": { - "type": "object", - "properties": { - "changed": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationChange" - } - }, - "removed": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false - }, - "ApplicationRelationsWatchResult": { - "type": "object", - "properties": { - "ApplicationRelationsWatcherId": { - "type": "string" - }, - "changes": { - "$ref": "#/definitions/ApplicationRelationsChange" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "ApplicationRelationsWatcherId" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationChange": { - "type": "object", - "properties": { - "changedunits": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RelationUnitChange" - } - } - }, - "departedunits": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "integer" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life" - ] - }, - "RelationUnitChange": { - "type": "object", - "properties": { - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "ip-addresses", - "instance-id", - "series", - "id", - "containers", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "migration": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "application-url": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "application-url", - "application-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "CloudRegion": { - "type": "object", - "properties": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Controller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiscoverSpaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DiscoverSpacesResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "DiscoverSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ProviderSpace": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider-id", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "tools" - ] - }, - "SerializedModelTools": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "external-control": { - "type": "boolean" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "external-control", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "tools" - ] - }, - "SerializedModelTools": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EnvListArgs" - }, - "Result": { - "$ref": "#/definitions/EnvListResults" - } - } - } - }, - "definitions": { - "EnvListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "EnvListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetInstanceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InstancesInfo" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetSupportedContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineContainersParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchAllContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/WatchContainers" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/WatchContainers" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMachineErrorRetry": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "ConstraintsResult": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "ConstraintsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConstraintsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ContainerConfig": { - "type": "object", - "properties": { - "UpdateBehavior": { - "$ref": "#/definitions/UpdateBehavior" - }, - "apt-mirror": { - "type": "string" - }, - "apt-proxy": { - "$ref": "#/definitions/Settings" - }, - "authorized-keys": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "proxy": { - "$ref": "#/definitions/Settings" - }, - "ssl-hostname-verification": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "provider-type", - "authorized-keys", - "ssl-hostname-verification", - "proxy", - "apt-proxy", - "apt-mirror", - "UpdateBehavior" - ] - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ContainerManagerConfigParams": { - "type": "object", - "properties": { - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DistributionGroupResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DistributionGroupResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DistributionGroupResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "InstanceInfo": { - "type": "object", - "properties": { - "characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "network-config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "nonce": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "volume-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentInfo" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "tag", - "instance-id", - "nonce", - "characteristics", - "volumes", - "volume-attachments", - "network-config" - ] - }, - "InstancesInfo": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/InstanceInfo" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineContainers": { - "type": "object", - "properties": { - "container-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-types" - ] - }, - "MachineContainersParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineContainers" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachineNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "MachineNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "Resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "Resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - } - }, - "definitions": { - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnitsNetworkConfig" - }, - "Result": { - "$ref": "#/definitions/UnitNetworkConfigResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchApplicationRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitNetworkConfig": { - "type": "object", - "properties": { - "binding-name": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "binding-name" - ] - }, - "UnitNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "UnitNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "UnitsNetworkConfig": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.1.0.json b/modules/libjuju/juju/client/schemas-juju-2.1.0.json deleted file mode 100644 index 15f068f..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.1.0.json +++ /dev/null @@ -1,25652 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "constraints": { - "type": "string" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "ip-addresses", - "instance-id", - "series", - "id", - "containers", - "constraints", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "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": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "migration": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "application-url": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "application-url", - "application-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CloudInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "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": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "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 - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - }, - "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": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiscoverSpaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DiscoverSpacesResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "DiscoverSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ProviderSpace": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider-id", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "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": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "controller-agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "external-control": { - "type": "boolean" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "external-control", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "AdoptResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AdoptResourcesArgs" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "LatestLogTime": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - }, - "Result": { - "type": "string", - "format": "date-time" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "AdoptResourcesArgs": { - "type": "object", - "properties": { - "model-tag": { - "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, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "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": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EnvListArgs" - }, - "Result": { - "$ref": "#/definitions/EnvListResults" - } - } - } - }, - "definitions": { - "EnvListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "EnvListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "HostChangesForContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/HostNetworkChangeResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetHostMachineNetworkConfig": { - "type": "object", - "properties": { - "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" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "RemoteApplicationWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RemoteApplicationWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RemoteApplicationChange": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "life": { - "type": "string" - }, - "relations": { - "$ref": "#/definitions/RemoteRelationsChange" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "life", - "relations" - ] - }, - "RemoteApplicationWatchResult": { - "type": "object", - "properties": { - "change": { - "$ref": "#/definitions/RemoteApplicationChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "RemoteEntityId": { - "type": "object", - "properties": { - "model-uuid": { - "type": "string" - }, - "token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-uuid", - "token" - ] - }, - "RemoteRelationChange": { - "type": "object", - "properties": { - "changed-units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteRelationUnitChange" - } - } - }, - "departed-units": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "integer" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life" - ] - }, - "RemoteRelationUnitChange": { - "type": "object", - "properties": { - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "unit-id": { - "$ref": "#/definitions/RemoteEntityId" - } - }, - "additionalProperties": false, - "required": [ - "unit-id" - ] - }, - "RemoteRelationsChange": { - "type": "object", - "properties": { - "changed": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationChange" - } - }, - "initial": { - "type": "boolean" - }, - "removed": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "initial" - ] - } - } - } - }, - { - "Name": "RemoteRelationsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RemoteRelationsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RemoteEntityId": { - "type": "object", - "properties": { - "model-uuid": { - "type": "string" - }, - "token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-uuid", - "token" - ] - }, - "RemoteRelationChange": { - "type": "object", - "properties": { - "changed-units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteRelationUnitChange" - } - } - }, - "departed-units": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "integer" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life" - ] - }, - "RemoteRelationUnitChange": { - "type": "object", - "properties": { - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "unit-id": { - "$ref": "#/definitions/RemoteEntityId" - } - }, - "additionalProperties": false, - "required": [ - "unit-id" - ] - }, - "RemoteRelationsChange": { - "type": "object", - "properties": { - "changed": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationChange" - } - }, - "initial": { - "type": "boolean" - }, - "removed": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "initial" - ] - }, - "RemoteRelationsWatchResult": { - "type": "object", - "properties": { - "RemoteRelationsWatcherId": { - "type": "string" - }, - "change": { - "$ref": "#/definitions/RemoteRelationsChange" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "RemoteRelationsWatcherId" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "Resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "Resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - } - }, - "definitions": { - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnitsNetworkConfig" - }, - "Result": { - "$ref": "#/definitions/UnitNetworkConfigResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchApplicationRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "device-index", - "mac-address", - "cidr", - "mtu", - "provider-id", - "provider-subnet-id", - "provider-space-id", - "provider-address-id", - "provider-vlan-id", - "vlan-tag", - "interface-name", - "parent-interface-name", - "interface-type", - "disabled" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitNetworkConfig": { - "type": "object", - "properties": { - "binding-name": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "binding-name" - ] - }, - "UnitNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "UnitNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "UnitsNetworkConfig": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.1.1.json b/modules/libjuju/juju/client/schemas-juju-2.1.1.json deleted file mode 100644 index 474b204..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.1.1.json +++ /dev/null @@ -1,25730 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "constraints": { - "type": "string" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "ip-addresses", - "instance-id", - "series", - "id", - "containers", - "constraints", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "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": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "migration": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "application-url": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "application-url", - "application-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CloudInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "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": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "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 - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - }, - "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": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiscoverSpaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DiscoverSpacesResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "DiscoverSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ProviderSpace": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider-id", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "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": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "controller-agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "external-control": { - "type": "boolean" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "external-control", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "AdoptResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AdoptResourcesArgs" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "LatestLogTime": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - }, - "Result": { - "type": "string", - "format": "date-time" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "AdoptResourcesArgs": { - "type": "object", - "properties": { - "model-tag": { - "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, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "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": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EnvListArgs" - }, - "Result": { - "$ref": "#/definitions/EnvListResults" - } - } - } - }, - "definitions": { - "EnvListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "EnvListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "HostChangesForContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/HostNetworkChangeResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetHostMachineNetworkConfig": { - "type": "object", - "properties": { - "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" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "RemoteApplicationWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RemoteApplicationWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RemoteApplicationChange": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "life": { - "type": "string" - }, - "relations": { - "$ref": "#/definitions/RemoteRelationsChange" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "life", - "relations" - ] - }, - "RemoteApplicationWatchResult": { - "type": "object", - "properties": { - "change": { - "$ref": "#/definitions/RemoteApplicationChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "RemoteEntityId": { - "type": "object", - "properties": { - "model-uuid": { - "type": "string" - }, - "token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-uuid", - "token" - ] - }, - "RemoteRelationChange": { - "type": "object", - "properties": { - "changed-units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteRelationUnitChange" - } - } - }, - "departed-units": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "integer" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life" - ] - }, - "RemoteRelationUnitChange": { - "type": "object", - "properties": { - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "unit-id": { - "$ref": "#/definitions/RemoteEntityId" - } - }, - "additionalProperties": false, - "required": [ - "unit-id" - ] - }, - "RemoteRelationsChange": { - "type": "object", - "properties": { - "changed": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationChange" - } - }, - "initial": { - "type": "boolean" - }, - "removed": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "initial" - ] - } - } - } - }, - { - "Name": "RemoteRelationsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RemoteRelationsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RemoteEntityId": { - "type": "object", - "properties": { - "model-uuid": { - "type": "string" - }, - "token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-uuid", - "token" - ] - }, - "RemoteRelationChange": { - "type": "object", - "properties": { - "changed-units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteRelationUnitChange" - } - } - }, - "departed-units": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "integer" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life" - ] - }, - "RemoteRelationUnitChange": { - "type": "object", - "properties": { - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "unit-id": { - "$ref": "#/definitions/RemoteEntityId" - } - }, - "additionalProperties": false, - "required": [ - "unit-id" - ] - }, - "RemoteRelationsChange": { - "type": "object", - "properties": { - "changed": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationChange" - } - }, - "initial": { - "type": "boolean" - }, - "removed": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "initial" - ] - }, - "RemoteRelationsWatchResult": { - "type": "object", - "properties": { - "RemoteRelationsWatcherId": { - "type": "string" - }, - "change": { - "$ref": "#/definitions/RemoteRelationsChange" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "RemoteRelationsWatcherId" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "Resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "Resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - } - }, - "definitions": { - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnitsNetworkConfig" - }, - "Result": { - "$ref": "#/definitions/UnitNetworkConfigResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchApplicationRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitNetworkConfig": { - "type": "object", - "properties": { - "binding-name": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "binding-name" - ] - }, - "UnitNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "UnitNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "UnitsNetworkConfig": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.1.2.json b/modules/libjuju/juju/client/schemas-juju-2.1.2.json deleted file mode 100644 index 474b204..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.1.2.json +++ /dev/null @@ -1,25730 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "constraints": { - "type": "string" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "ip-addresses", - "instance-id", - "series", - "id", - "containers", - "constraints", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "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": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "migration": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "application-url": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "application-url", - "application-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CloudInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "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": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "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 - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - }, - "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": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiscoverSpaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DiscoverSpacesResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "DiscoverSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ProviderSpace": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider-id", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "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": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "controller-agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "external-control": { - "type": "boolean" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "external-control", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "AdoptResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AdoptResourcesArgs" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "LatestLogTime": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - }, - "Result": { - "type": "string", - "format": "date-time" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "AdoptResourcesArgs": { - "type": "object", - "properties": { - "model-tag": { - "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, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "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": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EnvListArgs" - }, - "Result": { - "$ref": "#/definitions/EnvListResults" - } - } - } - }, - "definitions": { - "EnvListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "EnvListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "HostChangesForContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/HostNetworkChangeResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetHostMachineNetworkConfig": { - "type": "object", - "properties": { - "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" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "RemoteApplicationWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RemoteApplicationWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RemoteApplicationChange": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "life": { - "type": "string" - }, - "relations": { - "$ref": "#/definitions/RemoteRelationsChange" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "life", - "relations" - ] - }, - "RemoteApplicationWatchResult": { - "type": "object", - "properties": { - "change": { - "$ref": "#/definitions/RemoteApplicationChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "RemoteEntityId": { - "type": "object", - "properties": { - "model-uuid": { - "type": "string" - }, - "token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-uuid", - "token" - ] - }, - "RemoteRelationChange": { - "type": "object", - "properties": { - "changed-units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteRelationUnitChange" - } - } - }, - "departed-units": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "integer" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life" - ] - }, - "RemoteRelationUnitChange": { - "type": "object", - "properties": { - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "unit-id": { - "$ref": "#/definitions/RemoteEntityId" - } - }, - "additionalProperties": false, - "required": [ - "unit-id" - ] - }, - "RemoteRelationsChange": { - "type": "object", - "properties": { - "changed": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationChange" - } - }, - "initial": { - "type": "boolean" - }, - "removed": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "initial" - ] - } - } - } - }, - { - "Name": "RemoteRelationsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RemoteRelationsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RemoteEntityId": { - "type": "object", - "properties": { - "model-uuid": { - "type": "string" - }, - "token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-uuid", - "token" - ] - }, - "RemoteRelationChange": { - "type": "object", - "properties": { - "changed-units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteRelationUnitChange" - } - } - }, - "departed-units": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "integer" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life" - ] - }, - "RemoteRelationUnitChange": { - "type": "object", - "properties": { - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "unit-id": { - "$ref": "#/definitions/RemoteEntityId" - } - }, - "additionalProperties": false, - "required": [ - "unit-id" - ] - }, - "RemoteRelationsChange": { - "type": "object", - "properties": { - "changed": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationChange" - } - }, - "initial": { - "type": "boolean" - }, - "removed": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "initial" - ] - }, - "RemoteRelationsWatchResult": { - "type": "object", - "properties": { - "RemoteRelationsWatcherId": { - "type": "string" - }, - "change": { - "$ref": "#/definitions/RemoteRelationsChange" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "RemoteRelationsWatcherId" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "Resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "Resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - } - }, - "definitions": { - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentInfo" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnitsNetworkConfig" - }, - "Result": { - "$ref": "#/definitions/UnitNetworkConfigResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchApplicationRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitNetworkConfig": { - "type": "object", - "properties": { - "binding-name": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "binding-name" - ] - }, - "UnitNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "UnitNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "UnitsNetworkConfig": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.2-alpha1.json b/modules/libjuju/juju/client/schemas-juju-2.2-alpha1.json deleted file mode 100644 index 8fa5071..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.2-alpha1.json +++ /dev/null @@ -1,25974 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Consume": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ConsumeApplicationArgs" - }, - "Result": { - "$ref": "#/definitions/ConsumeApplicationResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyApplication": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyApplicationResults" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyUnitResults" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "RemoteApplicationInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationURLs" - }, - "Result": { - "$ref": "#/definitions/RemoteApplicationInfoResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationURLs": { - "type": "object", - "properties": { - "application-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "ConsumeApplicationArg": { - "type": "object", - "properties": { - "application-alias": { - "type": "string" - }, - "application-url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-url" - ] - }, - "ConsumeApplicationArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/ConsumeApplicationArg" - } - } - }, - "additionalProperties": false - }, - "ConsumeApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "local-name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ConsumeApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConsumeApplicationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "DestroyApplicationInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyApplicationInfo" - } - }, - "additionalProperties": false - }, - "DestroyApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyApplicationResult" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "DestroyUnitInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyUnitResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyUnitInfo" - } - }, - "additionalProperties": false - }, - "DestroyUnitResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyUnitResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "RemoteApplicationInfo": { - "type": "object", - "properties": { - "application-url": { - "type": "string" - }, - "description": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "icon-url-path": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "name": { - "type": "string" - }, - "source-model-label": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "name", - "description", - "application-url", - "endpoints", - "icon-url-path" - ] - }, - "RemoteApplicationInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RemoteApplicationInfo" - } - }, - "additionalProperties": false - }, - "RemoteApplicationInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteApplicationInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "constraints": { - "type": "string" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "network-interfaces": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/NetworkInterface" - } - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "instance-id", - "series", - "id", - "containers", - "constraints", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "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": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "model-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version", - "model-status" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NetworkInterface": { - "type": "object", - "properties": { - "dns-nameservers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway": { - "type": "string" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "is-up": { - "type": "boolean" - }, - "mac-address": { - "type": "string" - }, - "space": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "ip-addresses", - "mac-address", - "is-up" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "application-url": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "application-url", - "application-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "exclude": { - "type": "array", - "items": { - "type": "string" - } - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta", - "exclude" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CloudInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "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": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "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 - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - }, - "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": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiscoverSpaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DiscoverSpacesResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "DiscoverSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ProviderSpace": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider-id", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "DestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "ForceDestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachineInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyMachineResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyMachineInfo" - } - }, - "additionalProperties": false - }, - "DestroyMachineResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyMachineResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "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 - }, - "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": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "controller-agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "external-control": { - "type": "boolean" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "external-control", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "AdoptResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AdoptResourcesArgs" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "LatestLogTime": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - }, - "Result": { - "type": "string", - "format": "date-time" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "AdoptResourcesArgs": { - "type": "object", - "properties": { - "model-tag": { - "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, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "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": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PayloadListArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadListResults" - } - } - } - }, - "definitions": { - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "PayloadListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetPayloadStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpPayloadArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpPayloadArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpPayloadArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetPayloadStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetPayloadStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetPayloadStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackPayloadArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "HostChangesForContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/HostNetworkChangeResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetHostMachineNetworkConfig": { - "type": "object", - "properties": { - "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" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "Resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "Resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - } - }, - "definitions": { - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Attach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Detach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentDetails": { - "type": "object", - "properties": { - "FilesystemAttachmentInfo": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "FilesystemAttachmentInfo" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentDetails": { - "type": "object", - "properties": { - "VolumeAttachmentInfo": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "VolumeAttachmentInfo" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnitsNetworkConfig" - }, - "Result": { - "$ref": "#/definitions/UnitNetworkConfigResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchApplicationRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitNetworkConfig": { - "type": "object", - "properties": { - "binding-name": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "binding-name" - ] - }, - "UnitNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "UnitNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "UnitsNetworkConfig": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.2-beta1.json b/modules/libjuju/juju/client/schemas-juju-2.2-beta1.json deleted file mode 100644 index 9bd941b..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.2-beta1.json +++ /dev/null @@ -1,26135 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Consume": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ConsumeApplicationArgs" - }, - "Result": { - "$ref": "#/definitions/ConsumeApplicationResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyApplication": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyApplicationResults" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyUnitResults" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "RemoteApplicationInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationURLs" - }, - "Result": { - "$ref": "#/definitions/RemoteApplicationInfoResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationURLs": { - "type": "object", - "properties": { - "application-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "ConsumeApplicationArg": { - "type": "object", - "properties": { - "application-alias": { - "type": "string" - }, - "application-url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-url" - ] - }, - "ConsumeApplicationArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/ConsumeApplicationArg" - } - } - }, - "additionalProperties": false - }, - "ConsumeApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "local-name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ConsumeApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConsumeApplicationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "DestroyApplicationInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyApplicationInfo" - } - }, - "additionalProperties": false - }, - "DestroyApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyApplicationResult" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "DestroyUnitInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyUnitResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyUnitInfo" - } - }, - "additionalProperties": false - }, - "DestroyUnitResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyUnitResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "RemoteApplicationInfo": { - "type": "object", - "properties": { - "application-url": { - "type": "string" - }, - "description": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "icon-url-path": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "name": { - "type": "string" - }, - "source-model-label": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "name", - "description", - "application-url", - "endpoints", - "icon-url-path" - ] - }, - "RemoteApplicationInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RemoteApplicationInfo" - } - }, - "additionalProperties": false - }, - "RemoteApplicationInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteApplicationInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetSLALevel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSLA" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "constraints": { - "type": "string" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "network-interfaces": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/NetworkInterface" - } - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "instance-id", - "series", - "id", - "containers", - "constraints", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelMigrationStatus": { - "type": "object", - "properties": { - "end": { - "type": "string", - "format": "date-time" - }, - "start": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "start" - ] - }, - "ModelSLA": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "type": "integer" - } - }, - "level": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "creds" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "meter-status": { - "$ref": "#/definitions/MeterStatus" - }, - "model-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version", - "model-status", - "meter-status" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NetworkInterface": { - "type": "object", - "properties": { - "dns-nameservers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway": { - "type": "string" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "is-up": { - "type": "boolean" - }, - "mac-address": { - "type": "string" - }, - "space": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "ip-addresses", - "mac-address", - "is-up" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "application-url": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "application-url", - "application-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "exclude": { - "type": "array", - "items": { - "type": "string" - } - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta", - "exclude" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CloudInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "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": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "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 - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - }, - "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": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiscoverSpaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DiscoverSpacesResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "DiscoverSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ProviderSpace": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider-id", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "DestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "ForceDestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachineInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyMachineResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyMachineInfo" - } - }, - "additionalProperties": false - }, - "DestroyMachineResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyMachineResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "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 - }, - "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": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddJujuMachineMetrics": { - "type": "object" - }, - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "controller-agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "external-control": { - "type": "boolean" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "external-control", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "AdoptResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AdoptResourcesArgs" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "LatestLogTime": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - }, - "Result": { - "type": "string", - "format": "date-time" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "AdoptResourcesArgs": { - "type": "object", - "properties": { - "model-tag": { - "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, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetSLALevel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSLA" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSLA": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "type": "integer" - } - }, - "level": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "creds" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "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": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PayloadListArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadListResults" - } - } - } - }, - "definitions": { - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "PayloadListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetPayloadStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpPayloadArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpPayloadArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpPayloadArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetPayloadStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetPayloadStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetPayloadStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackPayloadArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "HostChangesForContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/HostNetworkChangeResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetHostMachineNetworkConfig": { - "type": "object", - "properties": { - "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" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "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" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListUnitResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/UnitResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListUnitResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "UnitResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "UnitResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - } - }, - "definitions": { - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Attach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Detach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentDetails": { - "type": "object", - "properties": { - "FilesystemAttachmentInfo": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "FilesystemAttachmentInfo" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentDetails": { - "type": "object", - "properties": { - "VolumeAttachmentInfo": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "VolumeAttachmentInfo" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 5, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnitsNetworkConfig" - }, - "Result": { - "$ref": "#/definitions/UnitNetworkConfigResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchApplicationRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitNetworkConfig": { - "type": "object", - "properties": { - "binding-name": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "binding-name" - ] - }, - "UnitNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "UnitNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "UnitsNetworkConfig": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.2-beta2.json b/modules/libjuju/juju/client/schemas-juju-2.2-beta2.json deleted file mode 100644 index 4b141fd..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.2-beta2.json +++ /dev/null @@ -1,26150 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Consume": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ConsumeApplicationArgs" - }, - "Result": { - "$ref": "#/definitions/ConsumeApplicationResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyApplication": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyApplicationResults" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyUnitResults" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "RemoteApplicationInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationURLs" - }, - "Result": { - "$ref": "#/definitions/RemoteApplicationInfoResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationURLs": { - "type": "object", - "properties": { - "application-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "ConsumeApplicationArg": { - "type": "object", - "properties": { - "application-alias": { - "type": "string" - }, - "application-url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-url" - ] - }, - "ConsumeApplicationArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/ConsumeApplicationArg" - } - } - }, - "additionalProperties": false - }, - "ConsumeApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "local-name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ConsumeApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConsumeApplicationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "DestroyApplicationInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyApplicationInfo" - } - }, - "additionalProperties": false - }, - "DestroyApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyApplicationResult" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "DestroyUnitInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyUnitResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyUnitInfo" - } - }, - "additionalProperties": false - }, - "DestroyUnitResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyUnitResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "RemoteApplicationInfo": { - "type": "object", - "properties": { - "application-url": { - "type": "string" - }, - "description": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "icon-url-path": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "name": { - "type": "string" - }, - "source-model-label": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "name", - "description", - "application-url", - "endpoints", - "icon-url-path" - ] - }, - "RemoteApplicationInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RemoteApplicationInfo" - } - }, - "additionalProperties": false - }, - "RemoteApplicationInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteApplicationInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetSLALevel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSLA" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "constraints": { - "type": "string" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "network-interfaces": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/NetworkInterface" - } - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "instance-id", - "series", - "id", - "containers", - "constraints", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelMigrationStatus": { - "type": "object", - "properties": { - "end": { - "type": "string", - "format": "date-time" - }, - "start": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "start" - ] - }, - "ModelSLA": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "type": "integer" - } - }, - "level": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "creds" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "meter-status": { - "$ref": "#/definitions/MeterStatus" - }, - "model-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version", - "model-status", - "meter-status" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NetworkInterface": { - "type": "object", - "properties": { - "dns-nameservers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway": { - "type": "string" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "is-up": { - "type": "boolean" - }, - "mac-address": { - "type": "string" - }, - "space": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "ip-addresses", - "mac-address", - "is-up" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "application-url": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "application-url", - "application-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "exclude": { - "type": "array", - "items": { - "type": "string" - } - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta", - "exclude" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CloudInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "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": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "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 - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - }, - "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": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiscoverSpaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DiscoverSpacesResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "provider-network-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "DiscoverSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ProviderSpace": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider-id", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "DestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "ForceDestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachineInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyMachineResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyMachineInfo" - } - }, - "additionalProperties": false - }, - "DestroyMachineResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyMachineResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "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 - }, - "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": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddJujuMachineMetrics": { - "type": "object" - }, - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "controller-agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "external-control": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "skip-initial-prechecks": { - "type": "boolean" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info", - "external-control", - "skip-initial-prechecks" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "external-control": { - "type": "boolean" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "external-control", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "AdoptResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AdoptResourcesArgs" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "LatestLogTime": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - }, - "Result": { - "type": "string", - "format": "date-time" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "AdoptResourcesArgs": { - "type": "object", - "properties": { - "model-tag": { - "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, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetSLALevel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSLA" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSLA": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "type": "integer" - } - }, - "level": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "creds" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "provider-type", - "default-series", - "cloud-tag", - "owner-tag", - "life", - "status", - "users", - "machines" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "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": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PayloadListArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadListResults" - } - } - } - }, - "definitions": { - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "PayloadListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetPayloadStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpPayloadArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpPayloadArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpPayloadArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetPayloadStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetPayloadStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetPayloadStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackPayloadArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "HostChangesForContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/HostNetworkChangeResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetHostMachineNetworkConfig": { - "type": "object", - "properties": { - "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" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "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" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListUnitResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/UnitResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListUnitResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "UnitResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "UnitResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - } - }, - "definitions": { - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Attach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Detach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentDetails": { - "type": "object", - "properties": { - "FilesystemAttachmentInfo": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "FilesystemAttachmentInfo" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentDetails": { - "type": "object", - "properties": { - "VolumeAttachmentInfo": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "VolumeAttachmentInfo" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "provider-network-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 5, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnitsNetworkConfig" - }, - "Result": { - "$ref": "#/definitions/UnitNetworkConfigResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchApplicationRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitNetworkConfig": { - "type": "object", - "properties": { - "binding-name": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "binding-name" - ] - }, - "UnitNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "UnitNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "UnitsNetworkConfig": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitNetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.2-rc1.json b/modules/libjuju/juju/client/schemas-juju-2.2-rc1.json deleted file mode 100644 index 17e841a..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.2-rc1.json +++ /dev/null @@ -1,26295 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Consume": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ConsumeApplicationArgs" - }, - "Result": { - "$ref": "#/definitions/ConsumeApplicationResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyApplication": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyApplicationResults" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyUnitResults" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "RemoteApplicationInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationURLs" - }, - "Result": { - "$ref": "#/definitions/RemoteApplicationInfoResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationURLs": { - "type": "object", - "properties": { - "application-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "ConsumeApplicationArg": { - "type": "object", - "properties": { - "application-alias": { - "type": "string" - }, - "application-url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-url" - ] - }, - "ConsumeApplicationArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/ConsumeApplicationArg" - } - } - }, - "additionalProperties": false - }, - "ConsumeApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "local-name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ConsumeApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConsumeApplicationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "DestroyApplicationInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyApplicationInfo" - } - }, - "additionalProperties": false - }, - "DestroyApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyApplicationResult" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "DestroyUnitInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyUnitResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyUnitInfo" - } - }, - "additionalProperties": false - }, - "DestroyUnitResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyUnitResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "RemoteApplicationInfo": { - "type": "object", - "properties": { - "application-url": { - "type": "string" - }, - "description": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "icon-url-path": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "name": { - "type": "string" - }, - "source-model-label": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "name", - "description", - "application-url", - "endpoints", - "icon-url-path" - ] - }, - "RemoteApplicationInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RemoteApplicationInfo" - } - }, - "additionalProperties": false - }, - "RemoteApplicationInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteApplicationInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetSLALevel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSLA" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "constraints": { - "type": "string" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "network-interfaces": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/NetworkInterface" - } - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "instance-id", - "series", - "id", - "containers", - "constraints", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "sla": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "cloud-tag", - "owner-tag", - "life", - "users", - "machines", - "sla", - "agent-version" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelMigrationStatus": { - "type": "object", - "properties": { - "end": { - "type": "string", - "format": "date-time" - }, - "start": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "start" - ] - }, - "ModelSLA": { - "type": "object", - "properties": { - "ModelSLAInfo": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "creds": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "ModelSLAInfo", - "creds" - ] - }, - "ModelSLAInfo": { - "type": "object", - "properties": { - "level": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "owner" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "meter-status": { - "$ref": "#/definitions/MeterStatus" - }, - "model-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "sla": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version", - "model-status", - "meter-status", - "sla" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NetworkInterface": { - "type": "object", - "properties": { - "dns-nameservers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway": { - "type": "string" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "is-up": { - "type": "boolean" - }, - "mac-address": { - "type": "string" - }, - "space": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "ip-addresses", - "mac-address", - "is-up" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "application-url": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "application-url", - "application-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "exclude": { - "type": "array", - "items": { - "type": "string" - } - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta", - "exclude" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CloudInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "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": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "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 - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - }, - "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": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiscoverSpaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DiscoverSpacesResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "provider-network-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "DiscoverSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ProviderSpace": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider-id", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - }, - "WWN": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "WWN", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "DestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "ForceDestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachineInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyMachineResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyMachineInfo" - } - }, - "additionalProperties": false - }, - "DestroyMachineResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyMachineResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "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 - }, - "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": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddJujuMachineMetrics": { - "type": "object" - }, - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "controller-agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "AdoptResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AdoptResourcesArgs" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "LatestLogTime": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - }, - "Result": { - "type": "string", - "format": "date-time" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "AdoptResourcesArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - }, - "source-controller-version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "source-controller-version" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "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, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetSLALevel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSLA" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSLA": { - "type": "object", - "properties": { - "ModelSLAInfo": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "creds": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "ModelSLAInfo", - "creds" - ] - }, - "ModelSLAInfo": { - "type": "object", - "properties": { - "level": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "owner" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "sla": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "cloud-tag", - "owner-tag", - "life", - "users", - "machines", - "sla", - "agent-version" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelMigrationStatus": { - "type": "object", - "properties": { - "end": { - "type": "string", - "format": "date-time" - }, - "start": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "start" - ] - }, - "ModelSLAInfo": { - "type": "object", - "properties": { - "level": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "owner" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PayloadListArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadListResults" - } - } - } - }, - "definitions": { - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "PayloadListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetPayloadStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpPayloadArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpPayloadArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpPayloadArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetPayloadStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetPayloadStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetPayloadStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackPayloadArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "HostChangesForContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/HostNetworkChangeResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetHostMachineNetworkConfig": { - "type": "object", - "properties": { - "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" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "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" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "AutoNoProxy": { - "type": "string" - }, - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy", - "AutoNoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - }, - "wwn": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListUnitResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/UnitResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListUnitResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "UnitResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "UnitResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Attach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Detach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentDetails": { - "type": "object", - "properties": { - "FilesystemAttachmentInfo": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "FilesystemAttachmentInfo" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentDetails": { - "type": "object", - "properties": { - "VolumeAttachmentInfo": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "VolumeAttachmentInfo" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - }, - "wwn": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - }, - "WWN": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "WWN", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - }, - "wwn": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "provider-network-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 5, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/NetworkInfoParams" - }, - "Result": { - "$ref": "#/definitions/NetworkInfoResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "InterfaceAddress": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "cidr" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkInfo": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/InterfaceAddress" - } - }, - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mac-address", - "interface-name", - "addresses" - ] - }, - "NetworkInfoParams": { - "type": "object", - "properties": { - "bindings": { - "type": "array", - "items": { - "type": "string" - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "bindings" - ] - }, - "NetworkInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "network-info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkInfo" - } - } - }, - "additionalProperties": false, - "required": [ - "network-info" - ] - }, - "NetworkInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/NetworkInfoResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.3-alpha1.json b/modules/libjuju/juju/client/schemas-juju-2.3-alpha1.json deleted file mode 100644 index e59c105..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.3-alpha1.json +++ /dev/null @@ -1,26050 +0,0 @@ -[ - { - "Name": "Action", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 5, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Consume": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ConsumeApplicationArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyApplication": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyApplicationResults" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyUnitResults" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "attach-storage": { - "type": "array", - "items": { - "type": "string" - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "attach-storage": { - "type": "array", - "items": { - "type": "string" - } - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationOffer": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "application-description": { - "type": "string" - }, - "bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "offer-name": { - "type": "string" - }, - "offer-url": { - "type": "string" - }, - "source-model-tag": { - "type": "string" - }, - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteSpace" - } - } - }, - "additionalProperties": false, - "required": [ - "source-model-tag", - "offer-url", - "offer-name", - "application-description", - "endpoints", - "spaces", - "bindings", - "access" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force-units", - "force-series" - ] - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "ConsumeApplicationArg": { - "type": "object", - "properties": { - "ApplicationOffer": { - "$ref": "#/definitions/ApplicationOffer" - }, - "application-alias": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - } - }, - "additionalProperties": false, - "required": [ - "ApplicationOffer" - ] - }, - "ConsumeApplicationArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/ConsumeApplicationArg" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyApplicationInfo" - } - }, - "additionalProperties": false - }, - "DestroyApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyApplicationResult" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "DestroyUnitInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyUnitResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyUnitInfo" - } - }, - "additionalProperties": false - }, - "DestroyUnitResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyUnitResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetApplicationConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "RemoteSpace": { - "type": "object", - "properties": { - "cloud-type": { - "type": "string" - }, - "name": { - "type": "string" - }, - "provider-attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "cloud-type", - "name", - "provider-id", - "provider-attributes", - "subnets" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "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": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetSLALevel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSLA" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "relations" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "constraints": { - "type": "string" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "network-interfaces": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/NetworkInterface" - } - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "instance-id", - "series", - "id", - "containers", - "constraints", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "sla": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "cloud-tag", - "owner-tag", - "life", - "users", - "machines", - "sla", - "agent-version" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelMigrationStatus": { - "type": "object", - "properties": { - "end": { - "type": "string", - "format": "date-time" - }, - "start": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "start" - ] - }, - "ModelSLA": { - "type": "object", - "properties": { - "ModelSLAInfo": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "creds": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "ModelSLAInfo", - "creds" - ] - }, - "ModelSLAInfo": { - "type": "object", - "properties": { - "level": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "owner" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "meter-status": { - "$ref": "#/definitions/MeterStatus" - }, - "model-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "sla": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud-tag", - "version", - "available-version", - "model-status", - "meter-status", - "sla" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NetworkInterface": { - "type": "object", - "properties": { - "dns-nameservers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway": { - "type": "string" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "is-up": { - "type": "boolean" - }, - "mac-address": { - "type": "string" - }, - "space": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "ip-addresses", - "mac-address", - "is-up" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "application-url": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "application-url", - "application-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit", - "scope" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "exclude": { - "type": "array", - "items": { - "type": "string" - } - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta", - "exclude" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CloudInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - }, - "RevokeCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCloudCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "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": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "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 - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateCloudCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "UpdateCloudCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCloudCredential" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - }, - "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": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "state-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "state-addresses", - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - }, - "WWN": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "WWN", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Firewaller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Arbiter": { - "type": "boolean" - }, - "BuildIndexes": { - "type": "boolean" - }, - "Hidden": { - "type": "boolean" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "SlaveDelay": { - "type": "integer" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Delete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataImageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageMetadataFilter" - }, - "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" - } - } - }, - "Save": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetadataSaveParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateFromPublishedImages": { - "type": "object" - } - }, - "definitions": { - "CloudImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "image-id": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "region": { - "type": "string" - }, - "root-storage-size": { - "type": "integer" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "string" - }, - "source": { - "type": "string" - }, - "stream": { - "type": "string" - }, - "version": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "image-id", - "region", - "version", - "series", - "arch", - "source", - "priority" - ] - }, - "CloudImageMetadataList": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageMetadataFilter": { - "type": "object", - "properties": { - "arches": { - "type": "array", - "items": { - "type": "string" - } - }, - "region": { - "type": "string" - }, - "root-storage-type": { - "type": "string" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "stream": { - "type": "string" - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MetadataImageIds": { - "type": "object", - "properties": { - "image-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image-ids" - ] - }, - "MetadataSaveParams": { - "type": "object", - "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadataList" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "DestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "ForceDestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachineInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyMachineResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyMachineInfo" - } - }, - "additionalProperties": false - }, - "DestroyMachineResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyMachineResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "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 - }, - "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": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code", - "info" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddJujuMachineMetrics": { - "type": "object" - }, - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "controller-agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "AdoptResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AdoptResourcesArgs" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "LatestLogTime": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - }, - "Result": { - "type": "string", - "format": "date-time" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "AdoptResourcesArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - }, - "source-controller-version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "source-controller-version" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "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, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetSLALevel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSLA" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSLA": { - "type": "object", - "properties": { - "ModelSLAInfo": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "creds": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "ModelSLAInfo", - "creds" - ] - }, - "ModelSLAInfo": { - "type": "object", - "properties": { - "level": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "owner" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DumpModelRequest" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "DumpModelRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "simplified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "simplified" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "sla": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "controller-uuid", - "cloud-tag", - "owner-tag", - "life", - "users", - "machines", - "sla", - "agent-version" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelMigrationStatus": { - "type": "object", - "properties": { - "end": { - "type": "string", - "format": "date-time" - }, - "start": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "start" - ] - }, - "ModelSLAInfo": { - "type": "object", - "properties": { - "level": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "owner" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PayloadListArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadListResults" - } - } - } - }, - "definitions": { - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "PayloadListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetPayloadStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpPayloadArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpPayloadArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpPayloadArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetPayloadStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetPayloadStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetPayloadStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackPayloadArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "HostChangesForContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/HostNetworkChangeResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetHostMachineNetworkConfig": { - "type": "object", - "properties": { - "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" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "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" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "AutoNoProxy": { - "type": "string" - }, - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy", - "AutoNoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - }, - "wwn": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - } - }, - "additionalProperties": false, - "required": [ - "proxy-settings", - "apt-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListUnitResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/UnitResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListUnitResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "UnitResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "UnitResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "controller-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "controller-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - }, - "ReloadSpaces": { - "type": "object" - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Attach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Detach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentDetails": { - "type": "object", - "properties": { - "FilesystemAttachmentInfo": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "FilesystemAttachmentInfo" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentDetails": { - "type": "object", - "properties": { - "VolumeAttachmentInfo": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "VolumeAttachmentInfo" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - }, - "wwn": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - }, - "WWN": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "WWN", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - }, - "wwn": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "provider-network-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 5, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "JoinedRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/NetworkInfoParams" - }, - "Result": { - "$ref": "#/definitions/NetworkInfoResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchUnitRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "InterfaceAddress": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "cidr" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid" - ] - }, - "NetworkInfo": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/InterfaceAddress" - } - }, - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mac-address", - "interface-name", - "addresses" - ] - }, - "NetworkInfoParams": { - "type": "object", - "properties": { - "bindings": { - "type": "array", - "items": { - "type": "string" - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "bindings" - ] - }, - "NetworkInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "network-info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkInfo" - } - } - }, - "additionalProperties": false, - "required": [ - "network-info" - ] - }, - "NetworkInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/NetworkInfoResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/client/schemas-juju-2.5-rc1.json b/modules/libjuju/juju/client/schemas-juju-2.5-rc1.json deleted file mode 100644 index b53dd0b..0000000 --- a/modules/libjuju/juju/client/schemas-juju-2.5-rc1.json +++ /dev/null @@ -1,37036 +0,0 @@ -[ - { - "Name": "Action", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, - "Cancel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "Enqueue": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Actions" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "FindActionTagsByPrefix": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindTags" - }, - "Result": { - "$ref": "#/definitions/FindTagsResults" - } - } - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindActionsByNames" - }, - "Result": { - "$ref": "#/definitions/ActionsByNames" - } - } - }, - "ListAll": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListPending": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "ListRunning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "Run": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "RunOnAllMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RunParams" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "Actions": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/Action" - } - } - }, - "additionalProperties": false - }, - "ActionsByName": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByNames": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByName" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "ApplicationCharmActionsResult": { - "type": "object", - "properties": { - "actions": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ActionSpec" - } - } - }, - "application-tag": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ApplicationsCharmActionsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmActionsResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FindActionsByNames": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FindTags": { - "type": "object", - "properties": { - "prefixes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "prefixes" - ] - }, - "FindTagsResults": { - "type": "object", - "properties": { - "matches": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "matches" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RunParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "type": "string" - } - }, - "commands": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer" - }, - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "commands", - "timeout" - ] - } - } - } - }, - { - "Name": "ActionPruner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionPruneArgs" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "ActionPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - }, - "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 - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Agent", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerAPIInfoForModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ControllerAPIInfoResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AgentGetEntitiesResults" - } - } - }, - "IsMaster": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/IsMasterResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateServingInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StateServingInfo" - } - } - }, - "WatchCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AgentGetEntitiesResult": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "jobs", - "container-type" - ] - }, - "AgentGetEntitiesResults": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/AgentGetEntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "cacertificates": { - "type": "array", - "items": { - "type": "string" - } - }, - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerAPIInfoResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "cacert": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses", - "cacert" - ] - }, - "ControllerAPIInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllerAPIInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IsMasterResult": { - "type": "object", - "properties": { - "master": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "master" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StateServingInfo": { - "type": "object", - "properties": { - "api-port": { - "type": "integer" - }, - "ca-private-key": { - "type": "string" - }, - "cert": { - "type": "string" - }, - "controller-api-port": { - "type": "integer" - }, - "private-key": { - "type": "string" - }, - "shared-secret": { - "type": "string" - }, - "state-port": { - "type": "integer" - }, - "system-identity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "api-port", - "state-port", - "cert", - "private-key", - "ca-private-key", - "shared-secret", - "system-identity" - ] - } - } - } - }, - { - "Name": "AgentTools", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "UpdateToolsAvailable": { - "type": "object" - } - } - } - }, - { - "Name": "AllModelWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "AllWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherNextResults" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "AllWatcherNextResults": { - "type": "object", - "properties": { - "deltas": { - "type": "array", - "items": { - "$ref": "#/definitions/Delta" - } - } - }, - "additionalProperties": false, - "required": [ - "deltas" - ] - }, - "Delta": { - "type": "object", - "properties": { - "entity": { - "type": "object", - "additionalProperties": true - }, - "removed": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "removed", - "entity" - ] - } - } - } - }, - { - "Name": "Annotations", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AnnotationsGetResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AnnotationsSet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "AnnotationsGetResult": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/ErrorResult" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "AnnotationsGetResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AnnotationsGetResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AnnotationsSet": { - "type": "object", - "properties": { - "annotations": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityAnnotations" - } - } - }, - "additionalProperties": false, - "required": [ - "annotations" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityAnnotations": { - "type": "object", - "properties": { - "annotations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "annotations" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Application", - "Version": 8, - "Schema": { - "type": "object", - "properties": { - "AddRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddRelation" - }, - "Result": { - "$ref": "#/definitions/AddRelationResults" - } - } - }, - "AddUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationUnits" - }, - "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" - } - } - }, - "CharmConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetConfigResults" - } - } - }, - "CharmRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" - } - } - }, - "Consume": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ConsumeApplicationArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Deploy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationDestroy" - } - } - }, - "DestroyApplication": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationsParams" - }, - "Result": { - "$ref": "#/definitions/DestroyApplicationResults" - } - } - }, - "DestroyConsumedApplications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyConsumedApplicationsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyRelation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" - } - } - }, - "DestroyUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyUnitsParams" - }, - "Result": { - "$ref": "#/definitions/DestroyUnitResults" - } - } - }, - "DestroyUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" - } - } - }, - "Expose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } - }, - "Get": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" - } - } - }, - "GetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetConfigResults" - } - } - }, - "GetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetConstraintsResults" - } - } - }, - "GetLXDProfileUpgradeMessages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LXDProfileUpgradeMessages" - }, - "Result": { - "$ref": "#/definitions/LXDProfileUpgradeMessagesResults" - } - } - }, - "ResolveUnitErrors": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnitsResolved" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ScaleApplications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ScaleApplicationsParams" - }, - "Result": { - "$ref": "#/definitions/ScaleApplicationResults" - } - } - }, - "Set": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" - } - } - }, - "SetApplicationsConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationConfigSetArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" - } - } - }, - "SetCharmProfile": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharmProfile" - } - } - }, - "SetConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetMetricCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetRelationsSuspended": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationSuspendedArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "UnsetApplicationsConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationConfigUnsetArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Update": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUpdate" - } - } - }, - "UpdateApplicationSeries": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateSeriesArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchLXDProfileUpgradeNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "AddApplicationUnits": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "attach-storage": { - "type": "array", - "items": { - "type": "string" - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "policy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "num-units", - "placement" - ] - }, - "AddApplicationUnitsResults": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "AddRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - }, - "via-cidrs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "AddRelationResults": { - "type": "object", - "properties": { - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - } - }, - "additionalProperties": false, - "required": [ - "endpoints" - ] - }, - "ApplicationCharmRelations": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationCharmRelationsResults": { - "type": "object", - "properties": { - "charm-relations": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-relations" - ] - }, - "ApplicationConfigSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "config" - ] - }, - "ApplicationConfigSetArgs": { - "type": "object", - "properties": { - "Args": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationConfigSet" - } - } - }, - "additionalProperties": false, - "required": [ - "Args" - ] - }, - "ApplicationConfigUnsetArgs": { - "type": "object", - "properties": { - "Args": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationUnset" - } - } - }, - "additionalProperties": false, - "required": [ - "Args" - ] - }, - "ApplicationConstraint": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "ApplicationDeploy": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "attach-storage": { - "type": "array", - "items": { - "type": "string" - } - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-yaml": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "devices": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "num-units": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } - }, - "policy": { - "type": "string" - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "series": { - "type": "string" - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "series", - "charm-url", - "channel", - "num-units", - "config-yaml", - "constraints" - ] - }, - "ApplicationDestroy": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationExpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGet": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationGetConfigResults": { - "type": "object", - "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "Results" - ] - }, - "ApplicationGetConstraintsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationConstraint" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ApplicationGetResults": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "application-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "charm": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm", - "config", - "constraints", - "series" - ] - }, - "ApplicationMetricCredential": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "metrics-credentials": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "metrics-credentials" - ] - }, - "ApplicationMetricCredentials": { - "type": "object", - "properties": { - "creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } - } - }, - "additionalProperties": false, - "required": [ - "creds" - ] - }, - "ApplicationOfferDetails": { - "type": "object", - "properties": { - "application-description": { - "type": "string" - }, - "bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "offer-name": { - "type": "string" - }, - "offer-url": { - "type": "string" - }, - "offer-uuid": { - "type": "string" - }, - "source-model-tag": { - "type": "string" - }, - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteSpace" - } - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/OfferUserDetails" - } - } - }, - "additionalProperties": false, - "required": [ - "source-model-tag", - "offer-uuid", - "offer-url", - "offer-name", - "application-description" - ] - }, - "ApplicationSet": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationSetCharm": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "channel": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "config-settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "config-settings-yaml": { - "type": "string" - }, - "force": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "force-units": { - "type": "boolean" - }, - "resource-ids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "storage-constraints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageConstraints" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "channel", - "force", - "force-units", - "force-series" - ] - }, - "ApplicationSetCharmProfile": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url" - ] - }, - "ApplicationUnexpose": { - "type": "object", - "properties": { - "application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application" - ] - }, - "ApplicationUnset": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "options": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "options" - ] - }, - "ApplicationUpdate": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "force": { - "type": "boolean" - }, - "force-charm-url": { - "type": "boolean" - }, - "force-series": { - "type": "boolean" - }, - "min-units": { - "type": "integer" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "settings-yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "charm-url", - "force-charm-url", - "force-series", - "force", - "settings-yaml" - ] - }, - "ApplicationsDeploy": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationDeploy" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "ConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "ConsumeApplicationArg": { - "type": "object", - "properties": { - "ApplicationOfferDetails": { - "$ref": "#/definitions/ApplicationOfferDetails" - }, - "application-alias": { - "type": "string" - }, - "external-controller": { - "$ref": "#/definitions/ExternalControllerInfo" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - } - }, - "additionalProperties": false, - "required": [ - "ApplicationOfferDetails" - ] - }, - "ConsumeApplicationArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/ConsumeApplicationArg" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "destroy-storage": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application-tag" - ] - }, - "DestroyApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyApplicationInfo" - } - }, - "additionalProperties": false - }, - "DestroyApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyApplicationResult" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationUnits": { - "type": "object", - "properties": { - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "DestroyApplicationsParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyApplicationParams" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "DestroyConsumedApplicationParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag" - ] - }, - "DestroyConsumedApplicationsParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyConsumedApplicationParams" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "DestroyRelation": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "string" - } - }, - "relation-id": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "relation-id" - ] - }, - "DestroyUnitInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyUnitParams": { - "type": "object", - "properties": { - "destroy-storage": { - "type": "boolean" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag" - ] - }, - "DestroyUnitResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyUnitInfo" - } - }, - "additionalProperties": false - }, - "DestroyUnitResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyUnitResult" - } - } - }, - "additionalProperties": false - }, - "DestroyUnitsParams": { - "type": "object", - "properties": { - "units": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyUnitParams" - } - } - }, - "additionalProperties": false, - "required": [ - "units" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ExternalControllerInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "ca-cert": { - "type": "string" - }, - "controller-alias": { - "type": "string" - }, - "controller-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "controller-alias", - "addrs", - "ca-cert" - ] - }, - "LXDProfileUpgradeMessages": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/Entity" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application", - "watcher-id" - ] - }, - "LXDProfileUpgradeMessagesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "message" - ] - }, - "LXDProfileUpgradeMessagesResults": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LXDProfileUpgradeMessagesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "OfferUserDetails": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "access" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "RelationSuspendedArg": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "relation-id": { - "type": "integer" - }, - "suspended": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "relation-id", - "message", - "suspended" - ] - }, - "RelationSuspendedArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationSuspendedArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit" - ] - }, - "RemoteSpace": { - "type": "object", - "properties": { - "cloud-type": { - "type": "string" - }, - "name": { - "type": "string" - }, - "provider-attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "cloud-type", - "name", - "provider-id", - "provider-attributes", - "subnets" - ] - }, - "ScaleApplicationInfo": { - "type": "object", - "properties": { - "num-units": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "num-units" - ] - }, - "ScaleApplicationParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "scale": { - "type": "integer" - }, - "scale-change": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "scale" - ] - }, - "ScaleApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/ScaleApplicationInfo" - } - }, - "additionalProperties": false - }, - "ScaleApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ScaleApplicationResult" - } - } - }, - "additionalProperties": false - }, - "ScaleApplicationsParams": { - "type": "object", - "properties": { - "applications": { - "type": "array", - "items": { - "$ref": "#/definitions/ScaleApplicationParams" - } - } - }, - "additionalProperties": false, - "required": [ - "applications" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "UnitsResolved": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - }, - "retry": { - "type": "boolean" - }, - "tags": { - "$ref": "#/definitions/Entities" - } - }, - "additionalProperties": false - }, - "UpdateSeriesArg": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "series": { - "type": "string" - }, - "tag": { - "$ref": "#/definitions/Entity" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "force", - "series" - ] - }, - "UpdateSeriesArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateSeriesArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "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" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "ApplicationOffers", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ApplicationOffers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/OfferURLs" - }, - "Result": { - "$ref": "#/definitions/ApplicationOffersResults" - } - } - }, - "DestroyOffers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationOffers" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindApplicationOffers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/OfferFilters" - }, - "Result": { - "$ref": "#/definitions/QueryApplicationOffersResults" - } - } - }, - "GetConsumeDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/OfferURLs" - }, - "Result": { - "$ref": "#/definitions/ConsumeOfferDetailsResults" - } - } - }, - "ListApplicationOffers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/OfferFilters" - }, - "Result": { - "$ref": "#/definitions/QueryApplicationOffersResults" - } - } - }, - "ModifyOfferAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyOfferAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Offer": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddApplicationOffers" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoteApplicationInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/OfferURLs" - }, - "Result": { - "$ref": "#/definitions/RemoteApplicationInfoResults" - } - } - } - }, - "definitions": { - "AddApplicationOffer": { - "type": "object", - "properties": { - "application-description": { - "type": "string" - }, - "application-name": { - "type": "string" - }, - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "model-tag": { - "type": "string" - }, - "offer-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "offer-name", - "application-name", - "application-description", - "endpoints" - ] - }, - "AddApplicationOffers": { - "type": "object", - "properties": { - "Offers": { - "type": "array", - "items": { - "$ref": "#/definitions/AddApplicationOffer" - } - } - }, - "additionalProperties": false, - "required": [ - "Offers" - ] - }, - "ApplicationOfferAdminDetails": { - "type": "object", - "properties": { - "ApplicationOfferDetails": { - "$ref": "#/definitions/ApplicationOfferDetails" - }, - "application-name": { - "type": "string" - }, - "charm-url": { - "type": "string" - }, - "connections": { - "type": "array", - "items": { - "$ref": "#/definitions/OfferConnection" - } - } - }, - "additionalProperties": false, - "required": [ - "ApplicationOfferDetails", - "application-name", - "charm-url" - ] - }, - "ApplicationOfferDetails": { - "type": "object", - "properties": { - "application-description": { - "type": "string" - }, - "bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "offer-name": { - "type": "string" - }, - "offer-url": { - "type": "string" - }, - "offer-uuid": { - "type": "string" - }, - "source-model-tag": { - "type": "string" - }, - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteSpace" - } - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/OfferUserDetails" - } - } - }, - "additionalProperties": false, - "required": [ - "source-model-tag", - "offer-uuid", - "offer-url", - "offer-name", - "application-description" - ] - }, - "ApplicationOfferResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ApplicationOfferAdminDetails" - } - }, - "additionalProperties": false - }, - "ApplicationOffersResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationOfferResult" - } - } - }, - "additionalProperties": false - }, - "ConsumeOfferDetails": { - "type": "object", - "properties": { - "external-controller": { - "$ref": "#/definitions/ExternalControllerInfo" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "offer": { - "$ref": "#/definitions/ApplicationOfferDetails" - } - }, - "additionalProperties": false - }, - "ConsumeOfferDetailsResult": { - "type": "object", - "properties": { - "ConsumeOfferDetails": { - "$ref": "#/definitions/ConsumeOfferDetails" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "ConsumeOfferDetails" - ] - }, - "ConsumeOfferDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConsumeOfferDetailsResult" - } - } - }, - "additionalProperties": false - }, - "DestroyApplicationOffers": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "offer-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "offer-urls" - ] - }, - "EndpointFilterAttributes": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "role", - "interface", - "name" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ExternalControllerInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "ca-cert": { - "type": "string" - }, - "controller-alias": { - "type": "string" - }, - "controller-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "controller-alias", - "addrs", - "ca-cert" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyOfferAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "offer-url": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "offer-url" - ] - }, - "ModifyOfferAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyOfferAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "OfferConnection": { - "type": "object", - "properties": { - "endpoint": { - "type": "string" - }, - "ingress-subnets": { - "type": "array", - "items": { - "type": "string" - } - }, - "relation-id": { - "type": "integer" - }, - "source-model-tag": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "source-model-tag", - "relation-id", - "username", - "endpoint", - "status", - "ingress-subnets" - ] - }, - "OfferFilter": { - "type": "object", - "properties": { - "allowed-users": { - "type": "array", - "items": { - "type": "string" - } - }, - "application-description": { - "type": "string" - }, - "application-name": { - "type": "string" - }, - "application-user": { - "type": "string" - }, - "connected-users": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointFilterAttributes" - } - }, - "model-name": { - "type": "string" - }, - "offer-name": { - "type": "string" - }, - "owner-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "owner-name", - "model-name", - "offer-name", - "application-name", - "application-description", - "application-user", - "endpoints", - "connected-users", - "allowed-users" - ] - }, - "OfferFilters": { - "type": "object", - "properties": { - "Filters": { - "type": "array", - "items": { - "$ref": "#/definitions/OfferFilter" - } - } - }, - "additionalProperties": false, - "required": [ - "Filters" - ] - }, - "OfferURLs": { - "type": "object", - "properties": { - "offer-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "OfferUserDetails": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "access" - ] - }, - "QueryApplicationOffersResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationOfferAdminDetails" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RemoteApplicationInfo": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "icon-url-path": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "name": { - "type": "string" - }, - "offer-url": { - "type": "string" - }, - "source-model-label": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "name", - "description", - "offer-url", - "endpoints", - "icon-url-path" - ] - }, - "RemoteApplicationInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RemoteApplicationInfo" - } - }, - "additionalProperties": false - }, - "RemoteApplicationInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteApplicationInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit" - ] - }, - "RemoteSpace": { - "type": "object", - "properties": { - "cloud-type": { - "type": "string" - }, - "name": { - "type": "string" - }, - "provider-attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "cloud-type", - "name", - "provider-id", - "provider-attributes", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "ApplicationScaler", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Rescale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Create": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsCreateArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "FinishRestore": { - "type": "object" - }, - "Info": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsListArgs" - }, - "Result": { - "$ref": "#/definitions/BackupsListResult" - } - } - }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Restore": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" - } - } - } - }, - "definitions": { - "BackupsCreateArgs": { - "type": "object", - "properties": { - "keep-copy": { - "type": "boolean" - }, - "no-download": { - "type": "boolean" - }, - "notes": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "notes", - "keep-copy", - "no-download" - ] - }, - "BackupsInfoArgs": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "BackupsListArgs": { - "type": "object", - "additionalProperties": false - }, - "BackupsListResult": { - "type": "object", - "properties": { - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "BackupsMetadataResult": { - "type": "object", - "properties": { - "ca-cert": { - "type": "string" - }, - "ca-private-key": { - "type": "string" - }, - "checksum": { - "type": "string" - }, - "checksum-format": { - "type": "string" - }, - "filename": { - "type": "string" - }, - "finished": { - "type": "string", - "format": "date-time" - }, - "hostname": { - "type": "string" - }, - "id": { - "type": "string" - }, - "machine": { - "type": "string" - }, - "model": { - "type": "string" - }, - "notes": { - "type": "string" - }, - "series": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "started": { - "type": "string", - "format": "date-time" - }, - "stored": { - "type": "string", - "format": "date-time" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "id", - "checksum", - "checksum-format", - "size", - "stored", - "started", - "finished", - "notes", - "model", - "machine", - "hostname", - "version", - "series", - "ca-cert", - "ca-private-key", - "filename" - ] - }, - "BackupsRemoveArgs": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RestoreArgs": { - "type": "object", - "properties": { - "backup-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "backup-id" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" - } - } - }, - "SwitchBlockOff": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "SwitchBlockOn": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Block": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "tag", - "type" - ] - }, - "BlockResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Block" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Bundle", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ExportBundle": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "GetChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - } - }, - "definitions": { - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "bundleURL": { - "type": "string" - }, - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml", - "bundleURL" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "CAASAgent", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "cacertificates": { - "type": "array", - "items": { - "type": "string" - } - }, - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "CAASFirewaller", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ApplicationsConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetConfigResults" - } - } - }, - "IsExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchApplications": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "ApplicationGetConfigResults": { - "type": "object", - "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "Results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "CAASOperator", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Charm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationCharmResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPodSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetPodSpecParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationCharm": { - "type": "object", - "properties": { - "charm-modified-version": { - "type": "integer" - }, - "force-upgrade": { - "type": "boolean" - }, - "sha256": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "sha256", - "charm-modified-version" - ] - }, - "ApplicationCharmResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ApplicationCharm" - } - }, - "additionalProperties": false - }, - "ApplicationCharmResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "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" - ] - }, - "EntityString": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "value" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "type" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SetPodSpecParams": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityString" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "CAASOperatorProvisioner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "OperatorProvisioningInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/OperatorProvisioningInfo" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchApplications": { - "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" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "KubernetesFilesystemAttachmentParams": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "provider" - ] - }, - "KubernetesFilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/KubernetesFilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "storagename": { - "type": "string" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "storagename", - "size", - "provider" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "OperatorProvisioningInfo": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "charm-storage": { - "$ref": "#/definitions/KubernetesFilesystemParams" - }, - "image-path": { - "type": "string" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "image-path", - "version", - "api-addresses", - "charm-storage" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "CAASUnitProvisioner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ApplicationsConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetConfigResults" - } - } - }, - "ApplicationsScale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/KubernetesProvisioningInfoResults" - } - } - }, - "SetOperatorStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateApplicationsService": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateApplicationServiceArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateApplicationsUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateApplicationUnitArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchApplications": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchApplicationsScale": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchPodSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationGetConfigResults": { - "type": "object", - "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "Results" - ] - }, - "ApplicationUnitParams": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-info": { - "type": "array", - "items": { - "$ref": "#/definitions/KubernetesFilesystemInfo" - } - }, - "info": { - "type": "string" - }, - "ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "provider-id": { - "type": "string" - }, - "status": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "provider-id", - "unit-tag", - "address", - "ports", - "status", - "info" - ] - }, - "ConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "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" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "KubernetesDeviceParams": { - "type": "object", - "properties": { - "Attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Count": { - "type": "integer" - }, - "Type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Type", - "Count", - "Attributes" - ] - }, - "KubernetesFilesystemAttachmentParams": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "provider" - ] - }, - "KubernetesFilesystemInfo": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "status": { - "type": "string" - }, - "storagename": { - "type": "string" - }, - "volume": { - "$ref": "#/definitions/KubernetesVolumeInfo" - } - }, - "additionalProperties": false, - "required": [ - "storagename", - "pool", - "size", - "filesystem-id", - "status", - "info", - "volume" - ] - }, - "KubernetesFilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/KubernetesFilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "storagename": { - "type": "string" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "storagename", - "size", - "provider" - ] - }, - "KubernetesProvisioningInfo": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "devices": { - "type": "array", - "items": { - "$ref": "#/definitions/KubernetesDeviceParams" - } - }, - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/KubernetesFilesystemParams" - } - }, - "placement": { - "type": "string" - }, - "pod-spec": { - "type": "string" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/KubernetesVolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "pod-spec", - "constraints" - ] - }, - "KubernetesProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/KubernetesProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "KubernetesProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/KubernetesProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "KubernetesVolumeAttachmentParams": { - "type": "object", - "properties": { - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "provider" - ] - }, - "KubernetesVolumeInfo": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "status": { - "type": "string" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent", - "status", - "info" - ] - }, - "KubernetesVolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/KubernetesVolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "storagename": { - "type": "string" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "storagename", - "size", - "provider" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "UpdateApplicationServiceArg": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "application-tag": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "provider-id", - "addresses" - ] - }, - "UpdateApplicationServiceArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateApplicationServiceArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "UpdateApplicationUnitArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateApplicationUnits" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "UpdateApplicationUnits": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "units": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationUnitParams" - } - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "units" - ] - }, - "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" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/CharmInfo" - } - } - }, - "IsMetered": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURL" - }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" - } - } - }, - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" - }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmActionSpec": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "params": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "description", - "params" - ] - }, - "CharmActions": { - "type": "object", - "properties": { - "specs": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmActionSpec" - } - } - } - }, - "additionalProperties": false - }, - "CharmDevice": { - "type": "object", - "properties": { - "CountMax": { - "type": "integer" - }, - "CountMin": { - "type": "integer" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name", - "Description", - "Type", - "CountMin", - "CountMax" - ] - }, - "CharmInfo": { - "type": "object", - "properties": { - "actions": { - "$ref": "#/definitions/CharmActions" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmOption" - } - } - }, - "lxd-profile": { - "$ref": "#/definitions/CharmLXDProfile" - }, - "meta": { - "$ref": "#/definitions/CharmMeta" - }, - "metrics": { - "$ref": "#/definitions/CharmMetrics" - }, - "revision": { - "type": "integer" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "revision", - "url", - "config" - ] - }, - "CharmLXDProfile": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "description": { - "type": "string" - }, - "devices": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "config", - "description", - "devices" - ] - }, - "CharmMeta": { - "type": "object", - "properties": { - "categories": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "devices": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmDevice" - } - } - }, - "extra-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "min-juju-version": { - "type": "string" - }, - "name": { - "type": "string" - }, - "payload-classes": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmPayloadClass" - } - } - }, - "peers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "provides": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "requires": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmRelation" - } - } - }, - "resources": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmResourceMeta" - } - } - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmStorage" - } - } - }, - "subordinate": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "terms": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "summary", - "description", - "subordinate" - ] - }, - "CharmMetric": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "description" - ] - }, - "CharmMetrics": { - "type": "object", - "properties": { - "metrics": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/CharmMetric" - } - } - }, - "plan": { - "$ref": "#/definitions/CharmPlan" - } - }, - "additionalProperties": false, - "required": [ - "metrics", - "plan" - ] - }, - "CharmOption": { - "type": "object", - "properties": { - "default": { - "type": "object", - "additionalProperties": true - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CharmPayloadClass": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type" - ] - }, - "CharmPlan": { - "type": "object", - "properties": { - "required": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "required" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmResourceMeta": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "description" - ] - }, - "CharmStorage": { - "type": "object", - "properties": { - "count-max": { - "type": "integer" - }, - "count-min": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "location": { - "type": "string" - }, - "minimum-size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "properties": { - "type": "array", - "items": { - "type": "string" - } - }, - "read-only": { - "type": "boolean" - }, - "shared": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "description", - "type", - "shared", - "read-only", - "count-min", - "count-max", - "minimum-size" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmsList": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "names" - ] - }, - "CharmsListResult": { - "type": "object", - "properties": { - "charm-urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "charm-urls" - ] - }, - "IsMeteredResult": { - "type": "object", - "properties": { - "metered": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "metered" - ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" - }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "Client", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AbortCurrentUpgrade": { - "type": "object" - }, - "AddCharm": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharm" - } - } - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCharmWithAuthorization" - } - } - }, - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AgentVersion": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "DestroyMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" - }, - "Result": { - "$ref": "#/definitions/FullStatus" - } - } - }, - "GetBundleChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BundleChangesParams" - }, - "Result": { - "$ref": "#/definitions/BundleChangesResults" - } - } - }, - "GetModelConstraints": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" - } - } - }, - "InjectMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelUserInfoResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" - } - } - }, - "ProvisioningScript": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" - }, - "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, - "Result": { - "$ref": "#/definitions/PublicAddressResults" - } - } - }, - "ResolveCharms": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, - "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" - } - } - }, - "RetryProvisioning": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelAgentVersion" - } - } - }, - "SetModelConstraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" - } - } - }, - "SetSLALevel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSLA" - } - } - }, - "StatusHistory": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" - } - } - }, - "WatchAll": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "AddCharm": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "force": { - "type": "boolean" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "force" - ] - }, - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "force": { - "type": "boolean" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon", - "force" - ] - }, - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "ApplicationOfferStatus": { - "type": "object", - "properties": { - "active-connected-count": { - "type": "integer" - }, - "application-name": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteEndpoint" - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "offer-name": { - "type": "string" - }, - "total-connected-count": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "offer-name", - "application-name", - "charm", - "endpoints", - "active-connected-count", - "total-connected-count" - ] - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "can-upgrade-to": { - "type": "string" - }, - "charm": { - "type": "string" - }, - "charm-verion": { - "type": "string" - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "exposed": { - "type": "boolean" - }, - "int": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "meter-statuses": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MeterStatus" - } - } - }, - "provider-id": { - "type": "string" - }, - "public-address": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "series": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - }, - "string": { - "type": "string" - }, - "subordinate-to": { - "type": "array", - "items": { - "type": "string" - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "charm", - "series", - "exposed", - "life", - "relations", - "can-upgrade-to", - "subordinate-to", - "units", - "meter-statuses", - "status", - "workload-version", - "charm-verion", - "endpoint-bindings", - "public-address" - ] - }, - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "BundleChange": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "id", - "method", - "args", - "requires" - ] - }, - "BundleChangesParams": { - "type": "object", - "properties": { - "bundleURL": { - "type": "string" - }, - "yaml": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "yaml", - "bundleURL" - ] - }, - "BundleChangesResults": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChange" - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachines": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "machine-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-names", - "force" - ] - }, - "DetailedStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "info": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "data", - "since", - "kind", - "version", - "life" - ] - }, - "EndpointStatus": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "application", - "name", - "role", - "subordinate" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FindToolsParams": { - "type": "object", - "properties": { - "agentstream": { - "type": "string" - }, - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series", - "agentstream" - ] - }, - "FindToolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "list": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "list" - ] - }, - "FullStatus": { - "type": "object", - "properties": { - "applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "controller-timestamp": { - "type": "string", - "format": "date-time" - }, - "machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "model": { - "$ref": "#/definitions/ModelStatusInfo" - }, - "offers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationOfferStatus" - } - } - }, - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - }, - "remote-applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/RemoteApplicationStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "model", - "machines", - "applications", - "remote-applications", - "offers", - "relations", - "controller-timestamp" - ] - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "constraints" - ] - }, - "HardwareCharacteristics": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/definitions/DetailedStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LXDProfile": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "description": { - "type": "string" - }, - "devices": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "config", - "description", - "devices" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MachineStatus": { - "type": "object", - "properties": { - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "constraints": { - "type": "string" - }, - "containers": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } - }, - "dns-name": { - "type": "string" - }, - "hardware": { - "type": "string" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "instance-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "lxd-profiles": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/LXDProfile" - } - } - }, - "network-interfaces": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/NetworkInterface" - } - } - }, - "series": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "instance-status", - "dns-name", - "instance-id", - "series", - "id", - "containers", - "constraints", - "hardware", - "jobs", - "has-vote", - "wants-vote" - ] - }, - "MeterStatus": { - "type": "object", - "properties": { - "color": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "message" - ] - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "sla": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "type": { - "type": "string" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "uuid", - "controller-uuid", - "cloud-tag", - "owner-tag", - "life", - "users", - "machines", - "sla", - "agent-version" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "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" - ] - }, - "ModelSLA": { - "type": "object", - "properties": { - "ModelSLAInfo": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "creds": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "ModelSLAInfo", - "creds" - ] - }, - "ModelSLAInfo": { - "type": "object", - "properties": { - "level": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "owner" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelStatusInfo": { - "type": "object", - "properties": { - "available-version": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "meter-status": { - "$ref": "#/definitions/MeterStatus" - }, - "model-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "sla": { - "type": "string" - }, - "type": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "cloud-tag", - "version", - "available-version", - "model-status", - "meter-status", - "sla" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelUserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "additionalProperties": false - }, - "ModelUserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NetworkInterface": { - "type": "object", - "properties": { - "dns-nameservers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway": { - "type": "string" - }, - "ip-addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "is-up": { - "type": "boolean" - }, - "mac-address": { - "type": "string" - }, - "space": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "ip-addresses", - "mac-address", - "is-up" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "PrivateAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PrivateAddressResults": { - "type": "object", - "properties": { - "private-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "private-address" - ] - }, - "ProvisioningScriptParams": { - "type": "object", - "properties": { - "data-dir": { - "type": "string" - }, - "disable-package-commands": { - "type": "boolean" - }, - "machine-id": { - "type": "string" - }, - "nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-id", - "nonce", - "data-dir", - "disable-package-commands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "script": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "script" - ] - }, - "PublicAddress": { - "type": "object", - "properties": { - "target": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "PublicAddressResults": { - "type": "object", - "properties": { - "public-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "public-address" - ] - }, - "RelationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "id": { - "type": "integer" - }, - "interface": { - "type": "string" - }, - "key": { - "type": "string" - }, - "scope": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "id", - "key", - "interface", - "scope", - "endpoints", - "status" - ] - }, - "RemoteApplicationStatus": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEndpoint" - } - }, - "err": { - "type": "object", - "additionalProperties": true - }, - "life": { - "type": "string" - }, - "offer-name": { - "type": "string" - }, - "offer-url": { - "type": "string" - }, - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "status": { - "$ref": "#/definitions/DetailedStatus" - } - }, - "additionalProperties": false, - "required": [ - "offer-url", - "offer-name", - "endpoints", - "life", - "relations", - "status" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit" - ] - }, - "ResolveCharmResult": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ResolveCharmResults": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolveCharmResult" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "ResolveCharms": { - "type": "object", - "properties": { - "references": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "references" - ] - }, - "Resolved": { - "type": "object", - "properties": { - "retry": { - "type": "boolean" - }, - "unit-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-name", - "retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "application": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - } - }, - "additionalProperties": false, - "required": [ - "application", - "constraints" - ] - }, - "SetModelAgentVersion": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "StatusHistoryFilter": { - "type": "object", - "properties": { - "date": { - "type": "string", - "format": "date-time" - }, - "delta": { - "type": "integer" - }, - "exclude": { - "type": "array", - "items": { - "type": "string" - } - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "size", - "date", - "delta", - "exclude" - ] - }, - "StatusHistoryRequest": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "historyKind": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "historyKind", - "size", - "filter", - "tag" - ] - }, - "StatusHistoryRequests": { - "type": "object", - "properties": { - "requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } - } - }, - "additionalProperties": false, - "required": [ - "requests" - ] - }, - "StatusHistoryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "history": { - "$ref": "#/definitions/History" - } - }, - "additionalProperties": false, - "required": [ - "history" - ] - }, - "StatusHistoryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusParams": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "UnitStatus": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "agent-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "charm": { - "type": "string" - }, - "leader": { - "type": "boolean" - }, - "machine": { - "type": "string" - }, - "opened-ports": { - "type": "array", - "items": { - "type": "string" - } - }, - "provider-id": { - "type": "string" - }, - "public-address": { - "type": "string" - }, - "subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } - } - }, - "workload-status": { - "$ref": "#/definitions/DetailedStatus" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "agent-status", - "workload-status", - "workload-version", - "machine", - "opened-ports", - "public-address", - "charm", - "subordinates" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Cloud", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AddCloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddCloudArgs" - } - } - }, - "AddCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TaggedCredentials" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CheckCredentialsModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TaggedCredentials" - }, - "Result": { - "$ref": "#/definitions/UpdateCredentialResults" - } - } - }, - "Cloud": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudResults" - } - } - }, - "CloudInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudInfoResults" - } - } - }, - "Clouds": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudsResult" - } - } - }, - "Credential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudCredentialResults" - } - } - }, - "CredentialContents": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CloudCredentialArgs" - }, - "Result": { - "$ref": "#/definitions/CredentialContentResults" - } - } - }, - "DefaultCloud": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CloudInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - }, - "ListCloudInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListCloudsRequest" - }, - "Result": { - "$ref": "#/definitions/ListCloudInfoResults" - } - } - }, - "ModifyCloudAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyCloudAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveClouds": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RevokeCredentialsCheckModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RevokeCredentialArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateCredentialsCheckModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateCredentialArgs" - }, - "Result": { - "$ref": "#/definitions/UpdateCredentialResults" - } - } - }, - "UserCredentials": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserClouds" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "AddCloudArgs": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud", - "name" - ] - }, - "Cloud": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "ca-certificates": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudCredentialArg": { - "type": "object", - "properties": { - "cloud-name": { - "type": "string" - }, - "credential-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "cloud-name", - "credential-name" - ] - }, - "CloudCredentialArgs": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialArg" - } - }, - "include-secrets": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "include-secrets" - ] - }, - "CloudCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudCredential" - } - }, - "additionalProperties": false - }, - "CloudCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudCredentialResult" - } - } - }, - "additionalProperties": false - }, - "CloudDetails": { - "type": "object", - "properties": { - "auth-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudRegion" - } - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "CloudInfo": { - "type": "object", - "properties": { - "CloudDetails": { - "$ref": "#/definitions/CloudDetails" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudUserInfo" - } - } - }, - "additionalProperties": false, - "required": [ - "CloudDetails", - "users" - ] - }, - "CloudInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudInfo" - } - }, - "additionalProperties": false - }, - "CloudInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "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": { - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ] - }, - "CloudResult": { - "type": "object", - "properties": { - "cloud": { - "$ref": "#/definitions/Cloud" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "CloudResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudResult" - } - } - }, - "additionalProperties": false - }, - "CloudUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "access" - ] - }, - "CloudsResult": { - "type": "object", - "properties": { - "clouds": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Cloud" - } - } - } - }, - "additionalProperties": false - }, - "ControllerCredentialInfo": { - "type": "object", - "properties": { - "content": { - "$ref": "#/definitions/CredentialContent" - }, - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelAccess" - } - } - }, - "additionalProperties": false - }, - "CredentialContent": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "cloud": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "cloud", - "auth-type" - ] - }, - "CredentialContentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllerCredentialInfo" - } - }, - "additionalProperties": false - }, - "CredentialContentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CredentialContentResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "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" - ] - }, - "ListCloudInfo": { - "type": "object", - "properties": { - "CloudDetails": { - "$ref": "#/definitions/CloudDetails" - }, - "user-access": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CloudDetails", - "user-access" - ] - }, - "ListCloudInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ListCloudInfo" - } - }, - "additionalProperties": false - }, - "ListCloudInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ListCloudInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListCloudsRequest": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "model": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ModifyCloudAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag", - "action", - "access" - ] - }, - "ModifyCloudAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyCloudAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RevokeCredentialArg": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "force" - ] - }, - "RevokeCredentialArgs": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/RevokeCredentialArg" - } - } - }, - "additionalProperties": false, - "required": [ - "credentials" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "TaggedCredential": { - "type": "object", - "properties": { - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "credential" - ] - }, - "TaggedCredentials": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/TaggedCredential" - } - } - }, - "additionalProperties": false - }, - "UpdateCredentialArgs": { - "type": "object", - "properties": { - "credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/TaggedCredential" - } - }, - "force": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "credentials", - "force" - ] - }, - "UpdateCredentialModelResult": { - "type": "object", - "properties": { - "errors": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name" - ] - }, - "UpdateCredentialResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCredentialModelResult" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "UpdateCredentialResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateCredentialResult" - } - } - }, - "additionalProperties": false - }, - "UserCloud": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "cloud-tag" - ] - }, - "UserClouds": { - "type": "object", - "properties": { - "user-clouds": { - "type": "array", - "items": { - "$ref": "#/definitions/UserCloud" - } - } - }, - "additionalProperties": false - }, - "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" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Controller", - "Version": 5, - "Schema": { - "type": "object", - "properties": { - "AllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ConfigSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllerConfigSet" - } - } - }, - "ControllerAPIInfoForModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ControllerAPIInfoResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DestroyController": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyControllerArgs" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UserAccessResults" - } - } - }, - "HostedModelConfigs": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/HostedModelConfigsResults" - } - } - }, - "InitiateMigration": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InitiateMigrationArgs" - }, - "Result": { - "$ref": "#/definitions/InitiateMigrationResults" - } - } - }, - "ListBlockedModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelBlockInfoList" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyControllerAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" - } - } - } - }, - "definitions": { - "AllWatcherId": { - "type": "object", - "properties": { - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "cacertificates": { - "type": "array", - "items": { - "type": "string" - } - }, - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "ControllerAPIInfoResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "cacert": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses", - "cacert" - ] - }, - "ControllerAPIInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllerAPIInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ControllerConfigSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - }, - "destroy-storage": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostedModelConfig": { - "type": "object", - "properties": { - "cloud-spec": { - "$ref": "#/definitions/CloudSpec" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner" - ] - }, - "HostedModelConfigsResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/HostedModelConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "InitiateMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/MigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateMigrationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "migration-id": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "migration-id" - ] - }, - "InitiateMigrationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/InitiateMigrationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MigrationSpec": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "type": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "type", - "owner-tag" - ] - }, - "ModelBlockInfo": { - "type": "object", - "properties": { - "blocks": { - "type": "array", - "items": { - "type": "string" - } - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "model-uuid", - "owner-tag", - "blocks" - ] - }, - "ModelBlockInfoList": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelBlockInfo" - } - } - }, - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelFilesystemInfo": { - "type": "object", - "properties": { - "detachable": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelFilesystemInfo" - } - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelVolumeInfo" - } - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "ModelVolumeInfo": { - "type": "object", - "properties": { - "detachable": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModifyControllerAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access" - ] - }, - "ModifyControllerAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyControllerAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "RemoveBlocksArgs": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "UserAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "access" - ] - }, - "UserAccessResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserAccess" - } - }, - "additionalProperties": false - }, - "UserAccessResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccessResult" - } - } - }, - "additionalProperties": false - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "CredentialManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "InvalidateModelCredential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InvalidateCredentialArg" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "InvalidateCredentialArg": { - "type": "object", - "properties": { - "reason": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "CredentialValidator", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "InvalidateModelCredential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/InvalidateCredentialArg" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ModelCredential": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelCredential" - } - } - }, - "WatchCredential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelCredential": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "InvalidateCredentialArg": { - "type": "object", - "properties": { - "reason": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelCredential": { - "type": "object", - "properties": { - "credential-tag": { - "type": "string" - }, - "exists": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - }, - "valid": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "credential-tag" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "CrossController", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ControllerInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerAPIInfoResults" - } - } - }, - "WatchControllerInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "ControllerAPIInfoResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "cacert": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses", - "cacert" - ] - }, - "ControllerAPIInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllerAPIInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "CrossModelRelations", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "PublishIngressNetworkChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/IngressNetworksChanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PublishRelationChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoteRelationsChanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RegisterRemoteRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RegisterRemoteRelationArgs" - }, - "Result": { - "$ref": "#/definitions/RegisterRemoteRelationResults" - } - } - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoteRelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "WatchEgressAddressesForRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoteEntityArgs" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchOfferStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/OfferArgs" - }, - "Result": { - "$ref": "#/definitions/OfferStatusWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoteEntityArgs" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchRelationsSuspendedStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoteEntityArgs" - }, - "Result": { - "$ref": "#/definitions/RelationStatusWatchResults" - } - } - } - }, - "definitions": { - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "IngressNetworksChangeEvent": { - "type": "object", - "properties": { - "application-token": { - "type": "string" - }, - "ingress-required": { - "type": "boolean" - }, - "macaroons": { - "type": "array", - "items": { - "$ref": "#/definitions/Macaroon" - } - }, - "networks": { - "type": "array", - "items": { - "type": "string" - } - }, - "relation-token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation-token", - "application-token", - "ingress-required" - ] - }, - "IngressNetworksChanges": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/IngressNetworksChangeEvent" - } - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "OfferArg": { - "type": "object", - "properties": { - "macaroons": { - "type": "array", - "items": { - "$ref": "#/definitions/Macaroon" - } - }, - "offer-uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "offer-uuid" - ] - }, - "OfferArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/OfferArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "OfferStatusChange": { - "type": "object", - "properties": { - "offer-name": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - } - }, - "additionalProperties": false, - "required": [ - "offer-name", - "status" - ] - }, - "OfferStatusWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/OfferStatusChange" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "OfferStatusWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/OfferStatusWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RegisterRemoteRelationArg": { - "type": "object", - "properties": { - "application-token": { - "type": "string" - }, - "local-endpoint-name": { - "type": "string" - }, - "macaroons": { - "type": "array", - "items": { - "$ref": "#/definitions/Macaroon" - } - }, - "offer-uuid": { - "type": "string" - }, - "relation-token": { - "type": "string" - }, - "remote-endpoint": { - "$ref": "#/definitions/RemoteEndpoint" - }, - "remote-space": { - "$ref": "#/definitions/RemoteSpace" - }, - "source-model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-token", - "source-model-tag", - "relation-token", - "remote-endpoint", - "remote-space", - "offer-uuid", - "local-endpoint-name" - ] - }, - "RegisterRemoteRelationArgs": { - "type": "object", - "properties": { - "relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RegisterRemoteRelationArg" - } - } - }, - "additionalProperties": false, - "required": [ - "relations" - ] - }, - "RegisterRemoteRelationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RemoteRelationDetails" - } - }, - "additionalProperties": false - }, - "RegisterRemoteRelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RegisterRemoteRelationResult" - } - } - }, - "additionalProperties": false - }, - "RelationLifeSuspendedStatusChange": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "life": { - "type": "string" - }, - "suspended": { - "type": "boolean" - }, - "suspended-reason": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "life", - "suspended", - "suspended-reason" - ] - }, - "RelationLifeSuspendedStatusWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationLifeSuspendedStatusChange" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationStatusWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationLifeSuspendedStatusWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit" - ] - }, - "RemoteEntityArg": { - "type": "object", - "properties": { - "macaroons": { - "type": "array", - "items": { - "$ref": "#/definitions/Macaroon" - } - }, - "relation-token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation-token" - ] - }, - "RemoteEntityArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEntityArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "RemoteRelationChangeEvent": { - "type": "object", - "properties": { - "application-token": { - "type": "string" - }, - "changed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationUnitChange" - } - }, - "departed-units": { - "type": "array", - "items": { - "type": "integer" - } - }, - "force-cleanup": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "macaroons": { - "type": "array", - "items": { - "$ref": "#/definitions/Macaroon" - } - }, - "relation-token": { - "type": "string" - }, - "suspended": { - "type": "boolean" - }, - "suspended-reason": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation-token", - "application-token", - "life" - ] - }, - "RemoteRelationDetails": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "relation-token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation-token" - ] - }, - "RemoteRelationUnit": { - "type": "object", - "properties": { - "macaroons": { - "type": "array", - "items": { - "$ref": "#/definitions/Macaroon" - } - }, - "relation-token": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation-token", - "unit" - ] - }, - "RemoteRelationUnitChange": { - "type": "object", - "properties": { - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "unit-id": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "unit-id" - ] - }, - "RemoteRelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RemoteRelationsChanges": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationChangeEvent" - } - } - }, - "additionalProperties": false - }, - "RemoteSpace": { - "type": "object", - "properties": { - "cloud-type": { - "type": "string" - }, - "name": { - "type": "string" - }, - "provider-attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider-id": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "cloud-type", - "name", - "provider-id", - "provider-attributes", - "subnets" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Deployer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "ConnectionInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/DeployerConnectionValues" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPasswords": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "DeployerConnectionValues": { - "type": "object", - "properties": { - "api-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "api-addresses" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - }, - "WWN": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "WWN", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineBlockDevices": { - "type": "object", - "properties": { - "block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDevice" - } - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "SetMachineBlockDevices": { - "type": "object", - "properties": { - "machine-block-devices": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineBlockDevices" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-block-devices" - ] - } - } - } - }, - { - "Name": "EntityWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/EntitiesWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntitiesWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ExternalControllerUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ExternalControllerInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ExternalControllerInfoResults" - } - } - }, - "SetExternalControllerInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetExternalControllersInfoParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchExternalControllers": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ExternalControllerInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "ca-cert": { - "type": "string" - }, - "controller-alias": { - "type": "string" - }, - "controller-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "controller-alias", - "addrs", - "ca-cert" - ] - }, - "ExternalControllerInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ExternalControllerInfo" - } - }, - "additionalProperties": false, - "required": [ - "result", - "error" - ] - }, - "ExternalControllerInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ExternalControllerInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetExternalControllerInfoParams": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/ExternalControllerInfo" - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "SetExternalControllersInfoParams": { - "type": "object", - "properties": { - "controllers": { - "type": "array", - "items": { - "$ref": "#/definitions/SetExternalControllerInfoParams" - } - } - }, - "additionalProperties": false, - "required": [ - "controllers" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "FanConfigurer", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "FanConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/FanConfigResult" - } - } - }, - "WatchForFanConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FanConfigEntry": { - "type": "object", - "properties": { - "overlay": { - "type": "string" - }, - "underlay": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "underlay", - "overlay" - ] - }, - "FanConfigResult": { - "type": "object", - "properties": { - "fans": { - "type": "array", - "items": { - "$ref": "#/definitions/FanConfigEntry" - } - } - }, - "additionalProperties": false, - "required": [ - "fans" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "FirewallRules", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ListFirewallRules": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListFirewallRulesResults" - } - } - }, - "SetFirewallRules": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FirewallRuleArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FirewallRule": { - "type": "object", - "properties": { - "known-service": { - "type": "string" - }, - "whitelist-cidrs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "known-service" - ] - }, - "FirewallRuleArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/FirewallRule" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "ListFirewallRulesResults": { - "type": "object", - "properties": { - "Rules": { - "type": "array", - "items": { - "$ref": "#/definitions/FirewallRule" - } - } - }, - "additionalProperties": false, - "required": [ - "Rules" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Firewaller", - "Version": 5, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResults" - } - } - }, - "ControllerAPIInfoForModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ControllerAPIInfoResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "FirewallRules": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/KnownServiceArgs" - }, - "Result": { - "$ref": "#/definitions/ListFirewallRulesResults" - } - } - }, - "GetAssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "GetCloudSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelTag" - }, - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "GetExposed": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "GetMachineActiveSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "GetMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachinePortsParams" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MacaroonForRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MacaroonResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "SetRelationsStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchEgressAddressesForRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchIngressAddressesForRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchOpenedPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "cacertificates": { - "type": "array", - "items": { - "type": "string" - } - }, - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "CloudSpecResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "additionalProperties": false - }, - "ControllerAPIInfoResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "cacert": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses", - "cacert" - ] - }, - "ControllerAPIInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllerAPIInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "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" - ] - }, - "FirewallRule": { - "type": "object", - "properties": { - "known-service": { - "type": "string" - }, - "whitelist-cidrs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "known-service" - ] - }, - "KnownServiceArgs": { - "type": "object", - "properties": { - "known-services": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "known-services" - ] - }, - "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" - ] - }, - "ListFirewallRulesResults": { - "type": "object", - "properties": { - "Rules": { - "type": "array", - "items": { - "$ref": "#/definitions/FirewallRule" - } - } - }, - "additionalProperties": false, - "required": [ - "Rules" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MacaroonResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Macaroon" - } - }, - "additionalProperties": false - }, - "MacaroonResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MacaroonResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePorts": { - "type": "object", - "properties": { - "machine-tag": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "subnet-tag" - ] - }, - "MachinePortsParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePorts" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelTag": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "HighAvailability", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "EnableHA": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ControllersSpecs" - }, - "Result": { - "$ref": "#/definitions/ControllersChangeResults" - } - } - }, - "ResumeHAReplicationAfterUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ResumeReplicationParams" - } - } - }, - "StopHAReplicationForUpgrade": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeMongoParams" - }, - "Result": { - "$ref": "#/definitions/MongoUpgradeResults" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "SpaceProviderId": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" - ] - }, - "ControllersChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ControllersChanges" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ControllersChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllersChanges": { - "type": "object", - "properties": { - "added": { - "type": "array", - "items": { - "type": "string" - } - }, - "converted": { - "type": "array", - "items": { - "type": "string" - } - }, - "demoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "maintained": { - "type": "array", - "items": { - "type": "string" - } - }, - "promoted": { - "type": "array", - "items": { - "type": "string" - } - }, - "removed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "ControllersSpec": { - "type": "object", - "properties": { - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "num-controllers" - ] - }, - "ControllersSpecs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "HAMember": { - "type": "object", - "properties": { - "public-address": { - "$ref": "#/definitions/Address" - }, - "series": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-address", - "series" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Member": { - "type": "object", - "properties": { - "Address": { - "type": "string" - }, - "Id": { - "type": "integer" - }, - "Priority": { - "type": "number" - }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "Votes": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Id", - "Address", - "Priority", - "Tags", - "Votes" - ] - }, - "MongoUpgradeResults": { - "type": "object", - "properties": { - "ha-members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "master": { - "$ref": "#/definitions/HAMember" - }, - "rs-members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "rs-members", - "master", - "ha-members" - ] - }, - "MongoVersion": { - "type": "object", - "properties": { - "engine": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "patch": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "major", - "minor", - "patch", - "engine" - ] - }, - "ResumeReplicationParams": { - "type": "object", - "properties": { - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } - } - }, - "additionalProperties": false, - "required": [ - "members" - ] - }, - "UpgradeMongoParams": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/MongoVersion" - } - }, - "additionalProperties": false, - "required": [ - "target" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { - "type": "object", - "properties": { - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "public-keys" - ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ListImageResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ImageFilterParams": { - "type": "object", - "properties": { - "images": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "images" - ] - }, - "ImageMetadata": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series", - "url", - "created" - ] - }, - "ImageSpec": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "arch", - "series" - ] - }, - "ListImageResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageMetadata" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "ImageMetadata", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "UpdateFromPublishedImages": { - "type": "object" - } - } - } - }, - { - "Name": "InstancePoller", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "AreManuallyProvisioned": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineAddressesResults" - } - } - }, - "SetInstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetProviderAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "MachineAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "MachineAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "KeyManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DeleteKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ImportKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListSSHKeys" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSSHKeys": { - "type": "object", - "properties": { - "entities": { - "$ref": "#/definitions/Entities" - }, - "mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "mode" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "ssh-keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "ssh-keys" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "KeyUpdater", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "WatchAuthorisedKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LeadershipService", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "BlockUntilLeadershipReleased": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationTag" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "ClaimLeadership": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" - }, - "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" - } - } - } - }, - "definitions": { - "ApplicationTag": { - "type": "object", - "properties": { - "Name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Name" - ] - }, - "ClaimLeadershipBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "ClaimLeadershipBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ClaimLeadershipParams": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "application-tag", - "unit-tag", - "duration" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "LifeFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "LogForwarding", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingGetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/LogForwardingGetLastSentResults" - } - } - }, - "SetLastSent": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LogForwardingSetLastSentParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingGetLastSentParams": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingID" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "LogForwardingGetLastSentResult": { - "type": "object", - "properties": { - "err": { - "$ref": "#/definitions/Error" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "record-id", - "record-timestamp", - "err" - ] - }, - "LogForwardingGetLastSentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingGetLastSentResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LogForwardingID": { - "type": "object", - "properties": { - "model": { - "type": "string" - }, - "sink": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model", - "sink" - ] - }, - "LogForwardingSetLastSentParam": { - "type": "object", - "properties": { - "LogForwardingID": { - "$ref": "#/definitions/LogForwardingID" - }, - "record-id": { - "type": "integer" - }, - "record-timestamp": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "LogForwardingID", - "record-id", - "record-timestamp" - ] - }, - "LogForwardingSetLastSentParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/LogForwardingSetLastSentParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "Logger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "LoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "WatchLoggingConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineActions", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RunningActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionsByReceivers" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "ActionsByReceiver": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "receiver": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionsByReceivers": { - "type": "object", - "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionsByReceiver" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 5, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "DestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "DestroyMachineWithParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachinesParams" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "ForceDestroyMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DestroyMachineResults" - } - } - }, - "GetUpgradeSeriesMessages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeSeriesNotificationParams" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "InstanceTypes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelInstanceTypesConstraints" - }, - "Result": { - "$ref": "#/definitions/InstanceTypesResults" - } - } - }, - "UpgradeSeriesComplete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateSeriesArg" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "UpgradeSeriesPrepare": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateSeriesArg" - }, - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "UpgradeSeriesValidate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateSeriesArgs" - }, - "Result": { - "$ref": "#/definitions/UpgradeSeriesUnitsResults" - } - } - }, - "WatchUpgradeSeriesNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "container-type": { - "type": "string" - }, - "disks": { - "type": "array", - "items": { - "$ref": "#/definitions/Constraints" - } - }, - "hardware-characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "instance-id": { - "type": "string" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "nonce": { - "type": "string" - }, - "parent-id": { - "type": "string" - }, - "placement": { - "$ref": "#/definitions/Placement" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "series", - "constraints", - "jobs", - "parent-id", - "container-type", - "instance-id", - "nonce", - "hardware-characteristics", - "addresses" - ] - }, - "AddMachines": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "AddMachinesResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "machine": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine" - ] - }, - "AddMachinesResults": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachinesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Constraints": { - "type": "object", - "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Pool", - "Size", - "Count" - ] - }, - "DestroyMachineInfo": { - "type": "object", - "properties": { - "destroyed-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "destroyed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "detached-storage": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false - }, - "DestroyMachineResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "$ref": "#/definitions/DestroyMachineInfo" - } - }, - "additionalProperties": false - }, - "DestroyMachineResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyMachineResult" - } - } - }, - "additionalProperties": false - }, - "DestroyMachinesParams": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "keep": { - "type": "boolean" - }, - "machine-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-tags" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "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 - }, - "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" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Placement": { - "type": "object", - "properties": { - "directive": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "scope", - "directive" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateSeriesArg": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "series": { - "type": "string" - }, - "tag": { - "$ref": "#/definitions/Entity" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "force", - "series" - ] - }, - "UpdateSeriesArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateSeriesArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "UpgradeSeriesNotificationParam": { - "type": "object", - "properties": { - "entity": { - "$ref": "#/definitions/Entity" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "watcher-id" - ] - }, - "UpgradeSeriesNotificationParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/UpgradeSeriesNotificationParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "UpgradeSeriesUnitsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "unit-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "unit-names" - ] - }, - "UpgradeSeriesUnitsResults": { - "type": "object", - "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/UpgradeSeriesUnitsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "Results" - ] - }, - "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" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MachineUndertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AllMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "CompleteMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - } - } - }, - "GetMachineProviderInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProviderInterfaceInfoResults" - } - } - }, - "WatchMachineRemovals": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProviderInterfaceInfo": { - "type": "object", - "properties": { - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - }, - "provider-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "interface-name", - "mac-address", - "provider-id" - ] - }, - "ProviderInterfaceInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfo" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "interfaces" - ] - }, - "ProviderInterfaceInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderInterfaceInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Machiner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Jobs": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/JobsResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetMachineAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachinesAddresses" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetObservedNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMachineNetworkConfig" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "JobsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "jobs" - ] - }, - "JobsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/JobsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineAddresses": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "addresses" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "is-default-gateway": { - "type": "boolean" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetMachinesAddresses": { - "type": "object", - "properties": { - "machine-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } - } - }, - "additionalProperties": false, - "required": [ - "machine-addresses" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "MeterStatus", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsAdder", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "labels": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - } - } - } - }, - { - "Name": "MetricsDebug", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "GetMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MetricResults" - } - } - }, - "SetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MeterStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MeterStatusParam": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "code" - ] - }, - "MeterStatusParams": { - "type": "object", - "properties": { - "statues": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "statues" - ] - }, - "MetricResult": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "labels": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "time": { - "type": "string", - "format": "date-time" - }, - "unit": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "time", - "key", - "value", - "unit", - "labels" - ] - }, - "MetricResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMetrics" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MetricsManager", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddJujuMachineMetrics": { - "type": "object" - }, - "CleanupOldMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SendMetrics": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - } - } - } - }, - { - "Name": "MigrationFlag", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Phase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PhaseResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PhaseResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "phase": { - "type": "string" - } - }, - "additionalProperties": false - }, - "PhaseResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "MigrationMaster", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Export": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "MigrationStatus": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MasterMigrationStatus" - } - } - }, - "MinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MinionReports" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - }, - "Prechecks": { - "type": "object" - }, - "Reap": { - "type": "object" - }, - "SetPhase": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" - } - } - }, - "SetStatusMessage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetMigrationStatusMessageArgs" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchMinionReports": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MasterMigrationStatus": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "phase-changed-time": { - "type": "string", - "format": "date-time" - }, - "spec": { - "$ref": "#/definitions/MigrationSpec" - } - }, - "additionalProperties": false, - "required": [ - "spec", - "migration-id", - "phase", - "phase-changed-time" - ] - }, - "MigrationModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "controller-agent-version": { - "$ref": "#/definitions/Number" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "MigrationSpec": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - }, - "target-info": { - "$ref": "#/definitions/MigrationTargetInfo" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "target-info" - ] - }, - "MigrationTargetInfo": { - "type": "object", - "properties": { - "addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "auth-tag": { - "type": "string" - }, - "ca-cert": { - "type": "string" - }, - "controller-tag": { - "type": "string" - }, - "macaroons": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag" - ] - }, - "MinionReports": { - "type": "object", - "properties": { - "failed": { - "type": "array", - "items": { - "type": "string" - } - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success-count": { - "type": "integer" - }, - "unknown-count": { - "type": "integer" - }, - "unknown-sample": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success-count", - "unknown-count", - "unknown-sample", - "failed" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - }, - "SetMigrationPhaseArgs": { - "type": "object", - "properties": { - "phase": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "phase" - ] - }, - "SetMigrationStatusMessageArgs": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - } - } - }, - { - "Name": "MigrationMinion", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Report": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MinionReport" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MinionReport": { - "type": "object", - "properties": { - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "phase", - "success" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MigrationStatus" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { - "type": "object", - "properties": { - "attempt": { - "type": "integer" - }, - "migration-id": { - "type": "string" - }, - "phase": { - "type": "string" - }, - "source-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "source-ca-cert": { - "type": "string" - }, - "target-api-addrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "target-ca-cert": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "migration-id", - "attempt", - "phase", - "source-api-addrs", - "source-ca-cert", - "target-api-addrs", - "target-ca-cert" - ] - } - } - } - }, - { - "Name": "MigrationTarget", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Abort": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "Activate": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - } - } - }, - "AdoptResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AdoptResourcesArgs" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CheckMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SerializedModel" - } - } - }, - "LatestLogTime": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" - }, - "Result": { - "type": "string", - "format": "date-time" - } - } - }, - "Prechecks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MigrationModelInfo" - } - } - } - }, - "definitions": { - "AdoptResourcesArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - }, - "source-controller-version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "source-controller-version" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "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, - "required": [ - "uuid", - "name", - "owner-tag", - "agent-version", - "controller-agent-version" - ] - }, - "ModelArgs": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "SerializedModel": { - "type": "object", - "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } - }, - "charms": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelResource" - } - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/SerializedModelTools" - } - } - }, - "additionalProperties": false, - "required": [ - "bytes", - "charms", - "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": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "version", - "uri" - ] - } - } - } - }, - { - "Name": "ModelConfig", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelSet": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" - } - } - }, - "ModelUnset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "Sequences": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelSequencesResult" - } - } - }, - "SetSLALevel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSLA" - } - } - } - }, - "definitions": { - "ConfigValue": { - "type": "object", - "properties": { - "source": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "value", - "source" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResults": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ConfigValue" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelSLA": { - "type": "object", - "properties": { - "ModelSLAInfo": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "creds": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "ModelSLAInfo", - "creds" - ] - }, - "ModelSLAInfo": { - "type": "object", - "properties": { - "level": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "owner" - ] - }, - "ModelSequencesResult": { - "type": "object", - "properties": { - "sequences": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - } - }, - "additionalProperties": false, - "required": [ - "sequences" - ] - }, - "ModelSet": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelUnset": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 5, - "Schema": { - "type": "object", - "properties": { - "ChangeModelCredential": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ChangeModelCredentialsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreateModel": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelCreateArgs" - }, - "Result": { - "$ref": "#/definitions/ModelInfo" - } - } - }, - "DestroyModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DestroyModelsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DumpModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/DumpModelRequest" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "DumpModelsDB": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MapResults" - } - } - }, - "ListModelSummaries": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModelSummariesRequest" - }, - "Result": { - "$ref": "#/definitions/ModelSummaryResults" - } - } - }, - "ListModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, - "Result": { - "$ref": "#/definitions/UserModelList" - } - } - }, - "ModelDefaults": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelDefaultsResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelInfoResults" - } - } - }, - "ModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UnsetModelDefaults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "ChangeModelCredentialParams": { - "type": "object", - "properties": { - "credential-tag": { - "type": "string" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "credential-tag" - ] - }, - "ChangeModelCredentialsParams": { - "type": "object", - "properties": { - "model-credentials": { - "type": "array", - "items": { - "$ref": "#/definitions/ChangeModelCredentialParams" - } - } - }, - "additionalProperties": false, - "required": [ - "model-credentials" - ] - }, - "DestroyModelParams": { - "type": "object", - "properties": { - "destroy-storage": { - "type": "boolean" - }, - "model-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] - }, - "DestroyModelsParams": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/DestroyModelParams" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "DumpModelRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "simplified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "simplified" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineHardware": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "availability-zone": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "MapResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "MapResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MapResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Model": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "type": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "type", - "owner-tag" - ] - }, - "ModelCreateArgs": { - "type": "object", - "properties": { - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "credential": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "owner-tag" - ] - }, - "ModelDefaultValues": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelDefaults": { - "type": "object", - "properties": { - "controller": { - "type": "object", - "additionalProperties": true - }, - "default": { - "type": "object", - "additionalProperties": true - }, - "regions": { - "type": "array", - "items": { - "$ref": "#/definitions/RegionDefaults" - } - } - }, - "additionalProperties": false - }, - "ModelDefaultsResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ModelDefaults" - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelEntityCount": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "entity": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "count" - ] - }, - "ModelFilesystemInfo": { - "type": "object", - "properties": { - "detachable": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "default-series": { - "type": "string" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "sla": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "type": { - "type": "string" - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "uuid", - "controller-uuid", - "cloud-tag", - "owner-tag", - "life", - "users", - "machines", - "sla", - "agent-version" - ] - }, - "ModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelInfo" - } - }, - "additionalProperties": false - }, - "ModelInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelMachineInfo": { - "type": "object", - "properties": { - "hardware": { - "$ref": "#/definitions/MachineHardware" - }, - "has-vote": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "status": { - "type": "string" - }, - "wants-vote": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "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" - ] - }, - "ModelSLAInfo": { - "type": "object", - "properties": { - "level": { - "type": "string" - }, - "owner": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "level", - "owner" - ] - }, - "ModelStatus": { - "type": "object", - "properties": { - "application-count": { - "type": "integer" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelFilesystemInfo" - } - }, - "hosted-machine-count": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMachineInfo" - } - }, - "model-tag": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelVolumeInfo" - } - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "life", - "hosted-machine-count", - "application-count", - "owner-tag" - ] - }, - "ModelStatusResults": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "models" - ] - }, - "ModelSummariesRequest": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag" - ] - }, - "ModelSummary": { - "type": "object", - "properties": { - "agent-version": { - "$ref": "#/definitions/Number" - }, - "cloud-credential-tag": { - "type": "string" - }, - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "controller-uuid": { - "type": "string" - }, - "counts": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelEntityCount" - } - }, - "default-series": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "life": { - "type": "string" - }, - "migration": { - "$ref": "#/definitions/ModelMigrationStatus" - }, - "name": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "provider-type": { - "type": "string" - }, - "sla": { - "$ref": "#/definitions/ModelSLAInfo" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "type": { - "type": "string" - }, - "user-access": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "type", - "controller-uuid", - "cloud-tag", - "owner-tag", - "life", - "user-access", - "last-connection", - "counts", - "sla", - "agent-version" - ] - }, - "ModelSummaryResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ModelSummary" - } - }, - "additionalProperties": false - }, - "ModelSummaryResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelSummaryResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelUnsetKeys": { - "type": "object", - "properties": { - "cloud-region": { - "type": "string" - }, - "cloud-tag": { - "type": "string" - }, - "keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "ModelUserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user", - "display-name", - "last-connection", - "access" - ] - }, - "ModelVolumeInfo": { - "type": "object", - "properties": { - "detachable": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "ModifyModelAccess": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "user-tag", - "action", - "access", - "model-tag" - ] - }, - "ModifyModelAccessRequest": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/ModifyModelAccess" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "RegionDefaults": { - "type": "object", - "properties": { - "region-name": { - "type": "string" - }, - "value": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "required": [ - "region-name", - "value" - ] - }, - "SetModelDefaults": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelDefaultValues" - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnsetModelDefaults": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUnsetKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "keys" - ] - }, - "UserModel": { - "type": "object", - "properties": { - "last-connection": { - "type": "string", - "format": "date-time" - }, - "model": { - "$ref": "#/definitions/Model" - } - }, - "additionalProperties": false, - "required": [ - "model", - "last-connection" - ] - }, - "UserModelList": { - "type": "object", - "properties": { - "user-models": { - "type": "array", - "items": { - "$ref": "#/definitions/UserModel" - } - } - }, - "additionalProperties": false, - "required": [ - "user-models" - ] - } - } - } - }, - { - "Name": "ModelUpgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelEnvironVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "ModelTargetEnvironVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "SetModelEnvironVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetModelEnvironVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetModelStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelEnvironVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "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" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetModelEnvironVersion": { - "type": "object", - "properties": { - "model-tag": { - "type": "string" - }, - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "model-tag", - "version" - ] - }, - "SetModelEnvironVersions": { - "type": "object", - "properties": { - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/SetModelEnvironVersion" - } - } - }, - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - } - } - } - }, - { - "Name": "NotifyWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "OfferStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/OfferStatusWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "OfferStatusChange": { - "type": "object", - "properties": { - "offer-name": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - } - }, - "additionalProperties": false, - "required": [ - "offer-name", - "status" - ] - }, - "OfferStatusWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/OfferStatusChange" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "Payloads", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/PayloadListArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadListResults" - } - } - } - }, - "definitions": { - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadListArgs": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "patterns" - ] - }, - "PayloadListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "PayloadsHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "List": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "LookUp": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/LookUpPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetPayloadStatusArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Track": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/TrackPayloadArgs" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - }, - "Untrack": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/PayloadResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "LookUpPayloadArg": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "id" - ] - }, - "LookUpPayloadArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/LookUpPayloadArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Payload": { - "type": "object", - "properties": { - "class": { - "type": "string" - }, - "id": { - "type": "string" - }, - "labels": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "class", - "type", - "id", - "status", - "labels", - "unit", - "machine" - ] - }, - "PayloadResult": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "not-found": { - "type": "boolean" - }, - "payload": { - "$ref": "#/definitions/Payload" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "payload", - "not-found" - ] - }, - "PayloadResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PayloadResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetPayloadStatusArg": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "status" - ] - }, - "SetPayloadStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetPayloadStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "TrackPayloadArgs": { - "type": "object", - "properties": { - "payloads": { - "type": "array", - "items": { - "$ref": "#/definitions/Payload" - } - } - }, - "additionalProperties": false, - "required": [ - "payloads" - ] - } - } - } - }, - { - "Name": "Pinger", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Ping": { - "type": "object" - }, - "Stop": { - "type": "object" - } - } - } - }, - { - "Name": "Provisioner", - "Version": 7, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CACert": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" - } - } - }, - "CharmProfileChangeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProfileChangeResults" - } - } - }, - "Constraints": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" - } - } - }, - "ContainerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" - } - } - }, - "ContainerManagerConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" - }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" - } - } - }, - "ControllerAPIInfoForModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ControllerAPIInfoResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "DistributionGroup": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" - } - } - }, - "DistributionGroupByMachineId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FindTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" - }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "GetContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "GetContainerProfileInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ContainerProfileResults" - } - } - }, - "HostChangesForContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/HostNetworkChangeResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "InstanceStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "KeepInstance": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "MachinesWithTransientErrors": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "MarkMachinesForRemoval": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PrepareContainerInterfaceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" - } - } - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" - } - } - }, - "ReleaseContainerAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUpgradeCharmProfileData": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Series": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "SetCharmProfiles": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetProfileArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetHostMachineNetworkConfig": { - "type": "object", - "properties": { - "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" - } - } - }, - "SetProviderNetworkConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "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" - } - } - }, - "SetUpgradeCharmProfileComplete": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetProfileUpgradeCompleteArgs" - }, - "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" - } - } - }, - "WatchContainersCharmProfiles": { - "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" - } - } - }, - "WatchModelMachinesCharmProfiles": { - "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" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "CharmLXDProfile": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "description": { - "type": "string" - }, - "devices": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - } - } - }, - "additionalProperties": false, - "required": [ - "config", - "description", - "devices" - ] - }, - "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" - }, - "cloudinit-userdata": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "container-inherit-properties": { - "type": "string" - }, - "juju-proxy": { - "$ref": "#/definitions/Settings" - }, - "legacy-proxy": { - "$ref": "#/definitions/Settings" - }, - "provider-type": { - "type": "string" - }, - "snap-proxy": { - "$ref": "#/definitions/Settings" - }, - "ssl-hostname-verification": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "provider-type", - "authorized-keys", - "ssl-hostname-verification", - "legacy-proxy", - "juju-proxy", - "apt-proxy", - "snap-proxy", - "apt-mirror", - "UpdateBehavior" - ] - }, - "ContainerLXDProfile": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "profile": { - "$ref": "#/definitions/CharmLXDProfile" - } - }, - "additionalProperties": false, - "required": [ - "profile", - "name" - ] - }, - "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" - ] - }, - "ContainerProfileResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "lxd-profiles": { - "type": "array", - "items": { - "$ref": "#/definitions/ContainerLXDProfile" - } - } - }, - "additionalProperties": false - }, - "ContainerProfileResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ContainerProfileResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllerAPIInfoResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "cacert": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses", - "cacert" - ] - }, - "ControllerAPIInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllerAPIInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "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" - }, - "mac-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "host-device-name", - "bridge-name", - "mac-address" - ] - }, - "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": { - "agentstream": { - "type": "string" - }, - "arch": { - "type": "string" - }, - "major": { - "type": "integer" - }, - "minor": { - "type": "integer" - }, - "number": { - "$ref": "#/definitions/Number" - }, - "series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "number", - "major", - "minor", - "arch", - "series", - "agentstream" - ] - }, - "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" - }, - "charm-profiles": { - "type": "array", - "items": { - "type": "string" - } - }, - "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", - "charm-profiles" - ] - }, - "InstancesInfo": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "$ref": "#/definitions/InstanceInfo" - } - } - }, - "additionalProperties": false, - "required": [ - "machines" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineContainers": { - "type": "object", - "properties": { - "container-types": { - "type": "array", - "items": { - "type": "string" - } - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-types" - ] - }, - "MachineContainersParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineContainers" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MachineNetworkConfigResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - } - }, - "additionalProperties": false, - "required": [ - "info" - ] - }, - "MachineNetworkConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineNetworkConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NetworkConfig": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "cidr": { - "type": "string" - }, - "config-type": { - "type": "string" - }, - "device-index": { - "type": "integer" - }, - "disabled": { - "type": "boolean" - }, - "dns-search-domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "dns-servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "gateway-address": { - "type": "string" - }, - "interface-name": { - "type": "string" - }, - "interface-type": { - "type": "string" - }, - "is-default-gateway": { - "type": "boolean" - }, - "mac-address": { - "type": "string" - }, - "mtu": { - "type": "integer" - }, - "no-auto-start": { - "type": "boolean" - }, - "parent-interface-name": { - "type": "string" - }, - "provider-address-id": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "provider-subnet-id": { - "type": "string" - }, - "provider-vlan-id": { - "type": "string" - }, - "routes": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkRoute" - } - }, - "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" - ] - }, - "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": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "ProfileChangeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "new-profile-name": { - "type": "string" - }, - "old-profile-name": { - "type": "string" - }, - "profile": { - "$ref": "#/definitions/CharmLXDProfile" - }, - "subordinate": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "ProfileChangeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProfileChangeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProvisioningInfo": { - "type": "object", - "properties": { - "charm-lxd-profiles": { - "type": "array", - "items": { - "type": "string" - } - }, - "cloudinit-userdata": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "controller-config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "endpoint-bindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "image-metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - }, - "placement": { - "type": "string" - }, - "series": { - "type": "string" - }, - "subnets-to-zones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParams" - } - } - }, - "additionalProperties": false, - "required": [ - "constraints", - "series", - "placement", - "jobs" - ] - }, - "ProvisioningInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ProvisioningInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "ProvisioningInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProvisioningInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetMachineNetworkConfig": { - "type": "object", - "properties": { - "config": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "config" - ] - }, - "SetProfileArg": { - "type": "object", - "properties": { - "entity": { - "$ref": "#/definitions/Entity" - }, - "profiles": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "entity", - "profiles" - ] - }, - "SetProfileArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetProfileArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "SetProfileUpgradeCompleteArg": { - "type": "object", - "properties": { - "entity": { - "$ref": "#/definitions/Entity" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "message" - ] - }, - "SetProfileUpgradeCompleteArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/SetProfileUpgradeCompleteArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Settings": { - "type": "object", - "properties": { - "AutoNoProxy": { - "type": "string" - }, - "Ftp": { - "type": "string" - }, - "Http": { - "type": "string" - }, - "Https": { - "type": "string" - }, - "NoProxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Http", - "Https", - "Ftp", - "NoProxy", - "AutoNoProxy" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateBehavior": { - "type": "object", - "properties": { - "enable-os-refresh-update": { - "type": "boolean" - }, - "enable-os-upgrade": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enable-os-refresh-update", - "enable-os-upgrade" - ] - }, - "Value": { - "type": "object", - "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" - }, - "cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { - "type": "string" - }, - "mem": { - "type": "integer" - }, - "root-disk": { - "type": "integer" - }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "virt-type": { - "type": "string" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "plan-info": { - "$ref": "#/definitions/VolumeAttachmentPlanInfo" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentPlanInfo": { - "type": "object", - "properties": { - "device-attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "device-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - }, - "wwn": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "WatchContainer": { - "type": "object", - "properties": { - "container-type": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "container-type" - ] - }, - "WatchContainers": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/WatchContainer" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - } - } - } - }, - { - "Name": "ProxyUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ProxyConfig": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ProxyConfigResults" - } - } - }, - "WatchForProxyConfigAndAPIHostPortChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ProxyConfig": { - "type": "object", - "properties": { - "ftp": { - "type": "string" - }, - "http": { - "type": "string" - }, - "https": { - "type": "string" - }, - "no-proxy": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "http", - "https", - "ftp", - "no-proxy" - ] - }, - "ProxyConfigResult": { - "type": "object", - "properties": { - "apt-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "juju-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "legacy-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "snap-proxy-settings": { - "$ref": "#/definitions/ProxyConfig" - }, - "snap-store-assertions": { - "type": "string" - }, - "snap-store-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "legacy-proxy-settings", - "juju-proxy-settings" - ] - }, - "ProxyConfigResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProxyConfigResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetRebootAction": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchForRebootEvent": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "RebootActionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false - }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "RelationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationLifeSuspendedStatusWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationLifeSuspendedStatusChange": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "life": { - "type": "string" - }, - "suspended": { - "type": "boolean" - }, - "suspended-reason": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "life", - "suspended", - "suspended-reason" - ] - }, - "RelationLifeSuspendedStatusWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationLifeSuspendedStatusChange" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "RelationUnitsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "RemoteRelations", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ConsumeRemoteRelationChanges": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoteRelationsChanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ControllerAPIInfoForModels": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ControllerAPIInfoResults" - } - } - }, - "ControllerConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ControllerConfigResult" - } - } - }, - "ExportEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/TokenResults" - } - } - }, - "GetTokens": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/GetTokenArgs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ImportRemoteEntities": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoteEntityTokenArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Relations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RemoteRelationResults" - } - } - }, - "RemoteApplications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RemoteApplicationResults" - } - } - }, - "SaveMacaroons": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityMacaroonArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetRemoteApplicationsStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchLocalRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchRemoteApplicationRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchRemoteApplications": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchRemoteRelations": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "ControllerAPIInfoResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "cacert": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses", - "cacert" - ] - }, - "ControllerAPIInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllerAPIInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ControllerConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityMacaroonArg": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "macaroon", - "tag" - ] - }, - "EntityMacaroonArgs": { - "type": "object", - "properties": { - "Args": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityMacaroonArg" - } - } - }, - "additionalProperties": false, - "required": [ - "Args" - ] - }, - "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" - ] - }, - "GetTokenArg": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "GetTokenArgs": { - "type": "object", - "properties": { - "Args": { - "type": "array", - "items": { - "$ref": "#/definitions/GetTokenArg" - } - } - }, - "additionalProperties": false, - "required": [ - "Args" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RemoteApplication": { - "type": "object", - "properties": { - "is-consumer-proxy": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "model-uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "offer-uuid": { - "type": "string" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "offer-uuid", - "model-uuid", - "is-consumer-proxy" - ] - }, - "RemoteApplicationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RemoteApplication" - } - }, - "additionalProperties": false - }, - "RemoteApplicationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteApplicationResult" - } - } - }, - "additionalProperties": false - }, - "RemoteEndpoint": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "role": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "limit" - ] - }, - "RemoteEntityTokenArg": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "token": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "RemoteEntityTokenArgs": { - "type": "object", - "properties": { - "Args": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteEntityTokenArg" - } - } - }, - "additionalProperties": false, - "required": [ - "Args" - ] - }, - "RemoteRelation": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "endpoint": { - "$ref": "#/definitions/RemoteEndpoint" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - }, - "remote-application-name": { - "type": "string" - }, - "remote-endpoint-name": { - "type": "string" - }, - "source-model-uuid": { - "type": "string" - }, - "suspended": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "life", - "suspended", - "id", - "key", - "application-name", - "endpoint", - "remote-application-name", - "remote-endpoint-name", - "source-model-uuid" - ] - }, - "RemoteRelationChangeEvent": { - "type": "object", - "properties": { - "application-token": { - "type": "string" - }, - "changed-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationUnitChange" - } - }, - "departed-units": { - "type": "array", - "items": { - "type": "integer" - } - }, - "force-cleanup": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "macaroons": { - "type": "array", - "items": { - "$ref": "#/definitions/Macaroon" - } - }, - "relation-token": { - "type": "string" - }, - "suspended": { - "type": "boolean" - }, - "suspended-reason": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation-token", - "application-token", - "life" - ] - }, - "RemoteRelationResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RemoteRelation" - } - }, - "additionalProperties": false - }, - "RemoteRelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RemoteRelationUnitChange": { - "type": "object", - "properties": { - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "unit-id": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "unit-id" - ] - }, - "RemoteRelationsChanges": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteRelationChangeEvent" - } - } - }, - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "TokenResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "token": { - "type": "string" - } - }, - "additionalProperties": false - }, - "TokenResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/TokenResult" - } - } - }, - "additionalProperties": false - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - } - } - } - }, - { - "Name": "Resources", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AddPendingResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddPendingResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/AddPendingResourcesResult" - } - } - }, - "ListResources": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/ResourcesResults" - } - } - } - }, - "definitions": { - "AddCharmWithAuthorization": { - "type": "object", - "properties": { - "channel": { - "type": "string" - }, - "force": { - "type": "boolean" - }, - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url", - "channel", - "macaroon", - "force" - ] - }, - "AddPendingResourcesArgs": { - "type": "object", - "properties": { - "AddCharmWithAuthorization": { - "$ref": "#/definitions/AddCharmWithAuthorization" - }, - "Entity": { - "$ref": "#/definitions/Entity" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "AddCharmWithAuthorization", - "resources" - ] - }, - "AddPendingResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "pending-ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "pending-ids" - ] - }, - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListResourcesArgs": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "ResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "charm-store-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmResource" - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - }, - "unit-resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResources" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources", - "charm-store-resources", - "unit-resources" - ] - }, - "ResourcesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourcesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitResources": { - "type": "object", - "properties": { - "Entity": { - "$ref": "#/definitions/Entity" - }, - "download-progress": { - "type": "object", - "patternProperties": { - ".*": { - "type": "integer" - } - } - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/Resource" - } - } - }, - "additionalProperties": false, - "required": [ - "Entity", - "resources", - "download-progress" - ] - } - } - } - }, - { - "Name": "ResourcesHookContext", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "GetResourceInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ListUnitResourcesArgs" - }, - "Result": { - "$ref": "#/definitions/UnitResourcesResult" - } - } - } - }, - "definitions": { - "CharmResource": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "fingerprint": { - "type": "array", - "items": { - "type": "integer" - } - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "path": { - "type": "string" - }, - "revision": { - "type": "integer" - }, - "size": { - "type": "integer" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "path", - "origin", - "revision", - "fingerprint", - "size" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ListUnitResourcesArgs": { - "type": "object", - "properties": { - "resource-names": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "resource-names" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Resource": { - "type": "object", - "properties": { - "CharmResource": { - "$ref": "#/definitions/CharmResource" - }, - "application": { - "type": "string" - }, - "id": { - "type": "string" - }, - "pending-id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "CharmResource", - "id", - "pending-id", - "application", - "username", - "timestamp" - ] - }, - "UnitResourceResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resource": { - "$ref": "#/definitions/Resource" - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resource" - ] - }, - "UnitResourcesResult": { - "type": "object", - "properties": { - "ErrorResult": { - "$ref": "#/definitions/ErrorResult" - }, - "resources": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitResourceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "ErrorResult", - "resources" - ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" - } - } - }, - "WatchRetryStrategy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RetryStrategy": { - "type": "object", - "properties": { - "jitter-retry-time": { - "type": "boolean" - }, - "max-retry-time": { - "type": "integer" - }, - "min-retry-time": { - "type": "integer" - }, - "retry-time-factor": { - "type": "integer" - }, - "should-retry": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "should-retry", - "min-retry-time", - "max-retry-time", - "jitter-retry-time", - "retry-time-factor" - ] - }, - "RetryStrategyResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RetryStrategy" - } - }, - "additionalProperties": false - }, - "RetryStrategyResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RetryStrategyResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "SSHClient", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AllAddresses": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressesResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "Proxy": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SSHProxyResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHAddressResults" - } - } - }, - "PublicKeys": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHAddressesResult": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "addresses" - ] - }, - "SSHAddressesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHAddressesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Singular", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Claim": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SingularClaims" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Wait": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SingularClaim": { - "type": "object", - "properties": { - "claimant-tag": { - "type": "string" - }, - "duration": { - "type": "integer" - }, - "entity-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity-tag", - "claimant-tag", - "duration" - ] - }, - "SingularClaims": { - "type": "object", - "properties": { - "claims": { - "type": "array", - "items": { - "$ref": "#/definitions/SingularClaim" - } - } - }, - "additionalProperties": false, - "required": [ - "claims" - ] - } - } - } - }, - { - "Name": "Spaces", - "Version": 3, - "Schema": { - "type": "object", - "properties": { - "CreateSpaces": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CreateSpacesParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ListSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ListSpacesResults" - } - } - }, - "ReloadSpaces": { - "type": "object" - } - }, - "definitions": { - "CreateSpaceParams": { - "type": "object", - "properties": { - "provider-id": { - "type": "string" - }, - "public": { - "type": "boolean" - }, - "space-tag": { - "type": "string" - }, - "subnet-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "subnet-tags", - "space-tag", - "public" - ] - }, - "CreateSpacesParams": { - "type": "object", - "properties": { - "spaces": { - "type": "array", - "items": { - "$ref": "#/definitions/CreateSpaceParams" - } - } - }, - "additionalProperties": false, - "required": [ - "spaces" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSpacesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Space" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "Space": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "name", - "subnets" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - } - } - } - }, - { - "Name": "StatusHistory", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "Prune": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusHistoryPruneArgs" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "StatusHistoryPruneArgs": { - "type": "object", - "properties": { - "max-history-mb": { - "type": "integer" - }, - "max-history-time": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max-history-time", - "max-history-mb" - ] - } - } - } - }, - { - "Name": "Storage", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "AddToUnit": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/AddStorageResults" - } - } - }, - "Attach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CreatePool": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "Detach": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Import": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/BulkImportStorageParams" - }, - "Result": { - "$ref": "#/definitions/ImportStorageResults" - } - } - }, - "ListFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemFilters" - }, - "Result": { - "$ref": "#/definitions/FilesystemDetailsListResults" - } - } - }, - "ListPools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragePoolFilters" - }, - "Result": { - "$ref": "#/definitions/StoragePoolsResults" - } - } - }, - "ListStorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageFilters" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsListResults" - } - } - }, - "ListVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeFilters" - }, - "Result": { - "$ref": "#/definitions/VolumeDetailsListResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveStorage" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageDetails": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageDetailsResults" - } - } - } - }, - "definitions": { - "AddStorageDetails": { - "type": "object", - "properties": { - "storage-tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "storage-tags" - ] - }, - "AddStorageResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/AddStorageDetails" - } - }, - "additionalProperties": false - }, - "AddStorageResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddStorageResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BulkImportStorageParams": { - "type": "object", - "properties": { - "storage": { - "type": "array", - "items": { - "$ref": "#/definitions/ImportStorageParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storage" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "info", - "since" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "FilesystemAttachmentDetails": { - "type": "object", - "properties": { - "FilesystemAttachmentInfo": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "FilesystemAttachmentInfo" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemDetails": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "unit-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/FilesystemAttachmentDetails" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info", - "status" - ] - }, - "FilesystemDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetails" - } - } - }, - "additionalProperties": false - }, - "FilesystemDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "FilesystemFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemFilter" - } - } - }, - "additionalProperties": false - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "ImportStorageDetails": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag" - ] - }, - "ImportStorageParams": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "storage-name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "pool", - "provider-id", - "storage-name" - ] - }, - "ImportStorageResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/ImportStorageDetails" - } - }, - "additionalProperties": false - }, - "ImportStorageResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ImportStorageResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "RemoveStorage": { - "type": "object", - "properties": { - "storage": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoveStorageInstance" - } - } - }, - "additionalProperties": false, - "required": [ - "storage" - ] - }, - "RemoveStorageInstance": { - "type": "object", - "properties": { - "destroy-attachments": { - "type": "boolean" - }, - "destroy-storage": { - "type": "boolean" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachmentDetails": { - "type": "object", - "properties": { - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag", - "machine-tag" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StorageDetails": { - "type": "object", - "properties": { - "attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StorageAttachmentDetails" - } - } - }, - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "kind", - "status", - "persistent" - ] - }, - "StorageDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetails" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "StorageDetailsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageDetails" - } - }, - "additionalProperties": false - }, - "StorageDetailsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageDetailsResult" - } - } - }, - "additionalProperties": false - }, - "StorageFilter": { - "type": "object", - "additionalProperties": false - }, - "StorageFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePool": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "provider", - "attrs" - ] - }, - "StoragePoolFilter": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StoragePoolFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolFilter" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "storage-pools": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePool" - } - } - }, - "additionalProperties": false - }, - "StoragePoolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StoragePoolsResult" - } - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "VolumeAttachmentDetails": { - "type": "object", - "properties": { - "VolumeAttachmentInfo": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "VolumeAttachmentInfo" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "plan-info": { - "$ref": "#/definitions/VolumeAttachmentPlanInfo" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentPlanInfo": { - "type": "object", - "properties": { - "device-attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "device-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "VolumeDetails": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "life": { - "type": "string" - }, - "machine-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentDetails" - } - } - }, - "status": { - "$ref": "#/definitions/EntityStatus" - }, - "storage": { - "$ref": "#/definitions/StorageDetails" - }, - "unit-attachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentDetails" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info", - "status" - ] - }, - "VolumeDetailsListResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetails" - } - } - }, - "additionalProperties": false - }, - "VolumeDetailsListResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeDetailsListResult" - } - } - }, - "additionalProperties": false - }, - "VolumeFilter": { - "type": "object", - "properties": { - "machines": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "VolumeFilters": { - "type": "object", - "properties": { - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeFilter" - } - } - }, - "additionalProperties": false - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - }, - "wwn": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - } - } - } - }, - { - "Name": "StorageProvisioner", - "Version": 4, - "Schema": { - "type": "object", - "properties": { - "AttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "CreateVolumeAttachmentPlans": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachmentPlans" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentParamsResults" - } - } - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/FilesystemAttachmentResults" - } - } - }, - "FilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemParamsResults" - } - } - }, - "Filesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/FilesystemResults" - } - } - }, - "InstanceId": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Remove": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveAttachment": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveFilesystemParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RemoveFilesystemParamsResults" - } - } - }, - "RemoveVolumeAttachmentPlan": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveVolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RemoveVolumeParamsResults" - } - } - }, - "SetFilesystemAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/FilesystemAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetFilesystemInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Filesystems" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachments" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeAttachmentPlanBlockInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/VolumeAttachmentPlans" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetVolumeInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Volumes" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentParamsResults" - } - } - }, - "VolumeAttachmentPlans": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentPlanResults" - } - } - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/VolumeAttachmentResults" - } - } - }, - "VolumeBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineStorageIds" - }, - "Result": { - "$ref": "#/definitions/BlockDeviceResults" - } - } - }, - "VolumeParams": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeParamsResults" - } - } - }, - "Volumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VolumeResults" - } - } - }, - "WatchApplications": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "WatchBlockDevices": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchFilesystemAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchFilesystems": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchVolumeAttachmentPlans": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumeAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResults" - } - } - }, - "WatchVolumes": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - } - }, - "definitions": { - "BlockDevice": { - "type": "object", - "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { - "type": "array", - "items": { - "type": "string" - } - }, - "DeviceName": { - "type": "string" - }, - "FilesystemType": { - "type": "string" - }, - "HardwareId": { - "type": "string" - }, - "InUse": { - "type": "boolean" - }, - "Label": { - "type": "string" - }, - "MountPoint": { - "type": "string" - }, - "Size": { - "type": "integer" - }, - "UUID": { - "type": "string" - }, - "WWN": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "DeviceName", - "DeviceLinks", - "Label", - "UUID", - "HardwareId", - "WWN", - "BusAddress", - "Size", - "FilesystemType", - "InUse", - "MountPoint" - ] - }, - "BlockDeviceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/BlockDevice" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BlockDeviceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockDeviceResult" - } - } - }, - "additionalProperties": false - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Filesystem": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "info" - ] - }, - "FilesystemAttachment": { - "type": "object", - "properties": { - "filesystem-tag": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/FilesystemAttachmentInfo" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "info" - ] - }, - "FilesystemAttachmentInfo": { - "type": "object", - "properties": { - "mount-point": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentParams": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "filesystem-tag": { - "type": "string" - }, - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "mount-point": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "machine-tag", - "provider" - ] - }, - "FilesystemAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemAttachments": { - "type": "object", - "properties": { - "filesystem-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystem-attachments" - ] - }, - "FilesystemInfo": { - "type": "object", - "properties": { - "filesystem-id": { - "type": "string" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-id", - "pool", - "size" - ] - }, - "FilesystemParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/FilesystemAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "filesystem-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "filesystem-tag", - "size", - "provider" - ] - }, - "FilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/FilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "FilesystemResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Filesystem" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "FilesystemResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/FilesystemResult" - } - } - }, - "additionalProperties": false - }, - "Filesystems": { - "type": "object", - "properties": { - "filesystems": { - "type": "array", - "items": { - "$ref": "#/definitions/Filesystem" - } - } - }, - "additionalProperties": false, - "required": [ - "filesystems" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "MachineStorageIdsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RemoveFilesystemParams": { - "type": "object", - "properties": { - "destroy": { - "type": "boolean" - }, - "filesystem-id": { - "type": "string" - }, - "provider": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "provider", - "filesystem-id" - ] - }, - "RemoveFilesystemParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RemoveFilesystemParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "RemoveFilesystemParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoveFilesystemParamsResult" - } - } - }, - "additionalProperties": false - }, - "RemoveVolumeParams": { - "type": "object", - "properties": { - "destroy": { - "type": "boolean" - }, - "provider": { - "type": "string" - }, - "volume-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "provider", - "volume-id" - ] - }, - "RemoveVolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/RemoveVolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "RemoveVolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoveVolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "info" - ] - }, - "VolumeAttachment": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeAttachmentInfo" - }, - "machine-tag": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "info" - ] - }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "bus-address": { - "type": "string" - }, - "device-link": { - "type": "string" - }, - "device-name": { - "type": "string" - }, - "plan-info": { - "$ref": "#/definitions/VolumeAttachmentPlanInfo" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { - "type": "object", - "properties": { - "instance-id": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volume-id": { - "type": "string" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "provider" - ] - }, - "VolumeAttachmentParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentPlan": { - "type": "object", - "properties": { - "block-device": { - "$ref": "#/definitions/BlockDevice" - }, - "life": { - "type": "string" - }, - "machine-tag": { - "type": "string" - }, - "plan-info": { - "$ref": "#/definitions/VolumeAttachmentPlanInfo" - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "machine-tag", - "plan-info" - ] - }, - "VolumeAttachmentPlanInfo": { - "type": "object", - "properties": { - "device-attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "device-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentPlanResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachmentPlan" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentPlanResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentPlanResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachmentPlans": { - "type": "object", - "properties": { - "volume-plans": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentPlan" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-plans" - ] - }, - "VolumeAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "VolumeAttachments": { - "type": "object", - "properties": { - "volume-attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeAttachment" - } - } - }, - "additionalProperties": false, - "required": [ - "volume-attachments" - ] - }, - "VolumeInfo": { - "type": "object", - "properties": { - "hardware-id": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "volume-id": { - "type": "string" - }, - "wwn": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-id", - "size", - "persistent" - ] - }, - "VolumeParams": { - "type": "object", - "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "provider": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "volume-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "volume-tag", - "size", - "provider" - ] - }, - "VolumeParamsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/VolumeParams" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeParamsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeParamsResult" - } - } - }, - "additionalProperties": false - }, - "VolumeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/Volume" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "VolumeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VolumeResult" - } - } - }, - "additionalProperties": false - }, - "Volumes": { - "type": "object", - "properties": { - "volumes": { - "type": "array", - "items": { - "$ref": "#/definitions/Volume" - } - } - }, - "additionalProperties": false, - "required": [ - "volumes" - ] - } - } - } - }, - { - "Name": "StringsWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Subnets", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddSubnetsParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllSpaces": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/SpaceResults" - } - } - }, - "AllZones": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ZoneResults" - } - } - }, - "ListSubnets": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SubnetsFilters" - }, - "Result": { - "$ref": "#/definitions/ListSubnetsResults" - } - } - } - }, - "definitions": { - "AddSubnetParams": { - "type": "object", - "properties": { - "provider-network-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "subnet-provider-id": { - "type": "string" - }, - "subnet-tag": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "space-tag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } - } - }, - "additionalProperties": false, - "required": [ - "subnets" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ListSubnetsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Subnet" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SpaceResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "SpaceResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SpaceResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Subnet": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "life": { - "type": "string" - }, - "provider-id": { - "type": "string" - }, - "provider-network-id": { - "type": "string" - }, - "provider-space-id": { - "type": "string" - }, - "space-tag": { - "type": "string" - }, - "status": { - "type": "string" - }, - "vlan-tag": { - "type": "integer" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "cidr", - "vlan-tag", - "life", - "space-tag", - "zones" - ] - }, - "SubnetsFilters": { - "type": "object", - "properties": { - "space-tag": { - "type": "string" - }, - "zone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ZoneResult": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "available" - ] - }, - "ZoneResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ZoneResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "Undertaker", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/UndertakerModelInfoResult" - } - } - }, - "ProcessDyingModel": { - "type": "object" - }, - "RemoveModel": { - "type": "object" - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpdateStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchModelResources": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "UndertakerModelInfo": { - "type": "object", - "properties": { - "global-name": { - "type": "string" - }, - "is-system": { - "type": "boolean" - }, - "life": { - "type": "string" - }, - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "name", - "global-name", - "is-system", - "life" - ] - }, - "UndertakerModelInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UndertakerModelInfo" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - } - } - } - }, - { - "Name": "UnitAssigner", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "AssignUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchUnitAssignments": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - } - } - } - }, - { - "Name": "Uniter", - "Version": 9, - "Schema": { - "type": "object", - "properties": { - "APIAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "APIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/APIHostPortsResult" - } - } - }, - "Actions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ActionResults" - } - } - }, - "AddMetricBatches": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MetricBatchParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AddUnitStorage": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StoragesAddParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "AllMachinePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MachinePortsResults" - } - } - }, - "ApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationStatusResults" - } - } - }, - "AssignedMachine": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "AvailabilityZone": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "BeginActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CharmArchiveSha256": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/CharmURLs" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "CharmModifiedVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/IntResults" - } - } - }, - "CharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "ClearResolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ClosePorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "CloudSpec": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/CloudSpecResult" - } - } - }, - "ConfigSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ConfigSettingsResults" - } - } - }, - "CurrentModel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelResult" - } - } - }, - "Destroy": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyAllSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "DestroyUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnsureDead": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnterScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "FinishActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ActionExecutionResults" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "GetMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/MeterStatusResults" - } - } - }, - "GetPrincipal": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringBoolResults" - } - } - }, - "GoalStates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GoalStateResults" - } - } - }, - "HasSubordinates": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/BoolResults" - } - } - }, - "LeaveScope": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Life": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "Merge": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ModelConfig": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" - } - } - }, - "ModelUUID": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "NetworkInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/NetworkInfoParams" - }, - "Result": { - "$ref": "#/definitions/NetworkInfoResults" - } - } - }, - "OpenPorts": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesPortRanges" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "PrivateAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "ProviderType": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "PublicAddress": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "Read": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/GetLeadershipSettingsBulkResults" - } - } - }, - "ReadRemoteSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitPairs" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "ReadSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/SettingsResults" - } - } - }, - "Refresh": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UnitRefreshResults" - } - } - }, - "Relation": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationById": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationIds" - }, - "Result": { - "$ref": "#/definitions/RelationResults" - } - } - }, - "RelationsStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RelationUnitStatusResults" - } - } - }, - "RemoveStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RequestReboot": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ResolvedModeResults" - } - } - }, - "SLALevel": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringResult" - } - } - }, - "SetAgentStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetApplicationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetCharmURL": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesCharmURL" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetPodSpec": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetPodSpecParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetRelationStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationStatusArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUpgradeSeriesUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeSeriesStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetWorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityWorkloadVersions" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StorageAttachmentLife": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/LifeResults" - } - } - }, - "StorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentResults" - } - } - }, - "UnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "UnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StorageAttachmentIdsResults" - } - } - }, - "UpdateSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnitsSettings" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UpgradeSeriesUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UpgradeSeriesStatusResults" - } - } - }, - "Watch": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchActionNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchConfigSettingsHash": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchForModelConfigChanges": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchLeadershipSettings": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchMeterStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchRelationUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RelationUnits" - }, - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResults" - } - } - }, - "WatchStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StorageAttachmentIds" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WatchTrustConfigSettingsHash": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnitAddressesHash": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnitRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUnitStorageAttachments": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchUpgradeSeriesNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - }, - "WorkloadVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { - "type": "object", - "properties": { - "servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } - } - }, - "additionalProperties": false, - "required": [ - "servers" - ] - }, - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] - }, - "ActionExecutionResult": { - "type": "object", - "properties": { - "action-tag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "action-tag", - "status" - ] - }, - "ActionExecutionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } - } - }, - "additionalProperties": false - }, - "ActionResult": { - "type": "object", - "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "message": { - "type": "string" - }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "started": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } - } - }, - "additionalProperties": false - }, - "Address": { - "type": "object", - "properties": { - "scope": { - "type": "string" - }, - "space-name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "value", - "type", - "scope" - ] - }, - "ApplicationStatusResult": { - "type": "object", - "properties": { - "application": { - "$ref": "#/definitions/StatusResult" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/StatusResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "application", - "units" - ] - }, - "ApplicationStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "BoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "BoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "CharmRelation": { - "type": "object", - "properties": { - "interface": { - "type": "string" - }, - "limit": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "scope": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "role", - "interface", - "optional", - "limit", - "scope" - ] - }, - "CharmURL": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ] - }, - "CharmURLs": { - "type": "object", - "properties": { - "urls": { - "type": "array", - "items": { - "$ref": "#/definitions/CharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "urls" - ] - }, - "CloudCredential": { - "type": "object", - "properties": { - "attrs": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "auth-type": { - "type": "string" - }, - "redacted": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "auth-type" - ] - }, - "CloudSpec": { - "type": "object", - "properties": { - "cacertificates": { - "type": "array", - "items": { - "type": "string" - } - }, - "credential": { - "$ref": "#/definitions/CloudCredential" - }, - "endpoint": { - "type": "string" - }, - "identity-endpoint": { - "type": "string" - }, - "name": { - "type": "string" - }, - "region": { - "type": "string" - }, - "storage-endpoint": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type", - "name" - ] - }, - "CloudSpecResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/CloudSpec" - } - }, - "additionalProperties": false - }, - "ConfigSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "ConfigSettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ConfigSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Endpoint": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "relation": { - "$ref": "#/definitions/CharmRelation" - } - }, - "additionalProperties": false, - "required": [ - "application-name", - "relation" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesCharmURL": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCharmURL" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesPortRanges": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityCharmURL": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "charm-url" - ] - }, - "EntityPortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "protocol", - "from-port", - "to-port" - ] - }, - "EntityStatusArgs": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "info": { - "type": "string" - }, - "status": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "status", - "info", - "data" - ] - }, - "EntityString": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "value" - ] - }, - "EntityWorkloadVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "workload-version": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "workload-version" - ] - }, - "EntityWorkloadVersions": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityWorkloadVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsBulkResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GetLeadershipSettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GetLeadershipSettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "GoalState": { - "type": "object", - "properties": { - "relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/GoalStateStatus" - } - } - } - } - }, - "units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/GoalStateStatus" - } - } - } - }, - "additionalProperties": false, - "required": [ - "units", - "relations" - ] - }, - "GoalStateResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/GoalState" - } - }, - "additionalProperties": false, - "required": [ - "result", - "error" - ] - }, - "GoalStateResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/GoalStateResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "GoalStateStatus": { - "type": "object", - "properties": { - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "status", - "since" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "port" - ] - }, - "IntResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "IntResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/IntResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "InterfaceAddress": { - "type": "object", - "properties": { - "cidr": { - "type": "string" - }, - "hostname": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "hostname", - "value", - "cidr" - ] - }, - "LifeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "life": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life" - ] - }, - "LifeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachinePortRange": { - "type": "object", - "properties": { - "port-range": { - "$ref": "#/definitions/PortRange" - }, - "relation-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-tag", - "port-range" - ] - }, - "MachinePortsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ports": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortRange" - } - } - }, - "additionalProperties": false, - "required": [ - "ports" - ] - }, - "MachinePortsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MachinePortsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "MergeLeadershipSettingsBulkParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/MergeLeadershipSettingsParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "MergeLeadershipSettingsParam": { - "type": "object", - "properties": { - "application-tag": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "MeterStatusResult": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "info": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code", - "info" - ] - }, - "MeterStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/MeterStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Metric": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "labels": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "time": { - "type": "string", - "format": "date-time" - }, - "value": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "key", - "value", - "time" - ] - }, - "MetricBatch": { - "type": "object", - "properties": { - "charm-url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/Metric" - } - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "uuid", - "charm-url", - "created", - "metrics" - ] - }, - "MetricBatchParam": { - "type": "object", - "properties": { - "batch": { - "$ref": "#/definitions/MetricBatch" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "batch" - ] - }, - "MetricBatchParams": { - "type": "object", - "properties": { - "batches": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricBatchParam" - } - } - }, - "additionalProperties": false, - "required": [ - "batches" - ] - }, - "ModelConfigResult": { - "type": "object", - "properties": { - "config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "additionalProperties": false, - "required": [ - "config" - ] - }, - "ModelResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "uuid", - "type" - ] - }, - "NetworkInfo": { - "type": "object", - "properties": { - "addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/InterfaceAddress" - } - }, - "interface-name": { - "type": "string" - }, - "mac-address": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mac-address", - "interface-name", - "addresses" - ] - }, - "NetworkInfoParams": { - "type": "object", - "properties": { - "bindings": { - "type": "array", - "items": { - "type": "string" - } - }, - "relation-id": { - "type": "integer" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "bindings" - ] - }, - "NetworkInfoResult": { - "type": "object", - "properties": { - "bind-addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkInfo" - } - }, - "egress-subnets": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "ingress-addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "NetworkInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/NetworkInfoResult" - } - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PortRange": { - "type": "object", - "properties": { - "from-port": { - "type": "integer" - }, - "protocol": { - "type": "string" - }, - "to-port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "from-port", - "to-port", - "protocol" - ] - }, - "RelationIds": { - "type": "object", - "properties": { - "relation-ids": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-ids" - ] - }, - "RelationResult": { - "type": "object", - "properties": { - "bool": { - "type": "boolean" - }, - "endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "integer" - }, - "key": { - "type": "string" - }, - "life": { - "type": "string" - }, - "other-application": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "life", - "id", - "key", - "endpoint" - ] - }, - "RelationResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationStatusArg": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "relation-id": { - "type": "integer" - }, - "status": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit-tag", - "relation-id", - "status", - "message" - ] - }, - "RelationStatusArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatusArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "RelationUnit": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit" - ] - }, - "RelationUnitPair": { - "type": "object", - "properties": { - "local-unit": { - "type": "string" - }, - "relation": { - "type": "string" - }, - "remote-unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "local-unit", - "remote-unit" - ] - }, - "RelationUnitPairs": { - "type": "object", - "properties": { - "relation-unit-pairs": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitPair" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-unit-pairs" - ] - }, - "RelationUnitSettings": { - "type": "object", - "properties": { - "relation": { - "type": "string" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "relation", - "unit", - "settings" - ] - }, - "RelationUnitStatus": { - "type": "object", - "properties": { - "in-scope": { - "type": "boolean" - }, - "relation-tag": { - "type": "string" - }, - "suspended": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "relation-tag", - "in-scope", - "suspended" - ] - }, - "RelationUnitStatusResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnitStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitStatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "RelationUnits": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnit" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsChange": { - "type": "object", - "properties": { - "changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } - }, - "departed": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "changed" - ] - }, - "RelationUnitsSettings": { - "type": "object", - "properties": { - "relation-units": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitSettings" - } - } - }, - "additionalProperties": false, - "required": [ - "relation-units" - ] - }, - "RelationUnitsWatchResult": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/RelationUnitsChange" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - }, - "RelationUnitsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationUnitsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "ResolvedModeResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "mode": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "mode" - ] - }, - "ResolvedModeResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ResolvedModeResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SetPodSpecParams": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityString" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "SetStatus": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "SettingsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "settings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - } - }, - "additionalProperties": false, - "required": [ - "settings" - ] - }, - "SettingsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SettingsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StatusResult": { - "type": "object", - "properties": { - "data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "info": { - "type": "string" - }, - "life": { - "type": "string" - }, - "since": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id", - "life", - "status", - "info", - "data", - "since" - ] - }, - "StatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StorageAddParams": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "storage": { - "$ref": "#/definitions/StorageConstraints" - }, - "unit": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "unit", - "name", - "storage" - ] - }, - "StorageAttachment": { - "type": "object", - "properties": { - "kind": { - "type": "integer" - }, - "life": { - "type": "string" - }, - "location": { - "type": "string" - }, - "owner-tag": { - "type": "string" - }, - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "owner-tag", - "unit-tag", - "kind", - "location", - "life" - ] - }, - "StorageAttachmentId": { - "type": "object", - "properties": { - "storage-tag": { - "type": "string" - }, - "unit-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "storage-tag", - "unit-tag" - ] - }, - "StorageAttachmentIds": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentId" - } - } - }, - "additionalProperties": false, - "required": [ - "ids" - ] - }, - "StorageAttachmentIdsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachmentIds" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentIdsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentIdsResult" - } - } - }, - "additionalProperties": false - }, - "StorageAttachmentResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/StorageAttachment" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StorageAttachmentResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAttachmentResult" - } - } - }, - "additionalProperties": false - }, - "StorageConstraints": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "pool": { - "type": "string" - }, - "size": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StoragesAddParams": { - "type": "object", - "properties": { - "storages": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageAddParams" - } - } - }, - "additionalProperties": false, - "required": [ - "storages" - ] - }, - "StringBoolResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "ok": { - "type": "boolean" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result", - "ok" - ] - }, - "StringBoolResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringBoolResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "StringsResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "StringsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id" - ] - }, - "StringsWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UnitRefreshResult": { - "type": "object", - "properties": { - "Error": { - "$ref": "#/definitions/Error" - }, - "Life": { - "type": "string" - }, - "Resolved": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Life", - "Resolved", - "Error" - ] - }, - "UnitRefreshResults": { - "type": "object", - "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/UnitRefreshResult" - } - } - }, - "additionalProperties": false, - "required": [ - "Results" - ] - }, - "UnitSettings": { - "type": "object", - "properties": { - "version": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "UpgradeSeriesStatusParam": { - "type": "object", - "properties": { - "entity": { - "$ref": "#/definitions/Entity" - }, - "message": { - "type": "string" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "status", - "message" - ] - }, - "UpgradeSeriesStatusParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/UpgradeSeriesStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "UpgradeSeriesStatusResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "UpgradeSeriesStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UpgradeSeriesStatusResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "UpgradeSeries", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "FinishUpgradeSeries": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpdateSeriesArgs" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "MachineStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UpgradeSeriesStatusResults" - } - } - }, - "PinMachineApplications": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/PinApplicationsResults" - } - } - }, - "PinnedLeadership": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/PinnedLeadershipResult" - } - } - }, - "SetMachineStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeSeriesStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetUpgradeSeriesUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeSeriesStatusParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StartUnitCompletion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UpgradeSeriesStartUnitCompletionParam" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "TargetSeries": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" - } - } - }, - "UnitsCompleted": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "UnitsPrepared": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/EntitiesResults" - } - } - }, - "UnpinMachineApplications": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/PinApplicationsResults" - } - } - }, - "UpgradeSeriesUnitStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/UpgradeSeriesStatusResults" - } - } - }, - "WatchUpgradeSeriesNotifications": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResult": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EntitiesResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PinApplicationResult": { - "type": "object", - "properties": { - "application-name": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "application-name" - ] - }, - "PinApplicationsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/PinApplicationResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "PinnedLeadershipResult": { - "type": "object", - "properties": { - "result": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "additionalProperties": false - }, - "StringResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "result" - ] - }, - "StringResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "UpdateSeriesArg": { - "type": "object", - "properties": { - "force": { - "type": "boolean" - }, - "series": { - "type": "string" - }, - "tag": { - "$ref": "#/definitions/Entity" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "force", - "series" - ] - }, - "UpdateSeriesArgs": { - "type": "object", - "properties": { - "args": { - "type": "array", - "items": { - "$ref": "#/definitions/UpdateSeriesArg" - } - } - }, - "additionalProperties": false, - "required": [ - "args" - ] - }, - "UpgradeSeriesStartUnitCompletionParam": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "message" - ] - }, - "UpgradeSeriesStatusParam": { - "type": "object", - "properties": { - "entity": { - "$ref": "#/definitions/Entity" - }, - "message": { - "type": "string" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "entity", - "status", - "message" - ] - }, - "UpgradeSeriesStatusParams": { - "type": "object", - "properties": { - "params": { - "type": "array", - "items": { - "$ref": "#/definitions/UpgradeSeriesStatusParam" - } - } - }, - "additionalProperties": false, - "required": [ - "params" - ] - }, - "UpgradeSeriesStatusResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "status": { - "type": "string" - } - }, - "additionalProperties": false - }, - "UpgradeSeriesStatusResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UpgradeSeriesStatusResult" - } - } - }, - "additionalProperties": false - } - } - } - }, - { - "Name": "Upgrader", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "DesiredVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/VersionResults" - } - } - }, - "SetTools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntitiesVersion" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ToolsResults" - } - } - }, - "WatchAPIVersion": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" - } - } - } - }, - "definitions": { - "Binary": { - "type": "object", - "properties": { - "Arch": { - "type": "string" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Number", - "Series", - "Arch" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "EntitiesVersion": { - "type": "object", - "properties": { - "agent-tools": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityVersion" - } - } - }, - "additionalProperties": false, - "required": [ - "agent-tools" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityVersion": { - "type": "object", - "properties": { - "tag": { - "type": "string" - }, - "tools": { - "$ref": "#/definitions/Version" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "tools" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "NotifyWatchResult": { - "type": "object", - "properties": { - "NotifyWatcherId": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId" - ] - }, - "NotifyWatchResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Number": { - "type": "object", - "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] - }, - "Tools": { - "type": "object", - "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version", - "url", - "size" - ] - }, - "ToolsResult": { - "type": "object", - "properties": { - "disable-ssl-hostname-verification": { - "type": "boolean" - }, - "error": { - "$ref": "#/definitions/Error" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "tools", - "disable-ssl-hostname-verification" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Version": { - "type": "object", - "properties": { - "version": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false, - "required": [ - "version" - ] - }, - "VersionResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false - }, - "VersionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/VersionResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "UserManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddUsers" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "DisableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "EnableUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "RemoveUser": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "ResetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/AddUserResults" - } - } - }, - "SetPassword": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "UserInfo": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/UserInfoRequest" - }, - "Result": { - "$ref": "#/definitions/UserInfoResults" - } - } - } - }, - "definitions": { - "AddUser": { - "type": "object", - "properties": { - "display-name": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name" - ] - }, - "AddUserResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "secret-key": { - "type": "array", - "items": { - "type": "integer" - } - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false - }, - "AddUserResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUserResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "AddUsers": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/AddUser" - } - } - }, - "additionalProperties": false, - "required": [ - "users" - ] - }, - "Entities": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "tag", - "password" - ] - }, - "EntityPasswords": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } - } - }, - "additionalProperties": false, - "required": [ - "changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "ErrorResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "UserInfo": { - "type": "object", - "properties": { - "access": { - "type": "string" - }, - "created-by": { - "type": "string" - }, - "date-created": { - "type": "string", - "format": "date-time" - }, - "disabled": { - "type": "boolean" - }, - "display-name": { - "type": "string" - }, - "last-connection": { - "type": "string", - "format": "date-time" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "username", - "display-name", - "access", - "created-by", - "date-created", - "disabled" - ] - }, - "UserInfoRequest": { - "type": "object", - "properties": { - "entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - }, - "include-disabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "entities", - "include-disabled" - ] - }, - "UserInfoResult": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "result": { - "$ref": "#/definitions/UserInfo" - } - }, - "additionalProperties": false - }, - "UserInfoResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/UserInfoResult" - } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentPlansWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - }, - { - "Name": "VolumeAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" - } - } - }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "info": { - "$ref": "#/definitions/ErrorInfo" - }, - "message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "message", - "code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "macaroon-path": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Macaroon": { - "type": "object", - "additionalProperties": false - }, - "MachineStorageId": { - "type": "object", - "properties": { - "attachment-tag": { - "type": "string" - }, - "machine-tag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "machine-tag", - "attachment-tag" - ] - }, - "MachineStorageIdsWatchResult": { - "type": "object", - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineStorageId" - } - }, - "error": { - "$ref": "#/definitions/Error" - }, - "watcher-id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "watcher-id", - "changes" - ] - } - } - } - } -] diff --git a/modules/libjuju/juju/cloud.py b/modules/libjuju/juju/cloud.py deleted file mode 100644 index e4793ee..0000000 --- a/modules/libjuju/juju/cloud.py +++ /dev/null @@ -1,81 +0,0 @@ -class Cloud(object): - """Cloud - - :ivar name: Name of the cloud - - """ - def add_credential(self, credential): - """Add or replaces credentials for this cloud. - - :param `juju.Credential` credential: The Credential to add - - """ - raise NotImplementedError() - - def get_credentials(self): - """Return list of all credentials for this cloud. - - """ - raise NotImplementedError() - - def remove_credential(self, credential_name): - """Remove a credential for this cloud. - - :param str credential_name: Name of the credential to remove - - """ - raise NotImplementedError() - - def bootstrap( - self, controller_name, region=None, agent_version=None, - auto_upgrade=False, bootstrap_constraints=None, - bootstrap_series=None, config=None, constraints=None, - credential=None, default_model=None, keep_broken=False, - metadata_source=None, no_gui=False, to=None, - upload_tools=False): - - """Initialize a cloud environment. - - :param str controller_name: Name of controller to create - :param str region: Cloud region in which to bootstrap - :param str agent_version: Version of tools to use for Juju agents - :param bool auto_upgrade: Upgrade to latest path release tools on first - bootstrap - :param bootstrap_constraints: Constraints for the bootstrap machine - :type bootstrap_constraints: :class:`juju.Constraints` - :param str bootstrap_series: Series of the bootstrap machine - :param dict config: Controller configuration - :param constraints: Default constraints for all future workload - machines - :type constraints: :class:`juju.Constraints` - :param credential: Credential to use when bootstrapping - :type credential: :class:`juju.Credential` - :param str default_model: Name to give the default model - :param bool keep_broken: Don't destroy model if bootstrap fails - :param str metadata_source: Local path to use as tools and/or metadata - source - :param bool no_gui: Don't install the Juju GUI in the controller when - bootstrapping - :param str to: Placement directive for bootstrap node (typically used - with MAAS) - :param bool upload_tools: Upload local version of tools before - bootstrapping - - """ - raise NotImplementedError() - - def set_default_credential(self, credential_name): - """Set the default credentials for this cloud. - - :param str credential_name: Credential to make default - - """ - raise NotImplementedError() - - def set_default_region(self, region): - """Set the default region for this cloud. - - :param str region: Name of region to make default - - """ - raise NotImplementedError() diff --git a/modules/libjuju/juju/constraints.py b/modules/libjuju/juju/constraints.py deleted file mode 100644 index 0050673..0000000 --- a/modules/libjuju/juju/constraints.py +++ /dev/null @@ -1,87 +0,0 @@ -# -# Module that parses constraints -# -# The current version of juju core expects the client to take -# constraints given in the form "mem=10G foo=bar" and parse them into -# json that looks like {"mem": 10240, "foo": "bar"}. This module helps us -# accomplish that task. -# -# We do not attempt to duplicate the checking done in -# client/_client.py:Value here. That class will verify that the -# constraints keys are valid, and that we can successfully dump the -# constraints dict to json. -# -# Once https://bugs.launchpad.net/juju/+bug/1645402 is addressed, this -# module should be deprecated. -# - -import re - -# Matches on a string specifying memory size -MEM = re.compile('^[1-9][0-9]*[MGTP]$') - -# Multiplication factors to get Megabytes -# https://github.com/juju/juju/blob/master/constraints/constraints.go#L666 -FACTORS = { - "M": 1, - "G": 1024, - "T": 1024 * 1024, - "P": 1024 * 1024 * 1024 -} - -LIST_KEYS = {'tags', 'spaces'} - -SNAKE1 = re.compile(r'(.)([A-Z][a-z]+)') -SNAKE2 = re.compile('([a-z0-9])([A-Z])') - - -def parse(constraints): - """ - Constraints must be expressed as a string containing only spaces - and key value pairs joined by an '='. - - """ - if not constraints: - return None - - if type(constraints) is dict: - # Fowards compatibilty: already parsed - return constraints - - constraints = { - normalize_key(k): ( - normalize_list_value(v) if k in LIST_KEYS else - normalize_value(v) - ) for k, v in [s.split("=") for s in constraints.split(" ")]} - - return constraints - - -def normalize_key(key): - key = key.strip() - - key = key.replace("-", "_") # Our _client lib wants "_" in place of "-" - - # Convert camelCase to snake_case - key = SNAKE1.sub(r'\1_\2', key) - key = SNAKE2.sub(r'\1_\2', key).lower() - - return key - - -def normalize_value(value): - value = value.strip() - - if MEM.match(value): - # Translate aliases to Megabytes. e.g. 1G = 10240 - return int(value[:-1]) * FACTORS[value[-1:]] - - if value.isdigit(): - return int(value) - - return value - - -def normalize_list_value(value): - values = value.strip().split(',') - return [normalize_value(value) for value in values] diff --git a/modules/libjuju/juju/controller.py b/modules/libjuju/juju/controller.py deleted file mode 100644 index ed9b744..0000000 --- a/modules/libjuju/juju/controller.py +++ /dev/null @@ -1,653 +0,0 @@ -# Copyright 2019 Canonical Ltd. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import asyncio -import json -import logging -from pathlib import Path - -from . import errors, tag, utils -from .client import client, connector -from .user import User - -log = logging.getLogger(__name__) - - -class Controller: - def __init__( - self, - loop=None, - max_frame_size=None, - bakery_client=None, - jujudata=None, - ): - """Instantiate a new Controller. - - One of the connect_* methods will need to be called before this - object can be used for anything interesting. - - If jujudata is None, jujudata.FileJujuData will be used. - - :param loop: an asyncio event loop - :param max_frame_size: See - `juju.client.connection.Connection.MAX_FRAME_SIZE` - :param bakery_client httpbakery.Client: The bakery client to use - for macaroon authorization. - :param jujudata JujuData: The source for current controller - information. - """ - self._connector = connector.Connector( - loop=loop, - max_frame_size=max_frame_size, - bakery_client=bakery_client, - jujudata=jujudata, - ) - - async def __aenter__(self): - await self.connect() - return self - - async def __aexit__(self, exc_type, exc, tb): - await self.disconnect() - - @property - def loop(self): - return self._connector.loop - - async def connect(self, *args, **kwargs): - """Connect to a Juju controller. - - This supports two calling conventions: - - The controller and (optionally) authentication information can be - taken from the data files created by the Juju CLI. This convention - will be used if a ``controller_name`` is specified, or if the - ``endpoint`` is not. - - Otherwise, both the ``endpoint`` and authentication information - (``username`` and ``password``, or ``bakery_client`` and/or - ``macaroons``) are required. - - If a single positional argument is given, it will be assumed to be - the ``controller_name``. Otherwise, the first positional argument, - if any, must be the ``endpoint``. - - Available parameters are: - - :param str controller_name: Name of controller registered with the - Juju CLI. - :param str endpoint: The hostname:port of the controller to connect to. - :param str username: The username for controller-local users (or None - to use macaroon-based login.) - :param str password: The password for controller-local users. - :param str cacert: The CA certificate of the controller - (PEM formatted). - :param httpbakery.Client bakery_client: The macaroon bakery client to - to use when performing macaroon-based login. Macaroon tokens - acquired when logging will be saved to bakery_client.cookies. - If this is None, a default bakery_client will be used. - :param list macaroons: List of macaroons to load into the - ``bakery_client``. - :param asyncio.BaseEventLoop loop: The event loop to use for async - operations. - :param int max_frame_size: The maximum websocket frame size to allow. - """ - await self.disconnect() - if 'endpoint' not in kwargs and len(args) < 2: - if args and 'model_name' in kwargs: - raise TypeError('connect() got multiple values for ' - 'controller_name') - elif args: - controller_name = args[0] - else: - controller_name = kwargs.pop('controller_name', None) - await self._connector.connect_controller(controller_name, **kwargs) - else: - if 'controller_name' in kwargs: - raise TypeError('connect() got values for both ' - 'controller_name and endpoint') - if args and 'endpoint' in kwargs: - raise TypeError('connect() got multiple values for endpoint') - has_userpass = (len(args) >= 3 or - {'username', 'password'}.issubset(kwargs)) - has_macaroons = (len(args) >= 5 or not - {'bakery_client', 'macaroons'}.isdisjoint(kwargs)) - if not (has_userpass or has_macaroons): - raise TypeError('connect() missing auth params') - arg_names = [ - 'endpoint', - 'username', - 'password', - 'cacert', - 'bakery_client', - 'macaroons', - 'loop', - 'max_frame_size', - ] - for i, arg in enumerate(args): - kwargs[arg_names[i]] = arg - if 'endpoint' not in kwargs: - raise ValueError('endpoint is required ' - 'if controller_name not given') - if not ({'username', 'password'}.issubset(kwargs) or - {'bakery_client', 'macaroons'}.intersection(kwargs)): - raise ValueError('Authentication parameters are required ' - 'if controller_name not given') - await self._connector.connect(**kwargs) - - async def connect_current(self): - """ - .. deprecated:: 0.7.3 - Use :meth:`.connect()` instead. - """ - return await self.connect() - - async def connect_controller(self, controller_name): - """ - .. deprecated:: 0.7.3 - Use :meth:`.connect(controller_name)` instead. - """ - return await self.connect(controller_name) - - async def _connect_direct(self, **kwargs): - await self.disconnect() - await self._connector.connect(**kwargs) - - def is_connected(self): - """Reports whether the Controller is currently connected.""" - return self._connector.is_connected() - - def connection(self): - """Return the current Connection object. It raises an exception - if the Controller is disconnected""" - return self._connector.connection() - - @property - def controller_name(self): - return self._connector.controller_name - - async def disconnect(self): - """Shut down the watcher task and close websockets. - - """ - await self._connector.disconnect() - - async def add_credential(self, name=None, credential=None, cloud=None, - owner=None, force=False): - """Add or update a credential to the controller. - - :param str name: Name of new credential. If None, the default - local credential is used. Name must be provided if a credential - is given. - :param CloudCredential credential: Credential to add. If not given, - it will attempt to read from local data, if available. - :param str cloud: Name of cloud to associate the credential with. - Defaults to the same cloud as the controller. - :param str owner: Username that will own the credential. Defaults to - the current user. - :param bool force: Force indicates whether the update should be forced. - It's only supported for facade v3 or later. - Defaults to false. - :returns: Name of credential that was uploaded. - """ - if not cloud: - cloud = await self.get_cloud() - - if not owner: - owner = self.connection().info['user-info']['identity'] - - if credential and not name: - raise errors.JujuError('Name must be provided for credential') - - if not credential: - name, credential = self._connector.jujudata.load_credential(cloud, - name) - if credential is None: - raise errors.JujuError( - 'Unable to find credential: {}'.format(name)) - - if credential.auth_type == 'jsonfile' and 'file' in credential.attrs: - # file creds have to be loaded before being sent to the controller - try: - # it might already be JSON - json.loads(credential.attrs['file']) - except json.JSONDecodeError: - # not valid JSON, so maybe it's a file - cred_path = Path(credential.attrs['file']) - if cred_path.exists(): - # make a copy - cred_json = credential.to_json() - credential = client.CloudCredential.from_json(cred_json) - # inline the cred - credential.attrs['file'] = cred_path.read_text() - - log.debug('Uploading credential %s', name) - cloud_facade = client.CloudFacade.from_connection(self.connection()) - tagged_credentials = [ - client.UpdateCloudCredential( - tag=tag.credential(cloud, tag.untag('user-', owner), name), - credential=credential, - )] - if cloud_facade.version >= 3: - # UpdateCredentials was renamed to UpdateCredentialsCheckModels - # in facade version 3. - await cloud_facade.UpdateCredentialsCheckModels( - credentials=tagged_credentials, force=force, - ) - else: - await cloud_facade.UpdateCredentials(tagged_credentials) - return name - - async def add_model( - self, model_name, cloud_name=None, credential_name=None, - owner=None, config=None, region=None): - """Add a model to this controller. - - :param str model_name: Name to give the new model. - :param str cloud_name: Name of the cloud in which to create the - model, e.g. 'aws'. Defaults to same cloud as controller. - :param str credential_name: Name of the credential to use when - creating the model. If not given, it will attempt to find a - default credential. - :param str owner: Username that will own the model. Defaults to - the current user. - :param dict config: Model configuration. - :param str region: Region in which to create the model. - :return Model: A connection to the newly created model. - """ - model_facade = client.ModelManagerFacade.from_connection( - self.connection()) - - owner = owner or self.connection().info['user-info']['identity'] - cloud_name = cloud_name or await self.get_cloud() - - try: - # attempt to add/update the credential from local data if available - credential_name = await self.add_credential( - name=credential_name, - cloud=cloud_name, - owner=owner) - except errors.JujuError: - # if it's not available locally, assume it's on the controller - pass - - if credential_name: - credential = tag.credential( - cloud_name, - tag.untag('user-', owner), - credential_name - ) - else: - credential = None - - log.debug('Creating model %s', model_name) - - if not config or 'authorized-keys' not in config: - config = config or {} - config['authorized-keys'] = await utils.read_ssh_key( - loop=self._connector.loop) - - model_info = await model_facade.CreateModel( - tag.cloud(cloud_name), - config, - credential, - model_name, - owner, - region - ) - - # This is a temporary workaround for a race condition: - # https://bugs.launchpad.net/juju/+bug/1838774 - # This will be fixed when Juju 2.6.7 is released. - import time - time.sleep(5) - - from juju.model import Model - model = Model(jujudata=self._connector.jujudata) - kwargs = self.connection().connect_params() - kwargs['uuid'] = model_info.uuid - await model._connect_direct(**kwargs) - - return model - - async def destroy_models(self, *models, destroy_storage=False): - """Destroy one or more models. - - :param str *models: Names or UUIDs of models to destroy - :param bool destroy_storage: Whether or not to destroy storage when - destroying the models. Defaults to false. - - """ - uuids = await self.model_uuids() - models = [uuids[model] if model in uuids else model - for model in models] - - model_facade = client.ModelManagerFacade.from_connection( - self.connection()) - - log.debug( - 'Destroying model%s %s', - '' if len(models) == 1 else 's', - ', '.join(models) - ) - - if model_facade.version >= 5: - params = [ - client.DestroyModelParams(model_tag=tag.model(model), - destroy_storage=destroy_storage) - for model in models] - else: - params = [client.Entity(tag.model(model)) for model in models] - - await model_facade.DestroyModels(params) - destroy_model = destroy_models - - async def add_user(self, username, password=None, display_name=None): - """Add a user to this controller. - - :param str username: Username - :param str password: Password - :param str display_name: Display name - :returns: A :class:`~juju.user.User` instance - """ - if not display_name: - display_name = username - user_facade = client.UserManagerFacade.from_connection( - self.connection()) - users = [client.AddUser(display_name=display_name, - username=username, - password=password)] - results = await user_facade.AddUser(users) - secret_key = results.results[0].secret_key - return await self.get_user(username, secret_key=secret_key) - - async def remove_user(self, username): - """Remove a user from this controller. - """ - client_facade = client.UserManagerFacade.from_connection( - self.connection()) - user = tag.user(username) - await client_facade.RemoveUser([client.Entity(user)]) - - async def change_user_password(self, username, password): - """Change the password for a user in this controller. - - :param str username: Username - :param str password: New password - - """ - user_facade = client.UserManagerFacade.from_connection( - self.connection()) - entity = client.EntityPassword(password, tag.user(username)) - return await user_facade.SetPassword([entity]) - - async def reset_user_password(self, username): - """Reset user password. - - :param str username: Username - :returns: A :class:`~juju.user.User` instance - """ - user_facade = client.UserManagerFacade.from_connection( - self.connection()) - entity = client.Entity(tag.user(username)) - results = await user_facade.ResetPassword([entity]) - secret_key = results.results[0].secret_key - return await self.get_user(username, secret_key=secret_key) - - async def destroy(self, destroy_all_models=False): - """Destroy this controller. - - :param bool destroy_all_models: Destroy all hosted models in the - controller. - - """ - controller_facade = client.ControllerFacade.from_connection( - self.connection()) - return await controller_facade.DestroyController(destroy_all_models) - - async def disable_user(self, username): - """Disable a user. - - :param str username: Username - - """ - user_facade = client.UserManagerFacade.from_connection( - self.connection()) - entity = client.Entity(tag.user(username)) - return await user_facade.DisableUser([entity]) - - async def enable_user(self, username): - """Re-enable a previously disabled user. - - """ - user_facade = client.UserManagerFacade.from_connection( - self.connection()) - entity = client.Entity(tag.user(username)) - return await user_facade.EnableUser([entity]) - - def kill(self): - """Forcibly terminate all machines and other associated resources for - this controller. - - """ - raise NotImplementedError() - - async def get_cloud(self): - """ - Get the name of the cloud that this controller lives on. - """ - cloud_facade = client.CloudFacade.from_connection(self.connection()) - - result = await cloud_facade.Clouds() - cloud = list(result.clouds.keys())[0] # only lives on one cloud - return tag.untag('cloud-', cloud) - - async def get_models(self, all_=False, username=None): - """ - .. deprecated:: 0.7.0 - Use :meth:`.list_models` instead. - """ - controller_facade = client.ControllerFacade.from_connection( - self.connection()) - for attempt in (1, 2, 3): - try: - return await controller_facade.AllModels() - except errors.JujuAPIError as e: - # retry concurrency error until resolved in Juju - # see: https://bugs.launchpad.net/juju/+bug/1721786 - if 'has been removed' not in e.message or attempt == 3: - raise - - async def model_uuids(self): - """Return a mapping of model names to UUIDs. - """ - controller_facade = client.ControllerFacade.from_connection( - self.connection()) - for attempt in (1, 2, 3): - try: - response = await controller_facade.AllModels() - return {um.model.name: um.model.uuid - for um in response.user_models} - except errors.JujuAPIError as e: - # retry concurrency error until resolved in Juju - # see: https://bugs.launchpad.net/juju/+bug/1721786 - if 'has been removed' not in e.message or attempt == 3: - raise - await asyncio.sleep(attempt, loop=self._connector.loop) - - async def list_models(self): - """Return list of names of the available models on this controller. - - Equivalent to ``sorted((await self.model_uuids()).keys())`` - """ - uuids = await self.model_uuids() - return sorted(uuids.keys()) - - def get_payloads(self, *patterns): - """Return list of known payloads. - - :param str *patterns: Patterns to match against - - Each pattern will be checked against the following info in Juju:: - - - unit name - - machine id - - payload type - - payload class - - payload id - - payload tag - - payload status - - """ - raise NotImplementedError() - - def login(self): - """Log in to this controller. - - """ - raise NotImplementedError() - - def logout(self, force=False): - """Log out of this controller. - - :param bool force: Don't fail even if user not previously logged in - with a password - - """ - raise NotImplementedError() - - async def get_model(self, model): - """Get a model by name or UUID. - - :param str model: Model name or UUID - :returns Model: Connected Model instance. - """ - uuids = await self.model_uuids() - if model in uuids: - uuid = uuids[model] - else: - uuid = model - - from juju.model import Model - model = Model() - kwargs = self.connection().connect_params() - kwargs['uuid'] = uuid - await model._connect_direct(**kwargs) - return model - - async def get_user(self, username, secret_key=None): - """Get a user by name. - - :param str username: Username - :param str secret_key: Issued by juju when add or reset user - password - :returns: A :class:`~juju.user.User` instance - """ - client_facade = client.UserManagerFacade.from_connection( - self.connection()) - user = tag.user(username) - args = [client.Entity(user)] - try: - response = await client_facade.UserInfo(args, True) - except errors.JujuError as e: - if 'permission denied' in e.errors: - # apparently, trying to get info for a nonexistent user returns - # a "permission denied" error rather than an empty result set - return None - raise - if response.results and response.results[0].result: - return User(self, response.results[0].result, secret_key=secret_key) - return None - - async def get_users(self, include_disabled=False): - """Return list of users that can connect to this controller. - - :param bool include_disabled: Include disabled users - :returns: A list of :class:`~juju.user.User` instances - """ - client_facade = client.UserManagerFacade.from_connection( - self.connection()) - response = await client_facade.UserInfo(None, include_disabled) - return [User(self, r.result) for r in response.results] - - async def grant(self, username, acl='login'): - """Grant access level of the given user on the controller. - Note that if the user already has higher permissions than the - provided ACL, this will do nothing (see revoke for a way to - remove permissions). - :param str username: Username - :param str acl: Access control ('login', 'add-model' or 'superuser') - :returns: True if new access was granted, False if user already had - requested access or greater. Raises JujuError if failed. - """ - controller_facade = client.ControllerFacade.from_connection( - self.connection()) - user = tag.user(username) - changes = client.ModifyControllerAccess(acl, 'grant', user) - try: - await controller_facade.ModifyControllerAccess([changes]) - return True - except errors.JujuError as e: - if 'user already has' in str(e): - return False - else: - raise - - async def revoke(self, username, acl='login'): - """Removes some or all access of a user to from a controller - If 'login' access is revoked, the user will no longer have any - permissions on the controller. Revoking a higher privilege from - a user without that privilege will have no effect. - - :param str username: username - :param str acl: Access to remove ('login', 'add-model' or 'superuser') - """ - controller_facade = client.ControllerFacade.from_connection( - self.connection()) - user = tag.user(username) - changes = client.ModifyControllerAccess('login', 'revoke', user) - return await controller_facade.ModifyControllerAccess([changes]) - - async def grant_model(self, username, model_uuid, acl='read'): - """Grant a user access to a model. Note that if the user - already has higher permissions than the provided ACL, - this will do nothing (see revoke_model for a way to remove - permissions). - - :param str username: Username - :param str model_uuid: The UUID of the model to change. - :param str acl: Access control ('read, 'write' or 'admin') - """ - model_facade = client.ModelManagerFacade.from_connection( - self.connection()) - user = tag.user(username) - model = tag.model(model_uuid) - changes = client.ModifyModelAccess(acl, 'grant', model, user) - return await model_facade.ModifyModelAccess([changes]) - - async def revoke_model(self, username, model_uuid, acl='read'): - """Revoke some or all of a user's access to a model. - If 'read' access is revoked, the user will no longer have any - permissions on the model. Revoking a higher privilege from - a user without that privilege will have no effect. - - :param str username: Username to revoke - :param str model_uuid: The UUID of the model to change. - :param str acl: Access control ('read, 'write' or 'admin') - """ - model_facade = client.ModelManagerFacade.from_connection( - self.connection()) - user = tag.user(username) - model = tag.model(model_uuid) - changes = client.ModifyModelAccess(acl, 'revoke', model, user) - return await model_facade.ModifyModelAccess([changes]) diff --git a/modules/libjuju/juju/credential.py b/modules/libjuju/juju/credential.py deleted file mode 100644 index e69de29..0000000 diff --git a/modules/libjuju/juju/delta.py b/modules/libjuju/juju/delta.py deleted file mode 100644 index b1eba23..0000000 --- a/modules/libjuju/juju/delta.py +++ /dev/null @@ -1,79 +0,0 @@ -from .client import client - - -def get_entity_delta(d): - return _delta_types[d.entity](d.deltas) - - -def get_entity_class(entity_type): - return _delta_types[entity_type].get_entity_class() - - -class EntityDelta(client.Delta): - def get_id(self): - return self.data['id'] - - @classmethod - def get_entity_class(self): - return None - - -class ActionDelta(EntityDelta): - @classmethod - def get_entity_class(self): - from .action import Action - return Action - - -class ApplicationDelta(EntityDelta): - def get_id(self): - return self.data['name'] - - @classmethod - def get_entity_class(self): - from .application import Application - return Application - - -class AnnotationDelta(EntityDelta): - def get_id(self): - return self.data['tag'] - - @classmethod - def get_entity_class(self): - from .annotation import Annotation - return Annotation - - -class MachineDelta(EntityDelta): - @classmethod - def get_entity_class(self): - from .machine import Machine - return Machine - - -class UnitDelta(EntityDelta): - def get_id(self): - return self.data['name'] - - @classmethod - def get_entity_class(self): - from .unit import Unit - return Unit - - -class RelationDelta(EntityDelta): - @classmethod - def get_entity_class(self): - from .relation import Relation - return Relation - - -_delta_types = { - 'action': ActionDelta, - 'application': ApplicationDelta, - 'annotation': AnnotationDelta, - 'machine': MachineDelta, - 'unit': UnitDelta, - 'relation': RelationDelta, -} diff --git a/modules/libjuju/juju/errors.py b/modules/libjuju/juju/errors.py deleted file mode 100644 index da11cdb..0000000 --- a/modules/libjuju/juju/errors.py +++ /dev/null @@ -1,49 +0,0 @@ -class JujuError(Exception): - def __init__(self, *args, **kwargs): - self.message = '' - self.errors = [] - if args: - self.message = str(args[0]) - if isinstance(args[0], (list, tuple)): - self.errors = args[0] - elif len(args) > 1: - self.errors = list(args) - else: - self.errors = [self.message] - super().__init__(*args, **kwargs) - - -class JujuAPIError(JujuError): - def __init__(self, result): - self.result = result - self.message = result['error'] - self.error_code = result.get('error-code') - self.response = result['response'] - self.request_id = result['request-id'] - super().__init__(self.message) - - -class JujuConnectionError(ConnectionError, JujuError): - pass - - -class JujuAuthError(JujuConnectionError): - pass - - -class JujuRedirectException(Exception): - """Exception indicating that a redirection was requested""" - def __init__(self, redirect_info): - self.redirect_info = redirect_info - - @property - def ca_cert(self): - return self.redirect_info['ca-cert'] - - @property - def endpoints(self): - return [ - ('{value}:{port}'.format(**s), self.ca_cert) - for servers in self.redirect_info['servers'] - for s in servers if s['scope'] == 'public' - ] diff --git a/modules/libjuju/juju/exceptions.py b/modules/libjuju/juju/exceptions.py deleted file mode 100644 index bcf07b6..0000000 --- a/modules/libjuju/juju/exceptions.py +++ /dev/null @@ -1,2 +0,0 @@ -class DeadEntityException(Exception): - pass diff --git a/modules/libjuju/juju/juju.py b/modules/libjuju/juju/juju.py deleted file mode 100644 index 444155f..0000000 --- a/modules/libjuju/juju/juju.py +++ /dev/null @@ -1,118 +0,0 @@ -class Juju(object): - def add_cloud(self, name, definition, replace=False): - """Add a user-defined cloud to Juju from among known cloud types. - - :param str name: Name of cloud - :param dict definition: Cloud definition - - Example cloud definition, as yaml:: - - type: openstack - auth-types: [ userpass ] - regions: - london: - endpoint: https://london.mycloud.com:35574/v3.0/ - - """ - raise NotImplementedError() - - def agree(self, *terms): - """Agree to the terms of a charm. - - :param str *terms: Terms to agree to - - """ - raise NotImplementedError() - - def autoload_credentials(self): - """Finds cloud credentials and caches them for use by Juju when - bootstrapping. - - """ - raise NotImplementedError() - - def create_budget(self): - """Create a new budget. - - """ - raise NotImplementedError() - - def get_agreements(self): - """Return list of terms to which the current user has agreed. - - """ - raise NotImplementedError() - - def get_budgets(self): - """Return list of available budgets. - - """ - raise NotImplementedError() - - def get_clouds(self): - """Return list of all available clouds. - - """ - raise NotImplementedError() - - def get_controllers(self): - """Return list of all available controllers. - - (maybe move this to Cloud?) - """ - raise NotImplementedError() - - def get_plans(self, charm_url): - """Return list of plans available for the specified charm. - - :param str charm_url: Charm url - - """ - raise NotImplementedError() - - def register(self, registration_string): - """Register a user to a controller. - - :param str registration_string: The registration string - - """ - raise NotImplementedError() - - def set_budget(self, name, limit): - """Set a monthly budget limit. - - :param str name: Name of budget - :param int limit: Monthly limit - - """ - raise NotImplementedError() - - def get_cloud(self, name): - """Get a cloud by name. - - :param str name: Name of cloud - - """ - raise NotImplementedError() - - def get_controller(self, name, include_passwords=False): - """Get a controller by name. - - :param str name: Name of controller - :param bool include_passwords: Include passwords for accounts - - (maybe move this to Cloud?) - """ - raise NotImplementedError() - - def update_clouds(self): - """Update public cloud info available to Juju. - - """ - raise NotImplementedError() - - def version(self): - """Return the Juju version. - - """ - raise NotImplementedError() diff --git a/modules/libjuju/juju/loop.py b/modules/libjuju/juju/loop.py deleted file mode 100644 index aca726b..0000000 --- a/modules/libjuju/juju/loop.py +++ /dev/null @@ -1,42 +0,0 @@ -import asyncio -import signal - - -def run(*steps): - """ - Helper to run one or more async functions synchronously, with graceful - handling of SIGINT / Ctrl-C. - - Returns the return value of the last function. - """ - if not steps: - return - - task = None - run._sigint = False # function attr to allow setting from closure - loop = asyncio.get_event_loop() - - def abort(): - task.cancel() - run._sigint = True - - added = False - try: - loop.add_signal_handler(signal.SIGINT, abort) - added = True - except (ValueError, OSError, RuntimeError) as e: - # add_signal_handler doesn't work in a thread - if 'main thread' not in str(e): - raise - try: - for step in steps: - task = loop.create_task(step) - loop.run_until_complete(asyncio.wait([task], loop=loop)) - if run._sigint: - raise KeyboardInterrupt() - if task.exception(): - raise task.exception() - return task.result() - finally: - if added: - loop.remove_signal_handler(signal.SIGINT) diff --git a/modules/libjuju/juju/machine.py b/modules/libjuju/juju/machine.py deleted file mode 100644 index 39bfa11..0000000 --- a/modules/libjuju/juju/machine.py +++ /dev/null @@ -1,284 +0,0 @@ -import asyncio -import logging -import os - -import pyrfc3339 - -from . import model, utils -from .client import client -from .errors import JujuError - -log = logging.getLogger(__name__) - - -class Machine(model.ModelEntity): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.model.loop.create_task(self._queue_workarounds()) - - async def _queue_workarounds(self): - model = self.model - if not model.info: - await utils.run_with_interrupt(model.get_info(), - model._watch_stopping, - loop=model.loop) - if model._watch_stopping.is_set(): - return - if model.info.agent_version < client.Number.from_json('2.2.3'): - self.on_change(self._workaround_1695335) - - async def _workaround_1695335(self, delta, old, new, model): - """ - This is a (hacky) temporary work around for a bug in Juju where the - instance status and agent version fields don't get updated properly - by the AllWatcher. - - Deltas never contain a value for `data['agent-status']['version']`, - and once the `instance-status` reaches `pending`, we no longer get - any updates for it (the deltas come in, but the `instance-status` - data is always the same after that). - - To work around this, whenever a delta comes in for this machine, we - query FullStatus and use the data from there if and only if it's newer. - Luckily, the timestamps on the `since` field does seem to be accurate. - - See https://bugs.launchpad.net/juju/+bug/1695335 - """ - if delta.data.get('synthetic', False): - # prevent infinite loops re-processing already processed deltas - return - - full_status = await utils.run_with_interrupt(model.get_status(), - model._watch_stopping, - loop=model.loop) - if model._watch_stopping.is_set(): - return - - if self.id not in full_status.machines: - return - - if not full_status.machines[self.id]['instance-status']['since']: - return - - machine = full_status.machines[self.id] - - change_log = [] - key_map = { - 'status': 'current', - 'info': 'message', - 'since': 'since', - } - - # handle agent version specially, because it's never set in - # deltas, and we don't want even a newer delta to clear it - agent_version = machine['agent-status']['version'] - if agent_version: - delta.data['agent-status']['version'] = agent_version - change_log.append(('agent-version', '', agent_version)) - - # only update (other) delta fields if status data is newer - status_since = pyrfc3339.parse(machine['instance-status']['since']) - delta_since = pyrfc3339.parse(delta.data['instance-status']['since']) - if status_since > delta_since: - for status_key in ('status', 'info', 'since'): - delta_key = key_map[status_key] - status_value = machine['instance-status'][status_key] - delta_value = delta.data['instance-status'][delta_key] - change_log.append((delta_key, delta_value, status_value)) - delta.data['instance-status'][delta_key] = status_value - - if change_log: - log.debug('Overriding machine delta with FullStatus data') - for log_item in change_log: - log.debug(' {}: {} -> {}'.format(*log_item)) - delta.data['synthetic'] = True - old_obj, new_obj = self.model.state.apply_delta(delta) - await model._notify_observers(delta, old_obj, new_obj) - - async def destroy(self, force=False): - """Remove this machine from the model. - - Blocks until the machine is actually removed. - - """ - facade = client.ClientFacade.from_connection(self.connection) - - log.debug( - 'Destroying machine %s', self.id) - - await facade.DestroyMachines(force, [self.id]) - return await self.model._wait( - 'machine', self.id, 'remove') - remove = destroy - - def run(self, command, timeout=None): - """Run command on this machine. - - :param str command: The command to run - :param int timeout: Time to wait before command is considered failed - - """ - raise NotImplementedError() - - async def set_annotations(self, annotations): - """Set annotations on this machine. - - :param annotations map[string]string: the annotations as key/value - pairs. - - """ - log.debug('Updating annotations on machine %s', self.id) - - self.ann_facade = client.AnnotationsFacade.from_connection( - self.connection) - - ann = client.EntityAnnotations( - entity=self.id, - annotations=annotations, - ) - return await self.ann_facade.Set([ann]) - - async def scp_to(self, source, destination, user='ubuntu', proxy=False, - scp_opts=''): - """Transfer files to this machine. - - :param str source: Local path of file(s) to transfer - :param str destination: Remote destination of transferred files - :param str user: Remote username - :param bool proxy: Proxy through the Juju API server - :param scp_opts: Additional options to the `scp` command - :type scp_opts: str or list - """ - if proxy: - raise NotImplementedError('proxy option is not implemented') - - address = self.dns_name - destination = '%s@%s:%s' % (user, address, destination) - await self._scp(source, destination, scp_opts) - - async def scp_from(self, source, destination, user='ubuntu', proxy=False, - scp_opts=''): - """Transfer files from this machine. - - :param str source: Remote path of file(s) to transfer - :param str destination: Local destination of transferred files - :param str user: Remote username - :param bool proxy: Proxy through the Juju API server - :param scp_opts: Additional options to the `scp` command - :type scp_opts: str or list - """ - if proxy: - raise NotImplementedError('proxy option is not implemented') - - address = self.dns_name - source = '%s@%s:%s' % (user, address, source) - await self._scp(source, destination, scp_opts) - - async def _scp(self, source, destination, scp_opts): - """ Execute an scp command. Requires a fully qualified source and - destination. - """ - cmd = [ - 'scp', - '-i', os.path.expanduser('~/.local/share/juju/ssh/juju_id_rsa'), - '-o', 'StrictHostKeyChecking=no', - '-q', - '-B' - ] - cmd.extend(scp_opts.split() if isinstance(scp_opts, str) else scp_opts) - cmd.extend([source, destination]) - loop = self.model.loop - process = await asyncio.create_subprocess_exec(*cmd, loop=loop) - await process.wait() - if process.returncode != 0: - raise JujuError("command failed: %s" % cmd) - - def ssh( - self, command, user=None, proxy=False, ssh_opts=None): - """Execute a command over SSH on this machine. - - :param str command: Command to execute - :param str user: Remote username - :param bool proxy: Proxy through the Juju API server - :param str ssh_opts: Additional options to the `ssh` command - - """ - raise NotImplementedError() - - def status_history(self, num=20, utc=False): - """Get status history for this machine. - - :param int num: Size of history backlog - :param bool utc: Display time as UTC in RFC3339 format - - """ - raise NotImplementedError() - - @property - def agent_status(self): - """Returns the current Juju agent status string. - - """ - return self.safe_data['agent-status']['current'] - - @property - def agent_status_since(self): - """Get the time when the `agent_status` was last updated. - - """ - return pyrfc3339.parse(self.safe_data['agent-status']['since']) - - @property - def agent_version(self): - """Get the version of the Juju machine agent. - - May return None if the agent is not yet available. - """ - version = self.safe_data['agent-status']['version'] - if version: - return client.Number.from_json(version) - else: - return None - - @property - def status(self): - """Returns the current machine provisioning status string. - - """ - return self.safe_data['instance-status']['current'] - - @property - def status_message(self): - """Returns the current machine provisioning status message. - - """ - return self.safe_data['instance-status']['message'] - - @property - def status_since(self): - """Get the time when the `status` was last updated. - - """ - return pyrfc3339.parse(self.safe_data['instance-status']['since']) - - @property - def dns_name(self): - """Get the DNS name for this machine. This is a best guess based on the - addresses available in current data. - - May return None if no suitable address is found. - """ - for scope in ['public', 'local-cloud']: - addresses = self.safe_data['addresses'] or [] - addresses = [address for address in addresses - if address['scope'] == scope] - if addresses: - return addresses[0]['value'] - return None - - @property - def series(self): - """Returns the series of the current machine - - """ - return self.safe_data['series'] diff --git a/modules/libjuju/juju/model.py b/modules/libjuju/juju/model.py deleted file mode 100644 index 9a14add..0000000 --- a/modules/libjuju/juju/model.py +++ /dev/null @@ -1,2328 +0,0 @@ -import asyncio -import base64 -import collections -import hashlib -import json -import logging -import os -import re -import stat -import tempfile -import weakref -import zipfile -from concurrent.futures import CancelledError -from functools import partial -from pathlib import Path - -import theblues.charmstore -import theblues.errors -import websockets -import yaml - -from . import tag, utils -from .client import client, connector -from .client.client import ConfigValue -from .client.client import Value -from .constraints import parse as parse_constraints -from .constraints import normalize_key -from .delta import get_entity_class, get_entity_delta -from .errors import JujuAPIError, JujuError -from .exceptions import DeadEntityException -from .placement import parse as parse_placement -from . import provisioner - - -log = logging.getLogger(__name__) - - -class _Observer: - """Wrapper around an observer callable. - - This wrapper allows filter criteria to be associated with the - callable so that it's only called for changes that meet the criteria. - - """ - def __init__(self, callable_, entity_type, action, entity_id, predicate): - self.callable_ = callable_ - self.entity_type = entity_type - self.action = action - self.entity_id = entity_id - self.predicate = predicate - if self.entity_id: - self.entity_id = str(self.entity_id) - if not self.entity_id.startswith('^'): - self.entity_id = '^' + self.entity_id - if not self.entity_id.endswith('$'): - self.entity_id += '$' - - async def __call__(self, delta, old, new, model): - await self.callable_(delta, old, new, model) - - def cares_about(self, delta): - """Return True if this observer "cares about" (i.e. wants to be - called) for a this delta. - - """ - if (self.entity_id and delta.get_id() and - not re.match(self.entity_id, str(delta.get_id()))): - return False - - if self.entity_type and self.entity_type != delta.entity: - return False - - if self.action and self.action != delta.type: - return False - - if self.predicate and not self.predicate(delta): - return False - - return True - - -class ModelObserver: - """ - Base class for creating observers that react to changes in a model. - """ - async def __call__(self, delta, old, new, model): - handler_name = 'on_{}_{}'.format(delta.entity, delta.type) - method = getattr(self, handler_name, self.on_change) - await method(delta, old, new, model) - - async def on_change(self, delta, old, new, model): - """Generic model-change handler. - - This should be overridden in a subclass. - - :param delta: :class:`juju.client.overrides.Delta` - :param old: :class:`juju.model.ModelEntity` - :param new: :class:`juju.model.ModelEntity` - :param model: :class:`juju.model.Model` - - """ - pass - - -class ModelState: - """Holds the state of the model, including the delta history of all - entities in the model. - - """ - def __init__(self, model): - self.model = model - self.state = dict() - - def _live_entity_map(self, entity_type): - """Return an id:Entity map of all the living entities of - type ``entity_type``. - - """ - return { - entity_id: self.get_entity(entity_type, entity_id) - for entity_id, history in self.state.get(entity_type, {}).items() - if history[-1] is not None - } - - @property - def applications(self): - """Return a map of application-name:Application for all applications - currently in the model. - - """ - return self._live_entity_map('application') - - @property - def machines(self): - """Return a map of machine-id:Machine for all machines currently in - the model. - - """ - return self._live_entity_map('machine') - - @property - def units(self): - """Return a map of unit-id:Unit for all units currently in - the model. - - """ - return self._live_entity_map('unit') - - @property - def relations(self): - """Return a map of relation-id:Relation for all relations currently in - the model. - - """ - return self._live_entity_map('relation') - - def entity_history(self, entity_type, entity_id): - """Return the history deque for an entity. - - """ - return self.state[entity_type][entity_id] - - def entity_data(self, entity_type, entity_id, history_index): - """Return the data dict for an entity at a specific index of its - history. - - """ - return self.entity_history(entity_type, entity_id)[history_index] - - def apply_delta(self, delta): - """Apply delta to our state and return a copy of the - affected object as it was before and after the update, e.g.: - - old_obj, new_obj = self.apply_delta(delta) - - old_obj may be None if the delta is for the creation of a new object, - e.g. a new application or unit is deployed. - - new_obj will never be None, but may be dead (new_obj.dead == True) - if the object was deleted as a result of the delta being applied. - - """ - history = ( - self.state - .setdefault(delta.entity, {}) - .setdefault(delta.get_id(), collections.deque()) - ) - - history.append(delta.data) - if delta.type == 'remove': - history.append(None) - - entity = self.get_entity(delta.entity, delta.get_id()) - return entity.previous(), entity - - def get_entity( - self, entity_type, entity_id, history_index=-1, connected=True): - """Return an object instance for the given entity_type and id. - - By default the object state matches the most recent state from - Juju. To get an instance of the object in an older state, pass - history_index, an index into the history deque for the entity. - - """ - - if history_index < 0 and history_index != -1: - history_index += len(self.entity_history(entity_type, entity_id)) - if history_index < 0: - return None - - try: - self.entity_data(entity_type, entity_id, history_index) - except IndexError: - return None - - entity_class = get_entity_class(entity_type) - return entity_class( - entity_id, self.model, history_index=history_index, - connected=connected) - - -class ModelEntity: - """An object in the Model tree""" - - def __init__(self, entity_id, model, history_index=-1, connected=True): - """Initialize a new entity - - :param entity_id str: The unique id of the object in the model - :param model: The model instance in whose object tree this - entity resides - :history_index int: The index of this object's state in the model's - history deque for this entity - :connected bool: Flag indicating whether this object gets live updates - from the model. - - """ - self.entity_id = entity_id - self.model = model - self._history_index = history_index - self.connected = connected - self.connection = model.connection() - - def __repr__(self): - return '<{} entity_id="{}">'.format(type(self).__name__, - self.entity_id) - - def __getattr__(self, name): - """Fetch object attributes from the underlying data dict held in the - model. - - """ - try: - return self.safe_data[name] - except KeyError: - name = name.replace('_', '-') - if name in self.safe_data: - return self.safe_data[name] - else: - raise - - def __bool__(self): - return bool(self.data) - - def on_change(self, callable_): - """Add a change observer to this entity. - - """ - self.model.add_observer( - callable_, self.entity_type, 'change', self.entity_id) - - def on_remove(self, callable_): - """Add a remove observer to this entity. - - """ - self.model.add_observer( - callable_, self.entity_type, 'remove', self.entity_id) - - @property - def entity_type(self): - """A string identifying the entity type of this object, e.g. - 'application' or 'unit', etc. - - """ - return self.__class__.__name__.lower() - - @property - def current(self): - """Return True if this object represents the current state of the - entity in the underlying model. - - This will be True except when the object represents an entity at a - non-latest state in history, e.g. if the object was obtained by calling - .previous() on another object. - - """ - return self._history_index == -1 - - @property - def dead(self): - """Returns True if this entity no longer exists in the underlying - model. - - """ - return ( - self.data is None or - self.model.state.entity_data( - self.entity_type, self.entity_id, -1) is None - ) - - @property - def alive(self): - """Returns True if this entity still exists in the underlying - model. - - """ - return not self.dead - - @property - def data(self): - """The data dictionary for this entity. - - """ - return self.model.state.entity_data( - self.entity_type, self.entity_id, self._history_index) - - @property - def safe_data(self): - """The data dictionary for this entity. - - If this `ModelEntity` points to the dead state, it will - raise `DeadEntityException`. - - """ - if self.data is None: - raise DeadEntityException( - "Entity {}:{} is dead - its attributes can no longer be " - "accessed. Use the .previous() method on this object to get " - "a copy of the object at its previous state.".format( - self.entity_type, self.entity_id)) - return self.data - - def previous(self): - """Return a copy of this object as was at its previous state in - history. - - Returns None if this object is new (and therefore has no history). - - The returned object is always "disconnected", i.e. does not receive - live updates. - - """ - return self.model.state.get_entity( - self.entity_type, self.entity_id, self._history_index - 1, - connected=False) - - def next(self): - """Return a copy of this object at its next state in - history. - - Returns None if this object is already the latest. - - The returned object is "disconnected", i.e. does not receive - live updates, unless it is current (latest). - - """ - if self._history_index == -1: - return None - - new_index = self._history_index + 1 - connected = ( - new_index == len(self.model.state.entity_history( - self.entity_type, self.entity_id)) - 1 - ) - return self.model.state.get_entity( - self.entity_type, self.entity_id, self._history_index - 1, - connected=connected) - - def latest(self): - """Return a copy of this object at its current state in the model. - - Returns self if this object is already the latest. - - The returned object is always "connected", i.e. receives - live updates from the model. - - """ - if self._history_index == -1: - return self - - return self.model.state.get_entity(self.entity_type, self.entity_id) - - -class Model: - """ - The main API for interacting with a Juju model. - """ - def __init__( - self, - loop=None, - max_frame_size=None, - bakery_client=None, - jujudata=None, - ): - """Instantiate a new Model. - - The connect method will need to be called before this - object can be used for anything interesting. - - If jujudata is None, jujudata.FileJujuData will be used. - - :param loop: an asyncio event loop - :param max_frame_size: See - `juju.client.connection.Connection.MAX_FRAME_SIZE` - :param bakery_client httpbakery.Client: The bakery client to use - for macaroon authorization. - :param jujudata JujuData: The source for current controller information - """ - self._connector = connector.Connector( - loop=loop, - max_frame_size=max_frame_size, - bakery_client=bakery_client, - jujudata=jujudata, - ) - self._observers = weakref.WeakValueDictionary() - self.state = ModelState(self) - self._info = None - self._watch_stopping = asyncio.Event(loop=self._connector.loop) - self._watch_stopped = asyncio.Event(loop=self._connector.loop) - self._watch_received = asyncio.Event(loop=self._connector.loop) - self._watch_stopped.set() - self._charmstore = CharmStore(self._connector.loop) - - def is_connected(self): - """Reports whether the Model is currently connected.""" - return self._connector.is_connected() - - @property - def loop(self): - return self._connector.loop - - def connection(self): - """Return the current Connection object. It raises an exception - if the Model is disconnected""" - return self._connector.connection() - - async def get_controller(self): - """Return a Controller instance for the currently connected model. - :return Controller: - """ - from juju.controller import Controller - controller = Controller(jujudata=self._connector.jujudata) - kwargs = self.connection().connect_params() - kwargs.pop('uuid') - await controller._connect_direct(**kwargs) - return controller - - async def __aenter__(self): - await self.connect() - return self - - async def __aexit__(self, exc_type, exc, tb): - await self.disconnect() - - async def connect(self, *args, **kwargs): - """Connect to a juju model. - - This supports two calling conventions: - - The model and (optionally) authentication information can be taken - from the data files created by the Juju CLI. This convention will - be used if a ``model_name`` is specified, or if the ``endpoint`` - and ``uuid`` are not. - - Otherwise, all of the ``endpoint``, ``uuid``, and authentication - information (``username`` and ``password``, or ``bakery_client`` and/or - ``macaroons``) are required. - - If a single positional argument is given, it will be assumed to be - the ``model_name``. Otherwise, the first positional argument, if any, - must be the ``endpoint``. - - Available parameters are: - - :param model_name: Format [controller:][user/]model - :param str endpoint: The hostname:port of the controller to connect to. - :param str uuid: The model UUID to connect to. - :param str username: The username for controller-local users (or None - to use macaroon-based login.) - :param str password: The password for controller-local users. - :param str cacert: The CA certificate of the controller - (PEM formatted). - :param httpbakery.Client bakery_client: The macaroon bakery client to - to use when performing macaroon-based login. Macaroon tokens - acquired when logging will be saved to bakery_client.cookies. - If this is None, a default bakery_client will be used. - :param list macaroons: List of macaroons to load into the - ``bakery_client``. - :param asyncio.BaseEventLoop loop: The event loop to use for async - operations. - :param int max_frame_size: The maximum websocket frame size to allow. - """ - await self.disconnect() - if 'endpoint' not in kwargs and len(args) < 2: - if args and 'model_name' in kwargs: - raise TypeError('connect() got multiple values for model_name') - elif args: - model_name = args[0] - else: - model_name = kwargs.pop('model_name', None) - await self._connector.connect_model(model_name, **kwargs) - else: - if 'model_name' in kwargs: - raise TypeError('connect() got values for both ' - 'model_name and endpoint') - if args and 'endpoint' in kwargs: - raise TypeError('connect() got multiple values for endpoint') - if len(args) < 2 and 'uuid' not in kwargs: - raise TypeError('connect() missing value for uuid') - has_userpass = (len(args) >= 4 or - {'username', 'password'}.issubset(kwargs)) - has_macaroons = (len(args) >= 6 or not - {'bakery_client', 'macaroons'}.isdisjoint(kwargs)) - if not (has_userpass or has_macaroons): - raise TypeError('connect() missing auth params') - arg_names = [ - 'endpoint', - 'uuid', - 'username', - 'password', - 'cacert', - 'bakery_client', - 'macaroons', - 'loop', - 'max_frame_size', - ] - for i, arg in enumerate(args): - kwargs[arg_names[i]] = arg - if not {'endpoint', 'uuid'}.issubset(kwargs): - raise ValueError('endpoint and uuid are required ' - 'if model_name not given') - if not ({'username', 'password'}.issubset(kwargs) or - {'bakery_client', 'macaroons'}.intersection(kwargs)): - raise ValueError('Authentication parameters are required ' - 'if model_name not given') - await self._connector.connect(**kwargs) - await self._after_connect() - - async def connect_model(self, model_name): - """ - .. deprecated:: 0.6.2 - Use ``connect(model_name=model_name)`` instead. - """ - return await self.connect(model_name=model_name) - - async def connect_current(self): - """ - .. deprecated:: 0.6.2 - Use ``connect()`` instead. - """ - return await self.connect() - - async def _connect_direct(self, **kwargs): - await self.disconnect() - await self._connector.connect(**kwargs) - await self._after_connect() - - async def _after_connect(self): - self._watch() - - # Wait for the first packet of data from the AllWatcher, - # which contains all information on the model. - # TODO this means that we can't do anything until - # we've received all the model data, which might be - # a whole load of unneeded data if all the client wants - # to do is make one RPC call. - await self._watch_received.wait() - - await self.get_info() - - async def disconnect(self): - """Shut down the watcher task and close websockets. - - """ - if not self._watch_stopped.is_set(): - log.debug('Stopping watcher task') - self._watch_stopping.set() - await self._watch_stopped.wait() - self._watch_stopping.clear() - - if self.is_connected(): - log.debug('Closing model connection') - await self._connector.disconnect() - self._info = None - - async def add_local_charm_dir(self, charm_dir, series): - """Upload a local charm to the model. - - This will automatically generate an archive from - the charm dir. - - :param charm_dir: Path to the charm directory - :param series: Charm series - - """ - fh = tempfile.NamedTemporaryFile() - CharmArchiveGenerator(charm_dir).make_archive(fh.name) - with fh: - func = partial( - self.add_local_charm, fh, series, os.stat(fh.name).st_size) - charm_url = await self._connector.loop.run_in_executor(None, func) - - log.debug('Uploaded local charm: %s -> %s', charm_dir, charm_url) - return charm_url - - def add_local_charm(self, charm_file, series, size=None): - """Upload a local charm archive to the model. - - Returns the 'local:...' url that should be used to deploy the charm. - - :param charm_file: Path to charm zip archive - :param series: Charm series - :param size: Size of the archive, in bytes - :return str: 'local:...' url for deploying the charm - :raises: :class:`JujuError` if the upload fails - - Uses an https endpoint at the same host:port as the wss. - Supports large file uploads. - - .. warning:: - - This method will block. Consider using :meth:`add_local_charm_dir` - instead. - - """ - conn, headers, path_prefix = self.connection().https_connection() - path = "%s/charms?series=%s" % (path_prefix, series) - headers['Content-Type'] = 'application/zip' - if size: - headers['Content-Length'] = size - conn.request("POST", path, charm_file, headers) - response = conn.getresponse() - result = response.read().decode() - if not response.status == 200: - raise JujuError(result) - result = json.loads(result) - return result['charm-url'] - - def all_units_idle(self): - """Return True if all units are idle. - - """ - for unit in self.units.values(): - unit_status = unit.data['agent-status']['current'] - if unit_status != 'idle': - return False - return True - - async def reset(self, force=False): - """Reset the model to a clean state. - - :param bool force: Force-terminate machines. - - This returns only after the model has reached a clean state. "Clean" - means no applications or machines exist in the model. - - """ - log.debug('Resetting model') - for app in self.applications.values(): - await app.destroy() - for machine in self.machines.values(): - await machine.destroy(force=force) - await self.block_until( - lambda: len(self.machines) == 0 - ) - - async def block_until(self, *conditions, timeout=None, wait_period=0.5): - """Return only after all conditions are true. - - Raises `websockets.ConnectionClosed` if disconnected. - """ - def _disconnected(): - return not (self.is_connected() and self.connection().is_open) - - def done(): - return _disconnected() or all(c() for c in conditions) - - await utils.block_until(done, - timeout=timeout, - wait_period=wait_period, - loop=self.loop) - if _disconnected(): - raise websockets.ConnectionClosed(1006, 'no reason') - - @property - def applications(self): - """Return a map of application-name:Application for all applications - currently in the model. - - """ - return self.state.applications - - @property - def machines(self): - """Return a map of machine-id:Machine for all machines currently in - the model. - - """ - return self.state.machines - - @property - def units(self): - """Return a map of unit-id:Unit for all units currently in - the model. - - """ - return self.state.units - - @property - def relations(self): - """Return a list of all Relations currently in the model. - - """ - return list(self.state.relations.values()) - - async def get_info(self): - """Return a client.ModelInfo object for this Model. - - Retrieves latest info for this Model from the api server. The - return value is cached on the Model.info attribute so that the - valued may be accessed again without another api call, if - desired. - - This method is called automatically when the Model is connected, - resulting in Model.info being initialized without requiring an - explicit call to this method. - - """ - facade = client.ClientFacade.from_connection(self.connection()) - - self._info = await facade.ModelInfo() - log.debug('Got ModelInfo: %s', vars(self.info)) - - return self.info - - @property - def info(self): - """Return the cached client.ModelInfo object for this Model. - - If Model.get_info() has not been called, this will return None. - """ - return self._info - - def add_observer( - self, callable_, entity_type=None, action=None, entity_id=None, - predicate=None): - """Register an "on-model-change" callback - - Once the model is connected, ``callable_`` - will be called each time the model changes. ``callable_`` should - be Awaitable and accept the following positional arguments: - - delta - An instance of :class:`juju.delta.EntityDelta` - containing the raw delta data recv'd from the Juju - websocket. - - old_obj - If the delta modifies an existing object in the model, - old_obj will be a copy of that object, as it was before the - delta was applied. Will be None if the delta creates a new - entity in the model. - - new_obj - A copy of the new or updated object, after the delta - is applied. Will be None if the delta removes an entity - from the model. - - model - The :class:`Model` itself. - - Events for which ``callable_`` is called can be specified by passing - entity_type, action, and/or entitiy_id filter criteria, e.g.:: - - add_observer( - myfunc, - entity_type='application', action='add', entity_id='ubuntu') - - For more complex filtering conditions, pass a predicate function. It - will be called with a delta as its only argument. If the predicate - function returns True, the ``callable_`` will be called. - - """ - observer = _Observer( - callable_, entity_type, action, entity_id, predicate) - self._observers[observer] = callable_ - - def _watch(self): - """Start an asynchronous watch against this model. - - See :meth:`add_observer` to register an onchange callback. - - """ - async def _all_watcher(): - try: - allwatcher = client.AllWatcherFacade.from_connection( - self.connection()) - while not self._watch_stopping.is_set(): - try: - results = await utils.run_with_interrupt( - allwatcher.Next(), - self._watch_stopping, - loop=self._connector.loop) - except JujuAPIError as e: - if 'watcher was stopped' not in str(e): - raise - if self._watch_stopping.is_set(): - # this shouldn't ever actually happen, because - # the event should trigger before the controller - # has a chance to tell us the watcher is stopped - # but handle it gracefully, just in case - break - # controller stopped our watcher for some reason - # but we're not actually stopping, so just restart it - log.warning( - 'Watcher: watcher stopped, restarting') - del allwatcher.Id - continue - except websockets.ConnectionClosed: - monitor = self.connection().monitor - if monitor.status == monitor.ERROR: - # closed unexpectedly, try to reopen - log.warning( - 'Watcher: connection closed, reopening') - await self.connection().reconnect() - if monitor.status != monitor.CONNECTED: - # reconnect failed; abort and shutdown - log.error('Watcher: automatic reconnect ' - 'failed; stopping watcher') - break - del allwatcher.Id - continue - else: - # closed on request, go ahead and shutdown - break - if self._watch_stopping.is_set(): - try: - await allwatcher.Stop() - except websockets.ConnectionClosed: - pass # can't stop on a closed conn - break - for delta in results.deltas: - try: - delta = get_entity_delta(delta) - old_obj, new_obj = self.state.apply_delta(delta) - await self._notify_observers(delta, old_obj, new_obj) - except KeyError as e: - log.debug("unknown delta type: %s", e.args[0]) - self._watch_received.set() - except CancelledError: - pass - except Exception: - log.exception('Error in watcher') - raise - finally: - self._watch_stopped.set() - - log.debug('Starting watcher task') - self._watch_received.clear() - self._watch_stopping.clear() - self._watch_stopped.clear() - self._connector.loop.create_task(_all_watcher()) - - async def _notify_observers(self, delta, old_obj, new_obj): - """Call observing callbacks, notifying them of a change in model state - - :param delta: The raw change from the watcher - (:class:`juju.client.overrides.Delta`) - :param old_obj: The object in the model that this delta updates. - May be None. - :param new_obj: The object in the model that is created or updated - by applying this delta. - - """ - if new_obj and not old_obj: - delta.type = 'add' - - log.debug( - 'Model changed: %s %s %s', - delta.entity, delta.type, delta.get_id()) - - for o in self._observers: - if o.cares_about(delta): - asyncio.ensure_future(o(delta, old_obj, new_obj, self), - loop=self._connector.loop) - - async def _wait(self, entity_type, entity_id, action, predicate=None): - """ - Block the calling routine until a given action has happened to the - given entity - - :param entity_type: The entity's type. - :param entity_id: The entity's id. - :param action: the type of action (e.g., 'add', 'change', or 'remove') - :param predicate: optional callable that must take as an - argument a delta, and must return a boolean, indicating - whether the delta contains the specific action we're looking - for. For example, you might check to see whether a 'change' - has a 'completed' status. See the _Observer class for details. - - """ - q = asyncio.Queue(loop=self._connector.loop) - - async def callback(delta, old, new, model): - await q.put(delta.get_id()) - - self.add_observer(callback, entity_type, action, entity_id, predicate) - entity_id = await q.get() - # object might not be in the entity_map if we were waiting for a - # 'remove' action - return self.state._live_entity_map(entity_type).get(entity_id) - - async def _wait_for_new(self, entity_type, entity_id): - """Wait for a new object to appear in the Model and return it. - - Waits for an object of type ``entity_type`` with id ``entity_id`` - to appear in the model. This is similar to watching for the - object using ``block_until``, but uses the watcher rather than - polling. - - """ - # if the entity is already in the model, just return it - if entity_id in self.state._live_entity_map(entity_type): - return self.state._live_entity_map(entity_type)[entity_id] - return await self._wait(entity_type, entity_id, None) - - async def wait_for_action(self, action_id): - """Given an action, wait for it to complete.""" - - if action_id.startswith("action-"): - # if we've been passed action.tag, transform it into the - # id that the api deltas will use. - action_id = action_id[7:] - - def predicate(delta): - return delta.data['status'] in ('completed', 'failed') - - return await self._wait('action', action_id, None, predicate) - - async def add_machine( - self, spec=None, constraints=None, disks=None, series=None): - """Start a new, empty machine and optionally a container, or add a - container to a machine. - - :param str spec: Machine specification - Examples:: - - (None) - starts a new machine - 'lxd' - starts a new machine with one lxd container - 'lxd:4' - starts a new lxd container on machine 4 - 'ssh:user@10.10.0.3:/path/to/private/key' - manually provision - a machine with ssh and the private key used for authentication - 'zone=us-east-1a' - starts a machine in zone us-east-1s on AWS - 'maas2.name' - acquire machine maas2.name on MAAS - - :param dict constraints: Machine constraints, which can contain the - the following keys:: - - arch : str - container : str - cores : int - cpu_power : int - instance_type : str - mem : int - root_disk : int - spaces : list(str) - tags : list(str) - virt_type : str - - Example:: - - constraints={ - 'mem': 256 * MB, - 'tags': ['virtual'], - } - - :param list disks: List of disk constraint dictionaries, which can - contain the following keys:: - - count : int - pool : str - size : int - - Example:: - - disks=[{ - 'pool': 'rootfs', - 'size': 10 * GB, - 'count': 1, - }] - - :param str series: Series, e.g. 'xenial' - - Supported container types are: lxd, kvm - - When deploying a container to an existing machine, constraints cannot - be used. - - """ - params = client.AddMachineParams() - - if spec: - if spec.startswith("ssh:"): - placement, target, private_key_path = spec.split(":") - user, host = target.split("@") - - sshProvisioner = provisioner.SSHProvisioner( - host=host, - user=user, - private_key_path=private_key_path, - ) - - params = sshProvisioner.provision_machine() - else: - placement = parse_placement(spec) - if placement: - params.placement = placement[0] - - params.jobs = ['JobHostUnits'] - - if constraints: - params.constraints = client.Value.from_json(constraints) - - if disks: - params.disks = [ - client.Constraints.from_json(o) for o in disks] - - if series: - params.series = series - - # Submit the request. - client_facade = client.ClientFacade.from_connection(self.connection()) - results = await client_facade.AddMachines([params]) - error = results.machines[0].error - if error: - raise ValueError("Error adding machine: %s" % error.message) - machine_id = results.machines[0].machine - - if spec: - if spec.startswith("ssh:"): - # Need to run this after AddMachines has been called, - # as we need the machine_id - await sshProvisioner.install_agent( - self.connection(), - params.nonce, - machine_id, - ) - - log.debug('Added new machine %s', machine_id) - return await self._wait_for_new('machine', machine_id) - - async def add_relation(self, relation1, relation2): - """Add a relation between two applications. - - :param str relation1: '[:]' - :param str relation2: '[:]' - - """ - connection = self.connection() - app_facade = client.ApplicationFacade.from_connection(connection) - - log.debug( - 'Adding relation %s <-> %s', relation1, relation2) - - def _find_relation(*specs): - for rel in self.relations: - if rel.matches(*specs): - return rel - return None - - try: - result = await app_facade.AddRelation([relation1, relation2]) - except JujuAPIError as e: - if 'relation already exists' not in e.message: - raise - rel = _find_relation(relation1, relation2) - if rel: - return rel - raise JujuError('Relation {} {} exists but not in model'.format( - relation1, relation2)) - - specs = ['{}:{}'.format(app, data['name']) - for app, data in result.endpoints.items()] - - await self.block_until(lambda: _find_relation(*specs) is not None) - return _find_relation(*specs) - - def add_space(self, name, *cidrs): - """Add a new network space. - - Adds a new space with the given name and associates the given - (optional) list of existing subnet CIDRs with it. - - :param str name: Name of the space - :param *cidrs: Optional list of existing subnet CIDRs - - """ - raise NotImplementedError() - - async def add_ssh_key(self, user, key): - """Add a public SSH key to this model. - - :param str user: The username of the user - :param str key: The public ssh key - - """ - key_facade = client.KeyManagerFacade.from_connection(self.connection()) - return await key_facade.AddKeys([key], user) - add_ssh_keys = add_ssh_key - - def add_subnet(self, cidr_or_id, space, *zones): - """Add an existing subnet to this model. - - :param str cidr_or_id: CIDR or provider ID of the existing subnet - :param str space: Network space with which to associate - :param str *zones: Zone(s) in which the subnet resides - - """ - raise NotImplementedError() - - def get_backups(self): - """Retrieve metadata for backups in this model. - - """ - raise NotImplementedError() - - def block(self, *commands): - """Add a new block to this model. - - :param str *commands: The commands to block. Valid values are - 'all-changes', 'destroy-model', 'remove-object' - - """ - raise NotImplementedError() - - def get_blocks(self): - """List blocks for this model. - - """ - raise NotImplementedError() - - def get_cached_images(self, arch=None, kind=None, series=None): - """Return a list of cached OS images. - - :param str arch: Filter by image architecture - :param str kind: Filter by image kind, e.g. 'lxd' - :param str series: Filter by image series, e.g. 'xenial' - - """ - raise NotImplementedError() - - def create_backup(self, note=None, no_download=False): - """Create a backup of this model. - - :param str note: A note to store with the backup - :param bool no_download: Do not download the backup archive - :return str: Path to downloaded archive - - """ - raise NotImplementedError() - - def create_storage_pool(self, name, provider_type, **pool_config): - """Create or define a storage pool. - - :param str name: Name to give the storage pool - :param str provider_type: Pool provider type - :param **pool_config: key/value pool configuration pairs - - """ - raise NotImplementedError() - - def debug_log( - self, no_tail=False, exclude_module=None, include_module=None, - include=None, level=None, limit=0, lines=10, replay=False, - exclude=None): - """Get log messages for this model. - - :param bool no_tail: Stop after returning existing log messages - :param list exclude_module: Do not show log messages for these logging - modules - :param list include_module: Only show log messages for these logging - modules - :param list include: Only show log messages for these entities - :param str level: Log level to show, valid options are 'TRACE', - 'DEBUG', 'INFO', 'WARNING', 'ERROR, - :param int limit: Return this many of the most recent (possibly - filtered) lines are shown - :param int lines: Yield this many of the most recent lines, and keep - yielding - :param bool replay: Yield the entire log, and keep yielding - :param list exclude: Do not show log messages for these entities - - """ - raise NotImplementedError() - - def _get_series(self, entity_url, entity): - # try to get the series from the provided charm URL - if entity_url.startswith('cs:'): - parts = entity_url[3:].split('/') - else: - parts = entity_url.split('/') - if parts[0].startswith('~'): - parts.pop(0) - if len(parts) > 1: - # series was specified in the URL - return parts[0] - # series was not supplied at all, so use the newest - # supported series according to the charm store - ss = entity['Meta']['supported-series'] - return ss['SupportedSeries'][0] - - async def deploy( - self, entity_url, application_name=None, bind=None, budget=None, - channel=None, config=None, constraints=None, force=False, - num_units=1, plan=None, resources=None, series=None, storage=None, - to=None, devices=None): - """Deploy a new service or bundle. - - :param str entity_url: Charm or bundle url - :param str application_name: Name to give the service - :param dict bind: : pairs - :param dict budget: : pairs - :param str channel: Charm store channel from which to retrieve - the charm or bundle, e.g. 'edge' - :param dict config: Charm configuration dictionary - :param constraints: Service constraints - :type constraints: :class:`juju.Constraints` - :param bool force: Allow charm to be deployed to a machine running - an unsupported series - :param int num_units: Number of units to deploy - :param str plan: Plan under which to deploy charm - :param dict resources: : pairs - :param str series: Series on which to deploy - :param dict storage: Storage constraints TODO how do these look? - :param to: Placement directive as a string. For example: - - '23' - place on machine 23 - 'lxd:7' - place in new lxd container on machine 7 - '24/lxd/3' - place in container 3 on machine 24 - - If None, a new machine is provisioned. - - - TODO:: - - - support local resources - - """ - if storage: - storage = { - k: client.Constraints(**v) - for k, v in storage.items() - } - - entity_path = Path(entity_url.replace('local:', '')) - bundle_path = entity_path / 'bundle.yaml' - metadata_path = entity_path / 'metadata.yaml' - - is_local = ( - entity_url.startswith('local:') or - entity_path.is_dir() or - entity_path.is_file() - ) - if is_local: - entity_id = entity_url.replace('local:', '') - else: - entity = await self.charmstore.entity(entity_url, channel=channel, - include_stats=False) - entity_id = entity['Id'] - - client_facade = client.ClientFacade.from_connection(self.connection()) - - is_bundle = ((is_local and - (entity_id.endswith('.yaml') and entity_path.exists()) or - bundle_path.exists()) or - (not is_local and 'bundle/' in entity_id)) - - if is_bundle: - handler = BundleHandler(self) - await handler.fetch_plan(entity_id) - await handler.execute_plan() - extant_apps = {app for app in self.applications} - pending_apps = set(handler.applications) - extant_apps - if pending_apps: - # new apps will usually be in the model by now, but if some - # haven't made it yet we'll need to wait on them to be added - await asyncio.gather(*[ - asyncio.ensure_future( - self._wait_for_new('application', app_name), - loop=self._connector.loop) - for app_name in pending_apps - ], loop=self._connector.loop) - return [app for name, app in self.applications.items() - if name in handler.applications] - else: - if not is_local: - if not application_name: - application_name = entity['Meta']['charm-metadata']['Name'] - if not series: - series = self._get_series(entity_url, entity) - await client_facade.AddCharm(channel, entity_id) - # XXX: we're dropping local resources here, but we don't - # actually support them yet anyway - resources = await self._add_store_resources(application_name, - entity_id, - entity=entity) - else: - if not application_name: - metadata = yaml.load(metadata_path.read_text()) - application_name = metadata['name'] - # We have a local charm dir that needs to be uploaded - charm_dir = os.path.abspath( - os.path.expanduser(entity_id)) - series = series or get_charm_series(charm_dir) - if not series: - raise JujuError( - "Couldn't determine series for charm at {}. " - "Pass a 'series' kwarg to Model.deploy().".format( - charm_dir)) - entity_id = await self.add_local_charm_dir(charm_dir, series) - return await self._deploy( - charm_url=entity_id, - application=application_name, - series=series, - config=config or {}, - constraints=constraints, - endpoint_bindings=bind, - resources=resources, - storage=storage, - channel=channel, - num_units=num_units, - placement=parse_placement(to), - devices=devices, - ) - - async def _add_store_resources(self, application, entity_url, - overrides=None, entity=None): - if not entity: - # avoid extra charm store call if one was already made - entity = await self.charmstore.entity(entity_url, - include_stats=False) - resources = [ - { - 'description': resource['Description'], - 'fingerprint': resource['Fingerprint'], - 'name': resource['Name'], - 'path': resource['Path'], - 'revision': resource['Revision'], - 'size': resource['Size'], - 'type_': resource['Type'], - 'origin': 'store', - } for resource in entity['Meta']['resources'] - ] - - if overrides: - names = {r['name'] for r in resources} - unknown = overrides.keys() - names - if unknown: - raise JujuError('Unrecognized resource{}: {}'.format( - 's' if len(unknown) > 1 else '', - ', '.join(unknown))) - for resource in resources: - if resource['name'] in overrides: - resource['revision'] = overrides[resource['name']] - - if not resources: - return None - - resources_facade = client.ResourcesFacade.from_connection( - self.connection()) - response = await resources_facade.AddPendingResources( - tag.application(application), - entity_url, - [client.CharmResource(**resource) for resource in resources]) - resource_map = {resource['name']: pid - for resource, pid - in zip(resources, response.pending_ids)} - return resource_map - - async def _deploy(self, charm_url, application, series, config, - constraints, endpoint_bindings, resources, storage, - channel=None, num_units=None, placement=None, - devices=None): - """Logic shared between `Model.deploy` and `BundleHandler.deploy`. - """ - log.info('Deploying %s', charm_url) - - # stringify all config values for API, and convert to YAML - config = {k: str(v) for k, v in config.items()} - config = yaml.dump({application: config}, - default_flow_style=False) - - app_facade = client.ApplicationFacade.from_connection( - self.connection()) - - app = client.ApplicationDeploy( - charm_url=charm_url, - application=application, - series=series, - channel=channel, - config_yaml=config, - constraints=parse_constraints(constraints), - endpoint_bindings=endpoint_bindings, - num_units=num_units, - resources=resources, - storage=storage, - placement=placement, - devices=devices, - ) - result = await app_facade.Deploy([app]) - errors = [r.error.message for r in result.results if r.error] - if errors: - raise JujuError('\n'.join(errors)) - return await self._wait_for_new('application', application) - - async def destroy(self): - """Terminate all machines and resources for this model. - Is already implemented in controller.py. - """ - raise NotImplementedError() - - async def destroy_unit(self, *unit_names): - """Destroy units by name. - - """ - connection = self.connection() - app_facade = client.ApplicationFacade.from_connection(connection) - - log.debug( - 'Destroying unit%s %s', - 's' if len(unit_names) == 1 else '', - ' '.join(unit_names)) - - return await app_facade.DestroyUnits(list(unit_names)) - destroy_units = destroy_unit - - def get_backup(self, archive_id): - """Download a backup archive file. - - :param str archive_id: The id of the archive to download - :return str: Path to the archive file - - """ - raise NotImplementedError() - - def enable_ha( - self, num_controllers=0, constraints=None, series=None, to=None): - """Ensure sufficient controllers exist to provide redundancy. - - :param int num_controllers: Number of controllers to make available - :param constraints: Constraints to apply to the controller machines - :type constraints: :class:`juju.Constraints` - :param str series: Series of the controller machines - :param list to: Placement directives for controller machines, e.g.:: - - '23' - machine 23 - 'lxc:7' - new lxc container on machine 7 - '24/lxc/3' - lxc container 3 or machine 24 - - If None, a new machine is provisioned. - - """ - raise NotImplementedError() - - async def get_config(self): - """Return the configuration settings for this model. - - :returns: A ``dict`` mapping keys to `ConfigValue` instances, - which have `source` and `value` attributes. - """ - config_facade = client.ModelConfigFacade.from_connection( - self.connection() - ) - result = await config_facade.ModelGet() - config = result.config - for key, value in config.items(): - config[key] = ConfigValue.from_json(value) - return config - - async def get_constraints(self): - """Return the machine constraints for this model. - - :returns: A ``dict`` of constraints. - """ - constraints = {} - client_facade = client.ClientFacade.from_connection(self.connection()) - result = await client_facade.GetModelConstraints() - - # GetModelConstraints returns GetConstraintsResults which has a - # 'constraints' attribute. If no constraints have been set - # GetConstraintsResults.constraints is None. Otherwise - # GetConstraintsResults.constraints has an attribute for each possible - # constraint, each of these in turn will be None if they have not been - # set. - if result.constraints: - constraint_types = [a for a in dir(result.constraints) - if a in Value._toSchema.keys()] - for constraint in constraint_types: - value = getattr(result.constraints, constraint) - if value is not None: - constraints[constraint] = getattr(result.constraints, - constraint) - return constraints - - def import_ssh_key(self, identity): - """Add a public SSH key from a trusted indentity source to this model. - - :param str identity: User identity in the form : - - """ - raise NotImplementedError() - import_ssh_keys = import_ssh_key - - async def get_machines(self): - """Return list of machines in this model. - - """ - return list(self.state.machines.keys()) - - def get_shares(self): - """Return list of all users with access to this model. - - """ - raise NotImplementedError() - - def get_spaces(self): - """Return list of all known spaces, including associated subnets. - - """ - raise NotImplementedError() - - async def get_ssh_key(self, raw_ssh=False): - """Return known SSH keys for this model. - :param bool raw_ssh: if True, returns the raw ssh key, - else it's fingerprint - - """ - key_facade = client.KeyManagerFacade.from_connection(self.connection()) - entity = {'tag': tag.model(self.info.uuid)} - entities = client.Entities([entity]) - return await key_facade.ListKeys(entities, raw_ssh) - get_ssh_keys = get_ssh_key - - def get_storage(self, filesystem=False, volume=False): - """Return details of storage instances. - - :param bool filesystem: Include filesystem storage - :param bool volume: Include volume storage - - """ - raise NotImplementedError() - - def get_storage_pools(self, names=None, providers=None): - """Return list of storage pools. - - :param list names: Only include pools with these names - :param list providers: Only include pools for these providers - - """ - raise NotImplementedError() - - def get_subnets(self, space=None, zone=None): - """Return list of known subnets. - - :param str space: Only include subnets in this space - :param str zone: Only include subnets in this zone - - """ - raise NotImplementedError() - - def remove_blocks(self): - """Remove all blocks from this model. - - """ - raise NotImplementedError() - - def remove_backup(self, backup_id): - """Delete a backup. - - :param str backup_id: The id of the backup to remove - - """ - raise NotImplementedError() - - def remove_cached_images(self, arch=None, kind=None, series=None): - """Remove cached OS images. - - :param str arch: Architecture of the images to remove - :param str kind: Image kind to remove, e.g. 'lxd' - :param str series: Image series to remove, e.g. 'xenial' - - """ - raise NotImplementedError() - - def remove_machine(self, *machine_ids): - """Remove a machine from this model. - - :param str *machine_ids: Ids of the machines to remove - - """ - raise NotImplementedError() - remove_machines = remove_machine - - async def remove_ssh_key(self, user, key): - """Remove a public SSH key(s) from this model. - - :param str key: Full ssh key - :param str user: Juju user to which the key is registered - - """ - key_facade = client.KeyManagerFacade.from_connection(self.connection()) - key = base64.b64decode(bytes(key.strip().split()[1].encode('ascii'))) - key = hashlib.md5(key).hexdigest() - key = ':'.join(a + b for a, b in zip(key[::2], key[1::2])) - await key_facade.DeleteKeys([key], user) - remove_ssh_keys = remove_ssh_key - - def restore_backup( - self, bootstrap=False, constraints=None, archive=None, - backup_id=None, upload_tools=False): - """Restore a backup archive to a new controller. - - :param bool bootstrap: Bootstrap a new state machine - :param constraints: Model constraints - :type constraints: :class:`juju.Constraints` - :param str archive: Path to backup archive to restore - :param str backup_id: Id of backup to restore - :param bool upload_tools: Upload tools if bootstrapping a new machine - - """ - raise NotImplementedError() - - def retry_provisioning(self): - """Retry provisioning for failed machines. - - """ - raise NotImplementedError() - - def run(self, command, timeout=None): - """Run command on all machines in this model. - - :param str command: The command to run - :param int timeout: Time to wait before command is considered failed - - """ - raise NotImplementedError() - - async def set_config(self, config): - """Set configuration keys on this model. - - :param dict config: Mapping of config keys to either string values or - `ConfigValue` instances, as returned by `get_config`. - """ - config_facade = client.ModelConfigFacade.from_connection( - self.connection() - ) - for key, value in config.items(): - if isinstance(value, ConfigValue): - config[key] = value.value - await config_facade.ModelSet(config) - - async def set_constraints(self, constraints): - """Set machine constraints on this model. - - :param dict config: Mapping of model constraints - """ - client_facade = client.ClientFacade.from_connection(self.connection()) - await client_facade.SetModelConstraints( - application='', - constraints=constraints) - - async def get_action_output(self, action_uuid, wait=None): - """Get the results of an action by ID. - - :param str action_uuid: Id of the action - :param int wait: Time in seconds to wait for action to complete. - :return dict: Output from action - :raises: :class:`JujuError` if invalid action_uuid - """ - action_facade = client.ActionFacade.from_connection( - self.connection() - ) - entity = [{'tag': tag.action(action_uuid)}] - # Cannot use self.wait_for_action as the action event has probably - # already happened and self.wait_for_action works by processing - # model deltas and checking if they match our type. If the action - # has already occured then the delta has gone. - - async def _wait_for_action_status(): - while True: - action_output = await action_facade.Actions(entity) - if action_output.results[0].status in ('completed', 'failed'): - return - else: - await asyncio.sleep(1) - await asyncio.wait_for( - _wait_for_action_status(), - timeout=wait) - action_output = await action_facade.Actions(entity) - # ActionResult.output is None if the action produced no output - if action_output.results[0].output is None: - output = {} - else: - output = action_output.results[0].output - return output - - async def get_action_status(self, uuid_or_prefix=None, name=None): - """Get the status of all actions, filtered by ID, ID prefix, or name. - - :param str uuid_or_prefix: Filter by action uuid or prefix - :param str name: Filter by action name - - """ - results = {} - action_results = [] - action_facade = client.ActionFacade.from_connection( - self.connection() - ) - if name: - name_results = await action_facade.FindActionsByNames([name]) - action_results.extend(name_results.actions[0].actions) - if uuid_or_prefix: - # Collect list of actions matching uuid or prefix - matching_actions = await action_facade.FindActionTagsByPrefix( - [uuid_or_prefix]) - entities = [] - for actions in matching_actions.matches.values(): - entities = [{'tag': a.tag} for a in actions] - # Get action results matching action tags - uuid_results = await action_facade.Actions(entities) - action_results.extend(uuid_results.results) - for a in action_results: - results[tag.untag('action-', a.action.tag)] = a.status - return results - - def get_budget(self, budget_name): - """Get budget usage info. - - :param str budget_name: Name of budget - - """ - raise NotImplementedError() - - async def get_status(self, filters=None, utc=False): - """Return the status of the model. - - :param str filters: Optional list of applications, units, or machines - to include, which can use wildcards ('*'). - :param bool utc: Display time as UTC in RFC3339 format - - """ - client_facade = client.ClientFacade.from_connection(self.connection()) - return await client_facade.FullStatus(filters) - - def sync_tools( - self, all_=False, destination=None, dry_run=False, public=False, - source=None, stream=None, version=None): - """Copy Juju tools into this model. - - :param bool all_: Copy all versions, not just the latest - :param str destination: Path to local destination directory - :param bool dry_run: Don't do the actual copy - :param bool public: Tools are for a public cloud, so generate mirrors - information - :param str source: Path to local source directory - :param str stream: Simplestreams stream for which to sync metadata - :param str version: Copy a specific major.minor version - - """ - raise NotImplementedError() - - def unblock(self, *commands): - """Unblock an operation that would alter this model. - - :param str *commands: The commands to unblock. Valid values are - 'all-changes', 'destroy-model', 'remove-object' - - """ - raise NotImplementedError() - - def unset_config(self, *keys): - """Unset configuration on this model. - - :param str *keys: The keys to unset - - """ - raise NotImplementedError() - - def upgrade_gui(self): - """Upgrade the Juju GUI for this model. - - """ - raise NotImplementedError() - - def upgrade_juju( - self, dry_run=False, reset_previous_upgrade=False, - upload_tools=False, version=None): - """Upgrade Juju on all machines in a model. - - :param bool dry_run: Don't do the actual upgrade - :param bool reset_previous_upgrade: Clear the previous (incomplete) - upgrade status - :param bool upload_tools: Upload local version of tools - :param str version: Upgrade to a specific version - - """ - raise NotImplementedError() - - def upload_backup(self, archive_path): - """Store a backup archive remotely in Juju. - - :param str archive_path: Path to local archive - - """ - raise NotImplementedError() - - @property - def charmstore(self): - return self._charmstore - - async def get_metrics(self, *tags): - """Retrieve metrics. - - :param str *tags: Tags of entities from which to retrieve metrics. - No tags retrieves the metrics of all units in the model. - :return: Dictionary of unit_name:metrics - - """ - log.debug("Retrieving metrics for %s", - ', '.join(tags) if tags else "all units") - - metrics_facade = client.MetricsDebugFacade.from_connection( - self.connection()) - - entities = [client.Entity(tag) for tag in tags] - metrics_result = await metrics_facade.GetMetrics(entities) - - metrics = collections.defaultdict(list) - - for entity_metrics in metrics_result.results: - error = entity_metrics.error - if error: - if "is not a valid tag" in error: - raise ValueError(error.message) - else: - raise Exception(error.message) - - for metric in entity_metrics.metrics: - metrics[metric.unit].append(vars(metric)) - - return metrics - - -def get_charm_series(path): - """Inspects the charm directory at ``path`` and returns a default - series from its metadata.yaml (the first item in the 'series' list). - - Returns None if no series can be determined. - - """ - md = Path(path) / "metadata.yaml" - if not md.exists(): - return None - data = yaml.load(md.open()) - series = data.get('series') - return series[0] if series else None - - -class BundleHandler: - """ - Handle bundles by using the API to translate bundle YAML into a plan of - steps and then dispatching each of those using the API. - """ - def __init__(self, model): - self.model = model - self.charmstore = model.charmstore - self.plan = [] - self.references = {} - self._units_by_app = {} - for unit_name, unit in model.units.items(): - app_units = self._units_by_app.setdefault(unit.application, []) - app_units.append(unit_name) - self.bundle_facade = client.BundleFacade.from_connection( - model.connection()) - self.client_facade = client.ClientFacade.from_connection( - model.connection()) - self.app_facade = client.ApplicationFacade.from_connection( - model.connection()) - self.ann_facade = client.AnnotationsFacade.from_connection( - model.connection()) - - async def _handle_local_charms(self, bundle): - """Search for references to local charms (i.e. filesystem paths) - in the bundle. Upload the local charms to the model, and replace - the filesystem paths with appropriate 'local:' paths in the bundle. - - Return the modified bundle. - - :param dict bundle: Bundle dictionary - :return: Modified bundle dictionary - - """ - apps, args = [], [] - - default_series = bundle.get('series') - apps_dict = bundle.get('applications', bundle.get('services', {})) - for app_name in self.applications: - app_dict = apps_dict[app_name] - charm_dir = os.path.abspath(os.path.expanduser(app_dict['charm'])) - if not os.path.isdir(charm_dir): - continue - series = ( - app_dict.get('series') or - default_series or - get_charm_series(charm_dir) - ) - if not series: - raise JujuError( - "Couldn't determine series for charm at {}. " - "Add a 'series' key to the bundle.".format(charm_dir)) - - # Keep track of what we need to update. We keep a list of apps - # that need to be updated, and a corresponding list of args - # needed to update those apps. - apps.append(app_name) - args.append((charm_dir, series)) - - if apps: - # If we have apps to update, spawn all the coroutines concurrently - # and wait for them to finish. - charm_urls = await asyncio.gather(*[ - self.model.add_local_charm_dir(*params) - for params in args - ], loop=self.model.loop) - # Update the 'charm:' entry for each app with the new 'local:' url. - for app_name, charm_url in zip(apps, charm_urls): - apps_dict[app_name]['charm'] = charm_url - - return bundle - - async def fetch_plan(self, entity_id): - is_store_url = entity_id.startswith('cs:') - - if not is_store_url and os.path.isfile(entity_id): - bundle_yaml = Path(entity_id).read_text() - elif not is_store_url and os.path.isdir(entity_id): - bundle_yaml = (Path(entity_id) / "bundle.yaml").read_text() - else: - bundle_yaml = await self.charmstore.files(entity_id, - filename='bundle.yaml', - read_file=True) - self.bundle = yaml.safe_load(bundle_yaml) - self.bundle = await self._handle_local_charms(self.bundle) - - self.plan = await self.bundle_facade.GetChanges( - yaml.dump(self.bundle)) - - if self.plan.errors: - raise JujuError(self.plan.errors) - - async def execute_plan(self): - for step in self.plan.changes: - method = getattr(self, step.method) - result = await method(*step.args) - self.references[step.id_] = result - - @property - def applications(self): - apps_dict = self.bundle.get('applications', - self.bundle.get('services', {})) - return list(apps_dict.keys()) - - def resolve(self, reference): - if reference and reference.startswith('$'): - reference = self.references[reference[1:]] - return reference - - async def addCharm(self, charm, series): - """ - :param charm string: - Charm holds the URL of the charm to be added. - - :param series string: - Series holds the series of the charm to be added - if the charm default is not sufficient. - """ - # We don't add local charms because they've already been added - # by self._handle_local_charms - if charm.startswith('local:'): - return charm - - entity_id = await self.charmstore.entityId(charm) - log.debug('Adding %s', entity_id) - await self.client_facade.AddCharm(None, entity_id) - return entity_id - - async def addMachines(self, params=None): - """ - :param params dict: - Dictionary specifying the machine to add. All keys are optional. - Keys include: - - series: string specifying the machine OS series. - - constraints: string holding machine constraints, if any. We'll - parse this into the json friendly dict that the juju api - expects. - - container_type: string holding the type of the container (for - instance ""lxd" or kvm"). It is not specified for top level - machines. - - parent_id: string holding a placeholder pointing to another - machine change or to a unit change. This value is only - specified in the case this machine is a container, in - which case also ContainerType is set. - - """ - params = params or {} - - # Normalize keys - params = {normalize_key(k): params[k] for k in params.keys()} - - # Fix up values, as necessary. - if 'parent_id' in params: - if params['parent_id'].startswith('$addUnit'): - unit = self.resolve(params['parent_id'])[0] - params['parent_id'] = unit.machine.entity_id - else: - params['parent_id'] = self.resolve(params['parent_id']) - - params['constraints'] = parse_constraints( - params.get('constraints')) - params['jobs'] = params.get('jobs', ['JobHostUnits']) - - if params.get('container_type') == 'lxc': - log.warning('Juju 2.0 does not support lxc containers. ' - 'Converting containers to lxd.') - params['container_type'] = 'lxd' - - # Submit the request. - params = client.AddMachineParams(**params) - results = await self.client_facade.AddMachines([params]) - error = results.machines[0].error - if error: - raise ValueError("Error adding machine: %s" % error.message) - machine = results.machines[0].machine - log.debug('Added new machine %s', machine) - return machine - - async def addRelation(self, endpoint1, endpoint2): - """ - :param endpoint1 string: - :param endpoint2 string: - Endpoint1 and Endpoint2 hold relation endpoints in the - "application:interface" form, where the application is always a - placeholder pointing to an application change, and the interface is - optional. Examples are "$deploy-42:web" or just "$deploy-42". - """ - endpoints = [endpoint1, endpoint2] - # resolve indirect references - for i in range(len(endpoints)): - parts = endpoints[i].split(':') - parts[0] = self.resolve(parts[0]) - endpoints[i] = ':'.join(parts) - - log.info('Relating %s <-> %s', *endpoints) - return await self.model.add_relation(*endpoints) - - async def deploy(self, charm, series, application, options, constraints, - storage, endpoint_bindings, *args): - """ - :param charm string: - Charm holds the URL of the charm to be used to deploy this - application. - - :param series string: - Series holds the series of the application to be deployed - if the charm default is not sufficient. - - :param application string: - Application holds the application name. - - :param options map[string]interface{}: - Options holds application options. - - :param constraints string: - Constraints holds the optional application constraints. - - :param storage map[string]string: - Storage holds the optional storage constraints. - - :param endpoint_bindings map[string]string: - EndpointBindings holds the optional endpoint bindings - - :param devices map[string]string: - Devices holds the optional devices constraints. - (Only given on Juju 2.5+) - - :param resources map[string]int: - Resources identifies the revision to use for each resource - of the application's charm. - - :param num_units int: - NumUnits holds the number of units required. For IAAS models, this - will be 0 and separate AddUnitChanges will be used. For Kubernetes - models, this will be used to scale the application. - (Only given on Juju 2.5+) - """ - # resolve indirect references - charm = self.resolve(charm) - - if len(args) == 1: - # Juju 2.4 and below only sends the resources - resources = args[0] - devices, num_units = None, None - else: - # Juju 2.5+ sends devices before resources, as well as num_units - # There might be placement but we need to ignore that. - devices, resources, num_units = args[:3] - - if not charm.startswith('local:'): - resources = await self.model._add_store_resources( - application, charm, overrides=resources) - await self.model._deploy( - charm_url=charm, - application=application, - series=series, - config=options, - constraints=constraints, - endpoint_bindings=endpoint_bindings, - resources=resources, - storage=storage, - devices=devices, - num_units=num_units, - ) - return application - - async def addUnit(self, application, to): - """ - :param application string: - Application holds the application placeholder name for which a unit - is added. - - :param to string: - To holds the optional location where to add the unit, as a - placeholder pointing to another unit change or to a machine change. - """ - application = self.resolve(application) - placement = self.resolve(to) - if self._units_by_app.get(application): - # enough units for this application already exist; - # claim one, and carry on - # NB: this should probably honor placement, but the juju client - # doesn't, so we're not bothering, either - unit_name = self._units_by_app[application].pop() - log.debug('Reusing unit %s for %s', unit_name, application) - return self.model.units[unit_name] - - log.debug('Adding new unit for %s%s', application, - ' to %s' % placement if placement else '') - return await self.model.applications[application].add_unit( - count=1, - to=placement, - ) - - async def scale(self, application, scale): - """ - Handle a change of scale to a k8s application. - - :param string application: - Application holds the application placeholder name for which a unit - is added. - - :param int scale: - New scale value to use. - """ - application = self.resolve(application) - return await self.model.applications[application].scale(scale=scale) - - async def expose(self, application): - """ - :param application string: - Application holds the placeholder name of the application that must - be exposed. - """ - application = self.resolve(application) - log.info('Exposing %s', application) - return await self.model.applications[application].expose() - - async def setAnnotations(self, id_, entity_type, annotations): - """ - :param id_ string: - Id is the placeholder for the application or machine change - corresponding to the entity to be annotated. - - :param entity_type EntityType: - EntityType holds the type of the entity, "application" or - "machine". - - :param annotations map[string]string: - Annotations holds the annotations as key/value pairs. - """ - entity_id = self.resolve(id_) - try: - entity = self.model.state.get_entity(entity_type, entity_id) - except KeyError: - entity = await self.model._wait_for_new(entity_type, entity_id) - return await entity.set_annotations(annotations) - - -class CharmStore: - """ - Async wrapper around theblues.charmstore.CharmStore - """ - def __init__(self, loop, cs_timeout=20): - self.loop = loop - self._cs = theblues.charmstore.CharmStore(timeout=cs_timeout) - - def __getattr__(self, name): - """ - Wrap method calls in coroutines that use run_in_executor to make them - async. - """ - attr = getattr(self._cs, name) - if not callable(attr): - wrapper = partial(getattr, self._cs, name) - setattr(self, name, wrapper) - else: - async def coro(*args, **kwargs): - method = partial(attr, *args, **kwargs) - for attempt in range(1, 4): - try: - return await self.loop.run_in_executor(None, method) - except theblues.errors.ServerError: - if attempt == 3: - raise - await asyncio.sleep(1, loop=self.loop) - setattr(self, name, coro) - wrapper = coro - return wrapper - - -class CharmArchiveGenerator: - """ - Create a Zip archive of a local charm directory for upload to a controller. - - This is used automatically by - `Model.add_local_charm_dir <#juju.model.Model.add_local_charm_dir>`_. - """ - def __init__(self, path): - self.path = os.path.abspath(os.path.expanduser(path)) - - def make_archive(self, path): - """Create archive of directory and write to ``path``. - - :param path: Path to archive - - Ignored:: - - * build/* - This is used for packing the charm itself and any - similar tasks. - * */.* - Hidden files are all ignored for now. This will most - likely be changed into a specific ignore list - (.bzr, etc) - - """ - zf = zipfile.ZipFile(path, 'w', zipfile.ZIP_DEFLATED) - for dirpath, dirnames, filenames in os.walk(self.path): - relative_path = dirpath[len(self.path) + 1:] - if relative_path and not self._ignore(relative_path): - zf.write(dirpath, relative_path) - for name in filenames: - archive_name = os.path.join(relative_path, name) - if not self._ignore(archive_name): - real_path = os.path.join(dirpath, name) - self._check_type(real_path) - if os.path.islink(real_path): - self._check_link(real_path) - self._write_symlink( - zf, os.readlink(real_path), archive_name) - else: - zf.write(real_path, archive_name) - zf.close() - return path - - def _check_type(self, path): - """Check the path - """ - s = os.stat(path) - if stat.S_ISDIR(s.st_mode) or stat.S_ISREG(s.st_mode): - return path - raise ValueError("Invalid Charm at % %s" % ( - path, "Invalid file type for a charm")) - - def _check_link(self, path): - link_path = os.readlink(path) - if link_path[0] == "/": - raise ValueError( - "Invalid Charm at %s: %s" % ( - path, "Absolute links are invalid")) - path_dir = os.path.dirname(path) - link_path = os.path.join(path_dir, link_path) - if not link_path.startswith(os.path.abspath(self.path)): - raise ValueError( - "Invalid charm at %s %s" % ( - path, "Only internal symlinks are allowed")) - - def _write_symlink(self, zf, link_target, link_path): - """Package symlinks with appropriate zipfile metadata.""" - info = zipfile.ZipInfo() - info.filename = link_path - info.create_system = 3 - # Magic code for symlinks / py2/3 compat - # 27166663808 = (stat.S_IFLNK | 0755) << 16 - info.external_attr = 2716663808 - zf.writestr(info, link_target) - - def _ignore(self, path): - if path == "build" or path.startswith("build/"): - return True - if path.startswith('.'): - return True diff --git a/modules/libjuju/juju/placement.py b/modules/libjuju/juju/placement.py deleted file mode 100644 index d0d42f7..0000000 --- a/modules/libjuju/juju/placement.py +++ /dev/null @@ -1,58 +0,0 @@ -# -# This module allows us to parse a machine placement directive into a -# Placement object suitable for passing through the websocket API. -# -# Once https://bugs.launchpad.net/juju/+bug/1645480 is addressed, this -# module should be deprecated. -# - -from .client import client - -MACHINE_SCOPE = "#" - - -def parse(directive): - """ - Given a string in the format `scope:directive`, or simply `scope` - or `directive`, return a Placement object suitable for passing - back over the websocket API. - - """ - if not directive: - # Handle null case - return None - - if isinstance(directive, (list, tuple)): - results = [] - for d in directive: - results.extend(parse(d)) - return results - - if isinstance(directive, (dict, client.Placement)): - # We've been handed something that we can simply hand back to - # the api. (Forwards compatibility) - return [directive] - - # Juju 2.0 can't handle lxc containers. - directive = directive.replace('lxc', 'lxd') - - if ":" in directive: - # Planner has given us a scope and directive in string form - scope, directive = directive.split(":") - return [client.Placement(scope=scope, directive=directive)] - - if directive.isdigit(): - # Planner has given us a machine id (we rely on juju core to - # verify its validity.) - return [client.Placement(scope=MACHINE_SCOPE, directive=directive)] - - if "/" in directive: - # e.g. "0/lxd/0" - # https://github.com/juju/juju/blob/master/instance/placement_test.go#L29 - return [ - client.Placement(scope=MACHINE_SCOPE, directive=directive), - ] - - # Planner has probably given us a container type. Leave it up to - # juju core to verify that it is valid. - return [client.Placement(scope=directive)] diff --git a/modules/libjuju/juju/provisioner.py b/modules/libjuju/juju/provisioner.py deleted file mode 100644 index d937cad..0000000 --- a/modules/libjuju/juju/provisioner.py +++ /dev/null @@ -1,369 +0,0 @@ -# Copyright 2019 Canonical Ltd. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import os -import re -import shlex -import tempfile -import uuid -from subprocess import CalledProcessError - -import paramiko - -from .client import client - -arches = [ - [re.compile(r"amd64|x86_64"), "amd64"], - [re.compile(r"i?[3-9]86"), "i386"], - [re.compile(r"(arm$)|(armv.*)"), "armhf"], - [re.compile(r"aarch64"), "arm64"], - [re.compile(r"ppc64|ppc64el|ppc64le"), "ppc64el"], - [re.compile(r"s390x?"), "s390x"], - -] - - -def normalize_arch(rawArch): - """Normalize the architecture string.""" - for arch in arches: - if arch[0].match(rawArch): - return arch[1] - - -DETECTION_SCRIPT = """#!/bin/bash -set -e -os_id=$(grep '^ID=' /etc/os-release | tr -d '"' | cut -d= -f2) -if [ "$os_id" = 'centos' ]; then - os_version=$(grep '^VERSION_ID=' /etc/os-release | tr -d '"' | cut -d= -f2) - echo "centos$os_version" -else - lsb_release -cs -fi -uname -m -grep MemTotal /proc/meminfo -cat /proc/cpuinfo -""" - -INITIALIZE_UBUNTU_SCRIPT = """set -e -(id ubuntu &> /dev/null) || useradd -m ubuntu -s /bin/bash -umask 0077 -temp=$(mktemp) -echo 'ubuntu ALL=(ALL) NOPASSWD:ALL' > $temp -install -m 0440 $temp /etc/sudoers.d/90-juju-ubuntu -rm $temp -su ubuntu -c 'install -D -m 0600 /dev/null ~/.ssh/authorized_keys' -export authorized_keys="{}" -if [ ! -z "$authorized_keys" ]; then - su ubuntu -c 'echo $authorized_keys >> ~/.ssh/authorized_keys' -fi -""" - - -class SSHProvisioner: - """Provision a manually created machine via SSH.""" - user = "" - host = "" - private_key_path = "" - - def __init__(self, user, host, private_key_path): - self.host = host - self.user = user - self.private_key_path = private_key_path - - def _get_ssh_client(self, host, user, key): - """Return a connected Paramiko ssh object. - - :param str host: The host to connect to. - :param str user: The user to connect as. - :param str key: The private key to authenticate with. - - :return: object: A paramiko.SSHClient - :raises: :class:`paramiko.ssh_exception.SSHException` if the - connection failed - """ - - ssh = paramiko.SSHClient() - ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) - - pkey = None - - # Read the private key into a paramiko.RSAKey - if os.path.exists(key): - with open(key, 'r') as f: - pkey = paramiko.RSAKey.from_private_key(f) - - ####################################################################### - # There is a bug in some versions of OpenSSH 4.3 (CentOS/RHEL5) where # - # the server may not send the SSH_MSG_USERAUTH_BANNER message except # - # when responding to an auth_none request. For example, paramiko will # - # attempt to use password authentication when a password is set, but # - # the server could deny that, instead requesting keyboard-interactive.# - # The hack to workaround this is to attempt a reconnect, which will # - # receive the right banner, and authentication can proceed. See the # - # following for more info: # - # https://github.com/paramiko/paramiko/issues/432 # - # https://github.com/paramiko/paramiko/pull/438 # - ####################################################################### - - try: - ssh.connect(host, port=22, username=user, pkey=pkey) - except paramiko.ssh_exception.SSHException as e: - if 'Error reading SSH protocol banner' == str(e): - # Once more, with feeling - ssh.connect(host, port=22, username=user, pkey=pkey) - else: - # Reraise the original exception - raise e - - return ssh - - def _run_command(self, ssh, cmd, pty=True): - """Run a command remotely via SSH. - - :param object ssh: The SSHClient - :param str cmd: The command to execute - :param list cmd: The `shlex.split` command to execute - :param bool pty: Whether to allocate a pty - - :return: tuple: The stdout and stderr of the command execution - :raises: :class:`CalledProcessError` if the command fails - """ - - if isinstance(cmd, str): - cmd = shlex.split(cmd) - - if type(cmd) is not list: - cmd = [cmd] - - cmds = ' '.join(cmd) - stdin, stdout, stderr = ssh.exec_command(cmds, get_pty=pty) - retcode = stdout.channel.recv_exit_status() - - if retcode > 0: - output = stderr.read().strip() - raise CalledProcessError(returncode=retcode, cmd=cmd, - output=output) - return ( - stdout.read().decode('utf-8').strip(), - stderr.read().decode('utf-8').strip() - ) - - def _init_ubuntu_user(self): - """Initialize the ubuntu user. - - :return: bool: If the initialization was successful - :raises: :class:`paramiko.ssh_exception.AuthenticationException` - if the authentication fails - """ - - ssh = None - try: - # Run w/o allocating a pty, so we fail if sudo prompts for a passwd - ssh = self._get_ssh_client( - self.host, - self.user, - self.private_key_path, - ) - stdout, stderr = self._run_command(ssh, "sudo -n true", pty=False) - except paramiko.ssh_exception.AuthenticationException as e: - raise e - finally: - if ssh: - ssh.close() - - # Infer the public key - public_key = None - public_key_path = "{}.pub".format(self.private_key_path) - - if not os.path.exists(public_key_path): - raise FileNotFoundError( - "Public key '{}' doesn't exist.".format(public_key_path) - ) - - with open(public_key_path, "r") as f: - public_key = f.readline() - - script = INITIALIZE_UBUNTU_SCRIPT.format(public_key) - - try: - ssh = self._get_ssh_client( - self.host, - self.user, - self.private_key_path, - ) - - self._run_command( - ssh, - ["sudo", "/bin/bash -c " + shlex.quote(script)], - pty=True - ) - except paramiko.ssh_exception.AuthenticationException as e: - raise e - finally: - ssh.close() - - return True - - def _detect_hardware_and_os(self, ssh): - """Detect the target hardware capabilities and OS series. - - :param object ssh: The SSHClient - :return: str: A raw string containing OS and hardware information. - """ - - info = { - 'series': '', - 'arch': '', - 'cpu-cores': '', - 'mem': '', - } - - stdout, stderr = self._run_command( - ssh, - ["sudo", "/bin/bash -c " + shlex.quote(DETECTION_SCRIPT)], - pty=True, - ) - - lines = stdout.split("\n") - info['series'] = lines[0].strip() - info['arch'] = normalize_arch(lines[1].strip()) - - memKb = re.split(r'\s+', lines[2])[1] - - # Convert megabytes -> kilobytes - info['mem'] = round(int(memKb) / 1024) - - # Detect available CPUs - recorded = {} - for line in lines[3:]: - physical_id = "" - print(line) - - if line.find("physical id") == 0: - physical_id = line.split(":")[1].strip() - elif line.find("cpu cores") == 0: - cores = line.split(":")[1].strip() - - if physical_id not in recorded.keys(): - info['cpu-cores'] += cores - recorded[physical_id] = True - - return info - - def provision_machine(self): - """Perform the initial provisioning of the target machine. - - :return: bool: The client.AddMachineParams - :raises: :class:`paramiko.ssh_exception.AuthenticationException` - if the upload fails - """ - params = client.AddMachineParams() - - if self._init_ubuntu_user(): - try: - - ssh = self._get_ssh_client( - self.host, - self.user, - self.private_key_path - ) - - hw = self._detect_hardware_and_os(ssh) - params.series = hw['series'] - params.instance_id = "manual:{}".format(self.host) - params.nonce = "manual:{}:{}".format( - self.host, - str(uuid.uuid4()), # a nop for Juju w/manual machines - ) - params.hardware_characteristics = { - 'arch': hw['arch'], - 'mem': int(hw['mem']), - 'cpu-cores': int(hw['cpu-cores']), - } - params.addresses = [{ - 'value': self.host, - 'type': 'ipv4', - 'scope': 'public', - }] - - except paramiko.ssh_exception.AuthenticationException as e: - raise e - finally: - ssh.close() - - return params - - async def install_agent(self, connection, nonce, machine_id): - """ - :param object connection: Connection to Juju API - :param str nonce: The nonce machine specification - :param str machine_id: The id assigned to the machine - - :return: bool: If the initialization was successful - """ - - # The path where the Juju agent should be installed. - data_dir = "/var/lib/juju" - - # Disabling this prevents `apt-get update` from running initially, so - # charms will fail to deploy - disable_package_commands = False - - client_facade = client.ClientFacade.from_connection(connection) - results = await client_facade.ProvisioningScript( - data_dir=data_dir, - disable_package_commands=disable_package_commands, - machine_id=machine_id, - nonce=nonce, - ) - - self._run_configure_script(results.script) - - def _run_configure_script(self, script): - """Run the script to install the Juju agent on the target machine. - - :param str script: The script returned by the ProvisioningScript API - :raises: :class:`paramiko.ssh_exception.AuthenticationException` - if the upload fails - """ - - _, tmpFile = tempfile.mkstemp() - with open(tmpFile, 'w') as f: - f.write(script) - - try: - # get ssh client - ssh = self._get_ssh_client( - self.host, - "ubuntu", - self.private_key_path, - ) - - # copy the local copy of the script to the remote machine - sftp = paramiko.SFTPClient.from_transport(ssh.get_transport()) - sftp.put( - tmpFile, - tmpFile, - ) - - # run the provisioning script - stdout, stderr = self._run_command( - ssh, - "sudo /bin/bash {}".format(tmpFile), - ) - - except paramiko.ssh_exception.AuthenticationException as e: - raise e - finally: - os.remove(tmpFile) - ssh.close() diff --git a/modules/libjuju/juju/relation.py b/modules/libjuju/juju/relation.py deleted file mode 100644 index d2f2053..0000000 --- a/modules/libjuju/juju/relation.py +++ /dev/null @@ -1,123 +0,0 @@ -import logging - -from . import model - -log = logging.getLogger(__name__) - - -class Endpoint: - def __init__(self, model, data): - self.model = model - self.data = data - - def __repr__(self): - return ''.format(self.application.name, self.name) - - @property - def application(self): - return self.model.applications[self.data['application-name']] - - @property - def name(self): - return self.data['relation']['name'] - - @property - def interface(self): - return self.data['relation']['interface'] - - @property - def role(self): - return self.data['relation']['role'] - - @property - def scope(self): - return self.data['relation']['scope'] - - -class Relation(model.ModelEntity): - def __repr__(self): - return ''.format(self.entity_id, self.key) - - @property - def endpoints(self): - return [Endpoint(self.model, data) - for data in self.safe_data['endpoints']] - - @property - def provides(self): - """ - The endpoint on the provides side of this relation, or None. - """ - for endpoint in self.endpoints: - if endpoint.role == 'provider': - return endpoint - return None - - @property - def requires(self): - """ - The endpoint on the requires side of this relation, or None. - """ - for endpoint in self.endpoints: - if endpoint.role == 'requirer': - return endpoint - return None - - @property - def peers(self): - """ - The peers endpoint of this relation, or None. - """ - for endpoint in self.endpoints: - if endpoint.role == 'peer': - return endpoint - return None - - @property - def is_subordinate(self): - return any(ep.scope == 'container' for ep in self.endpoints) - - @property - def is_peer(self): - return any(ep.role == 'peer' for ep in self.endpoints) - - def matches(self, *specs): - """ - Check if this relation matches relationship specs. - - Relation specs are strings that would be given to Juju to establish a - relation, and should be in the form ``[:]`` - where the ``:`` suffix is optional. If the suffix is - omitted, this relation will match on any endpoint as long as the given - application is involved. - - In other words, this relation will match a spec if that spec could have - created this relation. - - :return: True if all specs match. - """ - for spec in specs: - if ':' in spec: - app_name, endpoint_name = spec.split(':') - else: - app_name, endpoint_name = spec, None - for endpoint in self.endpoints: - if app_name == endpoint.application.name and \ - endpoint_name in (endpoint.name, None): - # found a match for this spec, so move to next one - break - else: - # no match for this spec - return False - return True - - @property - def applications(self): - """ - All applications involved in this relation. - """ - return [ep.application for ep in self.endpoints] - - async def destroy(self): - raise NotImplementedError() - # TODO: destroy a relation diff --git a/modules/libjuju/juju/tag.py b/modules/libjuju/juju/tag.py deleted file mode 100644 index 282e0a6..0000000 --- a/modules/libjuju/juju/tag.py +++ /dev/null @@ -1,40 +0,0 @@ -# TODO: Tags should be a proper class, so that we can distinguish whether -# something is already a tag or not. For example, 'user-foo' is a valid -# username, but is ambiguous with the already-tagged username 'foo'. - - -def _prefix(prefix, s): - if s and not s.startswith(prefix): - return '{}{}'.format(prefix, s) - return s - - -def untag(prefix, s): - if s and s.startswith(prefix): - return s[len(prefix):] - return s - - -def cloud(cloud_name): - return _prefix('cloud-', cloud_name) - - -def credential(cloud, user, credential_name): - credential_string = '{}_{}_{}'.format(cloud, user, credential_name) - return _prefix('cloudcred-', credential_string) - - -def model(cloud_name): - return _prefix('model-', cloud_name) - - -def user(username): - return _prefix('user-', username) - - -def application(app_name): - return _prefix('application-', app_name) - - -def action(action_uuid): - return _prefix('action-', action_uuid) diff --git a/modules/libjuju/juju/unit.py b/modules/libjuju/juju/unit.py deleted file mode 100644 index e8ecd96..0000000 --- a/modules/libjuju/juju/unit.py +++ /dev/null @@ -1,281 +0,0 @@ -import logging - -import pyrfc3339 - -from . import model -from .client import client - -log = logging.getLogger(__name__) - - -class Unit(model.ModelEntity): - @property - def agent_status(self): - """Returns the current agent status string. - - """ - return self.safe_data['agent-status']['current'] - - @property - def agent_status_since(self): - """Get the time when the `agent_status` was last updated. - - """ - return pyrfc3339.parse(self.safe_data['agent-status']['since']) - - @property - def agent_status_message(self): - """Get the agent status message. - - """ - return self.safe_data['agent-status']['message'] - - @property - def workload_status(self): - """Returns the current workload status string. - - """ - return self.safe_data['workload-status']['current'] - - @property - def workload_status_since(self): - """Get the time when the `workload_status` was last updated. - - """ - return pyrfc3339.parse(self.safe_data['workload-status']['since']) - - @property - def workload_status_message(self): - """Get the workload status message. - - """ - return self.safe_data['workload-status']['message'] - - @property - def machine(self): - """Get the machine object for this unit. - - """ - machine_id = self.safe_data['machine-id'] - if machine_id: - return self.model.machines.get(machine_id, None) - else: - return None - - @property - def public_address(self): - """ Get the public address. - - """ - return self.safe_data['public-address'] or None - - @property - def tag(self): - return 'unit-%s' % self.name.replace('/', '-') - - def add_storage(self, name, constraints=None): - """Add unit storage dynamically. - - :param str name: Storage name, as specified by the charm - :param str constraints: Comma-separated list of constraints in the - form 'POOL,COUNT,SIZE' - - """ - raise NotImplementedError() - - def collect_metrics(self): - """Collect metrics on this unit. - - """ - raise NotImplementedError() - - async def destroy(self): - """Destroy this unit. - - """ - app_facade = client.ApplicationFacade.from_connection(self.connection) - - log.debug( - 'Destroying %s', self.name) - - return await app_facade.DestroyUnits([self.name]) - remove = destroy - - def get_resources(self, details=False): - """Return resources for this unit. - - :param bool details: Include detailed info about resources used by each - unit - - """ - raise NotImplementedError() - - def resolved(self, retry=False): - """Mark unit errors resolved. - - :param bool retry: Re-execute failed hooks - - """ - raise NotImplementedError() - - async def run(self, command, timeout=None): - """Run command on this unit. - - :param str command: The command to run - :param int timeout: Time, in seconds, to wait before command is - considered failed - :returns: A :class:`juju.action.Action` instance. - - """ - action = client.ActionFacade.from_connection(self.connection) - - log.debug( - 'Running `%s` on %s', command, self.name) - - if timeout: - # Convert seconds to nanoseconds - timeout = int(timeout * 1000000000) - - res = await action.Run( - [], - command, - [], - timeout, - [self.name], - ) - return await self.model.wait_for_action(res.results[0].action.tag) - - async def run_action(self, action_name, **params): - """Run an action on this unit. - - :param str action_name: Name of action to run - :param **params: Action parameters - :returns: A :class:`juju.action.Action` instance. - - Note that this only enqueues the action. You will need to call - ``action.wait()`` on the resulting `Action` instance if you wish - to block until the action is complete. - - """ - action_facade = client.ActionFacade.from_connection(self.connection) - - log.debug('Starting action `%s` on %s', action_name, self.name) - - res = await action_facade.Enqueue([client.Action( - name=action_name, - parameters=params, - receiver=self.tag, - )]) - action = res.results[0].action - error = res.results[0].error - if error and error.code == 'not found': - raise ValueError('Action `%s` not found on %s' % (action_name, - self.name)) - elif error: - raise Exception('Unknown action error: %s' % error.serialize()) - action_id = action.tag[len('action-'):] - log.debug('Action started as %s', action_id) - # we mustn't use wait_for_action because that blocks until the - # action is complete, rather than just being in the model - return await self.model._wait_for_new('action', action_id) - - async def scp_to(self, source, destination, user='ubuntu', proxy=False, - scp_opts=''): - """Transfer files to this unit. - - :param str source: Local path of file(s) to transfer - :param str destination: Remote destination of transferred files - :param str user: Remote username - :param bool proxy: Proxy through the Juju API server - :param scp_opts: Additional options to the `scp` command - :type scp_opts: str or list - """ - await self.machine.scp_to(source, destination, user=user, proxy=proxy, - scp_opts=scp_opts) - - async def scp_from(self, source, destination, user='ubuntu', proxy=False, - scp_opts=''): - """Transfer files from this unit. - - :param str source: Remote path of file(s) to transfer - :param str destination: Local destination of transferred files - :param str user: Remote username - :param bool proxy: Proxy through the Juju API server - :param scp_opts: Additional options to the `scp` command - :type scp_opts: str or list - """ - await self.machine.scp_from(source, destination, user=user, - proxy=proxy, scp_opts=scp_opts) - - def set_meter_status(self): - """Set the meter status on this unit. - - """ - raise NotImplementedError() - - def ssh( - self, command, user=None, proxy=False, ssh_opts=None): - """Execute a command over SSH on this unit. - - :param str command: Command to execute - :param str user: Remote username - :param bool proxy: Proxy through the Juju API server - :param str ssh_opts: Additional options to the `ssh` command - - """ - raise NotImplementedError() - - def status_history(self, num=20, utc=False): - """Get status history for this unit. - - :param int num: Size of history backlog - :param bool utc: Display time as UTC in RFC3339 format - - """ - raise NotImplementedError() - - async def is_leader_from_status(self): - """ - Check to see if this unit is the leader. Returns True if so, and - False if it is not, or if leadership does not make sense - (e.g., there is no leader in this application.) - - This method is a kluge that calls FullStatus in the - ClientFacade to get its information. Once - https://bugs.launchpad.net/juju/+bug/1643691 is resolved, we - should add a simple .is_leader property, and deprecate this - method. - - """ - app = self.name.split("/")[0] - - c = client.ClientFacade.from_connection(self.connection) - - status = await c.FullStatus(None) - - # FullStatus may be more up to date than our model, and the - # unit may have gone away, or we may be doing something silly, - # like trying to fetch leadership for a subordinate, which - # will not be filed where we expect in the model. In those - # cases, we may simply return False, as a nonexistent or - # subordinate unit is not a leader. - if not status.applications.get(app): - return False - - if not status.applications[app].get('units'): - return False - - if not status.applications[app]['units'].get(self.name): - return False - - return status.applications[app]['units'][self.name].get('leader', - False) - - async def get_metrics(self): - """Get metrics for the unit. - - :return: Dictionary of metrics for this unit. - - """ - metrics = await self.model.get_metrics(self.tag) - return metrics[self.name] diff --git a/modules/libjuju/juju/user.py b/modules/libjuju/juju/user.py deleted file mode 100644 index 389d210..0000000 --- a/modules/libjuju/juju/user.py +++ /dev/null @@ -1,86 +0,0 @@ -import logging - -import pyrfc3339 - -from . import tag - -log = logging.getLogger(__name__) - - -class User(object): - def __init__(self, controller, user_info, secret_key=None): - self.controller = controller - self._user_info = user_info - self._secret_key = secret_key - - @property - def tag(self): - return tag.user(self.username) - - @property - def username(self): - return self._user_info.username - - @property - def display_name(self): - return self._user_info.display_name - - @property - def last_connection(self): - return pyrfc3339.parse(self._user_info.last_connection) - - @property - def access(self): - return self._user_info.access - - @property - def date_created(self): - return self._user_info.date_created - - @property - def enabled(self): - return not self._user_info.disabled - - @property - def disabled(self): - return self._user_info.disabled - - @property - def created_by(self): - return self._user_info.created_by - - @property - def secret_key(self): - return self._secret_key - - async def set_password(self, password): - """Update this user's password. - """ - await self.controller.change_user_password(self.username, password) - self._user_info.password = password - - async def grant(self, acl='login'): - """Set access level of this user on the controller. - - :param str acl: Access control ('login', 'add-model', or 'superuser') - """ - if await self.controller.grant(self.username, acl): - self._user_info.access = acl - - async def revoke(self): - """Removes all access rights for this user from the controller. - """ - await self.controller.revoke(self.username) - self._user_info.access = '' - - async def disable(self): - """Disable this user. - """ - await self.controller.disable_user(self.username) - self._user_info.disabled = True - - async def enable(self): - """Re-enable this user. - """ - await self.controller.enable_user(self.username) - self._user_info.disabled = False diff --git a/modules/libjuju/juju/utils.py b/modules/libjuju/juju/utils.py deleted file mode 100644 index 1038ed1..0000000 --- a/modules/libjuju/juju/utils.py +++ /dev/null @@ -1,165 +0,0 @@ -import asyncio -import os -from collections import defaultdict -from functools import partial -from pathlib import Path -import base64 -from pyasn1.type import univ, char -from pyasn1.codec.der.encoder import encode - - -async def execute_process(*cmd, log=None, loop=None): - ''' - Wrapper around asyncio.create_subprocess_exec. - - ''' - p = await asyncio.create_subprocess_exec( - *cmd, - stdin=asyncio.subprocess.PIPE, - stdout=asyncio.subprocess.PIPE, - stderr=asyncio.subprocess.PIPE, - loop=loop) - stdout, stderr = await p.communicate() - if log: - log.debug("Exec %s -> %d", cmd, p.returncode) - if stdout: - log.debug(stdout.decode('utf-8')) - if stderr: - log.debug(stderr.decode('utf-8')) - return p.returncode == 0 - - -def _read_ssh_key(): - ''' - Inner function for read_ssh_key, suitable for passing to our - Executor. - - ''' - default_data_dir = Path(Path.home(), ".local", "share", "juju") - juju_data = os.environ.get("JUJU_DATA", default_data_dir) - ssh_key_path = Path(juju_data, 'ssh', 'juju_id_rsa.pub') - with ssh_key_path.open('r') as ssh_key_file: - ssh_key = ssh_key_file.readlines()[0].strip() - return ssh_key - - -async def read_ssh_key(loop): - ''' - Attempt to read the local juju admin's public ssh key, so that it - can be passed on to a model. - - ''' - loop = loop or asyncio.get_event_loop() - return await loop.run_in_executor(None, _read_ssh_key) - - -class IdQueue: - """ - Wrapper around asyncio.Queue that maintains a separate queue for each ID. - """ - def __init__(self, maxsize=0, *, loop=None): - self._queues = defaultdict(partial(asyncio.Queue, maxsize, loop=loop)) - - async def get(self, id): - value = await self._queues[id].get() - del self._queues[id] - if isinstance(value, Exception): - raise value - return value - - async def put(self, id, value): - await self._queues[id].put(value) - - async def put_all(self, value): - for queue in self._queues.values(): - await queue.put(value) - - -async def block_until(*conditions, timeout=None, wait_period=0.5, loop=None): - """Return only after all conditions are true. - - """ - async def _block(): - while not all(c() for c in conditions): - await asyncio.sleep(wait_period, loop=loop) - await asyncio.wait_for(_block(), timeout, loop=loop) - - -async def run_with_interrupt(task, *events, loop=None): - """ - Awaits a task while allowing it to be interrupted by one or more - `asyncio.Event`s. - - If the task finishes without the events becoming set, the results of the - task will be returned. If the event become set, the task will be cancelled - ``None`` will be returned. - - :param task: Task to run - :param events: One or more `asyncio.Event`s which, if set, will interrupt - `task` and cause it to be cancelled. - :param loop: Optional event loop to use other than the default. - """ - loop = loop or asyncio.get_event_loop() - task = asyncio.ensure_future(task, loop=loop) - event_tasks = [loop.create_task(event.wait()) for event in events] - done, pending = await asyncio.wait([task] + event_tasks, - loop=loop, - return_when=asyncio.FIRST_COMPLETED) - for f in pending: - f.cancel() # cancel unfinished tasks - for f in done: - f.exception() # prevent "exception was not retrieved" errors - if task in done: - return task.result() # may raise exception - else: - return None - - -class Addrs(univ.SequenceOf): - componentType = char.PrintableString() - - -class RegistrationInfo(univ.Sequence): - """ - ASN.1 representation of: - - type RegistrationInfo struct { - User string - - Addrs []string - - SecretKey []byte - - ControllerName string - } - """ - pass - - -def generate_user_controller_access_token(username, controller_endpoints, secret_key, controller_name): - """" Implement in python what is currently done in GO - https://github.com/juju/juju/blob/a5ab92ec9b7f5da3678d9ac603fe52d45af24412/cmd/juju/user/utils.go#L16 - - :param username: name of the user to register - :param controller_endpoints: juju controller endpoints list in the format : - :param secret_key: base64 encoded string of the secret-key generated by juju - :param controller_name: name of the controller to register to. - """ - - # Secret key is returned as base64 encoded string in: - # https://websockets.readthedocs.io/en/stable/_modules/websockets/protocol.html#WebSocketCommonProtocol.recv - # Deconding it before marshalling into the ASN.1 message - secret_key = base64.b64decode(secret_key) - addr = Addrs() - for endpoint in controller_endpoints: - addr.append(endpoint) - - registration_string = RegistrationInfo() - registration_string.setComponentByPosition(0, char.PrintableString(username)) - registration_string.setComponentByPosition(1, addr) - registration_string.setComponentByPosition(2, univ.OctetString(secret_key)) - registration_string.setComponentByPosition(3, char.PrintableString(controller_name)) - registration_string = encode(registration_string) - remainder = len(registration_string) % 3 - registration_string += b"\0" * (3 - remainder) - return base64.urlsafe_b64encode(registration_string) diff --git a/modules/libjuju/scripts/gendoc b/modules/libjuju/scripts/gendoc deleted file mode 100755 index 3ef628e..0000000 --- a/modules/libjuju/scripts/gendoc +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -packages=( - juju.action - juju.annotation - juju.application - juju.cloud - juju.constraints - juju.controller - juju.delta - juju.errors - juju.exceptions - juju.juju - juju.loop - juju.machine - juju.model - juju.placement - juju.relation - juju.tag - juju.unit - juju.utils -) - -for pkg in ${packages[@]}; do - cat < docs/api/$pkg.rst -$pkg -$(echo $pkg | sed -e 's/./=/g') - -.. rubric:: Summary - -.. automembersummary:: $pkg - -.. rubric:: Reference - -.. automodule:: $pkg - :members: - :undoc-members: - :show-inheritance: -EOD -done diff --git a/modules/libjuju/setup.py b/modules/libjuju/setup.py deleted file mode 100644 index 7134677..0000000 --- a/modules/libjuju/setup.py +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright 2016 Canonical Ltd. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from pathlib import Path -from setuptools import setup, find_packages - -here = Path(__file__).absolute().parent -readme = here / 'docs' / 'readme.rst' -changelog = here / 'docs' / 'changelog.rst' -long_description = '{}\n\n{}'.format( - readme.read_text(), - changelog.read_text() - ) -version = here / 'VERSION' - -setup( - name='juju', - version=version.read_text().strip(), - packages=find_packages( - exclude=["*.tests", "*.tests.*", "tests.*", "tests"]), - install_requires=[ - 'macaroonbakery>=1.1,<2.0', - 'pyRFC3339>=1.0,<2.0', - 'pyyaml>=3.0,<=4.2', - 'theblues>=0.3.8,<1.0', - 'websockets>=7.0,<8.0', - 'paramiko>=2.4.0,<3.0.0', - 'pyasn1>=0.4.4', - ], - include_package_data=True, - maintainer='Juju Ecosystem Engineering', - maintainer_email='juju@lists.ubuntu.com', - description=('Python library for Juju'), - long_description=long_description, - url='https://github.com/juju/python-libjuju', - license='Apache 2', - classifiers=[ - "Development Status :: 3 - Alpha", - "Intended Audience :: Developers", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.5", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", - ], - entry_points={ - 'console_scripts': [ - ], - }, -) diff --git a/modules/libjuju/tests/__init__.py b/modules/libjuju/tests/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/modules/libjuju/tests/base.py b/modules/libjuju/tests/base.py deleted file mode 100644 index 600372c..0000000 --- a/modules/libjuju/tests/base.py +++ /dev/null @@ -1,148 +0,0 @@ -import inspect -import subprocess -import uuid -from contextlib import contextmanager -from pathlib import Path - -import mock -from juju.client.jujudata import FileJujuData -from juju.controller import Controller - -import pytest - - -def is_bootstrapped(): - try: - result = subprocess.run(['juju', 'switch'], stdout=subprocess.PIPE) - return ( - result.returncode == 0 and - len(result.stdout.decode().strip()) > 0) - except FileNotFoundError: - return False - - -bootstrapped = pytest.mark.skipif( - not is_bootstrapped(), - reason='bootstrapped Juju environment required') - -test_run_nonce = uuid.uuid4().hex[-4:] - - -class CleanController(): - """ - Context manager that automatically connects and disconnects from - the currently active controller. - - Note: Unlike CleanModel, this will not create a new controller for you, - and an active controller must already be available. - """ - def __init__(self): - self._controller = None - - async def __aenter__(self): - self._controller = Controller() - await self._controller.connect() - return self._controller - - async def __aexit__(self, exc_type, exc, tb): - await self._controller.disconnect() - - -class CleanModel(): - """ - Context manager that automatically connects to the currently active - controller, adds a fresh model, returns the connection to that model, - and automatically disconnects and cleans up the model. - - The new model is also set as the current default for the controller - connection. - """ - def __init__(self, bakery_client=None): - self._controller = None - self._model = None - self._model_uuid = None - self._bakery_client = bakery_client - - async def __aenter__(self): - model_nonce = uuid.uuid4().hex[-4:] - frame = inspect.stack()[1] - test_name = frame.function.replace('_', '-') - jujudata = TestJujuData() - self._controller = Controller( - jujudata=jujudata, - bakery_client=self._bakery_client, - ) - controller_name = jujudata.current_controller() - user_name = jujudata.accounts()[controller_name]['user'] - await self._controller.connect(controller_name) - - model_name = 'test-{}-{}-{}'.format( - test_run_nonce, - test_name, - model_nonce, - ) - self._model = await self._controller.add_model(model_name) - - # Change the JujuData instance so that it will return the new - # model as the current model name, so that we'll connect - # to it by default. - jujudata.set_model( - controller_name, - user_name + "/" + model_name, - self._model.info.uuid, - ) - - # save the model UUID in case test closes model - self._model_uuid = self._model.info.uuid - - return self._model - - async def __aexit__(self, exc_type, exc, tb): - await self._model.disconnect() - await self._controller.destroy_model(self._model_uuid) - await self._controller.disconnect() - - -class TestJujuData(FileJujuData): - def __init__(self): - self.__controller_name = None - self.__model_name = None - self.__model_uuid = None - super().__init__() - - def set_model(self, controller_name, model_name, model_uuid): - self.__controller_name = controller_name - self.__model_name = model_name - self.__model_uuid = model_uuid - - def current_model(self, *args, **kwargs): - return self.__model_name or super().current_model(*args, **kwargs) - - def models(self): - all_models = super().models() - if self.__model_name is None: - return all_models - all_models.setdefault(self.__controller_name, {}) - all_models[self.__controller_name].setdefault('models', {}) - cmodels = all_models[self.__controller_name]['models'] - cmodels[self.__model_name] = {'uuid': self.__model_uuid} - return all_models - - -class AsyncMock(mock.MagicMock): - async def __call__(self, *args, **kwargs): - return super().__call__(*args, **kwargs) - - -@contextmanager -def patch_file(filename): - """ - "Patch" a file so that its current contents are automatically restored - when the context is exited. - """ - filepath = Path(filename).expanduser() - data = filepath.read_bytes() - try: - yield - finally: - filepath.write_bytes(data) diff --git a/modules/libjuju/tests/bundle/bundle.yaml b/modules/libjuju/tests/bundle/bundle.yaml deleted file mode 100644 index 19a45ec..0000000 --- a/modules/libjuju/tests/bundle/bundle.yaml +++ /dev/null @@ -1,28 +0,0 @@ -series: xenial -services: - wordpress: - charm: "cs:trusty/wordpress-2" - num_units: 1 - annotations: - "gui-x": "339.5" - "gui-y": "-171" - to: - - "0" - mysql: - charm: "cs:trusty/mysql-26" - num_units: 1 - annotations: - "gui-x": "79.5" - "gui-y": "-142" - to: - - "1" -relations: - - - "wordpress:db" - - "mysql:db" -machines: - "0": - series: trusty - constraints: "arch=amd64 cores=1 cpu-power=100 mem=1740 root-disk=8192" - "1": - series: trusty - constraints: "arch=amd64 cores=1 cpu-power=100 mem=1740 root-disk=8192" diff --git a/modules/libjuju/tests/bundle/invalid.yaml b/modules/libjuju/tests/bundle/invalid.yaml deleted file mode 100644 index 2e51c1e..0000000 --- a/modules/libjuju/tests/bundle/invalid.yaml +++ /dev/null @@ -1,7 +0,0 @@ -applications: - myapp: - charm: cs:xenial/ubuntu-0 - num_units: 1 - to: - - 0 - - 0 diff --git a/modules/libjuju/tests/bundle/mini-bundle.yaml b/modules/libjuju/tests/bundle/mini-bundle.yaml deleted file mode 100644 index 84d9a61..0000000 --- a/modules/libjuju/tests/bundle/mini-bundle.yaml +++ /dev/null @@ -1,9 +0,0 @@ -series: xenial -applications: - dummy-sink: - charm: cs:~juju-qa/dummy-sink - num_units: 1 - dummy-subordinate: - charm: cs:~juju-qa/dummy-subordinate -relations: - - ['dummy-sink', 'dummy-subordinate'] diff --git a/modules/libjuju/tests/charm/metadata.yaml b/modules/libjuju/tests/charm/metadata.yaml deleted file mode 100644 index 74eab3d..0000000 --- a/modules/libjuju/tests/charm/metadata.yaml +++ /dev/null @@ -1,5 +0,0 @@ -name: charm -series: ["xenial"] -summary: "test" -description: "test" -maintainers: ["test"] diff --git a/modules/libjuju/tests/integration/__init__.py b/modules/libjuju/tests/integration/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/modules/libjuju/tests/integration/bundle/bundle-resource-rev.yaml b/modules/libjuju/tests/integration/bundle/bundle-resource-rev.yaml deleted file mode 100644 index c8feb83..0000000 --- a/modules/libjuju/tests/integration/bundle/bundle-resource-rev.yaml +++ /dev/null @@ -1,7 +0,0 @@ -series: xenial -services: - ghost: - charm: "cs:ghost-19" - num_units: 1 - resources: - ghost-stable: 11 diff --git a/modules/libjuju/tests/integration/bundle/bundle.yaml b/modules/libjuju/tests/integration/bundle/bundle.yaml deleted file mode 100644 index d0245c5..0000000 --- a/modules/libjuju/tests/integration/bundle/bundle.yaml +++ /dev/null @@ -1,12 +0,0 @@ -series: xenial -services: - ghost: - charm: "cs:ghost-19" - num_units: 1 - mysql: - charm: "cs:trusty/mysql-57" - num_units: 1 - test: - charm: "./tests/integration/charm" -relations: - - ["ghost", "mysql"] diff --git a/modules/libjuju/tests/integration/cert.pem b/modules/libjuju/tests/integration/cert.pem deleted file mode 100644 index 684029e..0000000 --- a/modules/libjuju/tests/integration/cert.pem +++ /dev/null @@ -1,33 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFxDCCA6ygAwIBAgIJAPBHQW1VVLhYMA0GCSqGSIb3DQEBCwUAMHcxCzAJBgNV -BAYTAlVTMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTEQMA4GA1UEBwwHUmFsZWln -aDESMBAGA1UECgwJQ2Fub25pY2FsMSkwJwYDVQQDDCBweXRob24tbGlianVqdS5p -bnRlZ3JhdGlvbi50ZXN0czAeFw0xODEyMTEyMDQyMThaFw0xOTEyMTEyMDQyMTha -MHcxCzAJBgNVBAYTAlVTMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTEQMA4GA1UE -BwwHUmFsZWlnaDESMBAGA1UECgwJQ2Fub25pY2FsMSkwJwYDVQQDDCBweXRob24t -bGlianVqdS5pbnRlZ3JhdGlvbi50ZXN0czCCAiIwDQYJKoZIhvcNAQEBBQADggIP -ADCCAgoCggIBANkkfNI4Q3eIIrXZF3xxnD9Bbp06jPeoEokUSrC98L5XwCtxs9Ma -fWPqiSukPq3A0pPcRobFOu5o+pu6+1pFjcmtKICsp+CwHV52+IfozvNlhRMUFPb2 -IxU86tgpMcBAM5wLz85DoNSu4EjOku0rB8Z0GMfvvuc7aYtDQoKJSScHGWWFTaJT -mtXmmKKSPtyPZ5PCQOv2Qmg5ujs4RS3R8dq4WRAd5F8YzRBgmtPYRrjwgEjD7GTq -Xlt+COqn5+RgWFIH0pQ1xHkslBzBByzsyjLJPdV/ugNIZk6GNOzLAw3ynl/9xGGh -RAOrBsKVQPs3liZoGXVqKxHyNgWh8V58TgiFDuRZiZwQDV6cRkxOkGQIXohkS7uC -5OXrAsyyVPrRoWfQMggxM1jH3H+93PoRqEsLypLxw53h9Seep4tOggw/hgOolLFg -diAT/IU3yhESXnXpAA8G2rDKO32hw+vWuaGCbH6bShb+9ZfkAmLUiSVm9ClbkZRQ -IaXmtBwsLS2IBxW51jrjSuXvqlBZc01pIUC2CT7aTrbftpA+w6i1bZpqjCukUSAx -t4dRjzL/h/drp5xxlqXOZL9yjYl8vFul4LFKkpkJGIKESEksxULZR/3b+WA7oyiA -Ph9UgnKU730dKVSfWbi/0tsCA/4HKIJ9qucCrfxyL8hizJ+1w9NZJ3ZbAgMBAAGj -UzBRMB0GA1UdDgQWBBSv/7Fraw7XviWwlnPGc+CTJA0rKjAfBgNVHSMEGDAWgBSv -/7Fraw7XviWwlnPGc+CTJA0rKjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB -CwUAA4ICAQCluQ7qFgNoGPkAkdoDXN26OhQcfrCmjvPufurs8Fc4Yxumupz01Df+ -zu3J2pG+tfThi37sRZsxN/jhtZOVgaXPSgpgB8Tz16YCK3KTEHXil/i6wp4JGmnQ -VsOo8cGLEvcmFg98/l2Tu31IXaSm7Fc/VxVB0fhzvIa0xG+osU3Dy4GWhDQrkkJ8 -MErTvEAb8QnY1y20ThPAZ5StBZ/ZLwPksuzkvJwGN8FI00k1RCznDNArzKouuZZt -JdfjnFtT+nrP0XSAlphfI0o7Gbm6jqVLPIekp8iPJuAmk55biZ9rAJBu8DsHtBpQ -cbpH+84y/xaC9svPgD9Un6dDDYXQ4QZL393oZW1RM4apR9gOz/8NxW2bJyPVxA3M -nmHphZjyGrOLN/QjrZV93Dv65SIivzT2zYEztvK4rjui31J3VDeNEe7uMFGq5Pmq -7HRrcPY2sMSOHkzOTFmd5qwaPD9EzkM5UT5YJDEE7YUjkR8LlxP5Xvo82HXxKl8D -8Tk09HuBMWg69QjuVThBNJSWpIxTbQEfm/2j+fm1L1kE9N7+97y69eDTNdOxJK5D -zaKoAjgoneZZzZN6fblfbQuAsDdJ2xLR0DTBlxA9Gv7OYbUpXm3eAyfYL4AmqvHI -HtfgPeSH2+wQVteiVa7q0BIto75XE3m8+xIOQsAUEb04fcacEpKZlw== ------END CERTIFICATE----- diff --git a/modules/libjuju/tests/integration/charm/metadata.yaml b/modules/libjuju/tests/integration/charm/metadata.yaml deleted file mode 100644 index 74eab3d..0000000 --- a/modules/libjuju/tests/integration/charm/metadata.yaml +++ /dev/null @@ -1,5 +0,0 @@ -name: charm -series: ["xenial"] -summary: "test" -description: "test" -maintainers: ["test"] diff --git a/modules/libjuju/tests/integration/key.pem b/modules/libjuju/tests/integration/key.pem deleted file mode 100644 index 664123e..0000000 --- a/modules/libjuju/tests/integration/key.pem +++ /dev/null @@ -1,52 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQDZJHzSOEN3iCK1 -2Rd8cZw/QW6dOoz3qBKJFEqwvfC+V8ArcbPTGn1j6okrpD6twNKT3EaGxTruaPqb -uvtaRY3JrSiArKfgsB1edviH6M7zZYUTFBT29iMVPOrYKTHAQDOcC8/OQ6DUruBI -zpLtKwfGdBjH777nO2mLQ0KCiUknBxllhU2iU5rV5piikj7cj2eTwkDr9kJoObo7 -OEUt0fHauFkQHeRfGM0QYJrT2Ea48IBIw+xk6l5bfgjqp+fkYFhSB9KUNcR5LJQc -wQcs7MoyyT3Vf7oDSGZOhjTsywMN8p5f/cRhoUQDqwbClUD7N5YmaBl1aisR8jYF -ofFefE4IhQ7kWYmcEA1enEZMTpBkCF6IZEu7guTl6wLMslT60aFn0DIIMTNYx9x/ -vdz6EahLC8qS8cOd4fUnnqeLToIMP4YDqJSxYHYgE/yFN8oREl516QAPBtqwyjt9 -ocPr1rmhgmx+m0oW/vWX5AJi1IklZvQpW5GUUCGl5rQcLC0tiAcVudY640rl76pQ -WXNNaSFAtgk+2k6237aQPsOotW2aaowrpFEgMbeHUY8y/4f3a6eccZalzmS/co2J -fLxbpeCxSpKZCRiChEhJLMVC2Uf92/lgO6MogD4fVIJylO99HSlUn1m4v9LbAgP+ -ByiCfarnAq38ci/IYsyftcPTWSd2WwIDAQABAoICAFbe9Rz5K2ynxxMvbej4XsUj -vUgjw3/U+s1ik9sPsj/ERXpb+9BJ+b4+d3BBPl4vFU/YQVLrlv8IerJQ5PwhdW8o -2lpYOLV4X9eKCzX8WscfZ1TRpO2EXVbCz0V5fZDnXn5gb1uazL4p1ErscfV2UJ8B -lWRvstU5fKkdWH92wxBdE7j80qlNf1Vx8sCfd4yvxoVjoquEEt81sR6+DVcedf7F -38PF4bZ16pxRub9k+C5G8VurHmjlJqi9zH1sfSZtsQfoX0OyGw9LWVoDk4ZSmTYm -Mpm2hsmHbn6dzJCrS2aKGPhYQve4F8jL5GF2as/WVji5Tu4dcmu0lg480p61ZlXf -Q58qw4uXMU2KfiuLKyTV8MlmktMhDiHAmzAbIXskdmV2BNlIwyudsVXT1QD0BKH5 -I+8edW1OPLK72/kt9VT1paRbTiCL0NWk99QCL1VxPB4FupQQm1Hk2KnMrUfjFUOm -9cuOP1S0HcHCMHN4+y0UCmn3phrWmfI/KlDZCxmSd8gvNwKkPSW5ONuYmZlpE5Wm -s7FwRoAGGvSsjXOC3N6m48b0dQNLnMvSXQIRiDbnTzChNJ3q7y9u0o/dqATCtelx -S7ouVKxHqSdy9G8WK0XQAFqny2dcoHZiiuxWboF9p1zEia43pdFVy/7g08KjSBQ1 -vzVGhUDYtquqq0MociWBAoIBAQD6C8ZDBU8VWwOIPL+zX8/4MNp0PfcJrOwk1vF0 -J0aPRRvqx0g6yhzjrCtWNrQnHV6Oc9FBg/NPAthAAQWYEwQr77RJWRtle/n7cH2A -qFkAL0nYokti7TdFMe82a8hlnuo9GQl340t95j03/HDAtrqQ0xFi32Rpp54MgHLU -FW2AYTv7CLV18p7yHIMdn0ESORPxlc/hYuuyL6ZPm/7DF/bbieY1+ZVAzn1ls17m -dQctagpInRC2EDL17lQK86Mh7PGdVTIaJMFvzdyuIn8qswe1n3FA0OCL7VBfMjE8 -caUZ3kfGfeNKtkUvGALoXploZhDTmfDs5XQFIoMvwi87lClBAoIBAQDeUCQMyPUC -TcfDKmeKAiGjm4Amtb+rvA3SbPSJvteOaohyqKFswUf9fNCrJim1QVpQ+PtArlAx -WK9X8g44+OOWx2moLxlptzjzsYEXJYzUtIjuFE10xiGJEvthmWAZ+EB7Gexu7696 -M4LcWkAivCAwcM5e2Gr3DtMMS4E9fxNZfEn7RNFtTs6Cit/R2VITlbYnECSU13FY -DI37g8umCR01pTZ/7VVUwVMeq/irFKwTfkHoF2Fyxbp8CT91ydRsYCBs395xcEH1 -2rblBXUlGj01eVZtTX2HVSS78o/ak+Q3WJQvh1Hds8yS7QdirkOpmGGzvwpIhjzB -ztHsgjbFt3ybAoIBAA1HAsgcSA7CPnXFhAhqVgi/z1nM0Ila/U8XesrIKx8AdHML -EfLNOKt+QO7bCMXq8VJvI/VupETVydXcOAfTOq16lQAwExxYcPXBC2kBh3hTCoDO -XWJrZjvuYt1o68M5pQaJhc8v6ppM14NZjEMvcMiv7IRriFFz7RiM2YwZdy8R+rVh -yQDyWS5SBURVaIcnML/rTJaTQiC8FwCzL9v8MceGkwrareo7DL2RwMBMBo2Ky/D/ -JhwE0C/u79eFCGyMwGeyVm689OiS7dzxR/9kckxaoxDmBoZnm5TyfVrQTgwJmZYY -qTEWbKYLiFv+afb5NHuH+RsbNAXxxzWKAigPvgECggEAYD8H7HUQBchQxMDWBJy5 -nZBT4e5rpdkLjt9W20/BGMosep9hC6l+FlN0L7Sc9/jsNgQlGrKcy1Be0U9dMvMl -7QA2UPbbJLaLNI3TmobKOshSQ+iMRBMHL8YFCRMS1QtyNxlZEAo6yUgFzopQG/mg -YfhkkBFX9c/4NOl3cX1TjjlN+jeoB4/HviKLldllPE9jhfPqMno3euwsiAheIWru -t2vodWf1unTcHHpNdRvFB8dwlx+QM9VA0DRcwgz4J1dSknA1aJ02IU9oQSyks8Rx -XXZDoZybzPxio+/2saW3dvKlbRJDsh0GY1G1EdbqOkFbgyshM5bSNQHqRl91gRHY -IwKCAQEApF790G7J1IgNrLBxLlzEkVcv2Az8QDHviC8MxdVerGj62E5fGUb44Z+p -SM2vjjtL7yeTPuH0K7bbVtDMZoj3l81BHY6OnmFTLPSlMnUYXs7aVjbIK3EMQtHa -EyNOiwNtIOAUMqQ3C/KXWxdO0J8/kY6b7cvZwj5zDLYt+4j8BN8w8EL0Kgxw9Bd/ -DL++Nz3IqoOoPF0aK7hVTklVzONIdaGL2OjlyESKZOWJR1pypLC9+nUAAFbtPN5Q -8xyG3Rqoo7j697M50LP4ZMCE8WK/uZth4LPU9KWJAJ3FHrKki0qB1zbYXS4OMFbj -hg+Fb1z8af0WL9PCAwsWQMTaSx88tQ== ------END PRIVATE KEY----- diff --git a/modules/libjuju/tests/integration/test_application.py b/modules/libjuju/tests/integration/test_application.py deleted file mode 100644 index b705832..0000000 --- a/modules/libjuju/tests/integration/test_application.py +++ /dev/null @@ -1,134 +0,0 @@ -import asyncio - -import pytest - -from .. import base - -MB = 1 - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_action(event_loop): - async with base.CleanModel() as model: - ubuntu_app = await model.deploy( - 'percona-cluster', - application_name='mysql', - series='xenial', - channel='stable', - config={ - 'tuning-level': 'safest', - }, - constraints={ - 'mem': 256 * MB, - }, - ) - - # update and check app config - await ubuntu_app.set_config({'tuning-level': 'fast'}) - config = await ubuntu_app.get_config() - assert config['tuning-level']['value'] == 'fast' - - # Restore config back to default - await ubuntu_app.reset_config(['tuning-level']) - config = await ubuntu_app.get_config() - assert config['tuning-level']['value'] == 'safest' - - # update and check app constraints - await ubuntu_app.set_constraints({'mem': 512 * MB}) - constraints = await ubuntu_app.get_constraints() - assert constraints['mem'] == 512 * MB - - # check action definitions - actions = await ubuntu_app.get_actions() - assert 'backup' in actions.keys() - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_add_units(event_loop): - from juju.unit import Unit - - async with base.CleanModel() as model: - app = await model.deploy( - 'ubuntu-0', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - units = await app.add_units(count=2) - - assert len(units) == 2 - for unit in units: - assert isinstance(unit, Unit) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_upgrade_charm(event_loop): - async with base.CleanModel() as model: - app = await model.deploy('ubuntu-0') - assert app.data['charm-url'] == 'cs:ubuntu-0' - await app.upgrade_charm() - assert app.data['charm-url'].startswith('cs:ubuntu-') - assert app.data['charm-url'] != 'cs:ubuntu-0' - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_upgrade_charm_channel(event_loop): - async with base.CleanModel() as model: - app = await model.deploy('ubuntu-0') - assert app.data['charm-url'] == 'cs:ubuntu-0' - await app.upgrade_charm(channel='stable') - assert app.data['charm-url'].startswith('cs:ubuntu-') - assert app.data['charm-url'] != 'cs:ubuntu-0' - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_upgrade_charm_revision(event_loop): - async with base.CleanModel() as model: - app = await model.deploy('ubuntu-0') - assert app.data['charm-url'] == 'cs:ubuntu-0' - await app.upgrade_charm(revision=8) - assert app.data['charm-url'] == 'cs:ubuntu-8' - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_upgrade_charm_switch(event_loop): - async with base.CleanModel() as model: - app = await model.deploy('ubuntu-0') - assert app.data['charm-url'] == 'cs:ubuntu-0' - await app.upgrade_charm(switch='ubuntu-8') - assert app.data['charm-url'] == 'cs:ubuntu-8' - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_upgrade_charm_resource(event_loop): - async with base.CleanModel() as model: - app = await model.deploy('cs:~cynerva/upgrade-charm-resource-test-1') - - def units_ready(): - if not app.units: - return False - unit = app.units[0] - return unit.workload_status == 'active' and \ - unit.agent_status == 'idle' - - await asyncio.wait_for(model.block_until(units_ready), timeout=480) - unit = app.units[0] - expected_message = 'I have no resource.' - assert unit.workload_status_message == expected_message - - await app.upgrade_charm(revision=2) - await asyncio.wait_for( - model.block_until( - lambda: unit.workload_status_message != 'I have no resource.' - ), - timeout=60 - ) - expected_message = 'My resource: I am the resource.' - assert app.units[0].workload_status_message == expected_message diff --git a/modules/libjuju/tests/integration/test_client.py b/modules/libjuju/tests/integration/test_client.py deleted file mode 100644 index 240c471..0000000 --- a/modules/libjuju/tests/integration/test_client.py +++ /dev/null @@ -1,21 +0,0 @@ -from juju.client import client - -import pytest - -from .. import base - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_user_info(event_loop): - async with base.CleanModel() as model: - controller_conn = await model.connection().controller() - - um = client.UserManagerFacade.from_connection(controller_conn) - result = await um.UserInfo( - [client.Entity('user-admin')], True) - await controller_conn.close() - - assert isinstance(result, client.UserInfoResults) - for r in result.results: - assert isinstance(r, client.UserInfoResult) diff --git a/modules/libjuju/tests/integration/test_connection.py b/modules/libjuju/tests/integration/test_connection.py deleted file mode 100644 index 6647a03..0000000 --- a/modules/libjuju/tests/integration/test_connection.py +++ /dev/null @@ -1,236 +0,0 @@ -import asyncio -import http -import logging -import socket -import ssl -from contextlib import closing -from pathlib import Path - -from juju.client import client -from juju.client.connection import Connection -from juju.controller import Controller -from juju.utils import run_with_interrupt - -import pytest -import websockets - -from .. import base - - -logger = logging.getLogger(__name__) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_monitor(event_loop): - async with base.CleanModel() as model: - conn = model.connection() - assert conn.monitor.status == 'connected' - await conn.close() - - assert conn.monitor.status == 'disconnected' - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_monitor_catches_error(event_loop): - - async with base.CleanModel() as model: - conn = model.connection() - - assert conn.monitor.status == 'connected' - try: - async with conn.monitor.reconnecting: - await conn.ws.close() - await asyncio.sleep(1) - assert conn.monitor.status == 'error' - finally: - await conn.close() - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_full_status(event_loop): - async with base.CleanModel() as model: - await model.deploy( - 'ubuntu-0', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - - c = client.ClientFacade.from_connection(model.connection()) - - await c.FullStatus(None) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_reconnect(event_loop): - async with base.CleanModel() as model: - kwargs = model.connection().connect_params() - conn = await Connection.connect(**kwargs) - try: - await asyncio.sleep(0.1) - assert conn.is_open - await conn.ws.close() - assert not conn.is_open - await model.block_until(lambda: conn.is_open, timeout=3) - finally: - await conn.close() - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_redirect(event_loop): - controller = Controller() - await controller.connect() - kwargs = controller.connection().connect_params() - await controller.disconnect() - - # websockets.server.logger.setLevel(logging.DEBUG) - # websockets.client.logger.setLevel(logging.DEBUG) - # # websockets.protocol.logger.setLevel(logging.DEBUG) - # logger.setLevel(logging.DEBUG) - - destination = 'wss://{}/api'.format(kwargs['endpoint']) - redirect_statuses = [ - http.HTTPStatus.MOVED_PERMANENTLY, - http.HTTPStatus.FOUND, - http.HTTPStatus.SEE_OTHER, - http.HTTPStatus.TEMPORARY_REDIRECT, - http.HTTPStatus.PERMANENT_REDIRECT, - ] - test_server_cert = Path(__file__).with_name('cert.pem') - kwargs['cacert'] += '\n' + test_server_cert.read_text() - server = RedirectServer(destination, event_loop) - try: - for status in redirect_statuses: - logger.debug('test: starting {}'.format(status)) - server.start(status) - await run_with_interrupt(server.running.wait(), - server.terminated) - if server.exception: - raise server.exception - assert not server.terminated.is_set() - logger.debug('test: started') - kwargs_copy = dict(kwargs, - endpoint='localhost:{}'.format(server.port)) - logger.debug('test: connecting') - conn = await Connection.connect(**kwargs_copy) - logger.debug('test: connected') - await conn.close() - logger.debug('test: stopping') - server.stop() - await server.stopped.wait() - logger.debug('test: stopped') - finally: - server.terminate() - await server.terminated.wait() - - -class RedirectServer: - def __init__(self, destination, loop): - self.destination = destination - self.loop = loop - self._start = asyncio.Event() - self._stop = asyncio.Event() - self._terminate = asyncio.Event() - self.running = asyncio.Event() - self.stopped = asyncio.Event() - self.terminated = asyncio.Event() - if hasattr(ssl, 'PROTOCOL_TLS_SERVER'): - # python 3.6+ - protocol = ssl.PROTOCOL_TLS_SERVER - elif hasattr(ssl, 'PROTOCOL_TLS'): - # python 3.5.3+ - protocol = ssl.PROTOCOL_TLS - else: - # python 3.5.2 - protocol = ssl.PROTOCOL_TLSv1_2 - self.ssl_context = ssl.SSLContext(protocol) - crt_file = Path(__file__).with_name('cert.pem') - key_file = Path(__file__).with_name('key.pem') - self.ssl_context.load_cert_chain(str(crt_file), str(key_file)) - self.status = None - self.port = None - self._task = self.loop.create_task(self.run()) - - def start(self, status): - self.status = status - self.port = self._find_free_port() - self._start.set() - - def stop(self): - self._stop.set() - - def terminate(self): - self._terminate.set() - self.stop() - - @property - def exception(self): - try: - return self._task.exception() - except (asyncio.CancelledError, asyncio.InvalidStateError): - return None - - async def run(self): - logger.debug('server: active') - - async def hello(websocket, path): - await websocket.send('hello') - - async def redirect(path, request_headers): - return self.status, {'Location': self.destination}, b"" - - try: - while not self._terminate.is_set(): - await run_with_interrupt(self._start.wait(), - self._terminate, - loop=self.loop) - if self._terminate.is_set(): - break - self._start.clear() - logger.debug('server: starting {}'.format(self.status)) - try: - async with websockets.serve(ws_handler=hello, - process_request=redirect, - host='localhost', - port=self.port, - ssl=self.ssl_context, - loop=self.loop): - self.stopped.clear() - self.running.set() - logger.debug('server: started') - while not self._stop.is_set(): - await run_with_interrupt( - asyncio.sleep(1, loop=self.loop), - self._stop, - loop=self.loop) - logger.debug('server: tick') - logger.debug('server: stopping') - except asyncio.CancelledError: - break - finally: - self.stopped.set() - self._stop.clear() - self.running.clear() - logger.debug('server: stopped') - logger.debug('server: terminating') - except asyncio.CancelledError: - pass - finally: - self._start.clear() - self._stop.clear() - self._terminate.clear() - self.stopped.set() - self.running.clear() - self.terminated.set() - logger.debug('server: terminated') - - def _find_free_port(self): - with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as s: - s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) - s.bind(('', 0)) - return s.getsockname()[1] diff --git a/modules/libjuju/tests/integration/test_controller.py b/modules/libjuju/tests/integration/test_controller.py deleted file mode 100644 index 6423a98..0000000 --- a/modules/libjuju/tests/integration/test_controller.py +++ /dev/null @@ -1,228 +0,0 @@ -import asyncio -import subprocess -import uuid - -from juju.client.connection import Connection -from juju.client.jujudata import FileJujuData -from juju.controller import Controller -from juju.errors import JujuAPIError - -import pytest - -from .. import base - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_add_remove_user(event_loop): - async with base.CleanController() as controller: - username = 'test{}'.format(uuid.uuid4()) - user = await controller.get_user(username) - assert user is None - user = await controller.add_user(username) - assert user is not None - assert user.secret_key is not None - assert user.username == username - users = await controller.get_users() - assert any(u.username == username for u in users) - await controller.remove_user(username) - user = await controller.get_user(username) - assert user is None - users = await controller.get_users() - assert not any(u.username == username for u in users) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_disable_enable_user(event_loop): - async with base.CleanController() as controller: - username = 'test-disable{}'.format(uuid.uuid4()) - user = await controller.add_user(username) - - await user.disable() - assert not user.enabled - assert user.disabled - - fresh = await controller.get_user(username) # fetch fresh copy - assert not fresh.enabled - assert fresh.disabled - - await user.enable() - assert user.enabled - assert not user.disabled - - fresh = await controller.get_user(username) # fetch fresh copy - assert fresh.enabled - assert not fresh.disabled - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_change_user_password(event_loop): - async with base.CleanController() as controller: - username = 'test-password{}'.format(uuid.uuid4()) - user = await controller.add_user(username) - await user.set_password('password') - # Check that we can connect with the new password. - new_connection = None - try: - kwargs = controller.connection().connect_params() - kwargs['username'] = username - kwargs['password'] = 'password' - new_connection = await Connection.connect(**kwargs) - except JujuAPIError: - raise AssertionError('Unable to connect with new password') - finally: - if new_connection: - await new_connection.close() - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_reset_user_password(event_loop): - async with base.CleanController() as controller: - username = 'test{}'.format(uuid.uuid4()) - user = await controller.add_user(username) - origin_secret_key = user.secret_key - await user.set_password('password') - await controller.reset_user_password(username) - user = await controller.get_user(username) - new_secret_key = user.secret_key - # Check secret key is different after the reset. - assert origin_secret_key != new_secret_key - # Check that we can't connect with the old password. - new_connection = None - try: - kwargs = controller.connection().connect_params() - kwargs['username'] = username - kwargs['password'] = 'password' - new_connection = await Connection.connect(**kwargs) - except JujuAPIError: - pass - finally: - # No connection with old password - assert new_connection is None - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_grant_revoke(event_loop): - async with base.CleanController() as controller: - username = 'test-grant{}'.format(uuid.uuid4()) - user = await controller.add_user(username) - await user.grant('superuser') - assert user.access == 'superuser' - fresh = await controller.get_user(username) # fetch fresh copy - assert fresh.access == 'superuser' - await user.grant('login') # already has 'superuser', so no-op - assert user.access == 'superuser' - fresh = await controller.get_user(username) # fetch fresh copy - assert fresh.access == 'superuser' - await user.revoke() - assert user.access == '' - fresh = await controller.get_user(username) # fetch fresh copy - assert fresh.access == '' - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_list_models(event_loop): - async with base.CleanController() as controller: - async with base.CleanModel() as model: - result = await controller.list_models() - assert model.info.name in result - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_get_model(event_loop): - async with base.CleanController() as controller: - by_name, by_uuid = None, None - model_name = 'test-{}'.format(uuid.uuid4()) - model = await controller.add_model(model_name) - model_uuid = model.info.uuid - await model.disconnect() - try: - by_name = await controller.get_model(model_name) - by_uuid = await controller.get_model(model_uuid) - assert by_name.info.name == model_name - assert by_name.info.uuid == model_uuid - assert by_uuid.info.name == model_name - assert by_uuid.info.uuid == model_uuid - finally: - if by_name: - await by_name.disconnect() - if by_uuid: - await by_uuid.disconnect() - await controller.destroy_model(model_name) - - -async def _wait_for_model(controller, model_name): - while model_name not in await controller.list_models(): - await asyncio.sleep(0.5, loop=controller.loop) - - -async def _wait_for_model_gone(controller, model_name): - while model_name in await controller.list_models(): - await asyncio.sleep(0.5, loop=controller.loop) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_destroy_model_by_name(event_loop): - async with base.CleanController() as controller: - model_name = 'test-{}'.format(uuid.uuid4()) - model = await controller.add_model(model_name) - await model.disconnect() - await asyncio.wait_for(_wait_for_model(controller, - model_name), - timeout=60) - await controller.destroy_model(model_name) - await asyncio.wait_for(_wait_for_model_gone(controller, - model_name), - timeout=60) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_add_destroy_model_by_uuid(event_loop): - async with base.CleanController() as controller: - model_name = 'test-{}'.format(uuid.uuid4()) - model = await controller.add_model(model_name) - model_uuid = model.info.uuid - await model.disconnect() - await asyncio.wait_for(_wait_for_model(controller, - model_name), - timeout=60) - await controller.destroy_model(model_uuid) - await asyncio.wait_for(_wait_for_model_gone(controller, - model_name), - timeout=60) - - -# this test must be run serially because it modifies the login password -@pytest.mark.serial -@base.bootstrapped -@pytest.mark.asyncio -async def test_macaroon_auth(event_loop): - jujudata = FileJujuData() - account = jujudata.accounts()[jujudata.current_controller()] - with base.patch_file('~/.local/share/juju/accounts.yaml'): - if 'password' in account: - # force macaroon auth by "changing" password to current password - result = subprocess.run( - ['juju', 'change-user-password'], - input='{0}\n{0}\n'.format(account['password']), - universal_newlines=True, - stderr=subprocess.PIPE) - assert result.returncode == 0, ('Failed to change password: ' - '{}'.format(result.stderr)) - controller = Controller() - try: - await controller.connect() - assert controller.is_connected() - finally: - if controller.is_connected(): - await controller.disconnect() - async with base.CleanModel(): - pass # create and login to model works diff --git a/modules/libjuju/tests/integration/test_errors.py b/modules/libjuju/tests/integration/test_errors.py deleted file mode 100644 index b10dd06..0000000 --- a/modules/libjuju/tests/integration/test_errors.py +++ /dev/null @@ -1,68 +0,0 @@ -import pytest - -from .. import base - -MB = 1 -GB = 1024 - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_juju_api_error(event_loop): - ''' - Verify that we raise a JujuAPIError for responses with an error in - a top level key (for completely invalid requests). - - ''' - from juju.errors import JujuAPIError - - async with base.CleanModel() as model: - with pytest.raises(JujuAPIError): - await model.add_machine(constraints={'mem': 'foo'}) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_juju_error_in_results_list(event_loop): - ''' - Replicate the code that caused - https://github.com/juju/python-libjuju/issues/67, and verify that - we get a JujuError instead of passing silently by the failure. - - (We don't raise a JujuAPIError, because the request isn't - completely invalid -- it's just passing a tag that doesn't exist.) - - This also verifies that we will raise a JujuError any time there - is an error in one of a list of results. - - ''' - from juju.errors import JujuError - from juju.client import client - - async with base.CleanModel() as model: - ann_facade = client.AnnotationsFacade.from_connection(model.connection()) - - ann = client.EntityAnnotations( - entity='badtag', - annotations={'gui-x': '1', 'gui-y': '1'}, - ) - with pytest.raises(JujuError): - return await ann_facade.Set([ann]) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_juju_error_in_result(event_loop): - ''' - Verify that we raise a JujuError when appropraite when we are - looking at a single result coming back. - - ''' - from juju.errors import JujuError - from juju.client import client - - async with base.CleanModel() as model: - app_facade = client.ApplicationFacade.from_connection(model.connection()) - - with pytest.raises(JujuError): - return await app_facade.GetCharmURL('foo') diff --git a/modules/libjuju/tests/integration/test_macaroon_auth.py b/modules/libjuju/tests/integration/test_macaroon_auth.py deleted file mode 100644 index 9911c41..0000000 --- a/modules/libjuju/tests/integration/test_macaroon_auth.py +++ /dev/null @@ -1,108 +0,0 @@ -import logging -import os - -import macaroonbakery.bakery as bakery -import macaroonbakery.httpbakery as httpbakery -import macaroonbakery.httpbakery.agent as agent -from juju.errors import JujuAPIError -from juju.model import Model - -import pytest - -from .. import base - -log = logging.getLogger(__name__) - - -@base.bootstrapped -@pytest.mark.asyncio -@pytest.mark.xfail -async def test_macaroon_auth(event_loop): - auth_info, username = agent_auth_info() - # Create a bakery client that can do agent authentication. - client = httpbakery.Client( - key=auth_info.key, - interaction_methods=[agent.AgentInteractor(auth_info)], - ) - - async with base.CleanModel(bakery_client=client) as m: - async with await m.get_controller() as c: - await c.grant_model(username, m.info.uuid, 'admin') - async with Model( - jujudata=NoAccountsJujuData(m._connector.jujudata), - bakery_client=client, - ): - pass - - -@base.bootstrapped -@pytest.mark.asyncio -@pytest.mark.xfail -async def test_macaroon_auth_with_bad_key(event_loop): - auth_info, username = agent_auth_info() - # Use a random key rather than the correct key. - auth_info = auth_info._replace(key=bakery.generate_key()) - # Create a bakery client can do agent authentication. - client = httpbakery.Client( - key=auth_info.key, - interaction_methods=[agent.AgentInteractor(auth_info)], - ) - - async with base.CleanModel(bakery_client=client) as m: - async with await m.get_controller() as c: - await c.grant_model(username, m.info.uuid, 'admin') - try: - async with Model( - jujudata=NoAccountsJujuData(m._connector.jujudata), - bakery_client=client, - ): - pytest.fail('Should not be able to connect with invalid key') - except httpbakery.BakeryException: - # We're expecting this because we're using the - # wrong key. - pass - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_macaroon_auth_with_unauthorized_user(event_loop): - auth_info, username = agent_auth_info() - # Create a bakery client can do agent authentication. - client = httpbakery.Client( - key=auth_info.key, - interaction_methods=[agent.AgentInteractor(auth_info)], - ) - async with base.CleanModel(bakery_client=client) as m: - # Note: no grant of rights to the agent user. - try: - async with Model( - jujudata=NoAccountsJujuData(m._connector.jujudata), - bakery_client=client, - ): - pytest.fail('Should not be able to connect without grant') - except (JujuAPIError, httpbakery.DischargeError): - # We're expecting this because we're using the - # wrong user name. - pass - - -def agent_auth_info(): - agent_data = os.environ.get('TEST_AGENTS') - if agent_data is None: - pytest.skip('skipping macaroon_auth because no TEST_AGENTS ' - 'environment variable is set') - auth_info = agent.read_auth_info(agent_data) - if len(auth_info.agents) != 1: - raise Exception('TEST_AGENTS agent data requires exactly one agent') - return auth_info, auth_info.agents[0].username - - -class NoAccountsJujuData: - def __init__(self, jujudata): - self.__jujudata = jujudata - - def __getattr__(self, name): - return getattr(self.__jujudata, name) - - def accounts(self): - return {} diff --git a/modules/libjuju/tests/integration/test_machine.py b/modules/libjuju/tests/integration/test_machine.py deleted file mode 100644 index 070208a..0000000 --- a/modules/libjuju/tests/integration/test_machine.py +++ /dev/null @@ -1,65 +0,0 @@ -import asyncio -from tempfile import NamedTemporaryFile - -import pytest - -from .. import base - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_status(event_loop): - async with base.CleanModel() as model: - await model.deploy( - 'ubuntu-0', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - - await asyncio.wait_for( - model.block_until(lambda: len(model.machines)), - timeout=240) - machine = model.machines['0'] - - assert machine.status in ('allocating', 'pending') - assert machine.agent_status == 'pending' - assert not machine.agent_version - - # there is some inconsistency in the capitalization of status_message - # between different providers - await asyncio.wait_for( - model.block_until( - lambda: (machine.status == 'running' and - machine.status_message.lower() == 'running' and - machine.agent_status == 'started')), - timeout=480) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_scp(event_loop): - # ensure that asyncio.subprocess will work; - try: - asyncio.get_child_watcher().attach_loop(event_loop) - except RuntimeError: - pytest.skip('test_scp will always fail outside of MainThread') - async with base.CleanModel() as model: - await model.add_machine() - await asyncio.wait_for( - model.block_until(lambda: model.machines), - timeout=240) - machine = model.machines['0'] - await asyncio.wait_for( - model.block_until(lambda: (machine.status == 'running' and - machine.agent_status == 'started')), - timeout=480) - - with NamedTemporaryFile() as f: - f.write(b'testcontents') - f.flush() - await machine.scp_to(f.name, 'testfile', scp_opts='-p') - - with NamedTemporaryFile() as f: - await machine.scp_from('testfile', f.name, scp_opts='-p') - assert f.read() == b'testcontents' diff --git a/modules/libjuju/tests/integration/test_model.py b/modules/libjuju/tests/integration/test_model.py deleted file mode 100644 index 58766b4..0000000 --- a/modules/libjuju/tests/integration/test_model.py +++ /dev/null @@ -1,485 +0,0 @@ -import asyncio -import mock -from concurrent.futures import ThreadPoolExecutor -from pathlib import Path -import paramiko - -from juju.client.client import ConfigValue, ApplicationFacade -from juju.model import Model, ModelObserver -from juju.utils import block_until, run_with_interrupt -from juju.errors import JujuError - -import os -import pylxd -import time -import uuid - -import pytest - -from .. import base - - -MB = 1 -GB = 1024 -SSH_KEY = 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsYMJGNGG74HAJha3n2CFmWYsOOaORnJK6VqNy86pj0MIpvRXBzFzVy09uPQ66GOQhTEoJHEqE77VMui7+62AcMXT+GG7cFHcnU8XVQsGM6UirCcNyWNysfiEMoAdZScJf/GvoY87tMEszhZIUV37z8PUBx6twIqMdr31W1J0IaPa+sV6FEDadeLaNTvancDcHK1zuKsL39jzAg7+LYjKJfEfrsQP+lj/EQcjtKqlhVS5kzsJVfx8ZEd0xhW5G7N6bCdKNalS8mKCMaBXJpijNQ82AiyqCIDCRrre2To0/i7pTjRiL0U9f9mV3S4NJaQaokR050w/ZLySFf6F7joJT mathijs@Qrama-Mathijs' # noqa - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_deploy_local_bundle_dir(event_loop): - tests_dir = Path(__file__).absolute().parent.parent - bundle_path = tests_dir / 'bundle' - mini_bundle_file_path = bundle_path / 'mini-bundle.yaml' - - async with base.CleanModel() as model: - await model.deploy(str(bundle_path)) - await model.deploy(str(mini_bundle_file_path)) - - wordpress = model.applications.get('wordpress') - mysql = model.applications.get('mysql') - assert wordpress and mysql - await block_until(lambda: (len(wordpress.units) == 1 and - len(mysql.units) == 1), - timeout=60 * 4) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_deploy_local_bundle_file(event_loop): - tests_dir = Path(__file__).absolute().parent.parent - bundle_path = tests_dir / 'bundle' - mini_bundle_file_path = bundle_path / 'mini-bundle.yaml' - - async with base.CleanModel() as model: - await model.deploy(str(mini_bundle_file_path)) - - dummy_sink = model.applications.get('dummy-sink') - dummy_subordinate = model.applications.get('dummy-subordinate') - assert dummy_sink and dummy_subordinate - await block_until(lambda: (len(dummy_sink.units) == 1 and - len(dummy_subordinate.units) == 1), - timeout=60 * 4) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_deploy_invalid_bundle(event_loop): - tests_dir = Path(__file__).absolute().parent.parent - bundle_path = tests_dir / 'bundle' / 'invalid.yaml' - async with base.CleanModel() as model: - with pytest.raises(JujuError): - await model.deploy(str(bundle_path)) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_deploy_local_charm(event_loop): - from pathlib import Path - tests_dir = Path(__file__).absolute().parent.parent - charm_path = tests_dir / 'charm' - - async with base.CleanModel() as model: - await model.deploy(str(charm_path)) - assert 'charm' in model.applications - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_deploy_invalid_bundle(event_loop): - tests_dir = Path(__file__).absolute().parent.parent - bundle_path = tests_dir / 'bundle' / 'invalid.yaml' - async with base.CleanModel() as model: - with pytest.raises(JujuError): - await model.deploy(str(bundle_path)) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_deploy_local_charm(event_loop): - from pathlib import Path - tests_dir = Path(__file__).absolute().parent.parent - charm_path = tests_dir / 'charm' - - async with base.CleanModel() as model: - await model.deploy(str(charm_path)) - assert 'charm' in model.applications - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_deploy_bundle(event_loop): - async with base.CleanModel() as model: - await model.deploy('bundle/wiki-simple') - - for app in ('wiki', 'mysql'): - assert app in model.applications - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_deploy_channels_revs(event_loop): - async with base.CleanModel() as model: - charm = 'cs:~johnsca/libjuju-test' - stable = await model.deploy(charm, 'a1') - edge = await model.deploy(charm, 'a2', channel='edge') - rev = await model.deploy(charm + '-2', 'a3') - - assert [a.charm_url for a in (stable, edge, rev)] == [ - 'cs:~johnsca/libjuju-test-1', - 'cs:~johnsca/libjuju-test-2', - 'cs:~johnsca/libjuju-test-2', - ] - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_add_machine(event_loop): - from juju.machine import Machine - - async with base.CleanModel() as model: - # add a new default machine - machine1 = await model.add_machine() - - # add a machine with constraints, disks, and series - machine2 = await model.add_machine( - constraints={ - 'mem': 256 * MB, - }, - disks=[{ - 'pool': 'rootfs', - 'size': 10 * GB, - 'count': 1, - }], - series='xenial', - ) - - # add a lxd container to machine2 - machine3 = await model.add_machine( - 'lxd:{}'.format(machine2.id)) - - for m in (machine1, machine2, machine3): - assert isinstance(m, Machine) - - assert len(model.machines) == 3 - - await machine3.destroy(force=True) - await machine2.destroy(force=True) - res = await machine1.destroy(force=True) - - assert res is None - assert len(model.machines) == 0 - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_add_manual_machine_ssh(event_loop): - - # Verify controller is localhost - async with base.CleanController() as controller: - cloud = await controller.get_cloud() - if cloud != "localhost": - pytest.skip('Skipping because test requires lxd.') - - async with base.CleanModel() as model: - private_key_path = os.path.expanduser( - "~/.local/share/juju/ssh/juju_id_rsa" - ) - public_key_path = os.path.expanduser( - "~/.local/share/juju/ssh/juju_id_rsa.pub" - ) - - # connect using the local unix socket - client = pylxd.Client() - - test_name = "test-{}-add-manual-machine-ssh".format( - uuid.uuid4().hex[-4:] - ) - - # create profile w/cloud-init and juju ssh key - public_key = "" - with open(public_key_path, "r") as f: - public_key = f.readline() - - profile = client.profiles.create( - test_name, - config={'user.user-data': '#cloud-config\n' - 'ssh_authorized_keys:\n' - '- {}'.format(public_key)}, - devices={ - 'root': {'path': '/', 'pool': 'default', 'type': 'disk'}, - 'eth0': { - 'nictype': 'bridged', - 'parent': 'lxdbr0', - 'type': 'nic' - } - } - ) - - # create lxc machine - config = { - 'name': test_name, - 'source': { - 'type': 'image', - 'alias': 'xenial', - 'mode': 'pull', - 'protocol': 'simplestreams', - 'server': 'https://cloud-images.ubuntu.com/releases', - }, - 'profiles': [test_name], - } - container = client.containers.create(config, wait=True) - container.start(wait=True) - - def wait_for_network(container, timeout=30): - """Wait for eth0 to have an ipv4 address.""" - starttime = time.time() - while(time.time() < starttime + timeout): - time.sleep(1) - if 'eth0' in container.state().network: - addresses = container.state().network['eth0']['addresses'] - if len(addresses) > 0: - if addresses[0]['family'] == 'inet': - return addresses[0] - return None - - host = wait_for_network(container) - assert host, 'Failed to get address for machine' - - # HACK: We need to give sshd a chance to bind to the interface, - # and pylxd's container.execute seems to be broken and fails and/or - # hangs trying to properly check if the service is up. - time.sleep(5) - - for attempt in range(1, 4): - try: - # add a new manual machine - machine1 = await model.add_machine(spec='ssh:{}@{}:{}'.format( - "ubuntu", - host['address'], - private_key_path, - )) - except paramiko.ssh_exception.NoValidConnectionsError: - if attempt == 3: - raise - # retry the ssh connection a few times if it fails - time.sleep(attempt * 5) - else: - break - - assert len(model.machines) == 1 - - res = await machine1.destroy(force=True) - - assert res is None - assert len(model.machines) == 0 - - container.stop(wait=True) - container.delete(wait=True) - - profile.delete() - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_relate(event_loop): - from juju.relation import Relation - - async with base.CleanModel() as model: - await model.deploy( - 'ubuntu', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - await model.deploy( - 'nrpe', - application_name='nrpe', - series='trusty', - channel='stable', - # subordinates must be deployed without units - num_units=0, - ) - - relation_added = asyncio.Event() - timeout = asyncio.Event() - - class TestObserver(ModelObserver): - async def on_relation_add(self, delta, old, new, model): - if set(new.key.split()) == {'nrpe:general-info', - 'ubuntu:juju-info'}: - relation_added.set() - event_loop.call_later(2, timeout.set) - - model.add_observer(TestObserver()) - - real_app_facade = ApplicationFacade.from_connection(model.connection()) - mock_app_facade = mock.MagicMock() - - async def mock_AddRelation(*args): - # force response delay from AddRelation to test race condition - # (see https://github.com/juju/python-libjuju/issues/191) - result = await real_app_facade.AddRelation(*args) - await relation_added.wait() - return result - - mock_app_facade.AddRelation = mock_AddRelation - - with mock.patch.object(ApplicationFacade, 'from_connection', - return_value=mock_app_facade): - my_relation = await run_with_interrupt(model.add_relation( - 'ubuntu', - 'nrpe', - ), timeout, loop=event_loop) - - assert isinstance(my_relation, Relation) - - -async def _deploy_in_loop(new_loop, model_name, jujudata): - new_model = Model(new_loop, jujudata=jujudata) - await new_model.connect(model_name) - try: - await new_model.deploy('cs:xenial/ubuntu') - assert 'ubuntu' in new_model.applications - finally: - await new_model.disconnect() - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_explicit_loop_threaded(event_loop): - async with base.CleanModel() as model: - model_name = model.info.name - new_loop = asyncio.new_event_loop() - with ThreadPoolExecutor(1) as executor: - f = executor.submit( - new_loop.run_until_complete, - _deploy_in_loop(new_loop, - model_name, - model._connector.jujudata)) - f.result() - await model._wait_for_new('application', 'ubuntu') - assert 'ubuntu' in model.applications - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_store_resources_charm(event_loop): - async with base.CleanModel() as model: - ghost = await model.deploy('cs:ghost-19') - assert 'ghost' in model.applications - terminal_statuses = ('active', 'error', 'blocked') - await model.block_until( - lambda: ( - len(ghost.units) > 0 and - ghost.units[0].workload_status in terminal_statuses) - ) - # ghost will go in to blocked (or error, for older - # charm revs) if the resource is missing - assert ghost.units[0].workload_status == 'active' - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_store_resources_bundle(event_loop): - async with base.CleanModel() as model: - bundle = str(Path(__file__).parent / 'bundle') - await model.deploy(bundle) - assert 'ghost' in model.applications - ghost = model.applications['ghost'] - terminal_statuses = ('active', 'error', 'blocked') - await model.block_until( - lambda: ( - len(ghost.units) > 0 and - ghost.units[0].workload_status in terminal_statuses) - ) - # ghost will go in to blocked (or error, for older - # charm revs) if the resource is missing - assert ghost.units[0].workload_status == 'active' - resources = await ghost.get_resources() - assert resources['ghost-stable'].revision >= 12 - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_store_resources_bundle_revs(event_loop): - async with base.CleanModel() as model: - bundle = str(Path(__file__).parent / 'bundle/bundle-resource-rev.yaml') - await model.deploy(bundle) - assert 'ghost' in model.applications - ghost = model.applications['ghost'] - terminal_statuses = ('active', 'error', 'blocked') - await model.block_until( - lambda: ( - len(ghost.units) > 0 and - ghost.units[0].workload_status in terminal_statuses) - ) - # ghost will go in to blocked (or error, for older - # charm revs) if the resource is missing - assert ghost.units[0].workload_status == 'active' - resources = await ghost.get_resources() - assert resources['ghost-stable'].revision == 11 - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_ssh_key(event_loop): - async with base.CleanModel() as model: - await model.add_ssh_key('admin', SSH_KEY) - result = await model.get_ssh_key(True) - result = result.serialize()['results'][0].serialize()['result'] - assert SSH_KEY in result - await model.remove_ssh_key('admin', SSH_KEY) - result = await model.get_ssh_key(True) - result = result.serialize()['results'][0].serialize()['result'] - assert result is None - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_get_machines(event_loop): - async with base.CleanModel() as model: - result = await model.get_machines() - assert isinstance(result, list) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_watcher_reconnect(event_loop): - async with base.CleanModel() as model: - await model.connection().ws.close() - await block_until(model.is_connected, timeout=3) - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_config(event_loop): - async with base.CleanModel() as model: - await model.set_config({ - 'extra-info': 'booyah', - 'test-mode': ConfigValue(value=True), - }) - result = await model.get_config() - assert 'extra-info' in result - assert result['extra-info'].source == 'model' - assert result['extra-info'].value == 'booyah' - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_set_constraints(event_loop): - async with base.CleanModel() as model: - await model.set_constraints({'cpu-power': 1}) - cons = await model.get_constraints() - assert cons['cpu_power'] == 1 - -# @base.bootstrapped -# @pytest.mark.asyncio -# async def test_grant(event_loop) -# async with base.CleanController() as controller: -# await controller.add_user('test-model-grant') -# await controller.grant('test-model-grant', 'superuser') -# async with base.CleanModel() as model: -# await model.grant('test-model-grant', 'admin') -# assert model.get_user('test-model-grant')['access'] == 'admin' -# await model.grant('test-model-grant', 'login') -# assert model.get_user('test-model-grant')['access'] == 'login' diff --git a/modules/libjuju/tests/integration/test_unit.py b/modules/libjuju/tests/integration/test_unit.py deleted file mode 100644 index bb34969..0000000 --- a/modules/libjuju/tests/integration/test_unit.py +++ /dev/null @@ -1,99 +0,0 @@ -import asyncio -from tempfile import NamedTemporaryFile - -import pytest - -from .. import base - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_run(event_loop): - from juju.action import Action - - async with base.CleanModel() as model: - app = await model.deploy( - 'ubuntu-0', - application_name='ubuntu', - series='trusty', - channel='stable', - ) - - for unit in app.units: - action = await unit.run('unit-get public-address') - assert isinstance(action, Action) - assert 'Stdout' in action.results - break - - for unit in app.units: - action = await unit.run('sleep 1', timeout=0.5) - assert isinstance(action, Action) - assert action.status == 'failed' - break - - for unit in app.units: - action = await unit.run('sleep 0.5', timeout=2) - assert isinstance(action, Action) - assert action.status == 'completed' - break - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_run_action(event_loop): - async def run_action(unit): - # unit.run() returns a juju.action.Action instance - action = await unit.run_action('add-repo', repo='myrepo') - # wait for the action to complete - return await action.wait() - - async with base.CleanModel() as model: - app = await model.deploy( - 'git', - application_name='git', - series='trusty', - channel='stable', - ) - - for unit in app.units: - action = await run_action(unit) - assert action.results == {'dir': '/var/git/myrepo.git'} - out = await model.get_action_output(action.entity_id, wait=5) - assert out == {'dir': '/var/git/myrepo.git'} - status = await model.get_action_status(uuid_or_prefix=action.entity_id) - assert status[action.entity_id] == 'completed' - break - - -@base.bootstrapped -@pytest.mark.asyncio -async def test_scp(event_loop): - # ensure that asyncio.subprocess will work; - try: - asyncio.get_child_watcher().attach_loop(event_loop) - except RuntimeError: - pytest.skip('test_scp will always fail outside of MainThread') - async with base.CleanModel() as model: - app = await model.deploy('ubuntu') - - await asyncio.wait_for( - model.block_until(lambda: app.units), - timeout=60) - unit = app.units[0] - await asyncio.wait_for( - model.block_until(lambda: unit.machine), - timeout=60) - machine = unit.machine - await asyncio.wait_for( - model.block_until(lambda: (machine.status == 'running' and - machine.agent_status == 'started')), - timeout=480) - - with NamedTemporaryFile() as f: - f.write(b'testcontents') - f.flush() - await unit.scp_to(f.name, 'testfile') - - with NamedTemporaryFile() as f: - await unit.scp_from('testfile', f.name) - assert f.read() == b'testcontents' diff --git a/modules/libjuju/tests/unit/__init__.py b/modules/libjuju/tests/unit/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/modules/libjuju/tests/unit/test_client.py b/modules/libjuju/tests/unit/test_client.py deleted file mode 100644 index 1d18bf9..0000000 --- a/modules/libjuju/tests/unit/test_client.py +++ /dev/null @@ -1,26 +0,0 @@ -""" -Tests for generated client code - -""" - -import mock -from juju.client import client - - -def test_basics(): - assert client.CLIENTS - for i in range(1, 5): # Assert versions 1-4 in client dict - assert str(i) in client.CLIENTS - - -def test_from_connection(): - connection = mock.Mock() - connection.facades = {"Action": 2} - action_facade = client.ActionFacade.from_connection(connection) - assert action_facade - - -def test_to_json(): - uml = client.UserModelList([client.UserModel()]) - assert uml.to_json() == ('{"user-models": [{"last-connection": null, ' - '"model": null}]}') diff --git a/modules/libjuju/tests/unit/test_connection.py b/modules/libjuju/tests/unit/test_connection.py deleted file mode 100644 index 0925d84..0000000 --- a/modules/libjuju/tests/unit/test_connection.py +++ /dev/null @@ -1,65 +0,0 @@ -import asyncio -import json -from collections import deque - -import mock -from juju.client.connection import Connection -from websockets.exceptions import ConnectionClosed - -import pytest - -from .. import base - - -class WebsocketMock: - def __init__(self, responses): - super().__init__() - self.responses = deque(responses) - self.open = True - - async def send(self, message): - pass - - async def recv(self): - if not self.responses: - await asyncio.sleep(1) # delay to give test time to finish - raise ConnectionClosed(0, 'ran out of responses') - return json.dumps(self.responses.popleft()) - - async def close(self): - self.open = False - - -@pytest.mark.asyncio -async def test_out_of_order(event_loop): - ws = WebsocketMock([ - {'request-id': 1}, - {'request-id': 3}, - {'request-id': 2}, - ]) - expected_responses = [ - {'request-id': 1}, - {'request-id': 2}, - {'request-id': 3}, - ] - minimal_facades = [{'name': 'Pinger', 'versions': [1]}] - con = None - try: - with \ - mock.patch('websockets.connect', base.AsyncMock(return_value=ws)), \ - mock.patch( - 'juju.client.connection.Connection.login', - base.AsyncMock(return_value={'response': { - 'facades': minimal_facades, - }}), - ), \ - mock.patch('juju.client.connection.Connection._get_ssl'), \ - mock.patch('juju.client.connection.Connection._pinger', base.AsyncMock()): - con = await Connection.connect('0.1.2.3:999') - actual_responses = [] - for i in range(3): - actual_responses.append(await con.rpc({'version': 1})) - assert actual_responses == expected_responses - finally: - if con: - await con.close() diff --git a/modules/libjuju/tests/unit/test_constraints.py b/modules/libjuju/tests/unit/test_constraints.py deleted file mode 100644 index 3c52090..0000000 --- a/modules/libjuju/tests/unit/test_constraints.py +++ /dev/null @@ -1,57 +0,0 @@ -# -# Test our constraints parser -# - -import unittest - -from juju import constraints - - -class TestConstraints(unittest.TestCase): - - def test_mem_regex(self): - m = constraints.MEM - self.assertTrue(m.match("10G")) - self.assertTrue(m.match("1G")) - self.assertFalse(m.match("1Gb")) - self.assertFalse(m.match("a1G")) - self.assertFalse(m.match("1000")) - - def test_normalize_key(self): - _ = constraints.normalize_key - - self.assertEqual(_("test-key"), "test_key") - self.assertEqual(_("test-key "), "test_key") - self.assertEqual(_(" test-key"), "test_key") - self.assertEqual(_("TestKey"), "test_key") - self.assertEqual(_("testKey"), "test_key") - - def test_normalize_val(self): - _ = constraints.normalize_value - - self.assertEqual(_("10G"), 10 * 1024) - self.assertEqual(_("10M"), 10) - self.assertEqual(_("10"), 10) - self.assertEqual(_("foo,bar"), "foo,bar") - - def test_normalize_list_val(self): - _ = constraints.normalize_list_value - - self.assertEqual(_("foo"), ["foo"]) - self.assertEqual(_("foo,bar"), ["foo", "bar"]) - - def test_parse_constraints(self): - _ = constraints.parse - - self.assertEqual( - _("mem=10G"), - {"mem": 10 * 1024} - ) - - self.assertEqual( - _("mem=10G foo=bar,baz tags=tag1 spaces=space1,space2"), - {"mem": 10 * 1024, - "foo": "bar,baz", - "tags": ["tag1"], - "spaces": ["space1", "space2"]} - ) diff --git a/modules/libjuju/tests/unit/test_controller.py b/modules/libjuju/tests/unit/test_controller.py deleted file mode 100644 index b95b5ee..0000000 --- a/modules/libjuju/tests/unit/test_controller.py +++ /dev/null @@ -1,140 +0,0 @@ -import asynctest -import mock -from pathlib import Path -from tempfile import NamedTemporaryFile - -from juju.controller import Controller -from juju.client import client - -from .. import base - - -class TestControllerConnect(asynctest.TestCase): - @asynctest.patch('juju.client.connector.Connector.connect_controller') - async def test_no_args(self, mock_connect_controller): - c = Controller() - await c.connect() - mock_connect_controller.assert_called_once_with(None) - - @asynctest.patch('juju.client.connector.Connector.connect_controller') - async def test_with_controller_name(self, mock_connect_controller): - c = Controller() - await c.connect(controller_name='foo') - mock_connect_controller.assert_called_once_with('foo') - - @asynctest.patch('juju.client.connector.Connector.connect') - async def test_with_endpoint_and_no_auth(self, mock_connect): - c = Controller() - with self.assertRaises(TypeError): - await c.connect(endpoint='0.1.2.3:4566') - self.assertEqual(mock_connect.call_count, 0) - - @asynctest.patch('juju.client.connector.Connector.connect') - async def test_with_endpoint_and_userpass(self, mock_connect): - c = Controller() - with self.assertRaises(TypeError): - await c.connect(endpoint='0.1.2.3:4566', username='dummy') - await c.connect(endpoint='0.1.2.3:4566', - username='user', - password='pass') - mock_connect.assert_called_once_with(endpoint='0.1.2.3:4566', - username='user', - password='pass') - - @asynctest.patch('juju.client.connector.Connector.connect') - async def test_with_endpoint_and_bakery_client(self, mock_connect): - c = Controller() - await c.connect(endpoint='0.1.2.3:4566', bakery_client='bakery') - mock_connect.assert_called_once_with(endpoint='0.1.2.3:4566', - bakery_client='bakery') - - @asynctest.patch('juju.client.connector.Connector.connect') - async def test_with_endpoint_and_macaroons(self, mock_connect): - c = Controller() - await c.connect(endpoint='0.1.2.3:4566', - macaroons=['macaroon']) - mock_connect.assert_called_with(endpoint='0.1.2.3:4566', - macaroons=['macaroon']) - await c.connect(endpoint='0.1.2.3:4566', - bakery_client='bakery', - macaroons=['macaroon']) - mock_connect.assert_called_with(endpoint='0.1.2.3:4566', - bakery_client='bakery', - macaroons=['macaroon']) - - @asynctest.patch('juju.client.connector.Connector.connect_controller') - @asynctest.patch('juju.client.connector.Connector.connect') - async def test_with_posargs(self, mock_connect, mock_connect_controller): - c = Controller() - await c.connect('foo') - mock_connect_controller.assert_called_once_with('foo') - with self.assertRaises(TypeError): - await c.connect('endpoint', 'user') - await c.connect('endpoint', 'user', 'pass') - mock_connect.assert_called_once_with(endpoint='endpoint', - username='user', - password='pass') - await c.connect('endpoint', 'user', 'pass', 'cacert', 'bakery', - 'macaroons', 'loop', 'max_frame_size') - mock_connect.assert_called_with(endpoint='endpoint', - username='user', - password='pass', - cacert='cacert', - bakery_client='bakery', - macaroons='macaroons', - loop='loop', - max_frame_size='max_frame_size') - - @asynctest.patch('juju.client.client.CloudFacade') - async def test_file_cred_v2(self, mock_cf): - with NamedTemporaryFile() as tempfile: - tempfile.close() - temppath = Path(tempfile.name) - temppath.write_text('cred-test') - cred = client.CloudCredential(auth_type='jsonfile', - attrs={'file': tempfile.name}) - jujudata = mock.MagicMock() - c = Controller(jujudata=jujudata) - c._connector = base.AsyncMock() - up_creds = base.AsyncMock() - cloud_facade = mock_cf.from_connection() - cloud_facade.version = 2 - cloud_facade.UpdateCredentials = up_creds - await c.add_credential( - name='name', - credential=cred, - cloud='cloud', - owner='owner', - ) - assert up_creds.called - new_cred = up_creds.call_args[0][0][0].credential - assert cred.attrs['file'] == tempfile.name - assert new_cred.attrs['file'] == 'cred-test' - - @asynctest.patch('juju.client.client.CloudFacade') - async def test_file_cred_v3(self, mock_cf): - with NamedTemporaryFile() as tempfile: - tempfile.close() - temppath = Path(tempfile.name) - temppath.write_text('cred-test') - cred = client.CloudCredential(auth_type='jsonfile', - attrs={'file': tempfile.name}) - jujudata = mock.MagicMock() - c = Controller(jujudata=jujudata) - c._connector = base.AsyncMock() - up_creds = base.AsyncMock() - cloud_facade = mock_cf.from_connection() - cloud_facade.version = 3 - cloud_facade.UpdateCredentialsCheckModels = up_creds - await c.add_credential( - name='name', - credential=cred, - cloud='cloud', - owner='owner', - force=True, - ) - assert up_creds.called - assert up_creds.call_args[1]['force'] - new_cred = up_creds.call_args[1]['credentials'][0].credential - assert cred.attrs['file'] == tempfile.name - assert new_cred.attrs['file'] == 'cred-test' diff --git a/modules/libjuju/tests/unit/test_gocookies.py b/modules/libjuju/tests/unit/test_gocookies.py deleted file mode 100644 index 033a0e9..0000000 --- a/modules/libjuju/tests/unit/test_gocookies.py +++ /dev/null @@ -1,244 +0,0 @@ -""" -Tests for the gocookies code. -""" -import os -import shutil -import tempfile -import unittest -import urllib.request - -import pyrfc3339 -from juju.client.gocookies import GoCookieJar - -# cookie_content holds the JSON contents of a Go-produced -# cookie file (reformatted so it's not all on one line but -# otherwise unchanged). -cookie_content = """ -[ - { - "CanonicalHost": "bar.com", - "Creation": "2017-11-17T08:53:55.088820092Z", - "Domain": "bar.com", - "Expires": "2345-11-15T18:16:08Z", - "HostOnly": true, - "HttpOnly": false, - "LastAccess": "2017-11-17T08:53:55.088822562Z", - "Name": "bar", - "Path": "/", - "Persistent": true, - "Secure": false, - "Updated": "2017-11-17T08:53:55.088822562Z", - "Value": "bar-value" - }, - { - "CanonicalHost": "x.foo.com", - "Creation": "2017-11-17T08:53:55.088814857Z", - "Domain": "x.foo.com", - "Expires": "2345-11-15T18:16:05Z", - "HostOnly": true, - "HttpOnly": false, - "LastAccess": "2017-11-17T08:53:55.088884015Z", - "Name": "foo", - "Path": "/path", - "Persistent": true, - "Secure": false, - "Updated": "2017-11-17T08:53:55.088814857Z", - "Value": "foo-path-value" - }, - { - "CanonicalHost": "x.foo.com", - "Creation": "2017-11-17T08:53:55.088814857Z", - "Domain": "foo.com", - "Expires": "2345-11-15T18:16:06Z", - "HostOnly": false, - "HttpOnly": false, - "LastAccess": "2017-11-17T08:53:55.088919437Z", - "Name": "foo4", - "Path": "/path", - "Persistent": true, - "Secure": false, - "Updated": "2017-11-17T08:53:55.088814857Z", - "Value": "foo4-value" - }, - { - "CanonicalHost": "x.foo.com", - "Creation": "2017-11-17T08:53:55.088790709Z", - "Domain": "x.foo.com", - "Expires": "2345-11-15T18:16:01Z", - "HostOnly": true, - "HttpOnly": false, - "LastAccess": "2017-11-17T08:53:55.088884015Z", - "Name": "foo", - "Path": "/", - "Persistent": true, - "Secure": false, - "Updated": "2017-11-17T08:53:55.088790709Z", - "Value": "foo-value" - }, - { - "CanonicalHost": "x.foo.com", - "Creation": "2017-11-17T08:53:55.088790709Z", - "Domain": "foo.com", - "Expires": "2345-11-15T18:16:02Z", - "HostOnly": false, - "HttpOnly": false, - "LastAccess": "2017-11-17T08:53:55.088919437Z", - "Name": "foo1", - "Path": "/", - "Persistent": true, - "Secure": false, - "Updated": "2017-11-17T08:53:55.088790709Z", - "Value": "foo1-value" - }, - { - "CanonicalHost": "x.foo.com", - "Creation": "2017-11-17T08:53:55.088790709Z", - "Domain": "x.foo.com", - "Expires": "2345-11-15T18:16:03Z", - "HostOnly": true, - "HttpOnly": false, - "LastAccess": "2017-11-17T08:53:55.088850252Z", - "Name": "foo2", - "Path": "/", - "Persistent": true, - "Secure": true, - "Updated": "2017-11-17T08:53:55.088790709Z", - "Value": "foo2-value" - }, - { - "CanonicalHost": "x.foo.com", - "Creation": "2017-11-17T08:53:55.088790709Z", - "Domain": "foo.com", - "Expires": "2345-11-15T18:16:04Z", - "HostOnly": false, - "HttpOnly": false, - "LastAccess": "2017-11-17T08:53:55.088919437Z", - "Name": "foo3", - "Path": "/", - "Persistent": true, - "Secure": false, - "Updated": "2017-11-17T08:53:55.088790709Z", - "Value": "foo3-value" - } -] -""" - -# cookie_content_queries holds a set of queries -# that were automatically generated by running -# the queries on the above cookie_content data -# and printing the results. -cookie_content_queries = [ - ('http://x.foo.com', [ - ('foo', 'foo-value'), - ('foo1', 'foo1-value'), - ('foo3', 'foo3-value'), - ]), - ('https://x.foo.com', [ - ('foo', 'foo-value'), - ('foo1', 'foo1-value'), - ('foo2', 'foo2-value'), - ('foo3', 'foo3-value'), - ]), - ('http://arble.foo.com', [ - ('foo1', 'foo1-value'), - ('foo3', 'foo3-value'), - ]), - ('http://arble.com', [ - ]), - ('http://x.foo.com/path/x', [ - ('foo', 'foo-path-value'), - ('foo4', 'foo4-value'), - ('foo', 'foo-value'), - ('foo1', 'foo1-value'), - ('foo3', 'foo3-value'), - ]), - ('http://arble.foo.com/path/x', [ - ('foo4', 'foo4-value'), - ('foo1', 'foo1-value'), - ('foo3', 'foo3-value'), - ]), - ('http://foo.com/path/x', [ - ('foo4', 'foo4-value'), - ('foo1', 'foo1-value'), - ('foo3', 'foo3-value'), - ]), -] - - -class TestGoCookieJar(unittest.TestCase): - def setUp(self): - self.dir = tempfile.mkdtemp() - - def tearDown(self): - shutil.rmtree(self.dir) - - def test_readcookies(self): - jar = self.load_jar(cookie_content) - self.assert_jar_queries(jar, cookie_content_queries) - - def test_roundtrip(self): - jar = self.load_jar(cookie_content) - filename2 = os.path.join(self.dir, 'cookies2') - jar.save(filename=filename2) - jar = GoCookieJar() - jar.load(filename=filename2) - self.assert_jar_queries(jar, cookie_content_queries) - - def test_expiry_time(self): - content = '''[ - { - "CanonicalHost": "bar.com", - "Creation": "2017-11-17T08:53:55.088820092Z", - "Domain": "bar.com", - "Expires": "2345-11-15T18:16:08Z", - "HostOnly": true, - "HttpOnly": false, - "LastAccess": "2017-11-17T08:53:55.088822562Z", - "Name": "bar", - "Path": "/", - "Persistent": true, - "Secure": false, - "Updated": "2017-11-17T08:53:55.088822562Z", - "Value": "bar-value" - } - ]''' - jar = self.load_jar(content) - got_expires = tuple(jar)[0].expires - want_expires = int(pyrfc3339.parse('2345-11-15T18:16:08Z').timestamp()) - self.assertEqual(got_expires, want_expires) - - def load_jar(self, content): - filename = os.path.join(self.dir, 'cookies') - with open(filename, 'x') as f: - f.write(content) - jar = GoCookieJar() - jar.load(filename=filename) - return jar - - def assert_jar_queries(self, jar, queries): - '''Assert that all the given queries (see cookie_content_queries) - are satisfied when run on the given cookie jar. - :param jar CookieJar: the cookie jar to query - :param queries: the queries to run. - ''' - for url, want_cookies in queries: - req = urllib.request.Request(url) - jar.add_cookie_header(req) - # We can't use SimpleCookie to find out what cookies - # have been presented, because SimpleCookie - # only allows one cookie with a given name, - # so we naively parse the cookies ourselves, which - # is OK because we know we don't have to deal - # with any complex cases. - - cookie_header = req.get_header('Cookie') - got_cookies = [] - if cookie_header is not None: - got_cookies = [ - tuple(part.split('=')) - for part in cookie_header.split('; ') - ] - got_cookies.sort() - want_cookies = list(want_cookies) - want_cookies.sort() - self.assertEqual(got_cookies, want_cookies, msg='query {}; got {}; want {}'.format(url, got_cookies, want_cookies)) diff --git a/modules/libjuju/tests/unit/test_loop.py b/modules/libjuju/tests/unit/test_loop.py deleted file mode 100644 index 9043df6..0000000 --- a/modules/libjuju/tests/unit/test_loop.py +++ /dev/null @@ -1,32 +0,0 @@ -import asyncio -import unittest - -import juju.loop - - -class TestLoop(unittest.TestCase): - def setUp(self): - # new event loop for each test - policy = asyncio.get_event_loop_policy() - self.loop = policy.new_event_loop() - policy.set_event_loop(self.loop) - - def tearDown(self): - self.loop.close() - - def test_run(self): - assert asyncio.get_event_loop() == self.loop - - async def _test(): - return 'success' - self.assertEqual(juju.loop.run(_test()), 'success') - - def test_run_interrupt(self): - async def _test(): - juju.loop.run._sigint = True - self.assertRaises(KeyboardInterrupt, juju.loop.run, _test()) - - def test_run_exception(self): - async def _test(): - raise ValueError() - self.assertRaises(ValueError, juju.loop.run, _test()) diff --git a/modules/libjuju/tests/unit/test_model.py b/modules/libjuju/tests/unit/test_model.py deleted file mode 100644 index 2753d85..0000000 --- a/modules/libjuju/tests/unit/test_model.py +++ /dev/null @@ -1,264 +0,0 @@ -import unittest - -import mock - -import asynctest - -from juju.client.jujudata import FileJujuData -from juju.model import Model - - -def _make_delta(entity, type_, data=None): - from juju.client.client import Delta - from juju.delta import get_entity_delta - - delta = Delta([entity, type_, data]) - return get_entity_delta(delta) - - -class TestObserver(unittest.TestCase): - def _make_observer(self, *args): - from juju.model import _Observer - return _Observer(*args) - - def test_cares_about_id(self): - id_ = 'foo' - - o = self._make_observer( - None, None, None, id_, None) - - delta = _make_delta( - 'application', 'change', dict(name=id_)) - - self.assertTrue(o.cares_about(delta)) - - def test_cares_about_type(self): - type_ = 'application' - - o = self._make_observer( - None, type_, None, None, None) - - delta = _make_delta( - type_, 'change', dict(name='foo')) - - self.assertTrue(o.cares_about(delta)) - - def test_cares_about_action(self): - action = 'change' - - o = self._make_observer( - None, None, action, None, None) - - delta = _make_delta( - 'application', action, dict(name='foo')) - - self.assertTrue(o.cares_about(delta)) - - def test_cares_about_predicate(self): - def predicate(delta): - return delta.data.get('fizz') == 'bang' - - o = self._make_observer( - None, None, None, None, predicate) - - delta = _make_delta( - 'application', 'change', dict(fizz='bang')) - - self.assertTrue(o.cares_about(delta)) - - -class TestModelState(unittest.TestCase): - def test_apply_delta(self): - from juju.model import Model - from juju.application import Application - - model = Model() - model._connector = mock.MagicMock() - delta = _make_delta('application', 'add', dict(name='foo')) - - # test add - prev, new = model.state.apply_delta(delta) - self.assertEqual( - len(model.state.state[delta.entity][delta.get_id()]), 1) - self.assertIsNone(prev) - self.assertIsInstance(new, Application) - - # test remove - delta.type = 'remove' - prev, new = model.state.apply_delta(delta) - # length of the entity history deque is now 3: - # - 1 for the first delta - # - 1 for the second delta - # - 1 for the None sentinel appended after the 'remove' - self.assertEqual( - len(model.state.state[delta.entity][delta.get_id()]), 3) - self.assertIsInstance(new, Application) - # new object is falsy because its data is None - self.assertFalse(new) - self.assertIsInstance(prev, Application) - self.assertTrue(prev) - - -def test_get_series(): - from juju.model import Model - model = Model() - entity = { - 'Meta': { - 'supported-series': { - 'SupportedSeries': [ - 'xenial', - 'trusty', - ], - }, - }, - } - assert model._get_series('cs:trusty/ubuntu', entity) == 'trusty' - assert model._get_series('xenial/ubuntu', entity) == 'xenial' - assert model._get_series('~foo/xenial/ubuntu', entity) == 'xenial' - assert model._get_series('~foo/ubuntu', entity) == 'xenial' - assert model._get_series('ubuntu', entity) == 'xenial' - assert model._get_series('cs:ubuntu', entity) == 'xenial' - - -class TestContextManager(asynctest.TestCase): - @asynctest.patch('juju.model.Model.disconnect') - @asynctest.patch('juju.model.Model.connect') - async def test_normal_use(self, mock_connect, mock_disconnect): - from juju.model import Model - - async with Model() as model: - self.assertTrue(isinstance(model, Model)) - - self.assertTrue(mock_connect.called) - self.assertTrue(mock_disconnect.called) - - @asynctest.patch('juju.model.Model.disconnect') - @asynctest.patch('juju.model.Model.connect') - async def test_exception(self, mock_connect, mock_disconnect): - from juju.model import Model - - class SomeException(Exception): - pass - - with self.assertRaises(SomeException): - async with Model(): - raise SomeException() - - self.assertTrue(mock_connect.called) - self.assertTrue(mock_disconnect.called) - - async def test_no_current_connection(self): - from juju.model import Model - from juju.errors import JujuConnectionError - - class NoControllerJujuData(FileJujuData): - def current_controller(self): - return "" - - with self.assertRaises(JujuConnectionError): - async with Model(jujudata=NoControllerJujuData()): - pass - - -@asynctest.patch('juju.model.Model._after_connect') -class TestModelConnect(asynctest.TestCase): - @asynctest.patch('juju.client.connector.Connector.connect_model') - async def test_no_args(self, mock_connect_model, _): - m = Model() - await m.connect() - mock_connect_model.assert_called_once_with(None) - - @asynctest.patch('juju.client.connector.Connector.connect_model') - async def test_with_model_name(self, mock_connect_model, _): - m = Model() - await m.connect(model_name='foo') - mock_connect_model.assert_called_once_with('foo') - - @asynctest.patch('juju.client.connector.Connector.connect_model') - async def test_with_endpoint_but_no_uuid(self, mock_connect_model, _): - m = Model() - with self.assertRaises(TypeError): - await m.connect(endpoint='0.1.2.3:4566') - self.assertEqual(mock_connect_model.call_count, 0) - - @asynctest.patch('juju.client.connector.Connector.connect') - async def test_with_endpoint_and_uuid_no_auth(self, mock_connect, _): - m = Model() - with self.assertRaises(TypeError): - await m.connect(endpoint='0.1.2.3:4566', uuid='some-uuid') - self.assertEqual(mock_connect.call_count, 0) - - @asynctest.patch('juju.client.connector.Connector.connect') - async def test_with_endpoint_and_uuid_with_userpass(self, mock_connect, _): - m = Model() - with self.assertRaises(TypeError): - await m.connect(endpoint='0.1.2.3:4566', - uuid='some-uuid', - username='user') - await m.connect(endpoint='0.1.2.3:4566', - uuid='some-uuid', - username='user', - password='pass') - mock_connect.assert_called_once_with(endpoint='0.1.2.3:4566', - uuid='some-uuid', - username='user', - password='pass') - - @asynctest.patch('juju.client.connector.Connector.connect') - async def test_with_endpoint_and_uuid_with_bakery(self, mock_connect, _): - m = Model() - await m.connect(endpoint='0.1.2.3:4566', - uuid='some-uuid', - bakery_client='bakery') - mock_connect.assert_called_once_with(endpoint='0.1.2.3:4566', - uuid='some-uuid', - bakery_client='bakery') - - @asynctest.patch('juju.client.connector.Connector.connect') - async def test_with_endpoint_and_uuid_with_macaroon(self, mock_connect, _): - m = Model() - with self.assertRaises(TypeError): - await m.connect(endpoint='0.1.2.3:4566', - uuid='some-uuid', - username='user') - await m.connect(endpoint='0.1.2.3:4566', - uuid='some-uuid', - macaroons=['macaroon']) - mock_connect.assert_called_with(endpoint='0.1.2.3:4566', - uuid='some-uuid', - macaroons=['macaroon']) - await m.connect(endpoint='0.1.2.3:4566', - uuid='some-uuid', - bakery_client='bakery', - macaroons=['macaroon']) - mock_connect.assert_called_with(endpoint='0.1.2.3:4566', - uuid='some-uuid', - bakery_client='bakery', - macaroons=['macaroon']) - - @asynctest.patch('juju.client.connector.Connector.connect_model') - @asynctest.patch('juju.client.connector.Connector.connect') - async def test_with_posargs(self, mock_connect, mock_connect_model, _): - m = Model() - await m.connect('foo') - mock_connect_model.assert_called_once_with('foo') - with self.assertRaises(TypeError): - await m.connect('endpoint', 'uuid') - with self.assertRaises(TypeError): - await m.connect('endpoint', 'uuid', 'user') - await m.connect('endpoint', 'uuid', 'user', 'pass') - mock_connect.assert_called_once_with(endpoint='endpoint', - uuid='uuid', - username='user', - password='pass') - await m.connect('endpoint', 'uuid', 'user', 'pass', 'cacert', 'bakery', - 'macaroons', 'loop', 'max_frame_size') - mock_connect.assert_called_with(endpoint='endpoint', - uuid='uuid', - username='user', - password='pass', - cacert='cacert', - bakery_client='bakery', - macaroons='macaroons', - loop='loop', - max_frame_size='max_frame_size') diff --git a/modules/libjuju/tests/unit/test_overrides.py b/modules/libjuju/tests/unit/test_overrides.py deleted file mode 100644 index a5835ff..0000000 --- a/modules/libjuju/tests/unit/test_overrides.py +++ /dev/null @@ -1,76 +0,0 @@ -from juju.client.overrides import Binary, Number # noqa - -import pytest - - -# test cases ported from: -# https://github.com/juju/version/blob/master/version_test.go -@pytest.mark.parametrize("input,expected", ( - (None, Number(major=0, minor=0, patch=0, tag='', build=0)), - (Number(major=1, minor=0, patch=0), Number(major=1, minor=0, patch=0)), - ({'major': 1, 'minor': 0, 'patch': 0}, Number(major=1, minor=0, patch=0)), - ("0.0.1", Number(major=0, minor=0, patch=1)), - ("0.0.2", Number(major=0, minor=0, patch=2)), - ("0.1.0", Number(major=0, minor=1, patch=0)), - ("0.2.3", Number(major=0, minor=2, patch=3)), - ("1.0.0", Number(major=1, minor=0, patch=0)), - ("10.234.3456", Number(major=10, minor=234, patch=3456)), - ("10.234.3456.1", Number(major=10, minor=234, patch=3456, build=1)), - ("10.234.3456.64", Number(major=10, minor=234, patch=3456, build=64)), - ("10.235.3456", Number(major=10, minor=235, patch=3456)), - ("1.21-alpha1", Number(major=1, minor=21, patch=1, tag="alpha")), - ("1.21-alpha1.1", Number(major=1, minor=21, patch=1, tag="alpha", - build=1)), - ("1.21-alpha10", Number(major=1, minor=21, patch=10, tag="alpha")), - ("1.21.0", Number(major=1, minor=21)), - ("1234567890.2.1", TypeError), - ("0.2..1", TypeError), - ("1.21.alpha1", TypeError), - ("1.21-alpha", TypeError), - ("1.21-alpha1beta", TypeError), - ("1.21-alpha-dev", TypeError), - ("1.21-alpha_dev3", TypeError), - ("1.21-alpha123dev3", TypeError), -)) -def test_number(input, expected): - if expected is TypeError: - with pytest.raises(expected): - Number.from_json(input) - else: - result = Number.from_json(input) - assert result == expected - if isinstance(input, str): - assert result.to_json() == input - - -# test cases ported from: -# https://github.com/juju/version/blob/master/version_test.go -@pytest.mark.parametrize("input,expected", ( - (None, Binary(Number(), None, None)), - (Binary(Number(1), 'trusty', 'amd64'), Binary(Number(1), - 'trusty', 'amd64')), - ({'number': {'major': 1}, - 'series': 'trusty', - 'arch': 'amd64'}, Binary(Number(1), 'trusty', 'amd64')), - ("1.2.3-trusty-amd64", Binary(Number(1, 2, 3, "", 0), - "trusty", "amd64")), - ("1.2.3.4-trusty-amd64", Binary(Number(1, 2, 3, "", 4), - "trusty", "amd64")), - ("1.2-alpha3-trusty-amd64", Binary(Number(1, 2, 3, "alpha", 0), - "trusty", "amd64")), - ("1.2-alpha3.4-trusty-amd64", Binary(Number(1, 2, 3, "alpha", 4), - "trusty", "amd64")), - ("1.2.3", TypeError), - ("1.2-beta1", TypeError), - ("1.2.3--amd64", TypeError), - ("1.2.3-trusty-", TypeError), -)) -def test_binary(input, expected): - if expected is TypeError: - with pytest.raises(expected): - Binary.from_json(input) - else: - result = Binary.from_json(input) - assert result == expected - if isinstance(input, str): - assert result.to_json() == input diff --git a/modules/libjuju/tests/unit/test_placement.py b/modules/libjuju/tests/unit/test_placement.py deleted file mode 100644 index 5a933ec..0000000 --- a/modules/libjuju/tests/unit/test_placement.py +++ /dev/null @@ -1,20 +0,0 @@ -# -# Test our placement helper -# - -import unittest - -from juju import placement - - -class TestPlacement(unittest.TestCase): - - def test_parse_both_specified(self): - res = placement.parse("foo:bar") - self.assertEqual(res[0].scope, "foo") - self.assertEqual(res[0].directive, "bar") - - def test_parse_machine(self): - res = placement.parse("22") - self.assertEqual(res[0].scope, "#") - self.assertEqual(res[0].directive, "22") diff --git a/modules/libjuju/tests/unit/test_registration_string.py b/modules/libjuju/tests/unit/test_registration_string.py deleted file mode 100644 index f4fea44..0000000 --- a/modules/libjuju/tests/unit/test_registration_string.py +++ /dev/null @@ -1,18 +0,0 @@ -# -# Test our placement helper -# - -import unittest - -from juju.utils import generate_user_controller_access_token - - -class TestRegistrationString(unittest.TestCase): - def test_generate_user_controller_access_token(self): - controller_name = "localhost-localhost" - endpoints = ["192.168.1.1:17070", "192.168.1.2:17070", "192.168.1.3:17070"] - username = "test-01234" - secret_key = "paNZrqOw51ONk1kTER6rkm4hdPcg5VgC/dzXYxtUZaM=" - reg_string = generate_user_controller_access_token(username, endpoints, secret_key, controller_name) - assert reg_string == b"MH4TCnRlc3QtMDEyMzQwORMRMTkyLjE2OC4xLjE6MTcwNzATETE5Mi4xNjguMS4yOjE3MDcwExExOTIuMTY4" \ - b"LjEuMzoxNzA3MAQgpaNZrqOw51ONk1kTER6rkm4hdPcg5VgC_dzXYxtUZaMTE2xvY2FsaG9zdC1sb2NhbGhvc3QA" diff --git a/modules/libjuju/tox.ini b/modules/libjuju/tox.ini deleted file mode 100644 index 350a1fc..0000000 --- a/modules/libjuju/tox.ini +++ /dev/null @@ -1,66 +0,0 @@ -# Tox (http://tox.testrun.org/) is a tool for running tests -# in multiple virtualenvs. This configuration file will run the -# test suite on all supported python versions. To use it, "pip install tox" -# and then run "tox" from this directory. - -[tox] -envlist = lint,py3 -skipsdist=True - -[pytest] -markers = - serial: mark a test that must run by itself - -[testenv] -basepython=python3 -usedevelop=True -# for testing with other python versions -commands = py.test --tb native -ra -v -s -n auto -k 'not integration' -m 'not serial' {posargs} -passenv = - HOME - TEST_AGENTS -deps = - asynctest - ipdb - mock - pytest - pytest-asyncio - pytest-xdist - Twine - # use fork to pick up fix for https://github.com/aaugustin/websockets/pull/528 - git+https://github.com/johnsca/websockets@bug/client-redirects#egg=websockets - -[testenv:py3] -# default tox env excludes integration and serial tests -commands = - # These need to be installed in a specific order - pip install urllib3==1.22 - pip install pylxd - py.test --tb native -ra -v -s -n auto -k 'not integration' -m 'not serial' {posargs} - -[testenv:lint] -envdir = {toxworkdir}/py3 -commands = - flake8 --ignore E501,W504 {posargs} juju tests -deps = - flake8 - -[testenv:integration] -envdir = {toxworkdir}/py3 -commands = - # These need to be installed in a specific order - pip install urllib3==1.22 - pip install pylxd - py.test --tb native -ra -v -s -n auto -k 'integration' -m 'not serial' {posargs} - -[testenv:serial] -# tests that can't be run in parallel -envdir = {toxworkdir}/py3 -commands = py.test --tb native -ra -v -s {posargs:-m 'serial'} - -[testenv:example] -envdir = {toxworkdir}/py3 -commands = python {posargs} - -[flake8] -exclude = juju/client/_* -- 2.17.1 From 2911434d2a0e24292c73f640f5df4cac9c447867 Mon Sep 17 00:00:00 2001 From: quilesj Date: Tue, 29 Oct 2019 09:30:44 +0100 Subject: [PATCH 10/16] New N2VC API: generic connector and juju connector Change-Id: Ib53fc2eaae4287a34a36f03f654ce2076feaad01 Signed-off-by: quilesj --- n2vc/exceptions.py | 79 +++ n2vc/juju_observer.py | 283 +++++++++ n2vc/loggable.py | 167 +++++ n2vc/n2vc_conn.py | 462 ++++++++++++++ n2vc/n2vc_juju_conn.py | 1334 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 2325 insertions(+) create mode 100644 n2vc/juju_observer.py create mode 100644 n2vc/loggable.py create mode 100644 n2vc/n2vc_conn.py create mode 100644 n2vc/n2vc_juju_conn.py diff --git a/n2vc/exceptions.py b/n2vc/exceptions.py index f5c9fb0..4b83e3f 100644 --- a/n2vc/exceptions.py +++ b/n2vc/exceptions.py @@ -38,3 +38,82 @@ class NoRouteToHost(Exception): class AuthenticationFailed(Exception): """The authentication for the specified user failed.""" + + +class N2VCException(Exception): + """ + N2VC exception base class + """ + + def __init__(self, message: str = ''): + Exception.__init__(self, message) + self.message = message + + def __str__(self): + return self.message + + def __repr__(self): + return '{}({})'.format(type(self), self.message) + + +class N2VCBadArgumentsException(N2VCException): + """ + Bad argument values exception + """ + + def __init__(self, message: str = '', bad_args: list = None): + N2VCException.__init__(self, message=message) + self.bad_args = bad_args + + def __str__(self): + return '<{}> Bad arguments: {} -> {}'.format(type(self), super().__str__(), self.bad_args) + + +class N2VCConnectionException(N2VCException): + """ + Error connecting to VCA + """ + + def __init__(self, message: str = '', url: str = None): + N2VCException.__init__(self, message=message) + self.url = url + + def __str__(self): + return '<{}> Connection to {} failed: {}'.format(type(self), self.url, super().__str__()) + + +class N2VCTimeoutException(N2VCException): + """ + Timeout + """ + + def __init__(self, message: str = '', timeout: str = ''): + N2VCException.__init__(self, message=message) + self.timeout = timeout + + def __str__(self): + return '<{}> {} timeout: {}'.format(type(self), self.timeout, super().__str__()) + + +class N2VCExecutionException(N2VCException): + """ + Error executing primitive + """ + + def __init__(self, message: str = '', primitive_name: str = ''): + N2VCException.__init__(self, message=message) + self.primitive_name = primitive_name + + def __str__(self): + return '<{}> Error executing primitive {} failed: {}'.format(type(self), self.primitive_name, super().__str__()) + +class N2VCInvalidCertificate(N2VCException): + """ + Invalid certificate + """ + + def __init__(self, message: str = ''): + N2VCException.__init__(self, message=message) + + def __str__(self): + return '<{}> Invalid certificate: {}'.format(type(self), super().__str__()) diff --git a/n2vc/juju_observer.py b/n2vc/juju_observer.py new file mode 100644 index 0000000..ac40f34 --- /dev/null +++ b/n2vc/juju_observer.py @@ -0,0 +1,283 @@ +## +# Copyright 2019 Telefonica Investigacion y Desarrollo, S.A.U. +# This file is part of OSM +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# For those usages not covered by the Apache License, Version 2.0 please +# contact with: nfvlabs@tid.es +## + +import asyncio +import time + +from juju.model import ModelObserver, Model +from juju.machine import Machine +from juju.application import Application +from juju.action import Action + +from n2vc.n2vc_conn import N2VCConnector, juju_status_2_osm_status +from n2vc.exceptions import N2VCTimeoutException + + +class _Entity: + def __init__(self, entity_id: str, entity_type: str, obj: object, db_dict: dict): + self.entity_id = entity_id + self.entity_type = entity_type + self.obj = obj + self.event = asyncio.Event() + self.db_dict = db_dict + + +class JujuModelObserver(ModelObserver): + + def __init__(self, n2vc: N2VCConnector, model: Model): + self.n2vc = n2vc + self.model = model + model.add_observer(self) + self.machines = dict() + self.applications = dict() + self.actions = dict() + + def register_machine(self, machine: Machine, db_dict: dict): + entity_id = machine.entity_id + entity = _Entity(entity_id=entity_id, entity_type='machine', obj=machine, db_dict=db_dict) + self.machines[entity_id] = entity + + def unregister_machine(self, machine_id: str): + if machine_id in self.machines: + del self.machines[machine_id] + + def is_machine_registered(self, machine_id: str): + return machine_id in self.machines + + def register_application(self, application: Application, db_dict: dict): + entity_id = application.entity_id + entity = _Entity(entity_id=entity_id, entity_type='application', obj=application, db_dict=db_dict) + self.applications[entity_id] = entity + + def unregister_application(self, application_id: str): + if application_id in self.applications: + del self.applications[application_id] + + def is_application_registered(self, application_id: str): + return application_id in self.applications + + def register_action(self, action: Action, db_dict: dict): + entity_id = action.entity_id + entity = _Entity(entity_id=entity_id, entity_type='action', obj=action, db_dict=db_dict) + self.actions[entity_id] = entity + + def unregister_action(self, action_id: str): + if action_id in self.actions: + del self.actions[action_id] + + def is_action_registered(self, action_id: str): + return action_id in self.actions + + async def wait_for_machine( + self, + machine_id: str, + progress_timeout: float = None, + total_timeout: float = None) -> int: + + if not self.is_machine_registered(machine_id): + return + + # wait for a final state + entity = self.machines[machine_id] + return await self._wait_for_entity( + entity=entity, + field_to_check='agent_status', + final_states_list=['started'], + progress_timeout=progress_timeout, + total_timeout=total_timeout) + + async def wait_for_application( + self, + application_id: str, + progress_timeout: float = None, + total_timeout: float = None) -> int: + + if not self.is_application_registered(application_id): + return + + # application statuses: unknown, active, waiting + # wait for a final state + entity = self.applications[application_id] + return await self._wait_for_entity( + entity=entity, + field_to_check='status', + final_states_list=['active', 'blocked'], + progress_timeout=progress_timeout, + total_timeout=total_timeout) + + async def wait_for_action( + self, + action_id: str, + progress_timeout: float = None, + total_timeout: float = None) -> int: + + if not self.is_action_registered(action_id): + return + + # action statuses: pending, running, completed, failed, cancelled + # wait for a final state + entity = self.actions[action_id] + return await self._wait_for_entity( + entity=entity, + field_to_check='status', + final_states_list=['completed', 'failed', 'cancelled'], + progress_timeout=progress_timeout, + total_timeout=total_timeout) + + async def _wait_for_entity( + self, + entity: _Entity, + field_to_check: str, + final_states_list: list, + progress_timeout: float = None, + total_timeout: float = None) -> int: + + # default values for no timeout + if total_timeout is None: + total_timeout = 100000 + if progress_timeout is None: + progress_timeout = 100000 + + # max end time + now = time.time() + total_end = now + total_timeout + + if now >= total_end: + raise N2VCTimeoutException( + message='Total timeout {} seconds, {}: {}'.format(total_timeout, entity.entity_type, entity.entity_id), + timeout='total' + ) + + # update next progress timeout + progress_end = now + progress_timeout # type: float + + # which is closest? progress or end timeout? + closest_end = min(total_end, progress_end) + + next_timeout = closest_end - now + + retries = 0 + + while entity.obj.__getattribute__(field_to_check) not in final_states_list: + retries += 1 + if await _wait_for_event_or_timeout(entity.event, next_timeout): + entity.event.clear() + else: + message = 'Progress timeout {} seconds, {}}: {}'\ + .format(progress_timeout, entity.entity_type, entity.entity_id) + self.n2vc.debug(message) + raise N2VCTimeoutException(message=message, timeout='progress') + self.n2vc.debug('End of wait. Final state: {}, retries: {}' + .format(entity.obj.__getattribute__(field_to_check), retries)) + return retries + + async def on_change(self, delta, old, new, model): + + if new is None: + return + + # log + self.n2vc.debug('on_change(): type: {}, entity: {}, id: {}' + .format(delta.type, delta.entity, new.entity_id)) + + if delta.entity == 'machine': + + # check registered machine + if new.entity_id not in self.machines: + return + + # write change in database + await self.n2vc.write_app_status_to_db( + db_dict=self.machines[new.entity_id].db_dict, + status=juju_status_2_osm_status(delta.entity, new.agent_status), + detailed_status=new.status_message, + vca_status=new.status, + entity_type='machine' + ) + + # set event for this machine + self.machines[new.entity_id].event.set() + + elif delta.entity == 'application': + + # check registered application + if new.entity_id not in self.applications: + return + + # write change in database + await self.n2vc.write_app_status_to_db( + db_dict=self.applications[new.entity_id].db_dict, + status=juju_status_2_osm_status(delta.entity, new.status), + detailed_status=new.status_message, + vca_status=new.status, + entity_type='application' + ) + + # set event for this application + self.applications[new.entity_id].event.set() + + elif delta.entity == 'unit': + + # get the application for this unit + application_id = delta.data['application'] + + # check registered application + if application_id not in self.applications: + return + + # write change in database + await self.n2vc.write_app_status_to_db( + db_dict=self.applications[application_id].db_dict, + status=juju_status_2_osm_status(delta.entity, new.workload_status), + detailed_status=new.workload_status_message, + vca_status=new.workload_status, + entity_type='unit' + ) + + # set event for this application + self.applications[application_id].event.set() + + elif delta.entity == 'action': + + # check registered action + if new.entity_id not in self.actions: + return + + # write change in database + await self.n2vc.write_app_status_to_db( + db_dict=self.actions[new.entity_id].db_dict, + status=juju_status_2_osm_status(delta.entity, new.status), + detailed_status=new.status, + vca_status=new.status, + entity_type='action' + ) + + # set event for this application + self.actions[new.entity_id].event.set() + + +async def _wait_for_event_or_timeout(event: asyncio.Event, timeout: float = None): + try: + await asyncio.wait_for(fut=event.wait(), timeout=timeout) + except asyncio.TimeoutError: + pass + return event.is_set() diff --git a/n2vc/loggable.py b/n2vc/loggable.py new file mode 100644 index 0000000..40efa24 --- /dev/null +++ b/n2vc/loggable.py @@ -0,0 +1,167 @@ +## +# Copyright 2019 Telefonica Investigacion y Desarrollo, S.A.U. +# This file is part of OSM +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# For those usages not covered by the Apache License, Version 2.0 please +# contact with: nfvlabs@tid.es +## + + +import logging +import asyncio +import time +import inspect +import datetime +import threading # only for logging purposes (not for using threads) + + +class Loggable: + + def __init__( + self, + log, + log_to_console: bool = False, + prefix: str = '' + ): + + self._last_log_time = None # used for time increment in logging + self._log_to_console = log_to_console + self._prefix = prefix + if log is not None: + self.log = log + else: + self.log = logging.getLogger(__name__) + + def debug(self, msg: str): + self._log_msg(log_level='DEBUG', msg=msg) + + def info(self, msg: str): + self._log_msg(log_level='INFO', msg=msg) + + def warning(self, msg: str): + self._log_msg(log_level='WARNING', msg=msg) + + def error(self, msg: str): + self._log_msg(log_level='ERROR', msg=msg) + + def critical(self, msg: str): + self._log_msg(log_level='CRITICAL', msg=msg) + + ################################################################################################## + + def _log_msg(self, log_level: str, msg: str): + """Generic log method""" + msg = self._format_log( + log_level=log_level, + msg=msg, + obj=self, + level=3, + include_path=False, + include_thread=False, + include_coroutine=True + ) + if self._log_to_console: + print(msg) + else: + if self.log is not None: + if log_level == 'DEBUG': + self.log.debug(msg) + elif log_level == 'INFO': + self.log.info(msg) + elif log_level == 'WARNING': + self.log.warning(msg) + elif log_level == 'ERROR': + self.log.error(msg) + elif log_level == 'CRITICAL': + self.log.critical(msg) + + def _format_log( + self, + log_level: str, + msg: str = '', + obj: object = None, + level: int = None, + include_path: bool = False, + include_thread: bool = False, + include_coroutine: bool = True + ) -> str: + + # time increment from last log + now = time.perf_counter() + if self._last_log_time is None: + time_str = ' (+0.000)' + else: + diff = round(now - self._last_log_time, 3) + time_str = ' (+{})'.format(diff) + self._last_log_time = now + + if level is None: + level = 1 + + # stack info + fi = inspect.stack()[level] + filename = fi.filename + func = fi.function + lineno = fi.lineno + # filename without path + if not include_path: + i = filename.rfind('/') + if i > 0: + filename = filename[i+1:] + + # datetime + dt = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') + dt = dt + time_str + dt = time_str # logger already shows datetime + + # current thread + if include_thread: + thread_name = 'th:{}'.format(threading.current_thread().getName()) + else: + thread_name = '' + + # current coroutine + + coroutine_id = '' + if include_coroutine: + try: + if asyncio.Task.current_task() is not None: + def print_cor_name(c): + import inspect + try: + for m in inspect.getmembers(c): + if m[0] == '__name__': + return m[1] + except Exception: + pass + coro = asyncio.Task.current_task()._coro + coroutine_id = 'coro-{} {}()'.format(hex(id(coro))[2:], print_cor_name(coro)) + except Exception: + coroutine_id = '' + + # classname + if obj is not None: + obj_type = obj.__class__.__name__ # type: str + log_msg = \ + '{} {} {} {} {}::{}.{}():{}\n{}'\ + .format(self._prefix, dt, thread_name, coroutine_id, filename, obj_type, func, lineno, str(msg)) + else: + log_msg = \ + '{} {} {} {} {}::{}():{}\n{}'\ + .format(self._prefix, dt, thread_name, coroutine_id, filename, func, lineno, str(msg)) + + return log_msg diff --git a/n2vc/n2vc_conn.py b/n2vc/n2vc_conn.py new file mode 100644 index 0000000..97b6188 --- /dev/null +++ b/n2vc/n2vc_conn.py @@ -0,0 +1,462 @@ +## +# Copyright 2019 Telefonica Investigacion y Desarrollo, S.A.U. +# This file is part of OSM +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# For those usages not covered by the Apache License, Version 2.0 please +# contact with: nfvlabs@tid.es +## + + +import abc +import asyncio +import os +import subprocess +import shlex +import time +from enum import Enum +from http import HTTPStatus +from n2vc.loggable import Loggable +from n2vc.exceptions import N2VCBadArgumentsException + +from osm_common.dbmongo import DbException + + +class N2VCDeploymentStatus(Enum): + PENDING = 'pending' + RUNNING = 'running' + COMPLETED = 'completed' + FAILED = 'failed' + UNKNOWN = 'unknown' + + +class N2VCConnector(abc.ABC, Loggable): + """Generic N2VC connector + + Abstract class + """ + + """ + ################################################################################################## + ########################################## P U B L I C ########################################### + ################################################################################################## + """ + + def __init__( + self, + db: object, + fs: object, + log: object, + loop: object, + url: str, + username: str, + vca_config: dict, + on_update_db = None + ): + """Initialize N2VC abstract connector. It defines de API for VCA connectors + + :param object db: Mongo object managing the MongoDB (repo common DbBase) + :param object fs: FileSystem object managing the package artifacts (repo common FsBase) + :param object log: the logging object to log to + :param object loop: the loop to use for asyncio (default current thread loop) + :param str url: a string that how to connect to the VCA (if needed, IP and port can be obtained from there) + :param str username: the username to authenticate with VCA + :param dict vca_config: Additional parameters for the specific VCA. For example, for juju it will contain: + secret: The password to authenticate with + public_key: The contents of the juju public SSH key + ca_cert str: The CA certificate used to authenticate + :param on_update_db: callback called when n2vc connector updates database. Received arguments: + table: e.g. "nsrs" + filter: e.g. {_id: } + path: e.g. "_admin.deployed.VCA.3." + updated_data: e.g. , "{ _admin.deployed.VCA.3.status: 'xxx', etc }" + """ + + # parent class + Loggable.__init__(self, log=log, log_to_console=True, prefix='\nN2VC') + + # check arguments + if db is None: + raise N2VCBadArgumentsException('Argument db is mandatory', ['db']) + if fs is None: + raise N2VCBadArgumentsException('Argument fs is mandatory', ['fs']) + + self.info('url={}, username={}, vca_config={}'.format(url, username, vca_config)) + + # store arguments into self + self.db = db + self.fs = fs + self.loop = loop or asyncio.get_event_loop() + self.url = url + self.username = username + self.vca_config = vca_config + self.on_update_db = on_update_db + + # generate private/public key-pair + self.get_public_key() + + @abc.abstractmethod + async def get_status(self, namespace: str): + """Get namespace status + + :param namespace: we obtain ns from namespace + """ + + # TODO: review which public key + async def get_public_key(self) -> str: + """Get the VCA ssh-public-key + + Returns the SSH public key from local mahine, to be injected into virtual machines to + be managed by the VCA. + First run, a ssh keypair will be created. + The public key is injected into a VM so that we can provision the + machine with Juju, after which Juju will communicate with the VM + directly via the juju agent. + """ + + public_key = '' + + # Find the path where we expect our key lives (~/.ssh) + homedir = os.environ['HOME'] + sshdir = "{}/.ssh".format(homedir) + if not os.path.exists(sshdir): + os.mkdir(sshdir) + + self.private_key_path = "{}/id_n2vc_rsa".format(sshdir) + self.public_key_path = "{}.pub".format(self.private_key_path) + + # If we don't have a key generated, then we have to generate it using ssh-keygen + if not os.path.exists(self.private_key_path): + cmd = "ssh-keygen -t {} -b {} -N '' -f {}".format( + "rsa", + "4096", + self.private_key_path + ) + # run command with arguments + subprocess.check_output(shlex.split(cmd)) + + # Read the public key. Only one public key (one line) in the file + with open(self.public_key_path, "r") as file: + public_key = file.readline() + + return public_key + + @abc.abstractmethod + async def create_execution_environment( + self, + namespace: str, + db_dict: dict, + reuse_ee_id: str = None, + progress_timeout: float = None, + total_timeout: float = None + ) -> (str, dict): + """Create an Execution Environment. Returns when it is created or raises an exception on failing + + :param str namespace: Contains a dot separate string. + LCM will use: []...[-] + :param dict db_dict: where to write to database when the status changes. + It contains a dictionary with {collection: str, filter: {}, path: str}, + e.g. {collection: "nsrs", filter: {_id: , path: "_admin.deployed.VCA.3"} + :param str reuse_ee_id: ee id from an older execution. It allows us to reuse an older environment + :param float progress_timeout: + :param float total_timeout: + :returns str, dict: id of the new execution environment and credentials for it + (credentials can contains hostname, username, etc depending on underlying cloud) + """ + + @abc.abstractmethod + async def register_execution_environment( + self, + namespace: str, + credentials: dict, + db_dict: dict, + progress_timeout: float = None, + total_timeout: float = None + ) -> str: + """ + Register an existing execution environment at the VCA + + :param str namespace: same as create_execution_environment method + :param dict credentials: credentials to access the existing execution environment + (it can contains hostname, username, path to private key, etc depending on underlying cloud) + :param dict db_dict: where to write to database when the status changes. + It contains a dictionary with {collection: str, filter: {}, path: str}, + e.g. {collection: "nsrs", filter: {_id: , path: "_admin.deployed.VCA.3"} + :param float progress_timeout: + :param float total_timeout: + :returns str: id of the execution environment + """ + + @abc.abstractmethod + async def install_configuration_sw( + self, + ee_id: str, + artifact_path: str, + db_dict: dict, + progress_timeout: float = None, + total_timeout: float = None + ): + """ + Install the software inside the execution environment identified by ee_id + + :param str ee_id: the id of the execution environment returned by create_execution_environment + or register_execution_environment + :param str artifact_path: where to locate the artifacts (parent folder) using the self.fs + the final artifact path will be a combination of this artifact_path and additional string from + the config_dict (e.g. charm name) + :param dict db_dict: where to write into database when the status changes. + It contains a dict with {collection: , filter: {}, path: }, + e.g. {collection: "nsrs", filter: {_id: , path: "_admin.deployed.VCA.3"} + :param float progress_timeout: + :param float total_timeout: + """ + + @abc.abstractmethod + async def get_ee_ssh_public__key( + self, + ee_id: str, + db_dict: dict, + progress_timeout: float = None, + total_timeout: float = None + ) -> str: + """ + Generate a priv/pub key pair in the execution environment and return the public key + + :param str ee_id: the id of the execution environment returned by create_execution_environment + or register_execution_environment + :param dict db_dict: where to write into database when the status changes. + It contains a dict with {collection: , filter: {}, path: }, + e.g. {collection: "nsrs", filter: {_id: , path: "_admin.deployed.VCA.3"} + :param float progress_timeout: + :param float total_timeout: + :returns: public key of the execution environment + For the case of juju proxy charm ssh-layered, it is the one returned by 'get-ssh-public-key' + primitive. + It raises a N2VC exception if fails + """ + + @abc.abstractmethod + async def add_relation( + self, + ee_id_1: str, + ee_id_2: str, + endpoint_1: str, + endpoint_2: str + ): + """ + Add a relation between two Execution Environments (using their associated endpoints). + + :param str ee_id_1: The id of the first execution environment + :param str ee_id_2: The id of the second execution environment + :param str endpoint_1: The endpoint in the first execution environment + :param str endpoint_2: The endpoint in the second execution environment + """ + + # TODO + @abc.abstractmethod + async def remove_relation( + self + ): + """ + """ + + # TODO + @abc.abstractmethod + async def deregister_execution_environments( + self + ): + """ + """ + + @abc.abstractmethod + async def delete_namespace( + self, + namespace: str, + db_dict: dict = None, + total_timeout: float = None + ): + """ + Remove a network scenario and its execution environments + :param namespace: []. + :param dict db_dict: where to write into database when the status changes. + It contains a dict with {collection: , filter: {}, path: }, + e.g. {collection: "nsrs", filter: {_id: , path: "_admin.deployed.VCA.3"} + :param float total_timeout: + """ + + @abc.abstractmethod + async def delete_execution_environment( + self, + ee_id: str, + db_dict: dict = None, + total_timeout: float = None + ): + """ + Delete an execution environment + :param str ee_id: id of the execution environment to delete + :param dict db_dict: where to write into database when the status changes. + It contains a dict with {collection: , filter: {}, path: }, + e.g. {collection: "nsrs", filter: {_id: , path: "_admin.deployed.VCA.3"} + :param float total_timeout: + """ + + @abc.abstractmethod + async def exec_primitive( + self, + ee_id: str, + primitive_name: str, + params_dict: dict, + db_dict: dict = None, + progress_timeout: float = None, + total_timeout: float = None + ) -> str: + """ + Execute a primitive in the execution environment + + :param str ee_id: the one returned by create_execution_environment or register_execution_environment + :param str primitive_name: must be one defined in the software. There is one called 'config', + where, for the proxy case, the 'credentials' of VM are provided + :param dict params_dict: parameters of the action + :param dict db_dict: where to write into database when the status changes. + It contains a dict with {collection: , filter: {}, path: }, + e.g. {collection: "nsrs", filter: {_id: , path: "_admin.deployed.VCA.3"} + :param float progress_timeout: + :param float total_timeout: + :returns str: primitive result, if ok. It raises exceptions in case of fail + """ + + async def disconnect(self): + """ + Disconnect from VCA + """ + + """ + ################################################################################################## + ########################################## P R I V A T E ######################################### + ################################################################################################## + """ + + def _get_namespace_components(self, namespace: str) -> (str, str, str, str, str): + """ + Split namespace components + + :param namespace: []...[-] + :return: nsi_id, ns_id, vnf_id, vdu_id, vdu_count + """ + + # check parameters + if namespace is None or len(namespace) == 0: + raise N2VCBadArgumentsException('Argument namespace is mandatory', ['namespace']) + + # split namespace components + parts = namespace.split('.') + nsi_id = None + ns_id = None + vnf_id = None + vdu_id = None + vdu_count = None + if len(parts) > 0 and len(parts[0]) > 0: + nsi_id = parts[0] + if len(parts) > 1 and len(parts[1]) > 0: + ns_id = parts[1] + if len(parts) > 2 and len(parts[2]) > 0: + vnf_id = parts[2] + if len(parts) > 3 and len(parts[3]) > 0: + vdu_id = parts[3] + vdu_parts = parts[3].split('-') + if len(vdu_parts) > 1: + vdu_id = vdu_parts[0] + vdu_count = vdu_parts[1] + + return nsi_id, ns_id, vnf_id, vdu_id, vdu_count + + async def write_app_status_to_db( + self, + db_dict: dict, + status: N2VCDeploymentStatus, + detailed_status: str, + vca_status: str, + entity_type: str + ): + if not db_dict: + self.debug('No db_dict => No database write') + return + + self.debug('status={} / detailed-status={} / VCA-status={} / entity_type={}' + .format(str(status.value), detailed_status, vca_status, entity_type)) + + try: + + the_table = db_dict['collection'] + the_filter = db_dict['filter'] + the_path = db_dict['path'] + if not the_path[-1] == '.': + the_path = the_path + '.' + update_dict = { + the_path + 'status': str(status.value), + the_path + 'detailed-status': detailed_status, + the_path + 'VCA-status': vca_status, + the_path + 'entity-type': entity_type, + the_path + 'status-time': str(time.time()), + } + + self.db.set_one( + table=the_table, + q_filter=the_filter, + update_dict=update_dict, + fail_on_empty=True + ) + + # database callback + if self.on_update_db: + if asyncio.iscoroutinefunction(self.on_update_db): + await self.on_update_db(the_table, the_filter, the_path, update_dict) + else: + self.on_update_db(the_table, the_filter, the_path, update_dict) + + except DbException as e: + if e.http_code == HTTPStatus.NOT_FOUND: + self.error('NOT_FOUND error: Exception writing status to database: {}'.format(e)) + else: + self.info('Exception writing status to database: {}'.format(e)) + + +def juju_status_2_osm_status(type: str, status: str) -> N2VCDeploymentStatus: + if type == 'application' or type == 'unit': + if status in ['waiting', 'maintenance']: + return N2VCDeploymentStatus.RUNNING + elif status in ['active']: + return N2VCDeploymentStatus.COMPLETED + elif status in ['blocked']: + return N2VCDeploymentStatus.RUNNING + else: + return N2VCDeploymentStatus.UNKNOWN + elif type == 'action': + if status in ['running']: + return N2VCDeploymentStatus.RUNNING + elif status in ['completed']: + return N2VCDeploymentStatus.COMPLETED + else: + return N2VCDeploymentStatus.UNKNOWN + elif type == 'machine': + if status in ['pending']: + return N2VCDeploymentStatus.PENDING + elif status in ['started']: + return N2VCDeploymentStatus.COMPLETED + else: + return N2VCDeploymentStatus.UNKNOWN + + return N2VCDeploymentStatus.FAILED diff --git a/n2vc/n2vc_juju_conn.py b/n2vc/n2vc_juju_conn.py new file mode 100644 index 0000000..2d2fbdb --- /dev/null +++ b/n2vc/n2vc_juju_conn.py @@ -0,0 +1,1334 @@ +## +# Copyright 2019 Telefonica Investigacion y Desarrollo, S.A.U. +# This file is part of OSM +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# For those usages not covered by the Apache License, Version 2.0 please +# contact with: nfvlabs@tid.es +## + +import logging +import os +import asyncio +import time +import base64 +import binascii +import re + +from n2vc.n2vc_conn import N2VCConnector +from n2vc.exceptions \ + import N2VCBadArgumentsException, N2VCException, N2VCConnectionException, \ + N2VCExecutionException, N2VCInvalidCertificate +from n2vc.juju_observer import JujuModelObserver + +from juju.controller import Controller +from juju.model import Model +from juju.application import Application +from juju.action import Action +from juju.machine import Machine + + +class N2VCJujuConnector(N2VCConnector): + + """ + ################################################################################################## + ########################################## P U B L I C ########################################### + ################################################################################################## + """ + + def __init__( + self, + db: object, + fs: object, + log: object = None, + loop: object = None, + url: str = '127.0.0.1:17070', + username: str = 'admin', + vca_config: dict = None, + on_update_db=None, + api_proxy=None + ): + """Initialize juju N2VC connector + """ + + # parent class constructor + N2VCConnector.__init__( + self, + db=db, + fs=fs, + log=log, + loop=loop, + url=url, + username=username, + vca_config=vca_config, + on_update_db=on_update_db + ) + + # silence websocket traffic log + logging.getLogger('websockets.protocol').setLevel(logging.INFO) + logging.getLogger('juju.client.connection').setLevel(logging.WARN) + logging.getLogger('model').setLevel(logging.WARN) + + self.info('Initializing N2VC juju connector...') + + """ + ############################################################## + # check arguments + ############################################################## + """ + + # juju URL + if url is None: + raise N2VCBadArgumentsException('Argument url is mandatory', ['url']) + url_parts = url.split(':') + if len(url_parts) != 2: + raise N2VCBadArgumentsException('Argument url: bad format (localhost:port) -> {}'.format(url), ['url']) + self.hostname = url_parts[0] + try: + self.port = int(url_parts[1]) + except ValueError: + raise N2VCBadArgumentsException('url port must be a number -> {}'.format(url), ['url']) + + # juju USERNAME + if username is None: + raise N2VCBadArgumentsException('Argument username is mandatory', ['username']) + + # juju CONFIGURATION + if vca_config is None: + raise N2VCBadArgumentsException('Argument vca_config is mandatory', ['vca_config']) + + if 'secret' in vca_config: + self.secret = vca_config['secret'] + else: + raise N2VCBadArgumentsException('Argument vca_config.secret is mandatory', ['vca_config.secret']) + + # pubkey of juju client in osm machine: ~/.local/share/juju/ssh/juju_id_rsa.pub + # if exists, it will be written in lcm container: _create_juju_public_key() + if 'public_key' in vca_config: + self.public_key = vca_config['public_key'] + else: + self.public_key = None + + # TODO: Verify ca_cert is valid before using. VCA will crash + # if the ca_cert isn't formatted correctly. + def base64_to_cacert(b64string): + """Convert the base64-encoded string containing the VCA CACERT. + + The input string.... + + """ + try: + cacert = base64.b64decode(b64string).decode("utf-8") + + cacert = re.sub( + r'\\n', + r'\n', + cacert, + ) + except binascii.Error as e: + self.debug("Caught binascii.Error: {}".format(e)) + raise N2VCInvalidCertificate(message="Invalid CA Certificate") + + return cacert + + self.ca_cert = vca_config.get('ca_cert') + if self.ca_cert: + self.ca_cert = base64_to_cacert(vca_config['ca_cert']) + + if api_proxy: + self.api_proxy = api_proxy + else: + self.warning('api_proxy is not configured. Support for native charms is disabled') + + self.debug('Arguments have been checked') + + # juju data + self.controller = None # it will be filled when connect to juju + self.juju_models = {} # model objects for every model_name + self.juju_observers = {} # model observers for every model_name + self._connecting = False # while connecting to juju (to avoid duplicate connections) + self._authenticated = False # it will be True when juju connection be stablished + self._creating_model = False # True during model creation + + # create juju pub key file in lcm container at ./local/share/juju/ssh/juju_id_rsa.pub + self._create_juju_public_key() + + self.info('N2VC juju connector initialized') + + async def get_status(self, namespace: str): + self.info('Getting NS status. namespace: {}'.format(namespace)) + + if not self._authenticated: + await self._juju_login() + + nsi_id, ns_id, vnf_id, vdu_id, vdu_count = self._get_namespace_components(namespace=namespace) + # model name is ns_id + model_name = ns_id + if model_name is None: + msg = 'Namespace {} not valid'.format(namespace) + self.error(msg) + raise N2VCBadArgumentsException(msg, ['namespace']) + + # get juju model (create model if needed) + model = await self._juju_get_model(model_name=model_name) + + status = await model.get_status() + + return status + + async def create_execution_environment( + self, + namespace: str, + db_dict: dict, + reuse_ee_id: str = None, + progress_timeout: float = None, + total_timeout: float = None + ) -> (str, dict): + + self.info('Creating execution environment. namespace: {}, reuse_ee_id: {}'.format(namespace, reuse_ee_id)) + + if not self._authenticated: + await self._juju_login() + + machine_id = None + if reuse_ee_id: + model_name, application_name, machine_id = self._get_ee_id_components(ee_id=reuse_ee_id) + else: + nsi_id, ns_id, vnf_id, vdu_id, vdu_count = self._get_namespace_components(namespace=namespace) + # model name is ns_id + model_name = ns_id + # application name + application_name = self._get_application_name(namespace=namespace) + + self.debug('model name: {}, application name: {}, machine_id: {}' + .format(model_name, application_name, machine_id)) + + # create or reuse a new juju machine + try: + machine = await self._juju_create_machine( + model_name=model_name, + application_name=application_name, + machine_id=machine_id, + db_dict=db_dict, + progress_timeout=progress_timeout, + total_timeout=total_timeout + ) + except Exception as e: + message = 'Error creating machine on juju: {}'.format(e) + self.error(message) + raise N2VCException(message=message) + + # id for the execution environment + ee_id = N2VCJujuConnector._build_ee_id( + model_name=model_name, + application_name=application_name, + machine_id=str(machine.entity_id) + ) + self.debug('ee_id: {}'.format(ee_id)) + + # new machine credentials + credentials = dict() + credentials['hostname'] = machine.dns_name + + self.info('Execution environment created. ee_id: {}, credentials: {}'.format(ee_id, credentials)) + + return ee_id, credentials + + async def register_execution_environment( + self, + namespace: str, + credentials: dict, + db_dict: dict, + progress_timeout: float = None, + total_timeout: float = None + ) -> str: + + if not self._authenticated: + await self._juju_login() + + self.info('Registering execution environment. namespace={}, credentials={}'.format(namespace, credentials)) + + if credentials is None: + raise N2VCBadArgumentsException(message='credentials are mandatory', bad_args=['credentials']) + if 'hostname' in credentials: + hostname = credentials['hostname'] + else: + raise N2VCBadArgumentsException(message='hostname is mandatory', bad_args=['credentials.hostname']) + if 'username' in credentials: + username = credentials['username'] + else: + raise N2VCBadArgumentsException(message='username is mandatory', bad_args=['credentials.username']) + if 'private_key_path' in credentials: + private_key_path = credentials['private_key_path'] + else: + # if not passed as argument, use generated private key path + private_key_path = self.private_key_path + + nsi_id, ns_id, vnf_id, vdu_id, vdu_count = self._get_namespace_components(namespace=namespace) + + # model name + model_name = ns_id + # application name + application_name = self._get_application_name(namespace=namespace) + + # register machine on juju + try: + machine = await self._juju_provision_machine( + model_name=model_name, + hostname=hostname, + username=username, + private_key_path=private_key_path, + db_dict=db_dict, + progress_timeout=progress_timeout, + total_timeout=total_timeout + ) + except Exception as e: + self.error('Error registering machine: {}'.format(e)) + raise N2VCException(message='Error registering machine on juju: {}'.format(e)) + self.info('Machine registered') + + # id for the execution environment + ee_id = N2VCJujuConnector._build_ee_id( + model_name=model_name, + application_name=application_name, + machine_id=str(machine.entity_id) + ) + + self.info('Execution environment registered. ee_id: {}'.format(ee_id)) + + return ee_id + + async def install_configuration_sw( + self, + ee_id: str, + artifact_path: str, + db_dict: dict, + progress_timeout: float = None, + total_timeout: float = None + ): + + self.info('Installing configuration sw on ee_id: {}, artifact path: {}, db_dict: {}' + .format(ee_id, artifact_path, db_dict)) + + if not self._authenticated: + await self._juju_login() + + # check arguments + if ee_id is None or len(ee_id) == 0: + raise N2VCBadArgumentsException(message='ee_id is mandatory', bad_args=['ee_id']) + if artifact_path is None or len(artifact_path) == 0: + raise N2VCBadArgumentsException(message='artifact_path is mandatory', bad_args=['artifact_path']) + if db_dict is None: + raise N2VCBadArgumentsException(message='db_dict is mandatory', bad_args=['db_dict']) + + try: + model_name, application_name, machine_id = N2VCJujuConnector._get_ee_id_components(ee_id=ee_id) + self.debug('model: {}, application: {}, machine: {}'.format(model_name, application_name, machine_id)) + except Exception as e: + raise N2VCBadArgumentsException( + message='ee_id={} is not a valid execution environment id'.format(ee_id), + bad_args=['ee_id'] + ) + + # remove // in charm path + while artifact_path.find('//') >= 0: + artifact_path = artifact_path.replace('//', '/') + + # check charm path + if not self.fs.file_exists(artifact_path, mode="dir"): + msg = 'artifact path does not exist: {}'.format(artifact_path) + raise N2VCBadArgumentsException(message=msg, bad_args=['artifact_path']) + + if artifact_path.startswith('/'): + full_path = self.fs.path + artifact_path + else: + full_path = self.fs.path + '/' + artifact_path + + try: + application, retries = await self._juju_deploy_charm( + model_name=model_name, + application_name=application_name, + charm_path=full_path, + machine_id=machine_id, + db_dict=db_dict, + progress_timeout=progress_timeout, + total_timeout=total_timeout + ) + except Exception as e: + raise N2VCException(message='Error desploying charm into ee={} : {}'.format(ee_id, e)) + + self.info('Configuration sw installed') + + async def get_ee_ssh_public__key( + self, + ee_id: str, + db_dict: dict, + progress_timeout: float = None, + total_timeout: float = None + ) -> str: + + self.info('Generating priv/pub key pair and get pub key on ee_id: {}, db_dict: {}'.format(ee_id, db_dict)) + + if not self._authenticated: + await self._juju_login() + + # check arguments + if ee_id is None or len(ee_id) == 0: + raise N2VCBadArgumentsException(message='ee_id is mandatory', bad_args=['ee_id']) + if db_dict is None: + raise N2VCBadArgumentsException(message='db_dict is mandatory', bad_args=['db_dict']) + + try: + model_name, application_name, machine_id = N2VCJujuConnector._get_ee_id_components(ee_id=ee_id) + self.debug('model: {}, application: {}, machine: {}'.format(model_name, application_name, machine_id)) + except Exception as e: + raise N2VCBadArgumentsException( + message='ee_id={} is not a valid execution environment id'.format(ee_id), + bad_args=['ee_id'] + ) + + # try to execute ssh layer primitives (if exist): + # generate-ssh-key + # get-ssh-public-key + + output = None + + # execute action: generate-ssh-key + try: + output, status = await self._juju_execute_action( + model_name=model_name, + application_name=application_name, + action_name='generate-ssh-key', + db_dict=db_dict, + progress_timeout=progress_timeout, + total_timeout=total_timeout + ) + except Exception as e: + self.info('Cannot execute action generate-ssh-key: {}\nContinuing...'.format(e)) + + # execute action: get-ssh-public-key + try: + output, status = await self._juju_execute_action( + model_name=model_name, + application_name=application_name, + action_name='get-ssh-public-key', + db_dict=db_dict, + progress_timeout=progress_timeout, + total_timeout=total_timeout + ) + except Exception as e: + msg = 'Cannot execute action get-ssh-public-key: {}\n'.format(e) + self.info(msg) + raise e + + # return public key if exists + return output + + async def add_relation( + self, + ee_id_1: str, + ee_id_2: str, + endpoint_1: str, + endpoint_2: str + ): + + self.debug('adding new relation between {} and {}, endpoints: {}, {}' + .format(ee_id_1, ee_id_2, endpoint_1, endpoint_2)) + + if not self._authenticated: + await self._juju_login() + + # get model, application and machines + model_1, app_1, machine_1 = self._get_ee_id_components(ee_id_1) + model_2, app_2, machine_2 = self._get_ee_id_components(ee_id_2) + + # model must be the same + if model_1 != model_2: + message = 'EE models are not the same: {} vs {}'.format(ee_id_1, ee_id_2) + self.error(message) + raise N2VCBadArgumentsException(message=message, bad_args=['ee_id_1', 'ee_id_2']) + + # add juju relations between two applications + try: + self._juju_add_relation() + except Exception as e: + message = 'Error adding relation between {} and {}'.format(ee_id_1, ee_id_2) + self.error(message) + raise N2VCException(message=message) + + async def remove_relation( + self + ): + if not self._authenticated: + await self._juju_login() + # TODO + self.info('Method not implemented yet') + raise NotImplemented() + + async def deregister_execution_environments( + self + ): + if not self._authenticated: + await self._juju_login() + # TODO + self.info('Method not implemented yet') + raise NotImplemented() + + async def delete_namespace( + self, + namespace: str, + db_dict: dict = None, + total_timeout: float = None + ): + self.info('Deleting namespace={}'.format(namespace)) + + if not self._authenticated: + await self._juju_login() + + # check arguments + if namespace is None: + raise N2VCBadArgumentsException(message='namespace is mandatory', bad_args=['namespace']) + + nsi_id, ns_id, vnf_id, vdu_id, vdu_count = self._get_namespace_components(namespace=namespace) + if ns_id is not None: + self.debug('Deleting model {}'.format(ns_id)) + try: + await self._juju_destroy_model( + model_name=ns_id, + total_timeout=total_timeout + ) + except Exception as e: + raise N2VCException(message='Error deleting namespace {} : {}'.format(namespace, e)) + else: + raise N2VCBadArgumentsException(message='only ns_id is permitted to delete yet', bad_args=['namespace']) + + self.info('Namespace {} deleted'.format(namespace)) + + async def delete_execution_environment( + self, + ee_id: str, + db_dict: dict = None, + total_timeout: float = None + ): + self.info('Deleting execution environment ee_id={}'.format(ee_id)) + + if not self._authenticated: + await self._juju_login() + + # check arguments + if ee_id is None: + raise N2VCBadArgumentsException(message='ee_id is mandatory', bad_args=['ee_id']) + + model_name, application_name, machine_id = self._get_ee_id_components(ee_id=ee_id) + + # destroy the application + try: + await self._juju_destroy_application(model_name=model_name, application_name=application_name) + except Exception as e: + raise N2VCException(message='Error deleting execution environment {} (application {}) : {}' + .format(ee_id, application_name, e)) + + # destroy the machine + try: + await self._juju_destroy_machine( + model_name=model_name, + machine_id=machine_id, + total_timeout=total_timeout + ) + except Exception as e: + raise N2VCException(message='Error deleting execution environment {} (machine {}) : {}' + .format(ee_id, machine_id, e)) + + self.info('Execution environment {} deleted'.format(ee_id)) + + async def exec_primitive( + self, + ee_id: str, + primitive_name: str, + params_dict: dict, + db_dict: dict = None, + progress_timeout: float = None, + total_timeout: float = None + ) -> str: + + self.info('Executing primitive: {} on ee: {}, params: {}'.format(primitive_name, ee_id, params_dict)) + + if not self._authenticated: + await self._juju_login() + + # check arguments + if ee_id is None or len(ee_id) == 0: + raise N2VCBadArgumentsException(message='ee_id is mandatory', bad_args=['ee_id']) + if primitive_name is None or len(primitive_name) == 0: + raise N2VCBadArgumentsException(message='action_name is mandatory', bad_args=['action_name']) + if params_dict is None: + params_dict = dict() + + try: + model_name, application_name, machine_id = N2VCJujuConnector._get_ee_id_components(ee_id=ee_id) + except Exception: + raise N2VCBadArgumentsException( + message='ee_id={} is not a valid execution environment id'.format(ee_id), + bad_args=['ee_id'] + ) + + if primitive_name == 'config': + # Special case: config primitive + try: + await self._juju_configure_application( + model_name=model_name, + application_name=application_name, + config=params_dict, + db_dict=db_dict, + progress_timeout=progress_timeout, + total_timeout=total_timeout + ) + except Exception as e: + self.error('Error configuring juju application: {}'.format(e)) + raise N2VCExecutionException( + message='Error configuring application into ee={} : {}'.format(ee_id, e), + primitive_name=primitive_name + ) + return 'CONFIG OK' + else: + try: + output, status = await self._juju_execute_action( + model_name=model_name, + application_name=application_name, + action_name=primitive_name, + db_dict=db_dict, + progress_timeout=progress_timeout, + total_timeout=total_timeout, + **params_dict + ) + if status == 'completed': + return output + else: + raise Exception('status is not completed: {}'.format(status)) + except Exception as e: + self.error('Error executing primitive {}: {}'.format(primitive_name, e)) + raise N2VCExecutionException( + message='Error executing primitive {} into ee={} : {}'.format(primitive_name, ee_id, e), + primitive_name=primitive_name + ) + + async def disconnect(self): + self.info('closing juju N2VC...') + await self._juju_logout() + + """ + ################################################################################################## + ########################################## P R I V A T E ######################################### + ################################################################################################## + """ + + def _write_ee_id_db( + self, + db_dict: dict, + ee_id: str + ): + + # write ee_id to database: _admin.deployed.VCA.x + try: + the_table = db_dict['collection'] + the_filter = db_dict['filter'] + the_path = db_dict['path'] + if not the_path[-1] == '.': + the_path = the_path + '.' + update_dict = {the_path + 'ee_id': ee_id} + self.debug('Writing ee_id to database: {}'.format(the_path)) + self.db.set_one( + table=the_table, + q_filter=the_filter, + update_dict=update_dict, + fail_on_empty=True + ) + except Exception as e: + self.error('Error writing ee_id to database: {}'.format(e)) + + @staticmethod + def _build_ee_id( + model_name: str, + application_name: str, + machine_id: str + ): + """ + Build an execution environment id form model, application and machine + :param model_name: + :param application_name: + :param machine_id: + :return: + """ + # id for the execution environment + return '{}.{}.{}'.format(model_name, application_name, machine_id) + + @staticmethod + def _get_ee_id_components( + ee_id: str + ) -> (str, str, str): + """ + Get model, application and machine components from an execution environment id + :param ee_id: + :return: model_name, application_name, machine_id + """ + + if ee_id is None: + return None, None, None + + # split components of id + parts = ee_id.split('.') + model_name = parts[0] + application_name = parts[1] + machine_id = parts[2] + return model_name, application_name, machine_id + + def _get_application_name(self, namespace: str) -> str: + """ + Build application name from namespace + :param namespace: + :return: app-vnf--vdu--cnt- + """ + + # split namespace components + _, _, vnf_id, vdu_id, vdu_count = self._get_namespace_components(namespace=namespace) + + if vnf_id is None or len(vnf_id) == 0: + vnf_id = '' + else: + vnf_id = 'vnf-' + vnf_id + + if vdu_id is None or len(vdu_id) == 0: + vdu_id = '' + else: + vdu_id = '-vdu-' + vdu_id + + if vdu_count is None or len(vdu_count) == 0: + vdu_count = '' + else: + vdu_count = '-cnt-' + vdu_count + + application_name = 'app-{}{}{}'.format(vnf_id, vdu_id, vdu_count) + + return N2VCJujuConnector._format_app_name(application_name) + + async def _juju_create_machine( + self, + model_name: str, + application_name: str, + machine_id: str = None, + db_dict: dict = None, + progress_timeout: float = None, + total_timeout: float = None + ) -> Machine: + + self.debug('creating machine in model: {}, existing machine id: {}'.format(model_name, machine_id)) + + # get juju model and observer (create model if needed) + model = await self._juju_get_model(model_name=model_name) + observer = self.juju_observers[model_name] + + # find machine id in model + machine = None + if machine_id is not None: + self.debug('Finding existing machine id {} in model'.format(machine_id)) + # get juju existing machines in the model + existing_machines = await model.get_machines() + if machine_id in existing_machines: + self.debug('Machine id {} found in model (reusing it)'.format(machine_id)) + machine = model.machines[machine_id] + + if machine is None: + self.debug('Creating a new machine in juju...') + # machine does not exist, create it and wait for it + machine = await model.add_machine( + spec=None, + constraints=None, + disks=None, + series='xenial' + ) + + # register machine with observer + observer.register_machine(machine=machine, db_dict=db_dict) + + # id for the execution environment + ee_id = N2VCJujuConnector._build_ee_id( + model_name=model_name, + application_name=application_name, + machine_id=str(machine.entity_id) + ) + + # write ee_id in database + self._write_ee_id_db( + db_dict=db_dict, + ee_id=ee_id + ) + + # wait for machine creation + await observer.wait_for_machine( + machine_id=str(machine.entity_id), + progress_timeout=progress_timeout, + total_timeout=total_timeout + ) + + else: + + self.debug('Reusing old machine pending') + + # register machine with observer + observer.register_machine(machine=machine, db_dict=db_dict) + + # machine does exist, but it is in creation process (pending), wait for create finalisation + await observer.wait_for_machine( + machine_id=machine.entity_id, + progress_timeout=progress_timeout, + total_timeout=total_timeout) + + self.debug("Machine ready at " + str(machine.dns_name)) + return machine + + async def _juju_provision_machine( + self, + model_name: str, + hostname: str, + username: str, + private_key_path: str, + db_dict: dict = None, + progress_timeout: float = None, + total_timeout: float = None + ) -> Machine: + + self.debug('provisioning machine. model: {}, hostname: {}'.format(model_name, hostname)) + + if not self._authenticated: + await self._juju_login() + + # get juju model and observer + model = await self._juju_get_model(model_name=model_name) + observer = self.juju_observers[model_name] + + spec = 'ssh:{}@{}:{}'.format(username, hostname, private_key_path) + self.debug('provisioning machine {}'.format(spec)) + try: + machine = await model.add_machine(spec=spec) + except Exception as e: + import sys + import traceback + traceback.print_exc(file=sys.stdout) + print('-' * 60) + raise e + + # register machine with observer + observer.register_machine(machine=machine, db_dict=db_dict) + + # wait for machine creation + self.debug('waiting for provision completed... {}'.format(machine.entity_id)) + await observer.wait_for_machine( + machine=machine, + progress_timeout=progress_timeout, + total_timeout=total_timeout + ) + + self.debug("Machine provisioned {}".format(machine.entity_id)) + return machine + + async def _juju_deploy_charm( + self, + model_name: str, + application_name: str, + charm_path: str, + machine_id: str, + db_dict: dict, + progress_timeout: float = None, + total_timeout: float = None + ) -> (Application, int): + + # get juju model and observer + model = await self._juju_get_model(model_name=model_name) + observer = self.juju_observers[model_name] + + # check if application already exists + application = None + if application_name in model.applications: + application = model.applications[application_name] + + if application is None: + + # application does not exist, create it and wait for it + self.debug('deploying application {} to machine {}, model {}' + .format(application_name, machine_id, model_name)) + self.debug('charm: {}'.format(charm_path)) + application = await model.deploy( + entity_url=charm_path, + application_name=application_name, + channel='stable', + num_units=1, + series='xenial', + to=machine_id + ) + + # register application with observer + observer.register_application(application=application, db_dict=db_dict) + + self.debug('waiting for application deployed... {}'.format(application.entity_id)) + retries = await observer.wait_for_application( + application_id=application.entity_id, + progress_timeout=progress_timeout, + total_timeout=total_timeout) + self.debug('application deployed') + + else: + + # register application with observer + observer.register_application(application=application, db_dict=db_dict) + + # application already exists, but not finalised + self.debug('application already exists, waiting for deployed...') + retries = await observer.wait_for_application( + application_id=application.entity_id, + progress_timeout=progress_timeout, + total_timeout=total_timeout) + self.debug('application deployed') + + return application, retries + + async def _juju_execute_action( + self, + model_name: str, + application_name: str, + action_name: str, + db_dict: dict, + progress_timeout: float = None, + total_timeout: float = None, + **kwargs + ) -> Action: + + # get juju model and observer + model = await self._juju_get_model(model_name=model_name) + observer = self.juju_observers[model_name] + + application = await self._juju_get_application(model_name=model_name, application_name=application_name) + + self.debug('trying to execute action {}'.format(action_name)) + unit = application.units[0] + if unit is not None: + actions = await application.get_actions() + if action_name in actions: + self.debug('executing action {} with params {}'.format(action_name, kwargs)) + action = await unit.run_action(action_name, **kwargs) + + # register action with observer + observer.register_action(action=action, db_dict=db_dict) + + self.debug(' waiting for action completed or error...') + await observer.wait_for_action( + action_id=action.entity_id, + progress_timeout=progress_timeout, + total_timeout=total_timeout) + self.debug('action completed with status: {}'.format(action.status)) + output = await model.get_action_output(action_uuid=action.entity_id) + status = await model.get_action_status(uuid_or_prefix=action.entity_id) + if action.entity_id in status: + status = status[action.entity_id] + else: + status = 'failed' + return output, status + + raise N2VCExecutionException( + message='Cannot execute action on charm', + primitive_name=action_name + ) + + async def _juju_configure_application( + self, + model_name: str, + application_name: str, + config: dict, + db_dict: dict, + progress_timeout: float = None, + total_timeout: float = None + ): + + # get juju model + model = await self._juju_get_model(model_name=model_name) + + # get the application + application = await self._juju_get_application(model_name=model_name, application_name=application_name) + + self.debug('configuring the application {} -> {}'.format(application_name, config)) + res = await application.set_config(config) + self.debug('application {} configured. res={}'.format(application_name, res)) + + # Verify the config is set + new_conf = await application.get_config() + for key in config: + value = new_conf[key]['value'] + self.debug(' {} = {}'.format(key, value)) + if config[key] != value: + raise N2VCException( + message='key {} is not configured correctly {} != {}'.format(key, config[key], new_conf[key]) + ) + + # check if 'verify-ssh-credentials' action exists + unit = application.units[0] + actions = await application.get_actions() + if 'verify-ssh-credentials' not in actions: + msg = 'Action verify-ssh-credentials does not exist in application {}'.format(application_name) + return False + + # execute verify-credentials + num_retries = 20 + retry_timeout = 15.0 + for i in range(num_retries): + try: + self.debug('Executing action verify-ssh-credentials...') + output, ok = await self._juju_execute_action( + model_name=model_name, + application_name=application_name, + action_name='verify-ssh-credentials', + db_dict=db_dict, + progress_timeout=progress_timeout, + total_timeout=total_timeout + ) + self.debug('Result: {}, output: {}'.format(ok, output)) + return True + except Exception as e: + self.debug('Error executing verify-ssh-credentials: {}. Retrying...'.format(e)) + await asyncio.sleep(retry_timeout) + else: + self.error('Error executing verify-ssh-credentials after {} retries. '.format(num_retries)) + return False + + async def _juju_get_application( + self, + model_name: str, + application_name: str + ): + """Get the deployed application.""" + + model = await self._juju_get_model(model_name=model_name) + + application_name = N2VCJujuConnector._format_app_name(application_name) + + if model.applications and application_name in model.applications: + return model.applications[application_name] + else: + raise N2VCException(message='Cannot get application {} from model {}'.format(application_name, model_name)) + + async def _juju_get_model(self, model_name: str) -> Model: + """ Get a model object from juju controller + + :param str model_name: name of the model + :returns Model: model obtained from juju controller or Exception + """ + + # format model name + model_name = N2VCJujuConnector._format_model_name(model_name) + + if model_name in self.juju_models: + return self.juju_models[model_name] + + if self._creating_model: + self.debug('Another coroutine is creating a model. Wait...') + while self._creating_model: + # another coroutine is creating a model, wait + await asyncio.sleep(0.1) + # retry (perhaps another coroutine has created the model meanwhile) + if model_name in self.juju_models: + return self.juju_models[model_name] + + try: + self._creating_model = True + + # get juju model names from juju + model_list = await self.controller.list_models() + + if model_name not in model_list: + self.info('Model {} does not exist. Creating new model...'.format(model_name)) + model = await self.controller.add_model( + model_name=model_name, + config={'authorized-keys': self.public_key} + ) + self.info('New model created, name={}'.format(model_name)) + else: + self.debug('Model already exists in juju. Getting model {}'.format(model_name)) + model = await self.controller.get_model(model_name) + self.debug('Existing model in juju, name={}'.format(model_name)) + + self.juju_models[model_name] = model + self.juju_observers[model_name] = JujuModelObserver(n2vc=self, model=model) + return model + + except Exception as e: + msg = 'Cannot get model {}. Exception: {}'.format(model_name, e) + self.error(msg) + raise N2VCException(msg) + finally: + self._creating_model = False + + async def _juju_add_relation( + self, + model_name: str, + application_name_1: str, + application_name_2: str, + relation_1: str, + relation_2: str + ): + + self.debug('adding relation') + + # get juju model and observer + model = await self._juju_get_model(model_name=model_name) + + r1 = '{}:{}'.format(application_name_1, relation_1) + r2 = '{}:{}'.format(application_name_2, relation_2) + await model.add_relation(relation1=r1, relation2=r2) + + async def _juju_destroy_application( + self, + model_name: str, + application_name: str + ): + + self.debug('Destroying application {} in model {}'.format(application_name, model_name)) + + # get juju model and observer + model = await self._juju_get_model(model_name=model_name) + + application = model.applications.get(application_name) + if application: + await application.destroy() + else: + self.debug('Application not found: {}'.format(application_name)) + + async def _juju_destroy_machine( + self, + model_name: str, + machine_id: str, + total_timeout: float = None + ): + + self.debug('Destroying machine {} in model {}'.format(machine_id, model_name)) + + if total_timeout is None: + total_timeout = 3600 + + # get juju model and observer + model = await self._juju_get_model(model_name=model_name) + + machines = await model.get_machines() + if machine_id in machines: + machine = model.machines[machine_id] + await machine.destroy(force=True) + # max timeout + end = time.time() + total_timeout + # wait for machine removal + machines = await model.get_machines() + while machine_id in machines and time.time() < end: + self.debug('Waiting for machine {} is destroyed'.format(machine_id)) + await asyncio.sleep(0.5) + machines = await model.get_machines() + self.debug('Machine destroyed: {}'.format(machine_id)) + else: + self.debug('Machine not found: {}'.format(machine_id)) + + async def _juju_destroy_model( + self, + model_name: str, + total_timeout: float = None + ): + + self.debug('Destroying model {}'.format(model_name)) + + if total_timeout is None: + total_timeout = 3600 + + model = await self._juju_get_model(model_name=model_name) + uuid = model.info.uuid + + self.debug('disconnecting model {}...'.format(model_name)) + await self._juju_disconnect_model(model_name=model_name) + self.juju_models[model_name] = None + self.juju_observers[model_name] = None + + self.debug('destroying model {}...'.format(model_name)) + await self.controller.destroy_model(uuid) + + # wait for model is completely destroyed + end = time.time() + total_timeout + while time.time() < end: + self.debug('waiting for model is destroyed...') + try: + await self.controller.get_model(uuid) + except Exception: + self.debug('model destroyed') + return + await asyncio.sleep(1.0) + + async def _juju_login(self): + """Connect to juju controller + + """ + + # if already authenticated, exit function + if self._authenticated: + return + + # if connecting, wait for finish + # another task could be trying to connect in parallel + while self._connecting: + await asyncio.sleep(0.1) + + # double check after other task has finished + if self._authenticated: + return + + try: + self._connecting = True + self.info( + 'connecting to juju controller: {} {}:{} ca_cert: {}' + .format(self.url, self.username, self.secret, '\n'+self.ca_cert if self.ca_cert else 'None')) + + # Create controller object + self.controller = Controller(loop=self.loop) + # Connect to controller + await self.controller.connect( + endpoint=self.url, + username=self.username, + password=self.secret, + cacert=self.ca_cert + ) + self._authenticated = True + self.info('juju controller connected') + except Exception as e: + message = 'Exception connecting to juju: {}'.format(e) + self.error(message) + raise N2VCConnectionException( + message=message, + url=self.url + ) + finally: + self._connecting = False + + async def _juju_logout(self): + """Logout of the Juju controller.""" + if not self._authenticated: + return False + + # disconnect all models + for model_name in self.juju_models: + try: + await self._juju_disconnect_model(model_name) + except Exception as e: + self.error('Error disconnecting model {} : {}'.format(model_name, e)) + # continue with next model... + + self.info("Disconnecting controller") + try: + await self.controller.disconnect() + except Exception as e: + raise N2VCConnectionException(message='Error disconnecting controller: {}'.format(e), url=self.url) + + self.controller = None + self._authenticated = False + self.info('disconnected') + + async def _juju_disconnect_model( + self, + model_name: str + ): + self.debug("Disconnecting model {}".format(model_name)) + if model_name in self.juju_models: + await self.juju_models[model_name].disconnect() + self.juju_models[model_name] = None + self.juju_observers[model_name] = None + + def _create_juju_public_key(self): + """Recreate the Juju public key on lcm container, if needed + Certain libjuju commands expect to be run from the same machine as Juju + is bootstrapped to. This method will write the public key to disk in + that location: ~/.local/share/juju/ssh/juju_id_rsa.pub + """ + + # Make sure that we have a public key before writing to disk + if self.public_key is None or len(self.public_key) == 0: + if 'OSMLCM_VCA_PUBKEY' in os.environ: + self.public_key = os.getenv('OSMLCM_VCA_PUBKEY', '') + if len(self.public_key) == 0: + return + else: + return + + pk_path = "{}/.local/share/juju/ssh".format(os.path.expanduser('~')) + file_path = "{}/juju_id_rsa.pub".format(pk_path) + self.debug('writing juju public key to file:\n{}\npublic key: {}'.format(file_path, self.public_key)) + if not os.path.exists(pk_path): + # create path and write file + os.makedirs(pk_path) + with open(file_path, 'w') as f: + self.debug('Creating juju public key file: {}'.format(file_path)) + f.write(self.public_key) + else: + self.debug('juju public key file already exists: {}'.format(file_path)) + + @staticmethod + def _format_model_name(name: str) -> str: + """Format the name of the model. + + Model names may only contain lowercase letters, digits and hyphens + """ + + return name.replace('_', '-').replace(' ', '-').lower() + + @staticmethod + def _format_app_name(name: str) -> str: + """Format the name of the application (in order to assure valid application name). + + Application names have restrictions (run juju deploy --help): + - contains lowercase letters 'a'-'z' + - contains numbers '0'-'9' + - contains hyphens '-' + - starts with a lowercase letter + - not two or more consecutive hyphens + - after a hyphen, not a group with all numbers + """ + + def all_numbers(s: str) -> bool: + for c in s: + if not c.isdigit(): + return False + return True + + new_name = name.replace('_', '-') + new_name = new_name.replace(' ', '-') + new_name = new_name.lower() + while new_name.find('--') >= 0: + new_name = new_name.replace('--', '-') + groups = new_name.split('-') + + # find 'all numbers' groups and prefix them with a letter + app_name = '' + for i in range(len(groups)): + group = groups[i] + if all_numbers(group): + group = 'z' + group + if i > 0: + app_name += '-' + app_name += group + + if app_name[0].isdigit(): + app_name = 'z' + app_name + + return app_name -- 2.17.1 From 8b1bcf0b86fe042703a59f14ba62537406d69eee Mon Sep 17 00:00:00 2001 From: tierno Date: Sat, 23 Nov 2019 22:41:22 +0000 Subject: [PATCH 11/16] minor fix in yaml load with Loader Change-Id: I1bc0e7197f6057c942490b710fbaf25013202ecb Signed-off-by: tierno --- n2vc/k8s_helm_conn.py | 2 +- tests/base.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/n2vc/k8s_helm_conn.py b/n2vc/k8s_helm_conn.py index cd15d73..4e6c4c5 100644 --- a/n2vc/k8s_helm_conn.py +++ b/n2vc/k8s_helm_conn.py @@ -894,7 +894,7 @@ class K8sHelmConnector(K8sConnector): for key in params: value = params.get(key) if '!!yaml' in str(value): - value = yaml.load(value[7:]) + value = yaml.load(value[7:], Loader=yaml.SafeLoader) params2[key] = value values_file = get_random_number() + '.yaml' diff --git a/tests/base.py b/tests/base.py index c7dad6d..e40338f 100644 --- a/tests/base.py +++ b/tests/base.py @@ -108,7 +108,7 @@ def has_metrics(charm): def get_descriptor(descriptor): desc = None try: - tmp = yaml.load(descriptor) + tmp = yaml.load(descriptor, Loader=yaml.Loader) # Remove the envelope root = list(tmp.keys())[0] -- 2.17.1 From 0d648c93b6f03dc221a9e34bfa021003e17f1992 Mon Sep 17 00:00:00 2001 From: tierno Date: Mon, 25 Nov 2019 09:23:16 +0000 Subject: [PATCH 12/16] Revert change 8b1bcf0 Change-Id: I85fd9a038aa123eaf9b216e9d15f709cef7a808a Signed-off-by: tierno --- n2vc/k8s_helm_conn.py | 2 +- tests/base.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/n2vc/k8s_helm_conn.py b/n2vc/k8s_helm_conn.py index 4e6c4c5..cd15d73 100644 --- a/n2vc/k8s_helm_conn.py +++ b/n2vc/k8s_helm_conn.py @@ -894,7 +894,7 @@ class K8sHelmConnector(K8sConnector): for key in params: value = params.get(key) if '!!yaml' in str(value): - value = yaml.load(value[7:], Loader=yaml.SafeLoader) + value = yaml.load(value[7:]) params2[key] = value values_file = get_random_number() + '.yaml' diff --git a/tests/base.py b/tests/base.py index e40338f..c7dad6d 100644 --- a/tests/base.py +++ b/tests/base.py @@ -108,7 +108,7 @@ def has_metrics(charm): def get_descriptor(descriptor): desc = None try: - tmp = yaml.load(descriptor, Loader=yaml.Loader) + tmp = yaml.load(descriptor) # Remove the envelope root = list(tmp.keys())[0] -- 2.17.1 From b55431706ed483ff750f203e100c5079e96be412 Mon Sep 17 00:00:00 2001 From: Adam Israel Date: Tue, 26 Nov 2019 09:20:41 -0500 Subject: [PATCH 13/16] Update to use safe_load The use of a bare yaml.load with no Loader is deprecated. Use the sugar shortcut safe_load per https://github.com/yaml/pyyaml/wiki/PyYAML-yaml.load(input)-Deprecation Change-Id: I856d4263fcf20453157f9d3835289e665d1664bf Signed-off-by: Adam Israel --- tests/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/base.py b/tests/base.py index c7dad6d..aabf359 100644 --- a/tests/base.py +++ b/tests/base.py @@ -108,7 +108,7 @@ def has_metrics(charm): def get_descriptor(descriptor): desc = None try: - tmp = yaml.load(descriptor) + tmp = yaml.safe_load(descriptor) # Remove the envelope root = list(tmp.keys())[0] -- 2.17.1 From 9a1bd31f1e8d0a70b8837a057582cb2e82e66194 Mon Sep 17 00:00:00 2001 From: Adam Israel Date: Tue, 26 Nov 2019 09:23:52 -0500 Subject: [PATCH 14/16] Update deprecated use of yaml.load Update the deprecated use of `yaml.load` without a loader, replacing it with a call to the sugar method `yaml.safe_load`. See also: https://github.com/yaml/pyyaml/wiki/PyYAML-yaml.load(input)-Deprecation Change-Id: Ia5b591349ba6da4260545335315d3d07191f76cf Signed-off-by: Adam Israel --- n2vc/k8s_helm_conn.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/n2vc/k8s_helm_conn.py b/n2vc/k8s_helm_conn.py index cd15d73..eac34d4 100644 --- a/n2vc/k8s_helm_conn.py +++ b/n2vc/k8s_helm_conn.py @@ -894,7 +894,7 @@ class K8sHelmConnector(K8sConnector): for key in params: value = params.get(key) if '!!yaml' in str(value): - value = yaml.load(value[7:]) + value = yaml.safe_load(value[7:]) params2[key] = value values_file = get_random_number() + '.yaml' -- 2.17.1 From ca6eb9540fb659eb36f0ec9d5bbf1ebfce3f1958 Mon Sep 17 00:00:00 2001 From: Dominik Fleischmann Date: Wed, 27 Nov 2019 16:38:18 +0100 Subject: [PATCH 15/16] Add License headers to all code files This was related to bug 547 https://osm.etsi.org/bugzilla/show_bug.cgi?id=547 Change-Id: Ief72f6e3b3de828be033729298ae905d163c6988 Signed-off-by: Dominik Fleischmann --- Dockerfile | 14 ++++++++++++++ Makefile | 14 ++++++++++++++ devops-stages/stage-archive.sh | 14 ++++++++++++++ devops-stages/stage-build.sh | 14 ++++++++++++++ devops-stages/stage-test.sh | 14 ++++++++++++++ n2vc/__init__.py | 14 ++++++++++++++ tests/__init__.py | 14 ++++++++++++++ tests/charms/layers/broken/actions.yaml | 14 ++++++++++++++ tests/charms/layers/broken/config.yaml | 14 ++++++++++++++ tests/charms/layers/broken/layer.yaml | 14 ++++++++++++++ tests/charms/layers/broken/metadata.yaml | 14 ++++++++++++++ tests/charms/layers/broken/metrics.yaml | 14 ++++++++++++++ tests/charms/layers/broken/reactive/simple.py | 14 ++++++++++++++ tests/charms/layers/metrics-ci/config.yaml | 14 ++++++++++++++ tests/charms/layers/metrics-ci/layer.yaml | 14 ++++++++++++++ tests/charms/layers/metrics-ci/metadata.yaml | 14 ++++++++++++++ tests/charms/layers/metrics-ci/metrics.yaml | 14 ++++++++++++++ .../layers/metrics-ci/reactive/metrics_ci.py | 14 ++++++++++++++ tests/charms/layers/metrics-proxy-ci/config.yaml | 14 ++++++++++++++ tests/charms/layers/metrics-proxy-ci/layer.yaml | 14 ++++++++++++++ tests/charms/layers/metrics-proxy-ci/metadata.yaml | 14 ++++++++++++++ tests/charms/layers/metrics-proxy-ci/metrics.yaml | 14 ++++++++++++++ .../layers/metrics-proxy-ci/reactive/metrics_ci.py | 14 ++++++++++++++ tests/charms/layers/native-ci/actions.yaml | 14 ++++++++++++++ tests/charms/layers/native-ci/layer.yaml | 14 ++++++++++++++ tests/charms/layers/native-ci/metadata.yaml | 14 ++++++++++++++ .../charms/layers/native-ci/reactive/native-ci.py | 14 ++++++++++++++ tests/charms/layers/proxy-ci/actions.yaml | 14 ++++++++++++++ tests/charms/layers/proxy-ci/layer.yaml | 14 ++++++++++++++ tests/charms/layers/proxy-ci/metadata.yaml | 14 ++++++++++++++ tests/charms/layers/proxy-ci/reactive/proxy_ci.py | 14 ++++++++++++++ tests/charms/layers/simple/actions.yaml | 14 ++++++++++++++ tests/charms/layers/simple/config.yaml | 14 ++++++++++++++ tests/charms/layers/simple/layer.yaml | 14 ++++++++++++++ tests/charms/layers/simple/metadata.yaml | 14 ++++++++++++++ tests/charms/layers/simple/metrics.yaml | 14 ++++++++++++++ tests/charms/layers/simple/reactive/simple.py | 14 ++++++++++++++ tests/integration/__init__.py | 13 +++++++++++++ tests/integration/test_broken_charm.py | 14 ++++++++++++++ tests/integration/test_charm_native.py | 14 ++++++++++++++ tests/integration/test_charm_proxy.py | 14 ++++++++++++++ tests/integration/test_charm_relate.py | 14 ++++++++++++++ tests/integration/test_hackfest_simple.py | 14 ++++++++++++++ tests/integration/test_metrics_native.py | 14 ++++++++++++++ tests/integration/test_metrics_proxy.py | 14 ++++++++++++++ tests/integration/test_multivdu_multicharm.py | 14 ++++++++++++++ .../test_no_initial_config_primitive.py | 14 ++++++++++++++ tests/integration/test_no_parameter.py | 14 ++++++++++++++ tests/integration/test_non_existent_primitive.py | 14 ++++++++++++++ tests/integration/test_non_string_parameter.py | 14 ++++++++++++++ tests/integration/test_simplecharm.py | 14 ++++++++++++++ tests/test_lxd.py | 14 ++++++++++++++ tests/test_model.py | 14 ++++++++++++++ tests/test_ssh_keygen.py | 14 ++++++++++++++ 54 files changed, 755 insertions(+) diff --git a/Dockerfile b/Dockerfile index 80718ed..53e48bb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + FROM ubuntu:16.04 RUN apt-get update && apt-get -y install git make python python3 \ diff --git a/Makefile b/Makefile index 2fb92a8..a334b5a 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + clean: find . -name __pycache__ -type d -exec rm -r {} + find . -name *.pyc -delete diff --git a/devops-stages/stage-archive.sh b/devops-stages/stage-archive.sh index e3d589f..662616c 100755 --- a/devops-stages/stage-archive.sh +++ b/devops-stages/stage-archive.sh @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + #!/bin/sh MDG=N2VC rm -rf pool diff --git a/devops-stages/stage-build.sh b/devops-stages/stage-build.sh index bf7602b..6b6d39b 100755 --- a/devops-stages/stage-build.sh +++ b/devops-stages/stage-build.sh @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + #!/bin/sh rm -rf deb_dist tox -e build diff --git a/devops-stages/stage-test.sh b/devops-stages/stage-test.sh index 0333d84..9c960cb 100755 --- a/devops-stages/stage-test.sh +++ b/devops-stages/stage-test.sh @@ -1,2 +1,16 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + #!/bin/sh #tox diff --git a/n2vc/__init__.py b/n2vc/__init__.py index 889c3ab..ac8adf5 100644 --- a/n2vc/__init__.py +++ b/n2vc/__init__.py @@ -1 +1,15 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + version = '0.0.2' diff --git a/tests/__init__.py b/tests/__init__.py index e69de29..22ec1e3 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2019 Canonical Ltd. + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + diff --git a/tests/charms/layers/broken/actions.yaml b/tests/charms/layers/broken/actions.yaml index 6cd6f8c..d224b5d 100644 --- a/tests/charms/layers/broken/actions.yaml +++ b/tests/charms/layers/broken/actions.yaml @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + touch: description: "Touch a file on the VNF." params: diff --git a/tests/charms/layers/broken/config.yaml b/tests/charms/layers/broken/config.yaml index 51f2ce4..8bde313 100644 --- a/tests/charms/layers/broken/config.yaml +++ b/tests/charms/layers/broken/config.yaml @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + options: string-option: type: string diff --git a/tests/charms/layers/broken/layer.yaml b/tests/charms/layers/broken/layer.yaml index 3fed5e2..2ee67bf 100644 --- a/tests/charms/layers/broken/layer.yaml +++ b/tests/charms/layers/broken/layer.yaml @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + includes: ['layer:basic', 'layer:vnfproxy'] options: basic: diff --git a/tests/charms/layers/broken/metadata.yaml b/tests/charms/layers/broken/metadata.yaml index 1780d3f..ed41942 100644 --- a/tests/charms/layers/broken/metadata.yaml +++ b/tests/charms/layers/broken/metadata.yaml @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + name: broken summary: A (broken) simple VNF proxy charm maintainer: Adam Israel diff --git a/tests/charms/layers/broken/metrics.yaml b/tests/charms/layers/broken/metrics.yaml index 6ebb605..e610b99 100644 --- a/tests/charms/layers/broken/metrics.yaml +++ b/tests/charms/layers/broken/metrics.yaml @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + metrics: uptime: type: gauge diff --git a/tests/charms/layers/broken/reactive/simple.py b/tests/charms/layers/broken/reactive/simple.py index 1529eee..3a018fb 100644 --- a/tests/charms/layers/broken/reactive/simple.py +++ b/tests/charms/layers/broken/reactive/simple.py @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + from charmhelpers.core.hookenv import ( action_get, action_fail, diff --git a/tests/charms/layers/metrics-ci/config.yaml b/tests/charms/layers/metrics-ci/config.yaml index 51f2ce4..8bde313 100755 --- a/tests/charms/layers/metrics-ci/config.yaml +++ b/tests/charms/layers/metrics-ci/config.yaml @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + options: string-option: type: string diff --git a/tests/charms/layers/metrics-ci/layer.yaml b/tests/charms/layers/metrics-ci/layer.yaml index bd3a2b9..0726ddf 100755 --- a/tests/charms/layers/metrics-ci/layer.yaml +++ b/tests/charms/layers/metrics-ci/layer.yaml @@ -1 +1,15 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + includes: ['layer:basic', 'layer:metrics'] # if you use any interfaces, add them here diff --git a/tests/charms/layers/metrics-ci/metadata.yaml b/tests/charms/layers/metrics-ci/metadata.yaml index 060274d..8c7e081 100755 --- a/tests/charms/layers/metrics-ci/metadata.yaml +++ b/tests/charms/layers/metrics-ci/metadata.yaml @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + name: metrics-ci summary: maintainer: Adam Israel diff --git a/tests/charms/layers/metrics-ci/metrics.yaml b/tests/charms/layers/metrics-ci/metrics.yaml index dae092f..2326f6c 100755 --- a/tests/charms/layers/metrics-ci/metrics.yaml +++ b/tests/charms/layers/metrics-ci/metrics.yaml @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + metrics: users: type: gauge diff --git a/tests/charms/layers/metrics-ci/reactive/metrics_ci.py b/tests/charms/layers/metrics-ci/reactive/metrics_ci.py index 9217be4..4c4756a 100755 --- a/tests/charms/layers/metrics-ci/reactive/metrics_ci.py +++ b/tests/charms/layers/metrics-ci/reactive/metrics_ci.py @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + from charmhelpers.core.hookenv import ( status_set, ) diff --git a/tests/charms/layers/metrics-proxy-ci/config.yaml b/tests/charms/layers/metrics-proxy-ci/config.yaml index 51f2ce4..8bde313 100644 --- a/tests/charms/layers/metrics-proxy-ci/config.yaml +++ b/tests/charms/layers/metrics-proxy-ci/config.yaml @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + options: string-option: type: string diff --git a/tests/charms/layers/metrics-proxy-ci/layer.yaml b/tests/charms/layers/metrics-proxy-ci/layer.yaml index 790dee6..186f1db 100644 --- a/tests/charms/layers/metrics-proxy-ci/layer.yaml +++ b/tests/charms/layers/metrics-proxy-ci/layer.yaml @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + includes: - 'layer:basic' - 'layer:vnfproxy' diff --git a/tests/charms/layers/metrics-proxy-ci/metadata.yaml b/tests/charms/layers/metrics-proxy-ci/metadata.yaml index ae42434..78bf753 100644 --- a/tests/charms/layers/metrics-proxy-ci/metadata.yaml +++ b/tests/charms/layers/metrics-proxy-ci/metadata.yaml @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + name: metrics-proxy-ci summary: maintainer: Adam Israel diff --git a/tests/charms/layers/metrics-proxy-ci/metrics.yaml b/tests/charms/layers/metrics-proxy-ci/metrics.yaml index dae092f..2326f6c 100644 --- a/tests/charms/layers/metrics-proxy-ci/metrics.yaml +++ b/tests/charms/layers/metrics-proxy-ci/metrics.yaml @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + metrics: users: type: gauge diff --git a/tests/charms/layers/metrics-proxy-ci/reactive/metrics_ci.py b/tests/charms/layers/metrics-proxy-ci/reactive/metrics_ci.py index 51ce49e..ea5c544 100644 --- a/tests/charms/layers/metrics-proxy-ci/reactive/metrics_ci.py +++ b/tests/charms/layers/metrics-proxy-ci/reactive/metrics_ci.py @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + from charmhelpers.core.hookenv import ( status_set, ) diff --git a/tests/charms/layers/native-ci/actions.yaml b/tests/charms/layers/native-ci/actions.yaml index 6adcba7..46c6cb7 100644 --- a/tests/charms/layers/native-ci/actions.yaml +++ b/tests/charms/layers/native-ci/actions.yaml @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + test: description: "Verify that the action can run." testint: diff --git a/tests/charms/layers/native-ci/layer.yaml b/tests/charms/layers/native-ci/layer.yaml index 138d9d3..4dd82f9 100644 --- a/tests/charms/layers/native-ci/layer.yaml +++ b/tests/charms/layers/native-ci/layer.yaml @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + includes: - 'layer:basic' - 'interface:mysql' diff --git a/tests/charms/layers/native-ci/metadata.yaml b/tests/charms/layers/native-ci/metadata.yaml index ba6ffe9..1c72d9e 100644 --- a/tests/charms/layers/native-ci/metadata.yaml +++ b/tests/charms/layers/native-ci/metadata.yaml @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + name: native-ci summary: A native VNF charm description: A native VNF charm diff --git a/tests/charms/layers/native-ci/reactive/native-ci.py b/tests/charms/layers/native-ci/reactive/native-ci.py index a339ef0..72365c0 100644 --- a/tests/charms/layers/native-ci/reactive/native-ci.py +++ b/tests/charms/layers/native-ci/reactive/native-ci.py @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + from charmhelpers.core.hookenv import ( action_fail, action_set, diff --git a/tests/charms/layers/proxy-ci/actions.yaml b/tests/charms/layers/proxy-ci/actions.yaml index 5af8591..304b520 100644 --- a/tests/charms/layers/proxy-ci/actions.yaml +++ b/tests/charms/layers/proxy-ci/actions.yaml @@ -1,2 +1,16 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + test: description: "Verify that the action can run." diff --git a/tests/charms/layers/proxy-ci/layer.yaml b/tests/charms/layers/proxy-ci/layer.yaml index 790dee6..186f1db 100644 --- a/tests/charms/layers/proxy-ci/layer.yaml +++ b/tests/charms/layers/proxy-ci/layer.yaml @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + includes: - 'layer:basic' - 'layer:vnfproxy' diff --git a/tests/charms/layers/proxy-ci/metadata.yaml b/tests/charms/layers/proxy-ci/metadata.yaml index bb00a03..37120e3 100644 --- a/tests/charms/layers/proxy-ci/metadata.yaml +++ b/tests/charms/layers/proxy-ci/metadata.yaml @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + name: proxy-ci summary: maintainer: Adam Israel diff --git a/tests/charms/layers/proxy-ci/reactive/proxy_ci.py b/tests/charms/layers/proxy-ci/reactive/proxy_ci.py index 9c0136e..cf2ed99 100644 --- a/tests/charms/layers/proxy-ci/reactive/proxy_ci.py +++ b/tests/charms/layers/proxy-ci/reactive/proxy_ci.py @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + from charmhelpers.core.hookenv import ( action_fail, action_set, diff --git a/tests/charms/layers/simple/actions.yaml b/tests/charms/layers/simple/actions.yaml index 6cd6f8c..d224b5d 100644 --- a/tests/charms/layers/simple/actions.yaml +++ b/tests/charms/layers/simple/actions.yaml @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + touch: description: "Touch a file on the VNF." params: diff --git a/tests/charms/layers/simple/config.yaml b/tests/charms/layers/simple/config.yaml index 51f2ce4..8bde313 100644 --- a/tests/charms/layers/simple/config.yaml +++ b/tests/charms/layers/simple/config.yaml @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + options: string-option: type: string diff --git a/tests/charms/layers/simple/layer.yaml b/tests/charms/layers/simple/layer.yaml index 3fed5e2..2ee67bf 100644 --- a/tests/charms/layers/simple/layer.yaml +++ b/tests/charms/layers/simple/layer.yaml @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + includes: ['layer:basic', 'layer:vnfproxy'] options: basic: diff --git a/tests/charms/layers/simple/metadata.yaml b/tests/charms/layers/simple/metadata.yaml index fd80d1a..1cb3de9 100644 --- a/tests/charms/layers/simple/metadata.yaml +++ b/tests/charms/layers/simple/metadata.yaml @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + name: simple summary: A simple VNF proxy charm maintainer: Adam Israel diff --git a/tests/charms/layers/simple/metrics.yaml b/tests/charms/layers/simple/metrics.yaml index 6ebb605..e610b99 100644 --- a/tests/charms/layers/simple/metrics.yaml +++ b/tests/charms/layers/simple/metrics.yaml @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + metrics: uptime: type: gauge diff --git a/tests/charms/layers/simple/reactive/simple.py b/tests/charms/layers/simple/reactive/simple.py index af6644b..6e1300e 100644 --- a/tests/charms/layers/simple/reactive/simple.py +++ b/tests/charms/layers/simple/reactive/simple.py @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + from charmhelpers.core.hookenv import ( action_get, action_fail, diff --git a/tests/integration/__init__.py b/tests/integration/__init__.py index e69de29..e0b5e8c 100644 --- a/tests/integration/__init__.py +++ b/tests/integration/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# diff --git a/tests/integration/test_broken_charm.py b/tests/integration/test_broken_charm.py index 296096f..d77786a 100644 --- a/tests/integration/test_broken_charm.py +++ b/tests/integration/test_broken_charm.py @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# + """ Test a charm that breaks post-deployment """ diff --git a/tests/integration/test_charm_native.py b/tests/integration/test_charm_native.py index 7b2bda9..1f48a6e 100644 --- a/tests/integration/test_charm_native.py +++ b/tests/integration/test_charm_native.py @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# + """ Deploy a native charm (to LXD) and execute a primitive """ diff --git a/tests/integration/test_charm_proxy.py b/tests/integration/test_charm_proxy.py index a05df5f..608f94f 100644 --- a/tests/integration/test_charm_proxy.py +++ b/tests/integration/test_charm_proxy.py @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# + """ Deploy a VNF with a proxy charm, executing an initial-config-primitive """ diff --git a/tests/integration/test_charm_relate.py b/tests/integration/test_charm_relate.py index 525fc72..714e2f2 100644 --- a/tests/integration/test_charm_relate.py +++ b/tests/integration/test_charm_relate.py @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# + """ Deploy a multi-vdu, multi-charm VNF """ diff --git a/tests/integration/test_hackfest_simple.py b/tests/integration/test_hackfest_simple.py index 829ac3a..db65f06 100644 --- a/tests/integration/test_hackfest_simple.py +++ b/tests/integration/test_hackfest_simple.py @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# + """ Deploy a multi-vdu, multi-charm VNF """ diff --git a/tests/integration/test_metrics_native.py b/tests/integration/test_metrics_native.py index 4288915..e82f5df 100644 --- a/tests/integration/test_metrics_native.py +++ b/tests/integration/test_metrics_native.py @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# + """ Deploy a VNF w/native charm that collects metrics """ diff --git a/tests/integration/test_metrics_proxy.py b/tests/integration/test_metrics_proxy.py index 81501b0..58b0000 100644 --- a/tests/integration/test_metrics_proxy.py +++ b/tests/integration/test_metrics_proxy.py @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# + """ Deploy a VNF w/proxy charm that collects metrics """ diff --git a/tests/integration/test_multivdu_multicharm.py b/tests/integration/test_multivdu_multicharm.py index b879373..ecad8db 100644 --- a/tests/integration/test_multivdu_multicharm.py +++ b/tests/integration/test_multivdu_multicharm.py @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# + """ Deploy a multi-vdu, multi-charm VNF """ diff --git a/tests/integration/test_no_initial_config_primitive.py b/tests/integration/test_no_initial_config_primitive.py index 0d90205..477022e 100644 --- a/tests/integration/test_no_initial_config_primitive.py +++ b/tests/integration/test_no_initial_config_primitive.py @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# + """ Test N2VC when the VNF descriptor does not contain an initial-config-primitive. """ diff --git a/tests/integration/test_no_parameter.py b/tests/integration/test_no_parameter.py index 55c2c3a..9416dbf 100644 --- a/tests/integration/test_no_parameter.py +++ b/tests/integration/test_no_parameter.py @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# + """ Describe what this test is meant to do. """ diff --git a/tests/integration/test_non_existent_primitive.py b/tests/integration/test_non_existent_primitive.py index acd4211..d6759bb 100644 --- a/tests/integration/test_non_existent_primitive.py +++ b/tests/integration/test_non_existent_primitive.py @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# + """ Deploy a VNF and execute a non-existent primitive """ diff --git a/tests/integration/test_non_string_parameter.py b/tests/integration/test_non_string_parameter.py index e15b790..7e15ae2 100644 --- a/tests/integration/test_non_string_parameter.py +++ b/tests/integration/test_non_string_parameter.py @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# + """ Deploy a VNF with a non-string parameter passed to a primitive """ diff --git a/tests/integration/test_simplecharm.py b/tests/integration/test_simplecharm.py index 7f4cafd..0546bbb 100644 --- a/tests/integration/test_simplecharm.py +++ b/tests/integration/test_simplecharm.py @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# + """ Exercise the simplecharm hackfest example: https://osm-download.etsi.org/ftp/osm-4.0-four/4th-hackfest/packages/hackfest_simplecharm_vnf.tar.gz diff --git a/tests/test_lxd.py b/tests/test_lxd.py index f68fa3a..de77e4f 100644 --- a/tests/test_lxd.py +++ b/tests/test_lxd.py @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + """ This test exercises LXD, to make sure that we can: 1. Create a container profile diff --git a/tests/test_model.py b/tests/test_model.py index ff164fa..e5d1f78 100644 --- a/tests/test_model.py +++ b/tests/test_model.py @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + """ Test N2VC's ssh key generation """ diff --git a/tests/test_ssh_keygen.py b/tests/test_ssh_keygen.py index 3a129a3..e821096 100644 --- a/tests/test_ssh_keygen.py +++ b/tests/test_ssh_keygen.py @@ -1,3 +1,17 @@ +# Copyright 2019 Canonical Ltd. + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + """ Test N2VC's ssh key generation """ -- 2.17.1 From d909b0765206a62aabcb1299b371768f121e9b31 Mon Sep 17 00:00:00 2001 From: Dominik Fleischmann Date: Thu, 28 Nov 2019 16:27:36 +0100 Subject: [PATCH 16/16] Add missing argument in notify_callback This fix is related to bug 866 and caused an exception when the charm was not found. Nonetheless it did not fix the bug. https://osm.etsi.org/bugzilla/show_bug.cgi?id=866 Change-Id: I641834461ac508eac131c32a4c4ef3557e192b1a Signed-off-by: Dominik Fleischmann --- n2vc/vnf.py | 1 + 1 file changed, 1 insertion(+) diff --git a/n2vc/vnf.py b/n2vc/vnf.py index 3bf51fa..9441f4a 100644 --- a/n2vc/vnf.py +++ b/n2vc/vnf.py @@ -475,6 +475,7 @@ class N2VC: self.notify_callback( model_name, application_name, + "error", "failed", callback, *callback_args, -- 2.17.1